Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: The project ODFAEG...  (Read 16665 times)

0 Members and 1 Guest are viewing this topic.

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
The project ODFAEG...
« on: May 12, 2025, 11:56:49 am »
The goal of the ODFAEG project is to create a game engine (based on the simplicity of the SFML project) adapted for any kind of games.

So this is a big project I started 15 years ago.

Some of existing SFML project on this forum are integrated to my engine like the thor library.

Here is the already implemented features  (there are 6 modules (core, math, physics, window, graphics, network, audio) :

In the core module :

-A resource manager to hold any external resource like textures, shaders, sounds, fonts, etc... (possibility to load from memory or from files or from input stream)
-A resource cache to hold resource managers of several types.
-A variant system with visistors and multiple visitors and also an any class.
-An utility class to convert numbers to string, verifying is a string is a number, find files, etc...
-Multiple dispatching.
-A serialisation system with template archives like the one of the boost library.
-Timers and workers.

In the math module :

-Vectors and matrices. (I still have to implement quaternions)
-Compute min and max (extends).
-Computing the position of a dynamic object in a curve with provided elapsed time.
-Creating distributions.
-Rays, planes and triangles.
-Getting the path between an actual object position and another position in the scene.

In the physics module :

-5 bounding volumes (AABBs, OBBs, Spheres, Ellipsoïds, Polygons)
-Getting informations when collisions happen.
-Emmiters, Particules and Affectors.
-Computing position depending on physics. (jumping, falling, flying, etc...) I've not finished this feature yet.

In the window module :

-An interface to create windows (SFML windows for opengl or GLFW window for vulkan)
-Generic events to have smfl events or glfw events.
-Possibility to create custom events with signals and slots.

In the graphic module :

-Possibility to render 2D or 3D objects.
-Possibility to choose between an Entity base class and inheritance or an ECS system with entt. (I need both implementations depending on which projet I want to create)
-Possibility to use opengl or vulkan api for the rendering api. (I haven't finished the vulkan implementation yet)
-5 types of renders (PerPixelLinkedListRenderer (OIT), ShadowMappingRenderer, ReflectRefractRenderer, LightMappingRenderer and RaytracingRenderer) I've not finished the raytracing renderer yet.
-A component managers to be able to display renderers in a specific order. (layered renderers)
-Textures management. (2D, cubemaps) 3D textures management not implemented yet..
-Terrain generation (2D or 3D with heights) and possibility to get the height at a specific position.
-I've still to test the labyrinth generation yet in 2D and 3D.
-9 entities types to render. (2D/3DWalls, 2D decors, 2D animations with interpolation, particles systems, 3D models, the skybox, tiles, bigtiles, ponctual lights) I haven't finished to implement directionnal lights. I also have to implement skeletal animations.
-Animations updater, particle system updaters and visible entities updater.
-World and scene management with a grid to discart objects which are not in the camera's global bounds.
-Transformations, local and global bounds.
-Vertices batching and indirect rendering to reduce the number of draw calls.
-Instanced rendering.
-billboarding.
-Views management. (2D/3D)
-Possibility to create custom entities or renderers or workers/timers.
-RenderTextures for offscreen rendering.
-Shaders management.
-GUIs and overlay management.
-I've still to implement multi-threaded rendring.
-I've still to implement the support for androïd architectures and web games.
-I've still to implement cinematic management. ( videos)
-I've still to implement voxels management for games like minecraft.

In the audio module :

-Loading musics/sounds.
-Playing musics/sounds.
-Spatialisation of the sound.

In the network module :

-Server/Client management.
-Users management.
-TCP Packet encryption.
-TCP/UDP mode.

Tools (in progress)

-ODFAEGCreator to create scenes and editing scripts.
-Documentation and tutorials.

git rep of the project : https://github.com/LaurentDuroisin7601/ODFAEG/tree/master














 

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #1 on: May 12, 2025, 08:02:51 pm »
Hi! I've finished to re-implement all SFML classes from opengl to vulkan! (I corrected a bug : the text wasn't displayed)

I don't know if my code is good but at least it works, I can display every drawable SFML objects with vulkan.

Next step : finishing to implement my renderers with vulkan.



nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #2 on: May 30, 2025, 02:07:19 pm »
Hi! I've a weird issue with the vulkan driver of nvidia. I have no amd driver to test if the bug persists but I've posted a minimal code reproducing the bug on the nvidia forums...
So until the bug is fixed I'll return to opengl implementation. (I'm currently trying to implement bones animations)

I've also improved the performances of the game engine because it was too slow.

I still have to multithread my game engine.

But in the future I think I'll reimplement the SFML classes in the engine to get rid of that SFML dependances, someone told me that it's surprising that my engine depend on SFML.

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #3 on: June 01, 2025, 03:56:26 am »
Hi! Bones animations implemented!

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #4 on: June 15, 2025, 06:37:54 pm »
Hi! I decided to make a port to androïd but with vulkan, not with opengl. I also decided to remove the sfml dependency..., in fact, each time SFML evolve, I've to make big changes in my engine, so I decided to not depend to SFML anymore. Someone told me it's strange I depend on a big lib like SFML...
So I think I'll leave because it's not an SFML project anymore...
The opengl code'll be obsolete too.
The problem is we need to use opengles and other opengl functions for android...
« Last Edit: June 15, 2025, 06:40:07 pm by nagimar »

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #5 on: October 16, 2025, 07:05:02 pm »
Hi! I decided to make 2 versions of ODFAEG (2 branchs), one using opengl and the SFML, and the other using vulkan when I remove the SFML dependency. I'm actually working on the vulkan's version, doing multi-threading for rendering which is difficult to make with opengl because opengl was not meant to do multithreading so I've conflicts when using the opengl resource which I don't have with vulkan which is more thread-safe and thread friendly. Now I'm trying to implement the semaphores correctly, to try to correct display bugs I don't have with the opengl version because opengl is already managing that. After implementing vulkan for my renderer I'll finish the editor with the opengl version. I'm streaming the game engine creation and I've some pictures on the facebook page but unfortunatly youtube for a strange reason decided to close my youtube channel so no more videos...

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #6 on: October 22, 2025, 10:05:17 am »
Hi, I decided to stream the game engine developpment : https://www.twitch.tv/laurentdur

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #7 on: November 04, 2025, 05:30:57 pm »
I've made a major optimization release I gaigned 30 FPS by passing all my buffers and images as double buffering. Unfortunately I can't downnload an image from my computer and post it here...

nagimar

  • Jr. Member
  • **
  • Posts: 56
    • View Profile
Re: The project ODFAEG...
« Reply #8 on: November 30, 2025, 10:41:11 am »
Hi! I made some video tutorials on how to use the engine : https://dailymotion.com/playlist/xanygm

There is also some documentation in French on the website :https://laurentduroisin7601.github.io/ODFAEG/menu

I ported all the SFML 2.5.1 source code to vulkan to draw drawable objects like the SFML does and also to draw 3D models. I'll finish the editor and then I'll post some video tutorial on how to create a complete game with my engine (Not just demos) I hope it'll encourage people to join. ;)

 

anything