Pycraft Progress report #4
Tags: programming, python, opensource, gamedev
Published: 2021-12-14 20:52:15

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 6th of December!

_You can find the latest release of Pycraft (v0.9.3) here: https://github.com/PycraftDeveloper/Pycraft
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!_

## December 6th - 2021
Today saw a bit of work on Pycraft, today working on adding the button into the home screen, and detecting when, if the user gives permission, the device is connected to the Internet, and if they are then checking, for updates to the game and its required modules, if updates are available then it tells the user with the messages system which was originally in Pycraft v0.9.3. Work on the installer will begin again soon. Work has also been started on the documentation for Pycraft, and I've got the first part complete, there is a second part, which will feature code descriptions and an overview over what each module, class and procedure does. This part hasn't been started yet, but progress is going well on getting the foundations in place, I will likely have the documentation finished before Christmas, and the installer finished just after all being well! The project has also been tested to see how good the implementation is, the previous implementation could load up to 12,000,000 vertices without textures and with face culling, the new implementation can load about 8,130,000 vertices with textures and no face culling so I'm expecting to get more performance out of that, which is really promising and will save an enormous amount of time. It also works flawlessly with textures, it took about a week to get objects 9f that complexity to load quickly without textures in the old implementation, but about 1 hour with the new implementation. There is a lot of work to do, but the amount of time to develop the project will be significantly reduced!

## December 7th - 2021
Not too much progress on Pycraft today, I spent the day drafting and reviewing the documentation already written, and getting ready for more documentation writing hopefully tomorrow, or Thursday I have the Achievements program and introduction to that section already drafted and will get it built and formatted properly soon. I've also spent today testing texture rendering, and I can conclude that transparency isn't currently working, for example in a HUD but that's probably because of the changes to the game engine, and I think that could be a relatively quick, but probably complex fix. I've also looked into shading and shadow mapping, and that's something I think I can add for Pycraft v0.9.5, which is where Day/night and weather cycles are getting worked on (Pycraft v0.9.3 was the game engine change and Pycraft v0.9.4 will be work on the installer and game engine optimisations and documentation writing).

## December 8th - 2021
I managed to get some documentation writing done today, I've done a large amount of a section on the programming trends in Pycraft, you can find that here https://python-pycraft.readthedocs.io/en/pycraft-v0.9.3/, although a reminder this link is set to change a few times I'll do my best to update the link until its finished (the link should have been fixed by then)! I'm planning to dedicate a lot of time at the weekend to the documentation and that will hopefully be when we really make progress! I've also been running more experiments on the game engine of Pycraft, testing some shadow mapping and HUD, I believe I know now how to implement the HUD and shadow mapping in game, and it looks complex, that's definitely doing to be a part of Pycraft v0.9.5, although I've make closing the window a bit cleaner in memory, in a hope to help fix the bug with returning to Pygame from ModernGL, which still isn't solved, but I'm working on it!

## December 9th - 2021
Today has seen a lot of progress towards Pycraft v0.9.4, although I've been focusing my time on getting the documentation written, ideally before Christmas I'd like to have finished writing the documentation and I feel I'm well on track to reaching that, and this weekend could see a lot of progress, once the documentation is finished, then I'll go through Pycraft and clean it up a bit, tie up some loose ends and hopefully fix a few bugs, I'll also be working on applying some of my own documentation rules to my projects as there are a few places that don't follow the conventions of the rest of the project. Then work on the installer can begin, I've been working in prototyping ideas and designs so when I get started there shouldn't be anything unexpected and therefore create delays. I know for a fact the chances of finishing this update before Christmas are small, but really it depends on how much trouble Tkinter makes for me (which I'm using for the installer). Today has also seen the migration of all previous Pycraft versions migrated from branches to different releases to help free up some confusion, and also I've re-written the releases and setup section to suit the expanding project outside of this I'll be releasing details over the next few days on how the installer will work and also the use of PyOpenGL will be officially dropped in the new year from the benchmark section of the game, which will also be getting a structural change but don't worry, the main bulk of the first part of next year (and probably the rest) will be in the game engine, with a goal to have weather systems and day/night cycles, as well as much more implemented by summer!

## December 10th - 2021
So then, to Pycraft... Well today saw the current documentation shared to the GitHub wikis page from readthedocs, which took longer than I was expecting, but readthedocs does a lot of work to get everything looking so clean! So, I've spent my evening doing that, in addition I've also made sure the most current change-log is displayed on the documentation instead of the documentation for Pycraft v0.9.2.5! Outside of that there has been some small changes, I've added a banner to the side of the wikis page and added a depreciation warning to the old repository where progress on Pycraft could be built with others, so now that can be done from the main repository I've also been researching for the installer and am reasonably confident on starting that when I've finished the documentation. Significant progress on that will be made this weekend!

## December 11th - 2021
Hello there everyone! Pycraft update time! Honestly I'm sure we all know this by writing documentation is (really) boring, but I'm proud to say that after about 7 hours of documentation writing today And another 5 working on a new collision detection method for Pycraft, (I'm very proud of that, this will be a feature of Pycraft v0.9.5) and the new installer for Pycraft, to break it up, I've made some fantastic progress, and honestly Visual Studio Code  just gets better and better, today I realised I can work on the repo direct from VS code and even run the project directly! That is so fantastic and if you didn't know you could do that, then you absolutely can!

## December 12th - 2021
Hello there everyone, Pycraft documentation day... I've lost count, been making loads of progress today, I've uploaded the entire project's code to the documentation on readthedocs and added line numbers (which semi-match up, but this was a pain and likely change.) We have also added notes at the start and end of the projects where code is repeated to save time, the plan now is to make a program that can heavily automate the process for me, because the amount of progress made was good, but repetitive, I've already used Some automation techniques to get to where the project is now. Also with every update I won't need to change the documentation, just update the necessary sections so this is a one-time thing So now the plan is to write roughly one sentence for every single line of code in the project, (roughly 4000, this could take some time), then we can begin work on the installer Also I'm already receiving changes for Pycraft v0.9.5, so the startup animation will change slightly, but be heavily redesigned behind the scenes, as well as that, there will be shadow mapping, weather and day/night cycles and collisions. Expect work on this to really get started after the completion of Pycraft v0.9.4, which will likely be January...

Thanks for reading!
I have a plan to format these posts better here on Dev!