Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sildteam/lefa-ge

LEFA | OpenGL Engine write in C89
https://github.com/sildteam/lefa-ge

c89 cpp98 free-software game-engine linux open-source open-watcom opengl potato-pc windows

Last synced: 2 months ago
JSON representation

LEFA | OpenGL Engine write in C89

Awesome Lists containing this project

README

        

`DD.MM.YY`
code Version ``04.10.23``


latest changes

```03/10/23``` and ```04/10/23```
much of the code was changed to support C89, now the window system, input system, cursor system can be included using C89
added glad_vulkan so that Vulkan API can be included in the project in the future

## LITHE ENGINE FOR ALL

### platform support



windows_ico

100% ⅃

linux_ico

13% ⅃

BSD_ico

0% ⅃

***

##### Basic Info

yes, it's another render being developed in this world, and to make matters worse being created with limitations.

This project is being done by a beginner programmer, who has never had experience in game programming before.

this code is just the beginning/studies/research of what this could be in the future
the code is totally poorly optimized

The advancement of the engine and the features in it are added according to what I need.

example : if I need fast loading of textures, this is an addition to the engine

and also, a lot of things are undocumented and lacking in explanation.

_______

## thank you ! third-party libraries

[GLAD](https://github.com/Dav1dde/glad) as the best loader of khronos libraries

[LODEPNG](https://github.com/lvandeve/lodepng) as a great PNG encoder and decoder

[HYPATIA](https://github.com/dagostinelli/hypatia) mathematical library that I'm still studying, but it looks great

[NUKLEAR](https://github.com/vurtun/nuklear) for user interface, it seems to be very good.

[TPE](https://codeberg.org/drummyfish/tinyphysicsengine) physics engine made in c99 - however I made an adaptation in c89.

_______

### Requirements to compile or run

System
Listed here are systems I tested the program on

Windows :

- Windows XP SP3 x32 worked correctly
- Windows 11 Home x64 worked correctly

Linux
- Debian 12 x64 did not work, there were linking errors with X11
______________

CPU
Minimum
``I686`` = Intel P6 with SSE2 - or Higher

I recommend not trying to compile for ``i386``, since these processors are much older and out of date, the x32 base computers for the engine are those with ``i686`` or higher as they are much more optimized for calculations and their cores and shifts are faster .

Of course the ``i686`` is still very old, but the ``i386`` is much more outdated compared to the ``i686`` with the SSE2 set

___________

RAM
Basic Engine
- windows XP : 4 MB
- windows 11 : 21 MB

___________
DISC
the code is very small, of course there is very little, for now
500 kb Disc for source code

_____
Render
- OpenGL 2.0 or Higher
- Vulkan ?
____

## Problems
- Even though the code is poorly optimized it is acting well, the problem is the cpu consumption due to the loop and the lack of control over the FPS limit
the loop is acting at its full power without any limiter making it consume more cpu than it should

- Inconsistent changes to the project without a defined structure

- project being done by just one person, and still being new to coding

- the project does not contain makefile systems, I don't like make but using other compilers instead of watcom is a pain

- Currently, configuring the project for different architectures is horrible, and for different systems it is moderately smooth.

- still stuck in the initial development process for 9 months

- poorly organized file names and no creation

________

## good side

- is being written in C89 (ANSI C)

- It seems to be very compatible with some different systems.

- The purpose is to be light and portable

- opens on my grandmother's computer, except that it uses OpenGL 2.1

***

[more help and instructions](web_Help_Res/content_help.md)

________