Quantummy wrote:true indeed
however some basic stuff about the sourcecode which i tinkered with myself:
it uses bjam build system. with lots of build script thingies ( note: I'm not experienced with bjam, prefer cmake )
it includes some boost library stuff. don't know if modified. which does not compile with newer gcc versions
it has its own modified version of libtcod which enables it some tileset rendering functionality
which is a bad move I think because the libtcod is still being updated. ( libtcod has a "do you own rendering" function. which is modified to add another buffer or something but why mod the library for that )
there are lots of casts being used which makes the stuff very confusing.
i found it quite challenging to work with the source code, but I'm not an experienced programmer.
I know the codebase somewhat and I find it challenging to do anything. It just accumulated too much technical debt and decayed. It needs massive refactoring, and that needs time.
I feel bad about abandoning my efforts towards this project, because it's cool project, but I just don't have time to commit to that. :(
BJam-powered build system was an experiment, and I'll be the first to admit that it's terrible and needs to die. The overall game architecture needs some redesigning, too (I outlined some of those
in one of the threads from a year ago). Python bindings didn't quite work out, either — they need to be either finished in one push or replaced with something with more C++-friendly API (I thought about V8 and JavaScript; additional plus is JIT). Renderer is a mess, and could use a clean start (possibly with OGL 2.0 and DirectX support only — kill libtcod and SDL completely; pure OpenGL might not suffice because of shitty Intel GPUs).
libtcod is included because a) I wanted to keep dependencies in the project to make build self-contained (it was a plan then, at least — turned out to not be very realisable with bjam) b) they made backwards-incompatible changes to parser and the data format at some point, and just keeping old version was easier than updating all data files (remember there were people writing mods, so more breakage surface). It's not a very good library anyway.
Overall, it needs a brainstorm and then possibly a rewrite, or at least very heavy and deep refactoring (NPC.cpp must die). And it's not a one-man job.