Skip to content

jasons-archived/Raylib-ECS-Prototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Status PRE-ALPHA Commit Activity .NET 6.0 Join our Discord

🚧🚨🚧 UNDER CONSTRUCTION 🚧🚨🚧

[!!] The NotNot ECS is currently PRE-ALPHA. Under heavy development and is not yet ready for use!

  • If you want to read the raw, messy dev/WIP notes, see here.
  • Source code is currently optimized for "getting it working". Not for readability nor usability.
    • A cleanup+doc+usability pass will be made prior to "go live".

When will this be usable?

While the individual components of NotNot have been tested, there has not been a holistic, end-to-end validation.
To meet this "practical" validation, the BepuPhysics engine will be used as a physics module, and once that usage is validated a general "Alpha" release of NotNot will occur.

Table of Contents

NotNot?

[!!] It's not not an ECS Framework. 🙃

This is the beginnings of an ECS Framework. Capital "F" in Framework. You will need to design your code workflows around this. It's not really suitable to being added to existing non-ECS projects.

A grand, noble experiment!

The goal of the NotNot project is to create a modern, open-source C# game tech in a sustainable fashion. As part of that goal certain consessions must be made:

  • Reduced feature set to critical path:
    • No Editor / Bells / Whistles.
    • Use off-the-shelf solutions where possible
    • Target use by skilled C# developers
    • Target DotNet6 runtime only
  • Funding/Revenue paid out to contributors
  • OSS Licensed under the AGPL, with an inexpensive Private Commercial License as an alternative.

👶 Help this baby grow! 👶

Donate / Contribute / Chat / Spread the word

Features

Complete

  • ECS Framework
  • SimPipeline (multithreaded execution)
  • OSS Project organization

In progress

  • A "Reference" Renderer to help visualize things like Physics and Spatial work

Up Next?

  • Validate End-to-End by implementing a Physics Module via BepuPhysics
  • SourceCode Polish (conform to api guidelines: make it easy for you to use!)
  • SceneGraph
  • Github polish (wiki, roadmap, sponsors, etc)

Licensing

By default, this repository is licensed to you under the AGPL-3.0. See LICENSE.md

A very low cost Private Commercial License will also be made available to those who can not accept the AGPL terms. Please see the LicenseOptions.md for more details.

Contributing

Contributions are welcome! See CONTRIBUTING.md

Funding

NotNot is a grand experiment in open source: Is there room for another open source ECS Framework? Can it be made sustainable? Your financial support will help make this a reality. Sponsor NotNot through Jason (Novaleaf).

ChangeLog Summary

A short summary of work done every few days

  • 2022.01.08
    • port rendering to Raylib-CsLo, get instancing working, work on abstracting render details from main engine.
  • 2021.12.20
  • 2021.10.28
    • rendering thread and renderpacket workflow+foundations coded and bugs ironed out.
    • wip: add async/task synchronization
  • 2021.10.23
    • added basic scafolding for a reference renderer based on Raylib
  • 2021.10.22
    • Verified and created tests for:
      • ecs multithreading, component read/write locks
      • System roundtrip for entity create, edit, and delete
  • 2021.10.21 and earlier
    • see the commit history.