Neko's Destiny
31 December 2009
The question of Neko’s purpose has been boiling around my head for a while now. One of the ideas that seems most reasonable for me is to change it’s role from a framework to a collection of simple to use but powerful general purpose utilities. This solution, while may seem to generic, allows me to integrate it’s future with both my further ideas, as well as ChaosForge’s second C++ large-scale library, Valkyrie…
· · ·
Neko’s birth and initial purpose
I won’t lie to anyone — the jump to C++ was also the first step on leaving the roguelike development world, and moving on to more mainstream gaming projects, while carrying the torch of roguelike enlightment. That’s the reason of confusion, why the library for roguelike’s isn’t named Valkyrie, while a C++ Valkyrie is rumored to exist.
Neko was planned as a training project in C++, a way to get into C++ game development, while testing a few solutions in the C++ field at the same time, hopefully creating some code that could be reused in Valkyrie in the future. As a training project, Neko was aimed at developing strictly roguelikes, with a possibility for eventual 2D tiles. Also it was meant to provide me with a tool to quickly develop roguelike concepts, and slowly develop roguelikes that I’d like to see some day (DoomRL 2).
C++ Valkyrie on the other hand is the (over)ambitious 3D game engine project, that hopefully would become the base for StarDreamer and others.
Hence, Neko was supposed to be a small, and quick project.
Change of heart
However, things don’t seem to work that way. Apart from the problems mentioned in the previous post, there’s the question of doing things twice, once for Neko, once for Valkyrie — and even if I copy, then I’d have to maintain both copies, what is really a pain.
Hence it seems that if I moved onward to Valkyrie, I’d need to abandon Neko. And somehow this idea saddens me.
So, how can we have the best of two worlds?
Neko Standard Library
So the idea I came up with, is redesigning Neko to be a collection of game-related small STL/boost-like utility libraries. They’d be designed for ease of use, power and rapid deployment. They’d still base heavily on STL, but maybe also on Boost this time. Moreover, they’d be as much independent from each other as possible. The Neko name will be kept in of Neko’s it’s namesake, and taking advantage of the nice and short namespace name.
In this form it will be both useful for roguelike development (I’ll build a as yet unnamed framework over it), as well as for Valkyrie development (which in this picture would be the 3D engine itself, without utilities, yet using neko::vector3<float>
…).
In short, Neko would become boost::gamedev, yet on a less generic scale than boost’s designing their libraries.
The really great part would be that things like neko::xml
, neko::lua
, neko::gl
, or neko::gz
could be used independently, filling a niche that I couldn’t find on the internet.
And yeah, the question of the roguelike layer’s name is now open ;).
Conclusion
We’re at the years end, it’s time for decisions. What will 2010 bring? The year of ChaosForge I hope!