Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/sildteam/lefa-ge
- Owner: SILDTeam
- Created: 2022-12-07T01:04:52.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-12T16:55:13.000Z (4 months ago)
- Last Synced: 2024-10-19T19:55:48.566Z (3 months ago)
- Topics: c89, cpp98, free-software, game-engine, linux, open-source, open-watcom, opengl, potato-pc, windows
- Language: C
- Homepage:
- Size: 1.57 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
***
##### 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 optimizedThe 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 onWindows :
- Windows XP SP3 x32 worked correctly
- Windows 11 Home x64 worked correctlyLinux
- 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)
________