wallabra / prboom-ecs-component

An Entity-Component-System module written in Rust and tailored for the PRBoom+ codebase

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PRBoom+ Entity-Component-System Rust thinker and mobj implementation

Table of Contents

1. Summary

This project reimplements the Doom game objects as Entity-Component-System entities and reworks DoomEdNums to refer to a list of entity "templates". It uses the Rust programming language to achieve this in an efficient, but flexible and reasonable, manner.

This implementation is tailored to PRBoom+, and requires a fork/branch of the PRBoom+ UMAPINFO fork. It serves as an experiment; do not expect the result to be seamlessly playable, let alone demo compatible!

2. Roadmap

  • ✓ Write wrapper header to use PRBoom+ code from Rust.

  • ✓ Setup bindgen.

  • ❏ Setup PRBoom+ build system for linking the component’s static library.

  • Write systems that interface with PRBoom+ components:

  • * [ ] Position and velocity.

  • * [ ] Collision and thing interaction.

  • * [ ] Health and armour.

  • * [ ] Rendering.

  • * [ ] Audio.

  • * [ ] Projectiles and general entity spawning.

  • Set up unit testing.

  • * [ ] Setup a test environment to be used when testing a System.

  • * [ ] Write unit tests for each system, preferably more than one per system.

  • ❏ Write entity templates based on DoomEdNums.

  • ❏ Rewrite core PRBoom+ functions to use our new component.

About

An Entity-Component-System module written in Rust and tailored for the PRBoom+ codebase

License:GNU General Public License v3.0


Languages

Language:Rust 100.0%