Pycraft Progress Report
Tags: programming, python, gamedev, opensource
Published: 2023-02-07 18:21:09

Hello there everyone, its time for our usual weekly progress summary! This is for the week beginning the 30th of January. This was a more relaxed week then the weeks immediately prior, as now that we have gotten the release of Pycraft v9.5.6 out of the way, we can focus work on Pycraft v9.5.7!

This week we have been busy working on a range of different areas of Pycraft, mainly improving features already in the source code for Pycraft, but also continuing with our work on the documentation. This week can be considered more of an intermediary week between two fairly significant events, the release of Pycraft v9.5.6, and the major changes to the installer which we start work on next week!

We started off the week with the rollout of the new pop-ups feature. Previously to this week, it was used almost exclusively in the new change-log screen that opens after updating or running Pycraft for the first time on your system. Now however it has replaced most of the pop-up requests that we used to implement through Tkinter’s messagebox functionality, mainly these are permission requests. We will just emphasise that Pycraft’s pop-up messages to display errors will not be seeing any changes due to the nature of this feature. In addition to the wider rollout of this feature, we have been extending its functionality, as prior to this change, there was no way of interacting with the window, other than to dismiss it. Now however you are able to interact with widgets in that pop-up, which makes things like permission requests possible, and is something that we have shown in the image at the end of this post!
The settings menu widgets where always made with modularity in mind, and so including them in the pop-up menu was really easy. However, we have had to expand the functionality of the text based programming language we are making to support Pycraft. For those unfamiliar, there are certain syntaxes that can be used in strings that get rendered to change the look of that particular bit of text, and now add in new elements. This isn’t something that we have written up in the documentation yet, but at the time of writing, this is one of the next things on our to-do list.

Aside from these changes, we have also been working on the documentation for Pycraft, our aim here was to (ironically) update the Update Timeline and Sound Preview sections of Pycraft’s repository and to transfer them over to the documentation too. For those unfamiliar the Update Timeline was yet to be updated with the most recent reviews to the plan we have for Pycraft going forward, so much so that it still uses the old version formatting system! This has been now done at the time of writing. What hasn’t yet been done yet at the time of writing is transferring the Sound Preview for Pycraft from Pycraft’s GitHub repository to Pycraft’s documentation, however since we last talked about this, we have found a solution to adding the sound previews, and have plans to extend the previews into extended forms, and perhaps even their final form, but this is going to take a considerable amount of time to do, so don’t expect much change to that for a bit!

Now, as we continue work on Pycraft v9.5.7, it’s important to make sure that when we add new features, we don’t neglect or break old ones, so we have spent this last weekend going through Pycraft and its online sites and making sure that everything is all up to scratch. Mostly issues have been fixed, especially any issues we noticed in the source code for Pycraft, however there are still some things that need fixing, and some slightly larger tasks to do behind the scenes to bring some sites up to date. But don’t worry, even though next week we start work on the changes to the installer, these important changes wont get overlooked, and we will allocate considerably more time after the completion of work on the installer to fix the things we have identified before they become a problem, and also plan to use that time to go through and test the installer, and also to run the same checks on the installer, which we didn’t include as we have plans to make some major changes there soon. We are not sure yet how long this process may take, but we are talking more than a week! After this, Pycraft v9.5.7 will be released, and then work on the new benchmark system for Pycraft can begin, and ideally sometime in the summer probably we will completely finish work on the 2D engine (in terms of adding new features, or improving the implementation of old ones) meaning that we plan then to spend a significant amount of time (on the order of years) working on the game engine!

Now, the changes we made this week where comparatively minor compares to the ones made last week, but the effect that has had is much larger, as we have now added in settings widgets to the pop-ups for Pycraft, which makes a big difference! Here are the most recent previews of the progress we have been making in Pycraft:


![The new pop-up system that we have already shared here, but this time we have added in new buttons from the settings menu to allow for more interactions!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i81tmzsi6zmck4e5okjq.png)