/Limux

Limux Engine is a game engine supports both 2D and 3D rendering. It is currently free to use and modify. it can be use in high production applications other than games.

Primary LanguageC++MIT LicenseMIT

Welcome to Limux Game Engine

Author - @Silvertakana | GitHub | Discord

Inspired by - Hazel2D | The Cherno

  • Started on Apr 24, 2022

Limux Logo

Table of Contents

Introduction

Limux Engine is a game engine supports both 2D and 3D rendering. It is currently free to use and modify. it can be use in high production applications other than games.

Installation

  • Getting Started

  • Installing

    Note: At this point, MacOS and Linux are not supported.

    • Windows

      • step 1: Run these command in your chosen command-line environment
         git clone --recursive https://github.com/silvertakana/Limux.git
         cd Limux
         setup.bat vs2022
        you must provide an editor to setup.bat for it to correctly build the project. in this case, I used vs2022 (visual studio 2022.)
      • step 2: find the solution file and run it. e.g. Limux.sln

Usage

  • Creating a new application

    Limux uses a layer base execution order system. So most of your codes will be in these layers. This is so that when you have unrelated things(e.g. UI, Physics, etc.) and want to separate them so that they can't affect each other, you can use these layers. The application will join these layer together and execute them in order.

     #include <Limux.h>
    
     class DemoLayer : public LMX::Layer
     {
     public:
     	DemoLayer()
     		:Layer("DemoLayer") // Debug name
     	{}
     	virtual void OnAttach() // Called when the layer is attached to the application
     	{
     		LMX_INFO("Started Demo Layer");
     	}
     	virtual void OnDetach() // Called when the layer is detached from the application
     	{
     		LMX_INFO("Stopped Demo Layer");
     	}
     	virtual void OnUpdate(LMX::Timestep ts) // Called when the layer is detached from the application
     	{
     		LMX_INFO("Updated Demo Layer");
     	}
     	virtual void OnEvent(LMX::Event& event) // Called when the layer is detached from the application
     	{
     		LMX_INFO("{0}", event.ToString());
     	}
     };
     class DemoApp : public LMX::Application
     {
     public:
     	DemoApp()
     	{
     		PushLayer(new DemoLayer()); // Add the layer to the execution stack each one will be executed in order
     	}
     	~DemoApp()
     	{}
     };
  • Running-the-application

    you must include the following at the bottom of your cpp file.

     LMX::Application* LMX::CreateApplication()
     {
     	return new DemoApp(); // telling the engine what Application to use
     }

    change DemoApp to your application name.

Libraries

Licenses