Pycraft progress report #7
Tags: programming, python, gamedev, opensource
Published: 2022-01-06 16:19:07

_This is transferred roughly weekly from my Twitter profile (here: https://twitter.com/PycraftDev) to here on Dev! This is for the week beginning the 27th of December!_

* _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-1) here: https://github.com/PycraftDeveloper/Pycraft/tree/Pycraft-v0.9.4-1_

* _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 here: https://python-pycraft.readthedocs.io/en/pycraft-v0.9.3/
although be aware there is a lot of changes occurring here, and the link may be subject to change._

## December 27th - 2021 (Taken from last week's edition, I was a bit eager!)

Pycraft v0.9.4, the most current update, will feature many things, as a part of that the error screen has been changed heavily simplifying the process to avoid complications and more possible errors, this has been done to help development for the rest of Pycraft, now with details about where the error occurred, this has been done so the project now works with long error messages and the project is simplified somewhat. I fear this may have introduced lots of bugs because it's such a global change but as far as I'm aware, there are no bugs of any kind in Pycraft, but testing will not stop and lots of testing has still to be completed before I come even slightly close to a release in the dev branch of Pycraft v0.9.4-1, which is likely on the cards before the new year, in addition on the bug front, the issue with transitioning between the 2D and 3D game engines and the process being really slow and unresponsive has been fixed, and I've learned a bit more about the bug and will know how to fix it in future in addition to that, I've also cleaned up a few un-needed functions and images, no work on the documentation today, although that will resume soon after the next dev release of Pycraft. I've also today added a new feature to the Visual-Music program, but no update to that is planned now for some time, unless a serious bug occurs there. I've also shortened the 3D game engines basic commands library (either "base" in Pycraft v0.9.3, or "GameEngineWindowUtils" in Pycraft v0.9.4) and done a lot more behind the scene, I've been planning lots as I write documentation, and now I'm finished implementing new features for this stage in Pycraft v0.9.4, but will do bug fixes and then release to the dev channel, then I'll be working on the documentation as I plan the installer, then in the new year. Once the plan for the installer is done and hopefully the documentation is too, I'll be ready to work on that, then I'll be ready to release Pycraft v0.9.4 soon after that! Also, this is a "messy" long update, when we get onto Pycraft v0.9.5 and others, progress will be more linear and less spread out and much more interesting!

## December 28th - 2021

Today saw lots of bug fixes for Pycraft as a whole, as well as some more feature tweaks, additionally I've been running tests for the next stages of Pycraft and am glad to be announcing that the first thing to do tomorrow is to release a developer view for the tweaks to Pycraft, that will feature every improvement mentioned in these updates here, in addition to that, I've now changed the game engine so it now runs to the user's set FPS in settings, however an update to settings is planned adding v-sync and much more! I've also been making more headway with the documentation, now I'm a good portion through the next module "drawingutils" and will be sharing that section of the documentation once I've reached the end of that, the documentation will be suitably Formatted so it's not all loaded at once for performance reasons, and the GitHub wiki will be updated with the completion of the documentation due to more pressing issues with the formatting there (it's too big to render) so I'll go through that and with the planned restructure of the documentation hopefully fix that. In total today I've fixed over 32 bugs and gone over the rest of the code carefully to avoid any others! There are, at present no bugs known in Pycraft, if you discover a bug feel free to let me know! And I'll be listing a full list of changes when I alter the documentation with the release of Pycraft v0.9.4 (I'll have to go through and write documentation for the missing lines and will be able to accurately see what has changed between the two versions).

## December 29th - 2021

Today I spent more time on the documentation, I've finished a good portion of it now, and I've also been planning out the installer and testing out examples and Pycraft in part for the next update Pycraft v0.9.5! In addition to this, I've been going through and have released snapshots for both Pycraft v0.9.4-1 and Pycraft v0.9.5-0. Pycraft v0.9.5-0 features none of the features currently in Pycraft v0.9.4-1 and earlier snapshots, but they will of course be moved over with the release of that version, the reason for this is so that you all have interesting new designs and code to check out (and probably bugs to identify), whilst I'm writing the documentation, which I'm really making headway through!

## December 30th - 2021

Today I spent the day writing documentation and planning a strategy for the new year because I'm getting a lot of views on my posts which I'm really grateful about so will try to post more both here and on there! I've also been working on the documentation and went through an entire module today, "http://DrawingUtils.py" and have been testing some changes I've made, and Pycraft v0.9.4-2 will be in some cases twice as optimised on some tasks and have also fixed the blue, RAM usage graph in "Devmode" where the line graphs appear in the top right and also made it so that it now detects the percentage of both integrated and virtual memory used, and tweaked the benchmark programs logic, these small tweaks will be detailed in the release of Pycraft v0.9.4. In addition, I ran through the entire documentation in a program, filling in each line with the longest line recorded in the current documentation, and in total the documentation would be 89.6 million words long Which is 58x the number of words in the entire Harry Potter, hunger games and hobbit series combined, but that's a worst-case scenario, it'll be much less than that, especially with Pycraft v0.9.4 where I've taken out a fair few redundant lines. I'll be sharing the Current documentation tomorrow after I've continued to work my way through it!

## December 31st - 2021

Today saw more work on the documentation, I'm now through most of the code for the benchmark section (including logic) as well as all the modules that come before it in the alphabet. In addition, I've tweaked the documentation writer and also tweaked the game engine so that FOV is now specified and will adjust automatically when you start sprinting (which will be tweaked in Pycraft v0.9.5), but most of the work today was on the documentation, I'm really getting through that now and am on to the game engine now! Expect more progress tomorrow!

## January 1st - 2022

Today saw the documentation writer program getting completely re-written, it's now shorter, more efficient and works with the slight format change made to the documentation, and I have good news, today we saw the progress on the documentation go from 39 to 47% complete, (that's from the http://Achievements.py module to about 1/4 of the way through the http://GameEngine.py), I spent about 5 hours on the documentation today (after I'd re-written the code), and I've also been working on optimising Pycraft as a whole, I've added about 5 new features since work started on Pycraft v0.9.4, but cut out maybe 100 lines (I'll calculate the amount of lines cut tomorrow if people are interested) which will be nice as it will shorten the size of the documentation for Pycraft v0.9.4 (but not the time to write it because lines only need to be written once, so if the line is the same between versions then I won't have to re-write it). The plan has so changed slightly, when I reach the end of the game-engine module, I'll switch from documentation. Writing to work on the installer, and switch between the two, I will also not be releasing Pycraft v0.9.4 until I've finished the documentation for Pycraft v0.9.3, but then the documentation will be much quicker to update after that!

## January 2nd - 2022

Pycraft progress update time, well I've reached just over 50% of the documentation complete, although I want to finish the game engine before I move on-to the installer, but that hopefully shouldn't take too long to finish then I've also been going through the game engine, optimising the code and so running tests on the game engine and have planned lots of features, (I've planned out Pycraft v0.9.5 and most of Pycraft v0.9.6) but I'm being held back by the documentation at the minute in addition I don't currently have plans to release an article of medium this month, I may write one later on during the month but it probably won't be long if I do simply because I really want to finish the documentation and this update so I can move on-to some more interesting progress!

Thanks for reading folks!