Two years ago I started to follow RogueBasin’s roguelike C++ tutorial, a somewhat outdated tutorial in term of good practices and C++ version, but very on point in term of roguelikes.
My goal when I started Pataro what quite ambitious: I wanted to make a modern C++ roguelike from the tutorial, and write an updated version of said tutorial to help the community! Even better (or worse, in term of choosing your goals) I thought I could make a modern C++ roguelike library for people to use.
I got the first 9 parts of the tutorial working pretty smoothly, having set up an architecture inspired by Bob Nystrom about game architecture with roguelikes in mind (great talk by the way: https://www.youtube.com/watch?v=JxI3Eu5DPwE). Then I got to a big hurdle: saving and loading. Having used a lot of polymorphism, it makes quite hard to load correctly things and I stopped there.
Then a few weeks ago, I picked up the project again, with a much lower set of goals in mind:
- finishing to implement the tutorial from RogueBasin
- ease the configuration of the project, so that people can pick parts of it or just make a roguelike from it
- fix a bunch of problems related to the map and how it is used to be able to extend it and modify it (imagine being able to have spells that could alter the map)
- rearchitecture a few more things because it’s still very rough on the edges
- modernize the C++ code (again)
Thanks for the recommendation, I’ll watch it and see what I can apply! The project is still rather small, implementing only the tutorial, refactoring now and doing things right will take a few weeks but that’s still doable.
No problem, I understand that everyone has a life beside doing open source work, even myself I let the project aside for a lot of time. You providing libtcod to everyone in the community is already of great help!
Someone made a PR to add cereal to Pataro a while ago, the ground work is there alas it doesn’t compile yet, and I haven’t dug a lot, the project seems huge, luckily they seem to have great documentation so I think I can pick this up later this year when everything will be refactored and working a bit better.