Pycraft Progress report #6
Tags: programming, python, opensource, gamedev
Published: 2021-12-30 21:18:25

_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 20th 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 20th - 2021

Updates! I've been making lots of progress today, I've fixed a lot of bugs and improved the benchmarks section of the program, as it's probably one of the least efficient areas, and there are a lot of really basic things that can be quickly changed that'll make a big difference, but that aside I've had proof today that the update detector code works perfectly (as numpy released an update today), and I've also published the first draft of the documentation today (to as far as I've got) I've written 10,000 words roughly, and I've gone through about 4 of the modules, so I'm making progress, and it's really detailed where necessary, so I hope it'll be helpful, and naturally each update will take less time to write! Lots of progress all around today!

## December 21st - 2021

Well, I have good news, I've finished 2 more modules and am well over half way through one as I speak, the documentation is at least 16, 000 words long at present. The last module I completed I'd say that more than half of the documentation was skipped because it was already known, the solution is working well. I've also been working on bug fixes for Pycraft v0.9.4 as I go through writing the documentation, I've found a few, especially in the benchmark and character customer GUI, and have plans to heavily optimise the benchmark process, I've already been working really hard to improve its effectiveness in this update. Just to note, the documentation I'm writing is for Pycraft v0.9.3 as it's the one currently published and after every release of Pycraft, there will be a very brief pause from development to update the documentation. I've also updated the folks over at Dev, and I have plans to share more content there, but all my time currently is dedicated to Pycraft's documentation.

## December 22nd - 2021

Today saw the addition of a new method to install Pycraft, using Pipenv, this was brought forward and added by HarryFBP (https://github.com/HenryFBP) so a massive shoutout there! I've also spent today fixing more bugs in Pycraft, and also work on the documentation for Pycraft, I've published the progress made since I started now on read the docs here: https://python-pycraft.readthedocs.io/en/pycraft-v0.9.3/ but once I've finished writing it, I need to restructure the documentation, because it’s too big to render in GitHub wikis, and not very efficient, so I'll be breaking it down into separate files, instead of loading the whole documentation at once! I've also got plans to change the structure of the documentation internally as at present the link (https://python-pycraft.readthedocs.io/en/pycraft-v0.9.3/) will break the moment I release Pycraft v0.9.4 and its documentation (more updates to GitHub in Pycraft v0.9.4-1 and onwards coming with work on the installer!) so I'll need to fix that somehow. I have finished all the way from the Achievements to Credits (alphabetically) and managed the entire credits menu, and half the one before it in a day, it's one of the larger programs, lots of the files with "utils" on the end will be shorter and quicker. Settings, main and home screen, will probably need a few days each but I'm not sure yet! I aim to be about 45 percent done by Christmas.

## December 23rd - 2021

I'm excited to announce, that I've finished the module "DisplayUtils" in documentation, so expect to see that published tomorrow, also I'm aware that the documentation I published previously was the one before the spell check but in addition, I've been working on animations for Pycraft, this will arrive in Pycraft v0.9.5 with the new start menu (thanks @demirdogukan!) and will feature fading in and out of GUIs, and more! I'll share an early prototype tomorrow, there are a few bugs to iron out, but don't worry I’m focusing on the documentation and Pycraft v0.9.4, but I want Pycraft v0.9.5 to be quick based on how delayed Pycraft v0.9.4 could be, but I don't want to introduce loads of bugs and issues.

## December 24th - 2021

I've been going through the 'DisplayUtils' module, and it's very long and there is a lot of repeated code, I'm figuring out a way to simplify the whole process, but adding in resize support to Pycraft was a nightmare, in addition I've been going through the documentation, fixing spelling and adding more details where they might be necessary... I've so been working really hard on a text wrapper for Pycraft, I have since the start of December, because I’d make a solution but then I'd test it, and there may be a few scenarios where it doesn't work well, so then it's back to tweaking it, but I think I'm close, and being able to do this will massively help the credits, 3D game engine and benchmark GUIs where there is large blocks of text to render, which will also mean they are easier to work on and update (I need to update the credits and this should make that a bit easier). I've also as you may have seen, shared a demo of the transition animation between different menus in the GUI, that I've only worked on for a few hours and am very pleased with the result, after the documentation is finished, I'll work on the installer, and then there are a few GUIs that need a bit of optimisation, which I'm noticing as I go through the documentation.

## December 25th - 2021

Pycraft progress update time (yes, I did work on Christmas day, but only for a few hours), today saw tweaks to the documentation, and I've published my current progress to read the docs, and restructured the documentation slightly behind the scenes so now when I update the project it should update the documentation suitably with the release of Pycraft v0.9.4! I've also fixed numerous bugs with the game, and removed lines of code that are now irrelevant, and tested the game with higher refresh rates.

## December 26th - 2021

lots of progress made today, more work on the documentation, tweaking some lines, planning a way to restructure the documentation so that the entire documentation isn't loaded at one time (because it's really, I’d big) and also, I've been planning on a way to do the same thing for the GitHub wikis page. I've also been investigating the cause of the issue, and have narrowed it down to 2 lines, and I think I am close to a potential fix, this has been a really frustrating bug and I'll be grateful to be rid of it.

## December 27th - 2021

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!

Thanks for reading!