Skip to content

v0.1.1-alpha

Latest

Choose a tag to compare

@cmorman89 cmorman89 released this 04 Jan 05:39
· 1 commit to main since this release
080951f

Release v0.1.1-alpha: (01/03/2025)

Further Optimizations

This update further optimizes the terminal printing performance by refactoring the HemeraTermFx class. The NyxEngine class has been updated to enforce game state consistency across the project, holding all instances of the major subclasses. Additionally, the requirements.txt file now includes line_profiler for performance testing to fix missing dependencies.

I will probably begin transitioning parts of the project to C because the Python interpreter is not fast enough for the performance I want to achieve. Once the transition is complete, I will be able to focus on implementing more complex features and optimizations that are currently out of reach due to Python's limitations. I am excited about the possibilities that this transition will open up and look forward to sharing the progress with you all.

Benefits using C include:

  • Allocatae memory for the various frame buffers and arrays and manage them directly.
  • Drastically improve the performance of the printing pipeline by speeding up the string buffer loop.
  • Improve printing performance by directly printing bytes to the terminal.
  • Completely avoid string generation for the terminal output by generating the ANSI escape sequences directly as bytes stored in a dedicated buffer.

What this means:

  • Implement full color support for 24-bit RGB colors (!!!)
  • Allow real-time conversion of video files to terminal output.

Changelog:

[0.1.1-alpha] - 2025-01-03

Added

  • Import npz files for multiple frames or sprites.

Changed

  • Refactor HemeraTermFx to further optimize terminal printing performance.
  • Update NyxEngine as the main enforcer of game state consistency across the project. It now holds all instances of the major subclasses.
  • Update requirements.txt to include line_profiler for performance testing.