Skip to content

Commit bf0bbbb

Browse files
committed
Update Readme
It was so out of date, doesn't look similar anymore
1 parent 45cadb1 commit bf0bbbb

1 file changed

Lines changed: 65 additions & 31 deletions

File tree

README.md

Lines changed: 65 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
# LimonEngine
22

3-
Limon is a multi platform 3D game engine mainly focusing on first person games. Focus of its development is ease of use and ease of study.
3+
Limon is a multi platform 3D game engine mainly focusing on first person games. Focus of its development is ease of use and ease of study.
44

55
## Feature Overview
66

7-
- 3D rendering with dynamic lighting/shadows
8-
- Rigid body physics
9-
- 3D spatial sound
10-
- Built-in editor with animation sequencer
11-
- C++ API for extensibility, and dynamic loading of extensions
7+
* Configurable node-based render pipeline editor
8+
* Automatically scans shaders, creates nodes using reflection
9+
* CPU side extension endpoint for stage setup/frame render/cleanup
10+
* Tag based filtering for targeting specific stages for specific objects
11+
* Multithreaded 4 Stage filtering including frustum and occlusion culling for the world per camera
12+
* All rendering is done by the same system
13+
* Shipping Rendering features
14+
* Cascaded shadowmaps, with optional staggering
15+
* Point shadow mapping
16+
* SSAO (including sample Render Method for CPU side)
17+
* Custom camera extension with both Perspective and Orthogonal projection
18+
* Samples for object attached camera, orthogonal player camera included
19+
* Software occlusion culling, for both Perspective and Orthogonal cameras
20+
* Rigid body physics
21+
* 3D spatial sound, music, and audio channels
22+
* Built-in editor with animation sequencer
23+
* Fully customizable Input system with gamepad support
24+
* Material editor
25+
* Automatic Navigation grid generation and multi-threaded pathfinding
26+
* Tracy profiler integration, including GPU stages, extensions, and an API for users
27+
* Tracy profiler server within the Editor, for quick glance
28+
* C++ and Python API for extensibility, and dynamic loading of extensions
1229

