main
copygirl 12 months ago
parent 330c11f217
commit a27800150a
  1. 37
      README.md
  2. BIN
      docs/2023-05-16_Immersion.png
  3. 2
      src/Immersion/Program.cs

@ -0,0 +1,37 @@
# 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 while actively playing your games.
This is a game engine written 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].
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
- Tools to modify entities, components and resources in-game
- Hot-reloading of modules, including code, at runtime
- 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
A lot of time nowadays is spent either re-inventing the wheel (often due to copyright or intellectual property), 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. No more outdated mods. No more incompatibilities. Need to adjust anything for your verions 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.
[copyleft]: https://en.wikipedia.org/wiki/Copyleft

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 KiB

@ -31,7 +31,7 @@ universe.Modules.Import<gaemstone.Flecs.Units>();
universe.Modules.Import<gaemstone.Flecs.Metrics>();
var window = Window.Create(WindowOptions.Default with {
Title = "gæmstone",
Title = "gæmstone - Immersion",
Size = new(1280, 720),
PreferredDepthBufferBits = 24,
});

Loading…
Cancel
Save