I need to clear my mind about some things and ask my long time readers for some opinions.
You might have read the latest post on the King Arthur’s Gold blog. It’s called Adventures, Overworlds and the Full Version. If you have been following this devlog then you’ll see that there is nothing new there. I’ve talked about these ideas here and here.
Why didn’t I do that with Link-Dead?
Because I was struggling with a solid foundation. This time, with KAG, I have a solid foundation and can build upon it.
Or can I?
The problem I am facing now is that the KAG engine is terribly written. Because it is a mesh of Crimson Glory and Link-Dead code on top of which I basically “Ludum Dare’d” a completely new game. I am actually really proud of my development speed. It took me just 5 months to have a really deep fun game, a growing community and make money off of it.
But you know me. I am never satisfied with my work because I have haunting visions of the game I would REALLY want to play. And that game involves going on non-scripted adventures with your team-mates, building civilizations and waging war.
So now I’m trying to do that. The current engine is a mess and when I add something I need to spend the next 3 days fixing bugs after that. Which is OK and I will probably go on like this for the next couple months with the free/classic version of KAG. However for the full version this is unacceptable. This is why I have already announced A New Engine.
The new engine will fix all the previous engine issues because I know how to engineer good code. Bad code was just my choice (I still highly recommend it!!!)
I wrote the basics of the engine when I encountered a roadblock. Mainly, the thought: if I’m gonna rewrite this game why not rewrite it in some nicer language than C++ and make it browser based? I’d love to have the game in a browser because that way I can reach out to a larger audience and it is cross-platform out of the box. Java came to my mind but I don’t like Java. I know something better, a language called Scala.
Scala is like SuperHeavy or the Travelling Wilbury’s or Ringo’s All Starr’s. It’s a blend of the best features of programming languages and it works on top of Java. So it can be launched as an applet and use all of Java’s gigantic libraries. Programming in Scala feels like smooth sailing compared to hitting rocks with a hammer (C++).
So Scala is nice but the problem is – I am not efficient in it. I just haven’t learned it well and I need to code with documentation in hand, which is sloooow. I figure it would take me about a year to become efficient in Scala and the next year would be actually making the game. Too long, taking into account that the world is gonna exist only for a year longer.
So I ditched Scala and am back to C++.
I should get back to writing the new engine but again I am facing an obstacle – the possibility of actually largely refactoring the current engine. Something like live organ transplant in the programming world.
I have to go out, so I’ll write a second part later… cya