I made this game engine by combining the best in modern web technology. This game engine is highly moddable, meaning it is really easy to combine different libraries together and to add support for new libraries. State management is handled using my own universal state management library Jabr which is very simple to use and has no ecosystem lock-in unlike most state libraries.
This game engine strongly leverages the benefits of being written in a Functional Programming (FP) style instead of Objected Oriented Programming (OOP) while still having some resemblance to OOP by using an Entity Component System (ECS). In line with Functional Programming ethos every part of my game engine was built to maximize separations of concerns.
If any of these technical details aren't making sense to you don't worry! I suggest you try out setting up an example project and reading the docs :)
To get started find a demo that you would like to use, then click "View Source Code" to see the corresponding directory name. Then use the following command in the command line (with the command line located in the directory you would like to create your project in), replacing "example-name" with the name of the example directory you'd like to use as your basis:
npx lilis-engine create example-name destination-dirSo for example if we want to make a flappy bird type game in the "my-first-flappy-game" directory we'd use:
npx lilis-engine create spike-vs-space my-first-flappy-gameThere are also more example projects available that are not listed in the demo page, you can find them by visiting the examples directory in the engine's source code or you can list their names by using the create command without additional arguments:
npx liis-engine createPlease note that all of the example projects are made using SolidJS for interactive HTML and Astro as the website framework. While these tools are not mandatory for the game engine to run learning the basic of using them will help you greatly both in understanding the example projects' source code and in building web based games & apps going forwards.
You can learn how to use this engine by visiting the documentation!
This game engine has a number of built in integrations for common game development libraries, for example:
- matter.js (physics)
- P5.js (rendering)
- PixiJS (rendering)
- Tiled map editor (tile map support)
One of the core features of this game engine is that adding support for new libraries is very easy. If there's a library you'd like to add support for consider making a pull request or opening an issue.
