Pycraft v0.9.4 is now live!
Tags: programming, python, gamedev
Published: 2022-04-08 18:34:43

Pycraft v0.9.4 is now live; check out the latest update at the links below:
https://github.com/PycraftDeveloper/Pycraft
https://sourceforge.net/projects/python-pycraft/

Here is the full list of changes:
* Feature: Full Linux compatibility has been added to Pycraft and will be supported in all future versions of Pycraft.
* Feature: The update section of the installer has been added; this connects to both the installer and uninstaller for an optimised method of downloading the latest version of Pycraft.
* Feature: Message functions have been improved with some errors and issues there getting ironed out.
* Feature: The entire installer has been restructured and mostly reprogrammed from the preview releases, this improves readability and follows a similar structure to the rest of the project now.
* Bug Fix: All known issues with the installer and project have been fixed that were known in the developer releases and older versions of Pycraft.
* Feature: The way music is loaded has changed to make the project friendlier on storage space and RAM.
* Performance Improvements: There have been numerous improvements to the installer and game to make it perform better with more optimisations still to arrive.
* Bug Fix: The benchmark section of the project has had some fundamental changes and now works fine with the changed game engine.

* Feature - The program can now detect when you are connected to the internet, if permission is given, this is to detect updates.
* Feature - Pycraft now can detect updates to itself and its required modules, this is displayed on the home screen.
* Feature - Pycraft's home screen has been updated to include access to the new installer.
* Bug-fix - Issues with sound playback in game when navigating between GUI's quickly has been addressed.

* Feature - The error screen has been re-designed, with more features coming in the next snapshot.
* Feature - Most of the errors in Pycraft now have been given more information so that debugging is easier.
* Feature - Devmode captions have been added into the 3D game-engine.
* Feature - Work on the documentation.
* Feature - The benchmark GUI has had some processing optimisations and the file for the read test has been tweaked from 'Mebibytes' to 'Megabytes'.
* Bug-fix - The delays with transitioning between the 2D and 3D games engine have been fixed.

* Feature: Section 1 of 3 on the installer has been added, you can now download and install Pycraft through this method, although currently I would not advise it, past versions of Pycraft available to the installer where not build for the Installer so an amount of messy file transfer has to go on to set everything up properly. Installing versions of Pycraft greater than v0.9.3 I’ll be a much smoother experience. The installer will receive a lot of work by the time of the release of this version of Pycraft and will also see a change to the README to accommodate this change.
* Bug-fix: There have been numerous bug-fixes in this version of Pycraft, many of the changes also include shortening the length of existing code, however the installer is very long and will have a lot of work done on it to get it to the standard of the rest of the modules in Pycraft.
* Documentation: There have been tweaks to the documentation for Pycraft v0.9.3 with a big change planned when it is finished (each file will have documentation separately) however the documentation for Pycraft v0.9.4 will not start until its release.

* Feature: 2 of the 5 sections of the installer are now complete; the modify and install sections are now finished, with the uninstall, update and repair menus still to be completed (although the process will be accelerated). This update also saw tweaks to the install section, which won’t work fully until the release of Pycraft v0.9.4.
* Feature: ``PyOpenGL (and PyOpenGL_accelerate)`` have been removed entirely from the project, due to a more Pythonic, easier to install and faster alternative called ``ModernGL`` and its separate window counterpart taking its place, this should help make the project much easier to install.
* Feature: As a result of ``PyOpenGL`` being removed, the ``PycraftStartupTest`` module as well as the 3D test in ``ExBenchmark`` have been redesigned, both are now faster and better optimised.
* Feature: The ``Credits`` menu has had some tweaks to the text engine making it easier to add accreditation to contributors and update in the future, with a new accelerated text wrapping engine for Pygame text rendering added, this supports wrapping large bodies of text a well as colouring individual words, which will be made use of in later versions. Currently it is used primarily in the ``Credits`` menu, but will also be used later in the ``Benchmark`` GUI and the ``GameEngine`` modules.
* Feature: 3 axis movement in the ``GameEngine`` module has been tweaked, with movement speed no longer being frame rate dependant and more representative of real speed, and the jump animation also being tweaked for the same reasons (although still a linear movement, this will be tweaked in a later version).
* Feature: Joystick/Controller support has been added to Pycraft, now you can choose between keyboard and mouse or controller (although keyboard and controller both work together, controller and mouse do not work in combo), this support is wide ranging and there are likely to be bugs, but the ones known to me have been removed.
* Feature: The ``Inventory`` and ``MapGUI`` modules have been heavily optimised, now images aren’t loaded every frame and are only tweaked when the window resizes, which is detected now differently on those GUIs (with more support coming soon for other GUIs). The ``MapGUI`` module has also been brought into the same structure as the rest of the project and now works much better, although will still need to be updated graphically.
* Feature: The ``Fancy Sky`` setting has been swapped for ``Fancy Graphics`` which now toggles some of the new on-screen elements of the display, improving performance, although it should be noted, toggling the ``anti-aliasing`` setting will likely make a bigger change. ``anti-aliasing`` has not yet been added into the ``GameEngine``, with support coming soon there.
* Feature: The ``installer`` can now be reached directly through Pycraft.
* Feature: The 'tool-tips' text that appears on the new load screen has been updated with key changes as well as to showcase some of the project’s new features.
* Feature: The old load screen menu has been re-added and improved greatly.
* Feature: Object caching has been added to Pycraft, so now the ``GameEngine`` module will load quicker (with more support coming at a later date).
* Feature: Some files in the game are now loaded once centrally, notably the window icon and title font, which are used throughout Pycraft, so the total read/write count when running Pycraft has been significantly reduced (Especially in the ``Inventory`` and ``MapGUI`` modules).
* Feature: The project's caption has now been changed to have rounded corners using alpha, this is in light of the design changes as a part of Windows 11, and as a general aesthetic feature.

* Feature: 3 of the 5 sections of the installer utility is now complete, you can now - in addition to its previous functions - uninstall the project with 3 customisable options:
* * Uninstall both Pycraft and all additional files
* * Uninstall both Pycraft and all additional files but keep save data
* * Uninstall only Pycraft and leave all additional files
* Additionally, a large amount of the bugs and issues with the other aspects of the installer have also been corrected although any more bug reports will always help to make any aspect of the project better.
* The theme section menu has been entirely re-designed to support screen resizing and greatly improved graphics.
* The entire project has seen changes to the controller engine so now the performance there has been heavily improved.
* The entire project has had performance improvements.
* The first section of the benchmark GUI has seen changes to the text structure to make the menu easy to modify and now has updated instructions (with more improvements there coming soon!)
* There have been changes made to the messaging system on the home screen to further improve performance and allow for multiple messages to be properly handled.

Again, feedback would be much appreciated this update was released on; 03/04/2022 (UK date; DD/MM/YYYY). As always, we hope you enjoy this new release and feel free to leave feedback.