(This project is based on the excellent Rust Roguelike Tutorial by TheBracket)
I’ve restarted my roguelike from scratch with a somewhat better understanding of how the pieces should fit together - current progress:

Full source with the MIT license is up at GitHub - sarkahn/dots-roguelike: A "traditional" ascii roguelike built using Unity's ECS/DOTS framework.. Contributions are welcome!
Original Post
Hello. For the past few weeks I’ve been working on a framework for making a roguelike in Unity. Alongside it I’ve been making a tutorial for creating a roguelike using my framework and Unity’s ECS system.
I figure the tutorial should be of interest to anyone who wants to see how you can create an actual working game in ECS. It starts simple and each part covers a new concept, from how to manage the camera and rendering, to how to represent shared map data in ECS.
The readme for each chapter is not a a “step-by-step” tutorial that really explains ECS - I was originally going that route and it turned out to be WAY too much work and ultimately just distracted from the ultimate point. I want to show how to make a game using ECS, not to explain how ECS works.
Instead each chapter will give a brief overview of how the systems work for that example. At the start of chapter 1.1 I provide plenty of resources for documentation and tutorials where you can learn all about how ECS actually works as you follow along.
I’ll keep this thread updated as I add new parts. This is my first time taking a serious crack at something like this, and I’m learning as I go along too, so I’d really appreciate any feedback if people are interested in something like this. Thanks!
Introduction
1.0 - Writing to the Console: A simple example of creating and writing to a console. Nothing really ECS related.
1.1 - ECS: Provides a brief introduction to ECS with plenty of references to learn more. Demonstrates how to use the Conversion System to create some entities, and how to create the console from code and use it to render your entities. It also shows how to handle player input to move the character around.
1.2 - Walking a Map: Generates a map for the player to walk around in via a “Reactive” map generator system. Covers how to handle sharing a simple representation of map data between systems, and goes over how the generator works.
1.3 - A More Interesting Map: Makes some tweaks to the map generator to create the traditional “rooms and tunnels” style map.
1.4 - Field of View, Interfaces, and Reactive Systems: Like the title says it covers how to create a “Field of View” system that remembers parts of the map we’ve already seen, and briefly covers how to use interfaces with jobs and burst and the benefits of “Reactive” systems.
1.5 - Monsters and Refactoring: Refactors the code from the previous chapters so our systems can apply to more than just the player entity, then adds some monsters during map generation.
1.5A - Taking a Turn: Goes over my implementation of a turn-based system in Unity’s ECS, and introduces the beginnings of a combat system.


