Pycraft Progress Report
Tags: programming, python, gamedev, opensource
Published: 2022-02-20 13:08:07

This is transferred roughly weekly from my Twitter profile (here: https://twitter.com/PycraftDev) to here on Dev! This is for the week 07/02/2022 - 13/02/2022.

* You can find the latest release of Pycraft (v0.9.3) here: https://github.com/PycraftDeveloper/Pycraft

* You can find the latest developer preview of Pycraft (v0.9.4-4) here: https://github.com/PycraftDeveloper/Pycraft/tree/Pycraft-v0.9.4-4

* You can find the latest feature preview for Pycraft (v0.9.5-0) here: https://github.com/PycraftDeveloper/Pycraft/tree/Pycraft-v0.9.5-0

* You can also find the latest documentation for Pycraft https://python-pycraft.readthedocs.io/en/latest/
_Although be aware there is a lot of changes occurring here._

## February the 7th - 2022

Pycraft progress update time! Today was more focused on keeping continuity between each of the individual GUI sections of Pycraft, all of the GUIs now for example support the new controller support and are much more efficient (from roughly 15~17% down to 0.9~3%) which is a big improvement, the only thing now that is hard in the system is starting up, especially on the first time that day because it checks for both updates and as a result displays a message on the home screen of there are updates available both are very CPU intensive although I'm working on a solution there, additionally I've spent a lot of time of the documentation too for the project AND am also pleased to announce a new method of downloading Pycraft, you can now download the project (and in future versions the installer for) Pycraft on source forge, the link is here: and will improve in time. It is important to note the latest (.exe) version of Pycraft was some time ago, and it will be updated with future releases! Thanks to the team (sourceforge.net/projects/pytho…) behind @sourceforge for the fantastic platform and support!

## February the 8th - 2022

Today I spent a lot of my time on the 3D game engine, completely rewriting the way the controller is handled there and how data is shared between the different aspects of the program, the project is much more efficient with this new implications, but it does leave what I call "rough edges" to the program, essentially it's features that should be added and will be, but are not likely to be made in the current update I'm working on, for example a map of the different key bindings for both the keyboard and controller, as well as the ability to re-map both, and there are some features that are not possible with the controller, like for example entering "Devmode" which is like a mini task manager showing the projects resource values and resizing the display, but some of these features will not make the "finished" version of Pycraft, which is a long way off yet, or are not applicable, and when you use a controller we strongly suggest full screening the display as it's a much better and more efficient experience. A lot of work has been put into the game engine and keeping a lot of controls similar to how they where originally. Additionally, there has been a lot of work on the documentation but also, I've finished the new messages system and am considering engineering a new sound to signify a new message, but that's a bit of time off now. Currently most of the rest of this month will be on the uninstaller and documentation, with images coming with that section's completion, I'm also working on updating the README outlining source forge changes. 

## February the 9th - 2022

Pycraft progress update time, today was spent finishing off the new controller support for Pycraft and also identifying unused variables that @code cannot recognise, although it's a unique situation so I wouldn't expect it too and I have gone through and tidied up some unused imports and as a result reduced the projects load on RAM by a small amount, currently the project uses a minimum of 75 mb of RAM in a best case situation, I've also made some performance optimisations to the threads and spent a lot of time adding back the jump and switching the game engine from the old to new controller engine so now the project runs almost exactly the same as it did originally, but much section's more efficiently (from 15~20% down to between 0.5~2% in the very heavily optimised game engine) I'm so pleased with the results I will be sharing a small video on the last post of this thread showcasing some of the new features and optimisations and am very pleased with the update and am well on the way to releasing this update with some small tweaks to the 2D engine and work on the uninstaller still to do, unfortunately I'm not going to push the deadline any smaller than "by the end of the month" because I need to keep in mind my mental health and in case something crops up at work but I'm aiming for a shorter turn around!

## February the 10th - 2022

I'm a bit later than usual today, my mouse broke so I spent a lot of time today engineering a new mouse until the one I brought in amazon arrives, so progress was a bit reduced from normal, with my new - motion controlled - mouse I have identified a bug with the sliders in the settings menu that I think is caused because of the small change made to the event system when we added in controller support and identified and fixed a bug where any message shown on the home screen (which will be animated. ... As part of Pycraft v0.9.5 with the rest of the GUIs) is rendered in the wrong place for a few frames when the display is resized, this has been fixed and I've also written a statistics program for the project to keep track of unused variables, and I have some interesting statistics to share with you:
Pycraft has in total:
* 5,228 lines (of which roughly 3000 have now got documentation)
* 648 references to the 2D engine Pygame
* 2,787 "." characters
* 873 logic operations (AND, OR, NOT)

## February the 11th - 2022

I was very pleasantly surprised to see the number of stars on the Pycraft repository reaching 17 stars and 52 downloads that really means a lot and drives me to continue to work hard in the project, so I'd like to start by thanking you all and for reading this too, that's very much appreciated. Today I very nearly finished the uninstaller, based on how this weekend goes, when I'll have more time to program as to how far I get, but we could see an update by the end of the week if everything goes well I've fixed lots of bugs and am I to the final screen of the uninstaller now, we send files to trash instead of permanently deleting them just in case the user changes their mind or if a developer wants to keep some files but not others we do this with the send-2-trash module which supports Apple, Linux and windows based PCs, and although the install wizard is currently Windows only it's a step towards making the project open to other Operating systems, once the uninstaller is finished then work can begin on the largest section, the updater which incorporates parts of both the uninstaller and installer, which is why they were done first, with the repair utility coming after, then we are finished with Pycraft v0.9.4 and we can get into some really interesting game engine stuff, collisions, HUD, weather, lighting and day/night cycles are all expected then, with some already prototyped it's going to be a huge update, and it may also see the inclusion of the final world design, or at least the start of it! 

## February the 12th - 2022

Today I very nearly finished the uninstall section of the uninstaller, almost all of the menus are now working and all of the behind the scenes file management software is done, the "uninstall Pycraft" is finished and tested as working, and the "uninstall Pycraft and all additional files" is finished but remains untested, and "uninstall Pycraft but leave safe files" has been finished in terms of the backend, it's just catching up with the frontend to do, then testing for both GUIs and a final screen everything works exactly as I expected, I've so been working hard on the documentation and as far as I'm aware fixed all the bugs and tested all the jew features for Pycraft, and once the installer is finished to the target point I'll be ready for a release which should be very soon, then we will work on the update section and leave the repair section for last, as it's the most complex, also I have been making sure that the project runs fine when downloading from @sourceforge and when the latest version of Pycraft, v0.9 is finished a (.exe) release will be shared that will improve compatibility! 

## February the 13th - 2022

I'm proud to announce that the uninstaller for Pycraft is now finished, although not currently released, that will happen over the next few days as I prepare the project for the release, I've fixed more performance issues and also:
* Redesigned the theme selection menu
* Tweaked the messages system on the home screen
* Added the uninstall section to the installer
* Redesigned entirely the controller interaction program
* Made small changed to the event detection system and generally polished a few more rough edges across the project!
Also, the program currently does now better support downloads from here: although that will not be made live until the completion of the installer entirely (sourceforge.net/projects/pytho…) I'd also like to note there will be a few small changes on the site there and on all of the projects pages, as well as an updated documentation for Pycraft v0.9.3.

Thanks for reading folks!