copygirl
6b78cb2985
|
1 year ago | |
---|---|---|
.vscode | 1 year ago | |
docs | 1 year ago | |
src | 1 year ago | |
.editorconfig | 2 years ago | |
.gitignore | 2 years ago | |
.gitmodules | 2 years ago | |
README.md | 1 year ago | |
gaemstone.sln | 2 years ago |
README.md
gæmstone Game Engine
.. is meant to (eventually) function as a foundation for ultra-moddable games with runtime inspection and modification features, that allow fast iteration in game development, basically while actively playing your games.
This is a custom game engine written from scratch in C#, using modern .NET, targeting cross-platform development and deployment. It's making heavy use of Entity Component System (ECS) design, made possible with the powerful and versatile ECS library Flecs, using the flecs-cs bindings on top of which lives gaemstone.ECS – our own "medium-level" wrapper.
The name gæmstone (also written "gaemstone") is supposed to be pronounced /ɡɛmstoʊn/ – like "gem" but with the G from "game". As we all know, fancy project names and their weird pronounciations (looking at you, Godot Engine) is of utmost importance.
Goals, aka. Future Features
Core features, some of which have yet to be written, include:
- Incredibly modular, in part due to ECS design
- Tools to modify entities, components and their relations in-game
- Hot-reloading of assets and systems (which run game logic)
- Safety will (hopefully) be achieved by compiling modules from source
- Multiplayer support, including co-op development
- Module for creating "bloxel" (Minecraft-like) games
Showcase
Screenshot of the "Immersion" test project, which is included in this repository, showing basic functionality and the built-in but work-in-progress entity inspector and input debug window.
Motivation
A lot of time nowadays is spent either re-inventing the wheel (often due to copyright), or waiting for changes you've made to be ready for testing or playing (compiling, pushing changes to servers and players, restarting, reconnecting, ...), and gæmstone is supposed to provide an environment where this is not a problem.
With this engine and eventually the games I plan to create, I'm hoping to create a community in which sharing and remixing work – both assets and code – is the norm. No more saying goodbye to outdated mods. No more incompatibilities because an author didn't decide to support something. Need to adjust anything for your version of the game, or your server? Go ahead.
As such, I have not yet decided whether to pick a permissible license like MIT, or a copyleft one like GPL, to hopefully encourage this kind of sharing. However, I could leave that for my games. Feel free to share your thoughts, since as of now I'm the only consumer of the engine.