Pycraft Progress Report
Tags: programming, python, gamedev, opensource
Published: 2022-05-29 18:29:03

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

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

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

* You can also find the latest documentation for Pycraft https://python-Pycraft.readthedocs.io/en/latest/

## March the 28th – 2022
Pycraft progress update time, I'm very pleased with my decision to not release the project yesterday, even though the all the features are technically finished, there was some small improvements still to make, some big fixes that needed addressing And it's important to remember that running Pycraft in IDLE or a text editor will give you a slightly different running process to running it in terminal, and that changes with which OS you are using and also if your importing the project And how it is installed, that gives a large number of different scenarios to test, and while not everything will be tested, most features will be at least run to test if they are working before releasing, getting bug reports from other users will of course be greatly Appreciated to improve issues. One more day of testing and bug fixes finished, I've made multiple improvements and there are some minor issues around mouse support on Linux, this will be investigated further when this is addressed in Pycraft v0.9.5, which is coming by SUNDAY! 
## March the 29th - 2022
Today I've made a few bug fixes, mainly in the installer section, there was some issues around moving files to the right location, some file paths where not writable, you can't install Pycraft into a folder on your file system that is locked or secured in some way, or cannot be read or written to, this isn't solvable unfortunately, but a message will be added to the installer. I've also today been looking at how I'm going to improve the benchmark section for Pycraft v0.9.5, and this will include the following The benchmark for graphics will be run in a separate process, this process will then have monitoring for CPU and GPU usage so we can add additional graphs and display how bottlenecked by CPU or GPU the system is, also coming will be that each stage of the FPS Benchmark will be a 15 second test, this is in light of issues regarding how the benchmark spends a while on slower tests then quicker tests are run very quickly, also you will be able to choose which tests to run, and the results screen will be re-accessible There will also be thermal recording where possible, on Linux OS' for CPUs where supported, and on Nvidia GPUs, other support may be arriving later, but isn't currently feasible to implement, this feature will be added over the course of the update, and will not be The focus of the main changes, there are a lot of additional changes coming to Pycraft v0.9.5 too, and this will be accelerated with a greater availability of free time from today.
## March the 30th - 2022
More bug fixes and testing run today, but that's not very exciting, instead today I'm going to share a bit about how I plan and work on updates. I first start with a plan, this I usually have a good idea about whilst I start to program the current Update, so for example I knew by about half way through the installer what exactly I wanted to add to the next update, Pycraft v0.9.5, then as I write the current update, I'll also be designing and testing ideas for future updates, at the start of an update I'll be Spending 100% of my time on that update, then by maybe 2/3 of the way to release, this will have decreased to about 75% as I work out what to add and design how to do that, then for the final 1/3 of the update, I'll be actually implementing features into a separate Version of Pycraft as a test, often to see how they behave, this is rarely the final implementation of a feature through. A good example of this could be Pycraft v0.9.4, I spent the first bit of time on properly adding features, then by about 1/3 of the way through I began to run tests and trials on features for Pycraft v0.9.5, so for example the benchmark changes and shadow mapping I've actually already tried and tested in Pycraft, but these are quick tests to see if anything appears to not behave as expected, I do this So that I can quickly accelerate the start of the next update when it comes time to start work on that, but it does come at a small cost, progress towards the end of an update will slow, but it avoids me trying to add features to Pycraft at current that would Simply not work, the HUD and collisions are me pushing my programming abilities because they will likely be the hardest to add, but I know for a fact that trying to add a full inventory system would be unfeasible at this stage, that's coming later But for now, Pycraft is well on track for Pycraft v0.9.4, although I really must add that Pycraft v0.9.5 will be a very long time in the making, the busy period I was going through recently has passed so development will improve, testing takes time and I'm Working on it as efficiently as I can.
## March the 31st - 2022
More small improvements and fixes to Pycraft in preparation for a big release at the weekend, this is like making an object and doing the final polish and tidy before sending it to a client, it's a big moment because Pycraft v0.9.4 has been 117 days in development and features a lot of overall changes and fixes, we have had developer previews and now it's time for the big release. But this is overshadowed by Pycraft v0.9.5 which will be much, much larger and will take the project as it is currently into something that will look and feel a lot more like a game. But features from older updates will also be given a polish and a clean and more bug fixes will be also introduced. I'd also like to say, the developer versions of Pycraft v0.9.4 will be archived on GitHub after 15 days from the big release, and Pycraft v0.9.4 will follow 30 days after the release, if you want a copy of an older version then you can request it and I shall respond, but newer versions are more secure and more efficient, sometimes considerably so.
## April the 01st - 2022
More bugs to fix for Pycraft, they may appear endless, but a lot of them link to the restructuring of the installer as a whole, which is significantly smaller than the older implementation, but during this most threads were updated as according, but Some calls where not changed, or didn't run as expected so are being fixed. Additionally, I'd just like to say that the update utility, which hasn't been seen by anyone as yet besides me has been significantly improved, originally it had its own copies of the relevant Sections of the installer and uninstaller, now it can reference them and the entire project behaves as expected whilst also being 200 ish lines shorter. This restructured code is more in keeping with the layout of the rest of Pycraft's code so will fit better with the Documentation, which will also be worked on, the idea is that after Pycraft v0.9.4 is released, some time will be taken to make sure all the social media and website-based stuff is also up to date, and improve the documentation. I'll also be adding in the medium Article for this month, this will be on the installer and goes into a bit more detail about each section! Then Pycraft v0.9.5-1 will be released soon after that, it's mainly going to be taking the showcased features of Pycraft v0.9.5-0 and putting them into a live (so up to date and current) release!
## April the 02nd - 2022
Hello there everyone, this will be the last programming report for Pycraft v0.9.4, it feels strange, I still remember the first well (and some may say my spelling still hasn't improved) but Pycraft v0.9.4 is a strange update for me, because it does not focus On the game its self, instead it focuses on making the game easier to install and use on your devices, this update could easily have been as large and complex as Pycraft its self, featuring multiple OS' support, different file formats (including (.exe) formats) As well as lots more features, but that's not what I intended for Pycraft, I want the installer to be good, very much so, it's what the end user may see first potentially, so needs to look good and function. And I can say, hand on heart that I think I have achieved that over approximately 82 days I've made an installer, uninstaller and update utility for Pycraft on windows, with some easy adjustments this will be soon supporting Linux too. There are also some lessons learnt over this programming journey and I'll be doing a longer Writeup for the April edition of the "how we are making a video game in python" series (coming soon). But at the same time, it's important to note this is a first iteration of what will be many features and improvements to the installer, every feature in Pycraft Has been redesigned and reprogrammed to be better and suit the game architecture we are making, and bug fixes and issues will be fixed as a part of that, some issues in the installer may not present themselves until after the release, this shouldn't hopefully be the case but will be quickly corrected and fixed. There have been some close calls and issues during development, having to move, delete and make backups of everything because the installer may delete testing software have slowed down development, even in a decent PC Moving the 3,000 somewhat files (about 100 are Pycraft, the rest are the additional modules it requires) around takes time and we have had minor setbacks where we have lost current editions of Pycraft and had to roll back to a backup from maybe 10 minutes ago As we learned how to work around these challenged we have improved the speed of testing somewhat!
## April the 03rd – 2022
Hello there everyone, Pycraft v0.9.4 is now live, you can check it out on @pypi, @github, @sourceforge in both a raw file form or in an executable format!
The executable form is for 64-bit editions of Windows only and has the installer functionality disconnected, although still there it cannot be accessed through the project because the installer is not meant for executable formats and that could potentially cause issues. 5 hours of work went into getting Pycraft v0.9.4 online, although it seems all present and correct currently, if There are any issues with the releases, let me know and I'll fix them as soon as I can.
Again, an important reminder that the older branches of Pycraft v0.9.4 will be archived in 15 days and Pycraft v0.9.3's branch will be archived in 30, so if you need anything Done with those branches then that's how long you have before they are deprecated.

Thanks for reading folks!