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

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

## February the 28th - 2022
Unfortunately due to a small matter of my birthday I wasn't able to get too much done today, I have however uploaded the next Pycraft article to medium, which you can find here: (link.medium.com/sj3F9IAG1nb) this will be uploaded to Dev tomorrow hopefully, but I didn't have much time today and although the article is written, uploading to Dev requires a fair amount of reformatting that would take me well into the evening, I'll be re-reading the article to double check for Issues as well, although pleased with the quality I'd like to take a bit more time to review the article, which I'll do as I upload it to Dev. Also today is nearly the 10-year anniversary of @Raspberry_Pi Which is fantastic, so as a result I've dusted off one of my spare Raspberry Pi's and loaded an install onto a SSD and am remote accessing that to run tests on the compatibility with Pycraft, although I think I will have issues with ModernGL at present I'll be working on improving support there as part of Pycraft, I've also been fixing bugs today for Pycraft, ready to focus on the update utility over the next few days.

## March the 1st - 2022
I've been very working very late today on Pycraft, I've re-read through the article on Medium and made some very minor changes, then I've also shared the article on to Dev, you can find both links at the bottom of this thread I feel much more comfortable now sharing the links because it was very close last night getting it finished or not, and in fact this evening again I didn't think I'd have time to upload the dev article, but I did by working late. I've also been working on some bug fixes for Pycraft, mainly cantered around the ones I outlined in the medium article and the music implementation. Additionally, I've been working on the README on GitHub, making sure everything is up to date, the change will also be followed through to other sites (read the docs for example) at a later date, I'm planning to roll out a new security review at the top of each release, showing out of 10 how secure the project is, the criteria will be outlined in a new file on the README, but it won't be too complex.

## March the 2nd - 2022
Yesterday I was worried slightly about how busy I was, and today I didn't get as much done as I'd like to have, I aimed to start work on the uninstaller but instead focused mainly on getting as much of the backlog of work I have to do finished so I can get back to Pycraft sooner, as a result of this I'll be attaching the two Pycraft weekly updates from last week to next week's post because its better optimised for time that way, also I know now that I am on a business trip this weekend so time will be limited to catch up then, but the work I have done today then, I've changed the README slightly so that all of the different branches have similar styles, and fixed some of the bugs with the uninstaller, mainly by running more tests there, it's difficult to run tests on the uninstaller because it takes so long to move the projects additional files between two directories, it's something like 200 mb of data, almost insignificant in contrast to the transfer speeds of my PC, but most of those files are about 1-2kb in size So there are a lot of files to transfer, each test takes up to 15 minutes to run so I can't do lots of testing quickly. Also, I've changed the files the project deletes so it doesn't delete files that already existed by default in the directory, essentially this Means the project no longer uninstalls the pip module which is required for the install utility and for installing other packages, this is important because it means that tomorrow I can start the update utility which will hopefully have a quick turnaround! I am willing to take as much time as it needs to get the install utility to a usable level because I don't want the installer released and finished but rushed because it moves and handles files and data on the user's system, I don't want errors to occur and unexpected.

## March the 3rd - 2022
I’m very proud to say I have cut my to do list nearly in HALF, although I’ve been really busy working, the time I've spent on Pycraft has been limited, I've fixed more bugs around sound loading in Pycraft and finished my extensive research into adding in day/night cycles, weather, a HUD (Heads Up Display), lighting and a very basic ocean/waves effect to Pycraft, none of tips has been added yet, I've been researching how to and how complex it would be to do, the lighting and HUD alone will mean that a lot of the game engine will need re-writing, but don't worry the joystick, music, keypresses, and load screen will not change which will reduce the volume of the changes made, but this is expected, I knew right from the start of the change when I made the switch The current solution is temporary, yes it works fine and allows us to work on using ModernGL, but once I start work on the game engine I'll be carefully planning out all the changes I need to make as I completely redesign the game engine, this will be put into place As soon as development on the update utility, the last bit of Pycraft v0.9.4 is finished. I'll be sharing in more detail tomorrow more information on that bit of the project. It is important to note the project will likely only run if you have an OpenGL supported graphics cards and have a graphics card driver from that manufacturer, it doesn't need to be the latest but they do need to be there, currently the project is under a lot of tests on which configurations of hardware and drivers are not supported, and if we can change that.

## March the 4th – 2022
Pycraft progress update time, I'd like to start by saying that I will not be sharing any programming news this weekend due to a business trip, this is very annoying and one of the reasons why earlier this week I was struggling with managing both work that needed doing, some of which I was able to do remotely at home, and progress on Pycraft, if I rated each day out of 10 for business (with 10 being no free time possible) then Monday was a 6, by Wednesday it was a 9 but now I've nearly finished all of the Work I needed to do, meaning I have more free time on Pycraft, we are at around a 7 right now, and depending on how my inbox looks on Monday that could rise, but it looks like I'll have more time for Pycraft programming now. So to Pycraft then, the first two menus are finished completely of the update utility, this includes interfacing with Pycraft to get its current version and connecting to @PyPi to work out of the project is outdated this is one of the only parts that I will need to do a lot of backend work for, the install and uninstall components the project relies on are already there so we can use that, although there will be a bit of moving files around that could be slightly challenging So now to the future, after this update is finished, which should be upwards of 20 days from now with a bit of time allowing for unseen delayed, this is by no means set in stone and we will work as hard as we can to get the update out as soon as we can but then we are not finished, there will be an additional update where we clean up the installer, it works fine, but could do with some small tweaks and a bit of polishing and a big tidy up, then it's time to move on and focus on the game engine although Pycraft v0.9.5 will not be focused on the installer there absolutely will be changes as currently the installer will need testing and this will be the ideal time to do this. There isn't much of the installer left to do, and I'm looking forward to moving on to the game engine work, I've been running extensive tests to work out how best to implement the new features and I will be going into it with a good idea of how to lead! There will also be small changes to how regularly the project checks PyPi for updates too!

## March the 6th - 2022
I arrived home today and was finished with unpacking and organising myself by 3pm, this left me with lots of time to work on Pycraft, in this time I did a great number of things, but I can summarise that into one thing I have very nearly finished the update utility, the uninstall and install counterparts have been modified and added, although it remains untested for now, the plan is to finish working on the final screen of the update utility, which should take roughly tomorrow To complete, then I'd like to get a full run of the update utility finished without bugs, when I get to the stage when it works flawlessly, which hopefully will be soon, I'll be sharing that section of the update, although this update isn't over, I will then be Running a whole range of tests on the process from start to finish and then going through and organising it a bit better, we will have 5 additional files in their own folder within Pycraft, the home screen of the installer, where you can either install or modify your install, then we will have the installer, update, uninstaller sections, then finally the 5th file will be for the different utilities, adding, removing and moving files around. At this point I'll also be better organising the installer because currently there is a lot of repeated code that we could really do with cleaning, tomorrow I'll share how much of the project is repeated if I remember, but then I'll be sorting that out. Then that's it, then I can continue with work on the game engine for Pycraft once more!

Thanks for reading folks!