Pycraft progress report
Tags: programming, gamedev, python, opensource
Published: 2022-02-20 12:51:18

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

## January the 25th - 2022

Today saw the rest of the controller support for Pycraft, now controlling movement speed, jump and opening the inventory and map GUI (which is on the cards for an update this year!), in addition to this I've made the implementation more appropriate to the structure of the project and made the threading implications better. In addition to this I've been prototyping controller support for the rest of the project and am very pleased, because the project is so scalable, I'm able to add this feature really quickly, you can press any button on your controller to enter a GUI. The program supports about 5 controller types, essentially Xbox controllers, PlayStation controllers and the Nintendo Wii controller (the module hasn't been updated to support later controllers for Nintendo... Yet!), also the controller support works on Linux and Windows and should also work on apple devices although the latter remains untested, there is also support for small computer-based inputs like raspberry pi and Micro:Bit, so you can run the project on your projects! There has so been more bug fixes and work on the installer too, progress is going very well and will soon be released (by the end of the week!) although there are small changes to be made to the installer that shouldn't take long. The project still supports ALL keyboard and mouse devices by USB or Bluetooth and there are no plans to remove this! 

## January the 26th - 2022

I've made loads of progress on Pycraft, I've finished setting up the WSL environment so I can run the Linux Ubuntu based OS through Windows (yes I'll do Debian too, with Raspbian being tested in a raspberry pi), originally it was set up with metaphorical tape, but I've changed the structure so it works much better now I've properly set it up, and Pycraft still works on Linux, in addition to this I've added controller support for the settings menu, lots of the GUIs don't need any advanced changes so have quickly developed those, but the settings menu is a touch more complex, you can use either of two joysticks to move the cursor, press any button to act as a click, and use the triggers to go back (this changes in the play GUI!), this is also now togglable in settings too (by default off, unless no keyboard and mouse is detected in which case it's automatically on), now there are also tool tips and prompts that show for the first hour you use the project, these only show if the user hasn't interacted with the GUI for 10 seconds and are relatable for the input type and GUI, this is likely to change. I've also (there is more) been making tweaks to some of the basic enemy AI, it's currently 2D and coloured dots in scratch, but it's a quick mock up whilst I tweak the AI and take it to 3D and add more complex sprites, currently this isn't good enough to share (I'll showcase the joystick-controlled mouse movement tomorrow).

## January the 27th - 2022

Today's progress on Pycraft was very mixed, I spent a lot of time tweaking features and drawing up a long list of features to change and perfect in the next update to Pycraft, but until that update is released, I've been making tweaks to the installer, I'm very pleased with the progress there, although once Pycraft v0.9.4 is released I can't properly test the installer, and it will be updated with Pycraft v0.9.5 depending on how it performs, but expect bugs for now there. I've also added more fixes and code to the joystick support now you can control the project on all GUIs with a controller, pressing any button acts as a mouse click, using the triggers acts as going back and the joysticks control mouse movement (naturally these changes in game), and tool tips have been added to help the user out. Also, the project will now intelligently decide if a controller is connected (and as such load up the controller engine) and if there is no keyboard and mouse detected by the project the default input will switch to the controller, and this can be toggled in settings which has also had tweaks in Pycraft v0.9.4-3 which will be released ideally by the end of the week! 

## January the 28th - 2022

Today I only had 2 BSoDs whilst using my PC, but it was actually very reassuring because on both occasions, it was the same error as usual, but I didn't have Pycraft running and with other tests as well I can say categorically that Pycraft is not the cause of the windows instability and issues I've had in the past few days. In other news I've also tweaked the controller support making it more universal between GUIs, and would like to add, if there is any setting you want me to add to Pycraft, then let me know on the Discord server, here: and I will do my best to add that in! In addition, I've had to make changes to the inventory and map GUIs, both of which will change again in a later update, now they don't load the image from disk (discord.gg/buECXtjNhw) with every time the display refreshes, it's slow and impractical and not good for hardware lifetime, so that has now been adjusted. Also, some continuity has been added between different GUIs, because some were left out of minor changes that can break some features. I've also changed the installer slightly so now it detects when Pycraft is actually installed and loads the new options menu. Today was the last full day I have marked for adding features, tomorrow and Sunday for me will be entirely testing and bug fixing ready for the release later on Sunday. There have been lots and lots of changes in this update and also plan to make a diagram public on the repository where I go through all of the GUIs and rate their performance out of 10 on a series of tests so I know which need more work. 

## January the 29th - 2022

Pycraft progress update time, today was the last full day of development, and I've made fixes and changes throughout the project, including reducing the amount of file reads the project uses, and making some files universal, with more similar changes on the way in the next update! The project is very much finished now, with a variety of bug fixes and tests being performed to make sure the project is stable and there are no last-minute bugs. The credits GUI has also featured a small redesign as I have changed the entire font loading and rendering engine, it's a bit less efficient, but the number of lines has reduced by 11% and the ease of editing is much better, as a result I've added the new modules the project used, as well as to HenryFBP and @demirdogukan99, (although I will change and update the credits menu as necessary, it's much easier now). Tool tips has also been updated and tweaked and lots of bugs fixed. I've also tweaked the fancy graphics setting, which will replace the "fancy sky" setting, which is unused, so now you can toggle some of the graphics settings in the 2D and 3D engine with this, from the animated geometric structure on the home page to the small details in settings, this can be toggled on lower powered PCs to improve performance, and although no settings are linked, I would also recommend turning off Anti-aliasing for a bigger performance improvement!

## January the 30th - 2022

Pycraft progress update time, today was the day I released the latest version of Pycraft, which you can find here: , but aside from that I've not made much progress in Pycraft v0.9.4-4, I've made small tweaks in preparation, but I've been spending the rest of my day celebrating and planning where to take this update, I've got a good idea, and I doubt this update will be as feature rich, but there are some GUIs that will be updated here, mainly the theme selection menu as well as the installer and lots of work on the documentation. I fear also I've neglected the dev channel, so I'll be getting that all caught up and make sure every account and profile is up to date.

## January the 31st - 2022

I hope you are all having a very pleasant evening, today I've been working hard to start on Pycraft v0.9.4-4, this update will feature a re-programmed theme selector menu, as well as changes to the benchmark module, and work on the installer this update will see the uninstall section being made (because in order to update or modify, we may need to rely on the code in the uninstaller, so makes sense to do that next). I've already implemented the new text wrapping utility into the benchmark mode also there has been lots of work on the installer too the past few weeks, it's all I've been spending my spare time on, so much so I know I really need to update the folks at dev, I'm working hard to do that too! (it's a big job) I've also had some early animations and designs for Pycraft finished, there is a spell/rune animation that looks really cool, as well as animations for fireworks and some water and cloud physics, with the atmospheric physics being implemented in Pycraft v0.9.5, so there is a lot of work to do, and a lot planned and being worked on, and I look forward to the up-and-coming progress updates because a lot of progress will be made over the next few weeks!

Thanks for reading folks!