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

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

Unfortunately work over-ran today slightly so I did not have as much time as I would have liked, but I've gone through a large amount of the testing for Pycraft now, there is one small thing that is bothering me slightly with the installer, does the required resource files download with PyPi, because I thought that it did, but now I'm not so sure because in the last run, the run that if gone successfully would mean I am free to upload the start of the installer to GitHub, but If this issue turns out to be more serious then that could lead to delays, but either way I wouldn't have been able to upload the project today, so unless there is a serious flaw with the installer the installer will be attached to Pycraft in v0.9.4-2 tomorrow but it's really difficult because I want the installer to work well with later versions without much human interaction and regular updates, but at the same time I also want the installer to work in lots of different situations, and also the installer needs to work well and I'd also like to note, when we get to a release of Pycraft with a 1 as the first integer, instead of a zero, all the files for Pycraft will be attached and there will be much less setup required. But sorry this is taking longer than I'd like a combination of Tkinter and PYPI neither of which I use regularly and the issues with getting the installer to integrate well with the project has made this process slower, but this is also a onetime thing, then the next releases will be much faster.

## January the 11th - 2022

Hey there everyone! I've published the next dev version onto GitHub today, this one includes the start to the installer I've made the past few days, the instal section of the installer is the hardest part, once everything is installed it's much easier to update/modify and uninstall sections of the installer are a bit easier to make, and also I'll probably take a short break from work on the installer to work on the documentation the next few days, once I've updated the folks at dev with the latest progress on Pycraft and I'm aware I've not shared this news on the Discord server yet, which you can find here: but I was working late on the installer so was unable to do that, that's one of the first things planned for tomorrow as well (discord.gg/buECXtjNhw) but I'll admit I'm grateful to be making lots of progress, that issue that I was worried about with PyPi was an easy fix (I'll admit it took maybe 8 more exceptions and errors to handle) but this has been a long, drawn out update, and I'm pushing for a full release towards the end of the month. The installer will get many updates in the future, each will make it vastly better.

## January the 12th - 2022

Today was a bit of a miscellaneous day for Pycraft, maintenance on the repository, the Discord server and planning ideas for both there and dev, as well as announcing the release from yesterday there in the announcements section and helping out in the help tab, it's great to see a lot of people already showing interest and if you do need help you need only ask! Anyone is invited to the Discord server and I'll do my best to check that regularly however I'm a good chunk of the way through the dev post for last week too, but unfortunately was halted by a Windows update and I ran out of time, but I can assure you that is coming soon! I've also added to the documentation and will be likely pushing a lot of progress on the documentation this week, I'll also be adding documentation for the installer with the release of Pycraft v0.9.4 too!

## January the 13th - 2022

Today saw a lot of work in the documentation, as well as some more new sounds for the project, which will be added to the README in the upcoming days, a notice has been released for that I've also changed the movement in game so that now it's actually 1.42 m/s walking, instead of 1.42m with every refresh, which means that at 60 or at most 9,000 FPS that could be 12.78km/s, which is really fast so now that dynamically changes with the frame rate to be as constant as possible (that's 28500 miles per hour for those on the imperial system), which was a much needed change there! But I've also been doing more code clean up, repo clean up and gearing up for stage 2 of the installer. Also, the project supports Windows and some build of Linux confirmed, but the code should work on other OS' regardless (github.com/PycraftDevelop…)

There will be "music" and "sound" files in Pycraft, music will be streamed with Pygame's music module, and sound will be loaded with the sound module. There is no limit to sound or music files in length, but we will try to keep the file. ... Size small, and larger files should use the music strategy, music files will play in game, say "Forest theme", and sound files, "footstep" or say "random notes 1" (coming soon!) will play on-top, each of the two different sections has toggles and volume control in settings this is mostly implemented in Pycraft already, with some minor changes to be made before the release of a later version of Pycraft with the music files. In addition, there will be a "release notes" section added to the project with the installer, so the program can detect when there has been an update and what has changed, this will be added in Pycraft v0.9.4! 

## January the 14th - 2022

I've posted the latest progress update on Dev, (there where some major edits I needed to make), I've also redesigned the jump animation (although I'm still not happy, it's too linear up and down, but it's much better than it was, and isn't frame rate dependent anymore (and doesn't get stuck when you press and hold)), I've also planned the changes to the music library on GitHub, and also completed some designs for new benchmarks, I've got hundreds of ideas, but they will not all make it into the project probably (there are some changes to occur in the benchmark section, but I'm dedicated on the 3D game engine as much as possible for now). I've also changed the mouse lock toggle system so it's easier to get the mouse out of the OpenGL display and won't switch between both states very quickly as the game runs. Also (there is still more), I've added the load screen back into the project, it's run in a thread, but there are still optimisations to be made there, especially in windowed mode there are a lot of tweaks and changes still to be made. Then I've also done a bit of work on the documentation as well, which will be shared on Sunday probably. I'd also like to say that I cannot spend as much time on Sunday as I'd like on the project, but will do as much as I can! 

## January the 15th - 2022

Attached is the video I shared earlier in my progress report, I just wanted to point out, the animation between the two game engines is really smooth and actually unintentional that's just the Windows open and close animation which in using to my advantage! But also, you can see how fast the project loads, as more files and the game gets more complex the speed will reduce (but don't worry it won't be grinding to a halt), but I couldn't just take the implementation from the old game engine and drop it into the new situation because of how different the two engines are!

## January the 16th - 2022

I didn't have much time due to other events today, but I spent my day improving the new load screen by adding a percentage complete to the bottom, that's probably the last change I'll be making to that for now then I've also added in changes to the settings menu to make it easier to change sliders and also added in a few visual effects there, which will be linked to the fancy graphics toggle when settings gets overhauled at some point (I believe it's just after the release of the last version of Pycraft v0.9). Also, I've changed the way exiting the load screen works so that it now returns the user to the home screen and is fully integrated with the "usual" features of the program. Aside from that I've spent a large amount of the available time today on the documentation, so much so that I've had little time to tweak the music library attached to the repo, I've made some minor internal changes there and plan to spend more time tomorrow working on that. I've nearly finished the game engine now, having written documentation for about 130 lines today! 

## January the 17th - 2022

Today saw some minor bug fixes to Pycraft and a lot of work on the installer, unfortunately I didn't have enough time as I'd have liked today, so didn't want to start changing the sound library and then have to leave it half-finished but I've spent as much time as possible today working on the documentation, I can also confirm that Pycraft runs fine on the latest versions of python that where released recently, with Pycraft v0.9.4 coming up around the end of the month (that has been tested and is supported) but the plan is to leave work earlier tomorrow, then get the music library finished then get work on the modification menu for Pycraft finished, as well as make some minor tweaks to the new installer but I'd also like to mention, we recommend that you get the very latest version of Pycraft if you want to download it, the installer will do that automatically, and make sure it's required modules are up to date because some security risks in earlier versions from versions of Pycraft v0.7 and earlier with the use of the "exec" command, aside from that each update does include security improvements, later versions of Pycraft will also no longer feature PyOpenGL, with Moderngl taking its place, and there will be changes as a result the benchmark GUI will change and the installation process for Pycraft will be easier.

Thanks for reading folks!