You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
2.8 KiB

1 year ago
# gæmstone Game Engine
1 year ago
.. 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.
1 year ago
1 year ago
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)][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.
1 year ago
The name *gæmstone* (also written "gaemstone") is supposed to be pronounced /ɡɛmstoʊn/ – like "g**em**" but with the G from "**g**ame". As we all know, fancy project names and their weird pronounciations (looking at you, *Godot Engine*) is of utmost importance.
[ECS]: https://en.wikipedia.org/wiki/Entity_component_system
[Flecs]: https://github.com/SanderMertens/flecs
[flecs-cs]: https://github.com/flecs-hub/flecs-cs
[gaemstone.ECS]: https://git.mcft.net/copygirl/gaemstone.ECS
## Goals, aka. Future Features
Core features, some of which have yet to be written, include:
- Incredibly modular, in part due to ECS design
1 year ago
- 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
1 year ago
- Multiplayer support, including co-op development
- Module for creating "bloxel" (Minecraft-like) games
## Showcase
![Screenshot of "Immersion" from 2023-05-16.](./docs/2023-05-16_Immersion.png)
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
1 year ago
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.
1 year ago
1 year ago
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.
1 year ago
1 year ago
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.
1 year ago
[copyleft]: https://en.wikipedia.org/wiki/Copyleft