well if u want to get experience, exposure or a look at how complex code works just check out the code base for cataclysm dark days ahead, it has a massively active community and its all open source (id also for procedural generation suggest u check out pioneer space sim codebase as well)
Very cool stuff. I don't think I'll add much to the engine in regard to procedural generation. I really just want a general library that handles drawing sprites on the screen in a grid and other basic game functions. These are my "goals" but they are not set in stone yet:
* Designed for games that use roguelike tilesets like NetHack, Rogue, and Dwarf Fortress
* Well optimized in C++ (with eventual support for any .Net language)
* Cross-platform with OpenGL (and maybe Vulkan later)
* Prebuilt (and optional) user tileset modding system
* Helpful tools for things like window resizing and GUI interfaces
* Integrated engine utilities like time management and ECS
The idea is that this will be a library with the basics that every tilebased game needs anyways, so that people can skip making all this basic stuff and get straight to work on the meat of their projects. Also, its going to be open source, and designed so that you can customize it to your hearts content.
As far as existing engines go:
Unity comes with built in tilemaps (rectangular, isometric or hex), is fairly portable between different platforms, has a rather large community and a big library of assets (including scripts), both free and paid. You script it in C#, which is high-level heaven and has extensive use outside of the engine. I guess its downsides are that it takes work to optimize performance, it feels really heavy to be doing pure 2d with (it is a 3d engine first), it doesn't deal with pixel art well out of the box (requires some paid assets and/or know-how to work right, last I checked), and it can feel buggy at times.
There's BYOND, which is mostly meant for tile-based multiplayer games. It's got its own scripting language and graphic formats with editors. People complained about performance with this one, but that might just be because their one experience with it was Space Station 13, which does some insane things for a multiplayer game. I'm also not very familiar with what's changed in the last 10 or so years since I've last looked at it.
I'm not sure about making your own engine without a game on top of it, though. The market's fairly saturated with engines that've been developed for over a decade, and from a developer's point of view, without some truly amazing and comprehensive show of potential results, it is a huge risk to go into a little known engine and pray you get the technical support for what you want to do with it.
Unity is too generalized. I want to make an engine specifically for tilebased games, and to make it myself from the ground up. The engine will be much more specific to this genre, and thus easier to use and faster to develop. Also, it should be a bit faster running. Finally, stuff you make in Unity is not royalty free, which is not optimal for most people (Toady included). The engine I am working on will essentially be a public rendering engine like the one Toady designed for DF with a few differences: it wil use OpenGL instead of DirectX, and it will come many tools designed for generalized use across almost any tilebased game.
BYOND is neat, but I really want to make my engine be a static C++ library so that you can have complete control over the game as low level as possible. It also would be possible to make dynamic link libraries for C# and other .Net languages. Instead of having a custom language like what BYOND has, I would use already existing languages that are powerful and well supported, allowing for the inclusion of libraries and other stuff designed for these languages and thus increasing what programmers can do with the engine.
I could possibly make an IDE, but this is a long term possibility. For now, I just want to get a working library that people can look at and use as soon as possible.