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

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

0 Members and 1 Guest are viewing this topic.

nagimar

  • Newbie
  • *
  • Posts: 45
    • 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

  • Newbie
  • *
  • Posts: 45
    • 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.