1330
For details check out the [project web site](http://enginmanap.github.io/limonEngine/status.html)
1431

@@ -26,30 +43,37 @@ For features, check out features video:
2643

2744
[![0.6 featurette](http://img.youtube.com/vi/WOJUJjeV2Gw/0.jpg)](http://www.youtube.com/watch?v=WOJUJjeV2Gw)
2845

29-
## Building from source on Ubuntu 18.10:
46+
## Building from source on Ubuntu 26.04:
3047

3148
Step 1) Open Terminal, then copy and paste the following command
32-
```bash
33-
$ sudo apt install cmake git libassimp-dev libbullet-dev libsdl2-dev libsdl2-image-dev libfreetype6-dev libtinyxml2-dev libglew-dev build-essential libglm-dev libssl-dev
49+
50+
```
51+
$ sudo apt install cmake git libassimp-dev libbullet-dev libsdl3-dev libsdl3-image-dev libfreetype6-dev libtinyxml2-dev libglew-dev build-essential libglm-dev
3452
```
53+
3554
Step 2) Since GitHub is limiting LFS bandwidth, it is removed. Cloning the LimonEngine repository should also include all data needed:
36-
```bash
55+
56+
```
3757
$ git clone https://github.com/enginmanap/limonEngine.git && cd limonEngine && git submodule update --init
3858
```
59+
3960
Step 3) Next, we need to navigate to the directory run cmake:
40-
```bash
61+
62+
```
4163
$ mkdir build && cd build && cmake ../ && cd ..
4264
```
65+
4366
Step 4) Finally, we need to navigate to the build directory, make the source and copy the `Data` directory to the `build` directory:
44-
```bash
67+
68+
```
4569
$ cd build && make && cp -a ../Data .
4670
```
4771

4872
## Building from source on Windows
4973

5074
Windows platform is compiled using MSYS2. after installing MSYS2 as any Windows application, open up the msys2-terminal, and install the dependencies:
5175
```bash
52-
$ pacman -S cmake mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb cmake mingw-w64-x86_64-assimp cmake mingw-w64-x86_64-bullet mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-tinyxml2 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-freetype mingw-w64-x86_64-openssl
76+
$ pacman -S cmake mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb cmake mingw-w64-x86_64-assimp cmake mingw-w64-x86_64-bullet mingw-w64-x86_64-SDL3 mingw-w64-x86_64-SDL3_image mingw-w64-x86_64-tinyxml2 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-freetype
5377
```
5478

5579
after that, you can use step 2 - 4 of Ubuntu instructions, on the same terminal.
@@ -64,24 +88,34 @@ $ ./LimonEngine ./Data/Maps/World001.xml
6488
```
6589

6690
### In Application:
67-
- Pressing `0` switches to debug mode, renders physics collision meshes and disconnects player from physics (flying and passing trough objects)
68-
- Pressing `F2` key switches to editor mode, which allows creating maps.
69-
- Pressing `+` and `-` changes mouse sensitivity.
70-
- `wasd` for walking around and mouse for looking around as usual.
91+
92+
* Pressing `0` switches to debug mode, renders physics collision meshes and disconnects player from physics (flying and passing trough objects)
93+
* Pressing `F2` key switches to editor mode, which allows creating maps.
94+
* Pressing `+` and `-` changes mouse sensitivity.
95+
* `wasd` for walking around and mouse for looking around as usual.
7196

7297
### In editor mode:
73-
- Since static and dynamic objects rigidbodies are not generated by same logic, mass settings can't be changed after object creation.
74-
- Inanimate objects are not allowed to have AI
75-
- You can create animations for doors etc. in editor. For animation creation, time step is 60 for each second.
76-
- When a new animation is created by animation editor, the object used to create the animation assumed to have this animation. You can remove by using the remove animation button.
77-
78-
### Extending with C++
79-
- Limon Engine has 3 types of extensions:
80-
- Actions for triggers and buttons
81-
- AI for actors
82-
- Player for Input handling
83-
- All uses the same API, but called upon depending on their type.
84-
- Engine tries to load custom extensions from `libcustomTriggers.dll` for Windows, `libcustomTriggers.so` for GNU/Linux and `libcustomTriggers.dylib` for macOS. If you use an customisation in a map and library is missing, that customisation wont work, but rest of the map will.
85-
86-
Details in the documentation
98+
99+
* All assets automatically scanned and listed. Can be filtered further by using filters widget
100+
* 3D object assets provide previews using world light information
101+
* Textures provide previews
102+
* Mass can be changed after object creation, both in editor and at runtime through the API; the engine swaps the collision shape (full mesh/baked vs convex hull) and re-registers with physics automatically. This has no effect on animated objects, which are always kinematic.
103+
* Inanimate objects are not allowed to have AI
104+
* You can create animations for doors etc. in editor. For animation creation, time step is 60 for each second.
105+
* When a new animation is created by animation editor, the object used to create the animation assumed to have this animation. You can remove by using the remove animation button.
106+
* You can create a perspective camera, attach to an object animated using the sequencer, and activate to have cut-scene or similar camera effects
107+
108+
### Extending with C++ and Python
109+
110+
* Limon Engine has 5 types of extensions:
111+
+ Actions for triggers and buttons
112+
+ AI for actors
113+
+ Player for Input handling
114+
+ Camera Attachment for custom camera behaviour (perspective and orthographic)
115+
+ RenderMethod for custom GPU rendering primitives, wired into the render pipeline editor
116+
* All extension types are configured through the same unified parameter contract, and are usable from either C++ or Python.
117+
* The unified parameter automatically provides serialization, and editor interface, on top of communication with engine and other extensions
118+
* Engine tries to load custom C++ extensions from `libcustomTriggers.dll` for Windows, `libcustomTriggers.so` for GNU/Linux and `libcustomTriggers.dylib` for macOS. If you use an customisation in a map and library is missing, that customisation wont work, but rest of the map will. Python extensions are discovered from script files and require no separate library.
119+
120+
Details in the [documentation](https://limonengine.readthedocs.io/en/latest/)
87121

0 commit comments

Comments
 (0)