Giter Site home page Giter Site logo

anu-prakash-dev / limonengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from enginmanap/limonengine

0.0 0.0 0.0 142.26 MB

3D FPS game engine with full dynamic lighting and shadows

Home Page: http://www.limonengine.com

License: GNU Lesser General Public License v3.0

CMake 4.75% GLSL 1.17% C++ 84.73% Dockerfile 0.01% HTML 0.03% Shell 0.05% Batchfile 0.06% C 9.21%

limonengine's Introduction

LimonEngine

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.

Feature Overview

  • 3D rendering with dynamic lighting/shadows
  • Rigid body physics
  • 3D spatial sound
  • Built-in editor with animation sequencer
  • C++ API for extensibility, and dynamic loading of extensions

For details check out the project web site

Prebuilt binaries for Windows, Linux and MacOS can be found here

Documentation is served on readthedocs

If you want to chat, we have a Discord channel

For a demonstration, check out the video :

0.6 Tech Demo

For features, check out features video:

0.6 featurette

Building from source on Ubuntu 18.10:

Step 1) Open Terminal, then copy and paste the following command

$ sudo apt install cmake git libassimp-dev libbullet-dev libsdl2-dev libsdl2-image-dev libfreetype6-dev libtinyxml2-dev libglew-dev build-essential libglm-dev

Step 2) Since GitHub is limiting LFS bandwidth, it is removed. Cloning the LimonEngine repository should also include all data needed:

$ git clone https://github.com/enginmanap/limonEngine.git && cd limonEngine && git submodule update --init

Step 3) Next, we need to navigate to the directory run cmake:

$ mkdir build && cd build && cmake ../ && cd ..

Step 4) Finally, we need to navigate to the build directory, make the source and copy the Data directory to the build directory:

$ cd build && make && cp -a ../Data .

Running

Start up:

  • Engine take a parameter as path of world to load
  • If no parameter passed, falls back to ./Data/Maps/World001.xml
$ ./LimonEngine ./Data/Maps/World001.xml

In Application:

  • Pressing 0 switches to debug mode, renders physics collision meshes and disconnects player from physics (flying and passing trough objects)
  • Pressing F2 key switches to editor mode, which allows creating maps.
  • Pressing + and - changes mouse sensitivity.
  • wasd for walking around and mouse for looking around as usual.

In editor mode:

  • Since static and dynamic objects rigidbodies are not generated by same logic, mass settings can't be changed after object creation.
  • Inanimate objects are not allowed to have AI
  • You can create animations for doors etc. in editor. For animation creation, time step is 60 for each second.
  • 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.

Extending with C++

  • Limon Engine has 3 types of extensions:
    • Actions for triggers and buttons
    • AI for actors
    • Player for Input handling
  • All uses the same API, but called upon depending on their type.
  • 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.

Details in the documentation

limonengine's People

Contributors

enginmanap avatar alpert avatar mesutcank avatar jmcph4 avatar onurblt avatar casperuk avatar canberkkoc avatar nickshillingford avatar brightprogrammer avatar talhakanyilmaz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.