Pycraft Progress Report
Tags: programming, python, gamedev, opensource
Published: 2022-03-23 19:44:35

This is transferred roughly weekly from my Twitter profile (here: https://twitter.com/PycraftDev) to here on Dev! This is for the week 07/03/2022 - 13/03/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.

## March the 7th – 2022
I've been testing the update utility and my early conclusion is that it's going well, the final screen is not yet complete, but that I'll be finishing off tomorrow. But now I arrive that the issue I've been putting off, I need to upload the project back to PyPi in order to fully test the project, this causes issues because I really struggle with uploading the project to PyPi, I'm starting again with a better approach so hopefully that helps. I'll also be making the rest of the changes to the project whilst I work This out. Hopefully I can wrap the installer up soon and work on to the rest of the game. I've fixed lots of bugs today and look forward to tackling more very soon! 

## March the 8th - 2022
I spent 4 hours on Pycraft today, for reference it took me about that long to research and design a solution to adding controller support in Pycraft, and in that time I re-designed the entire upload to PyPi setup (partially because I deleted the old One, and partly because it was awful) but although the project is uploaded and formatted properly, no display issues on Pycraft, there is an issue with accessing the module once it has been downloaded, but first I'd like to say:

The project is live on PyPi under a pre-release title so will not be automatically downloaded, so I will be working to improve that so don't download it yet, if at all, it's only there so that I can test the update utility, it might cause issues and errors, especially in the installer, I'll release it properly once the whole install utility is finished.

The issue I currently have is that Pycraft is not built well for uploading to PyPi, I'm working to change this permanently, allowing the user to access the project as they would normally, and through python code Currently if you really want to run the latest unstable dev version (not a proper finished dev release so I suggest you do not do tha Yet) then you can run the '__main__.py' module in the files, if you try to run the project through code it gets stuck in an infinite loop (so you call 'Pycraft.', repeatedly), this will change when I reupload the project, hopefully tomorrow. But my time was not completely wasted, I managed to get the README working properly in PyPi, and am well on the way to properly creating an upload Script for Pycraft. I wonder why there isn't a website based way (like how you may make a release on Github) on PyPi to do this, because its really not very intuitive and has caused me lots of issues. Maybe this will change, maybe it won't, but I'll be working to improve The solution I'm working on now 

## March the 9th - 2022
Wow today I managed more progress than the rest of the week combined! I have finished the program within Pycraft, this actually needed redesigning anyway due to how much the project has changed between the last PyPi release (setup.py) and now, but also as I'm sure you are all wondering: Have I managed to fix the upload to PYPi that I had a small tantrum about yesterday? And the answer is yes, it was a small mistake I had made and it took fresh eyes to see it, but also in this update I have redesigned the module, and made small changes to the to support this. The project has had some core functionality changes, you can run the project as normal by running the file, or by importing (main.py) (GameEngine.py) (main.py) The module (import Pycraft) then doing (Pycraft.Start()) which launches the project as normal too. They may also be additional functionality later to add in the ability to run specific GUIs and programs within Pycraft and also to change details like how much of the Project is logged when I add logging to the project. I've also (yes there is more) started work on breaking down the huge 57kb file into its 5 components (a 6th will be added when the repair utility is added), the files will do the same as the (installer.py) Installer does, but broken down and simplified considerably, this will help identify bugs and make the project more modular, like the rest of Pycraft, this will take a bit of time, and will be done around the same time as testing the update utility I'd finally like to say, from the 14th of March to the 30th of March (inclusive) we are running a series of events at work that will cause me to have very limited time for Pycraft, I'll do as much as I can, but there will be delays unfortunately

## March the 10th - 2022
I hope your all having a very good afternoon, I've been working very hard to test the update utility and also have made the decision to pull the next developer release, which would be the update to the installer where I break it down into different modules to make it easier to debug and make changes, this will now change because the installer is now very large and desperately in need of consolidation, so I made the decision to roll the update and clean up of the installer into one release, this will also be the Last release of Pycraft v0.9.4, which is the update when I focus on the installer, with bug fixes continuing as bugs arise and are reported (you can help this process!), the next update will bring huge changes to the game engine, lighting, better camera panning Collisions, day and night cycles, weather, this will be a big update, the installer update has been in the works for about 3 months and added easily an additional thousand lines of code (estimated after consolidation), but the game engine update won't be so large in Size and lines, more in technical complexity, as a result I wouldn't expect the release of Pycraft v0.9.5 in full (although developer releases will absolutely continue) until late summer, although there will be a range of quicker developer releases showcasing the progress made and bug fixes). As a result of the change in schedule merging the last two dev releases of Pycraft v0.9.4 will lead the final release to be longer than originally estimated, especially with the events starting next week which will heavily slow development During that time I will be updating the folks at dev and working on the restructure and consolidation of the project. I hope you have a great evening and I'll estimate that the final release of Pycraft v0.9.4 will be in 5 weeks time, although that isn't for certain! 

## March the 11th - 2022
Today I finished completely restructuring the installer and also made some important changes to the very core functionality of Pycraft, this is risky to do and not something I do regularly, but now the project will run properly when called in another project, so you could build a custom launcher or link it to other projects that way, it also works standalone and when running after downloading from PyPi as well as compiled, this means that some of the code for the 'main.py' module needed changing (main.py) The file is slightly longer but not massively. As for the installer, this has been heavily broken down, there are some subroutines that are repeated in the early versions of the installer, this now has changed, and some of the unnecessary GUIs and features have been removed, making the file smaller the project less complex in code, and less complex to use, making bug fixing easier and making changes faster, although none of the features of the installer have been removed, just relocated. Over the next few weeks I will Be focusing on the update and uninstall sections of the installer, which are currently written, you can view those branches on the Github site, they are being restructured to fit in with the rest of the project! This will also receive documentation too! 

## March the 12th - 2022
I've been making big inroads on the restructuring of Pycraft, I've started work on the uninstaller now, and am approximately half way through, changes here are not as substantial as the installer, but then again I learn as I make the progress so the newer code for the installer will be more efficient and better structured. This means as I work on the entire process, less will need to be redesigned. I also want to say, the entire installer has been redesigned and rearranged, as a result I cannot release the entire project immediately after finishing the restructuring, this is because I've not tested the new features and code and especially the update utility, the entire installer will be tested extensively for issues and bugs, with the most significant being Erased now, and any smaller ones that inevitably arrive with later testing will be fixed in that update. There are also a range of bugs, mainly around the sound and messages system that need addressing before the update can be fully released! 

## March the 13th - 2022
Today, although limited on time, I managed a fair bit more than I was expecting, I had planned to just about manage to finish restructuring the uninstaller for Pycraft, that has now finished, and looks like it will work in testing, although this has yet to be done, and will be done after the completion of the restructuring of the update utility, which should take the least amount of time to restructure as its the final section and by this point I had already decided this process would take place so was made with that In mind, I've also been working on getting a new branch ready for the full release, writing up all the changes and bugs that have been fixed and will be fixed at the time of release, as well as starting to clean up issues, especially with the music playback in Pycraft and also I have plans to cut down on the size of Pycraft, I'll be doing this with two changes, I'd like to be able to remove the 1mb test file for the benchmark, it will be made when the test is run, and deleted afterwards, and I'd like to switch some sounds back to (.ogg) Which offers better compression! 

Thanks for reading folks!