Recent

Author Topic: SprE_ngin_E_2_D. 2D Software game engine.  (Read 394 times)

ArtProg2D

  • Newbie
  • Posts: 6
SprE_ngin_E_2_D. 2D Software game engine.
« on: November 19, 2025, 07:37:09 am »
  Hi everyone. After several years of developing my own platformer engine, I finally decided to create a thread here ::). Maybe someone might be interested, and maybe someone will offer some interesting ideas for further development. The engine can't do much yet, but what it does have is already quite well optimized 8). Yes, I know there are similar engines like the Castle Game Engine exist, but my approach is based less on adding as many features as possible, and more on carefully elaborating on the existing functionality.

  Supported OS: currently only Windows.

  Rendering type: software (OpenGL is used only for outputting the final frame, but shader support is already implemented).
 
  Killer features:
- thanks to the use of special structures like CSR (Compressed Sparse Row), editing even in software mode becomes incredibly fast (the complexity of the calculation depends only on the number of selected points and is almost independent of the number of all existing points on the scene);
- thanks to the "dirty rectangles" technology, scrolling of background objects occurs almost very quickly, which allows for the rendering of very large sprites (more than 30kx30k pixels) as background objects;
- using multi-threaded processing in conjunction with SIMD optimizations, it is possible to achieve quite decent speed even in software rendering mode;
- using CSR technology eliminates the need for dense texture packing and, in particular, mip levels. Only visible pixels are saved and read.
 
  Brief description of main modules:
01. Fast_AnimK          : animation(particles,physics,hair,fluid effects etc.);
02. Fast_GL               : initializing GLSL shaders;
03. Fast_Graphics       : rendering of primitives(like a line, rectangle,circle), filters, blitters, CSR-sprites processing etc.;
04. Fast_UI                : working with UI/UX elements;
05. Fast_Scene_Tree  : scene object manager;
06. Fast_SIMD           : some SIMD powered routines;
07. Fast_Threads       : working with threads(implementations of multi-threaded variants of some functions from other modules);
08. Hot_Keys             : key mapping;
09. Image_Editor       : editing sprites(filters, masks, etc.);
10. Documentation     : descriptions of tools from Draw, AnimK, File;
11. Performance_Time: measuring the running time of different sections of code;

  All units are in active development and will be supplemented as needed.

  github.com/SprE_ngin_E_2_D

  Several screenshots :)
« Last Edit: November 20, 2025, 04:02:25 am by ArtProg2D »

Thaddy

  • Hero Member
  • *****
  • Posts: 18515
  • Here stood a man who saw the Elbe and jumped it.
Re: SprE_ngin_E_2_D. Software game engine
« Reply #1 on: November 19, 2025, 08:00:27 am »
The code looks very promising!
Maybe you can adapt your post such that it says immediately that it is a game engine in pure Object Pascal. Some may take it for spam otherwise due to the unfortunate naming in the header.

At first glance, don't forget inlining!.
I will certainly have a better look later..

Many of us like this kind of stuff so it is in the right place.
« Last Edit: November 19, 2025, 08:04:17 am by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

ArtProg2D

  • Newbie
  • Posts: 6
Re: SprE_ngin_E_2_D. 2D Software game engine.
« Reply #2 on: November 22, 2025, 12:50:15 pm »
  Next, I plan to release the Fast_Graphics graphics module (with multi-threaded CSR image processing) and its supporting modules separately for public viewing. But for now, I need to unbind some dependencies.
Meanwhile, a small change to the interface :). Turbo Pascal Style

 

TinyPortal © 2005-2018