This is the second part of KaM Remake history. The project was founded in March 2008, however there’s no exact date know. How did it happen? Proceed for details inside:
Then it will be mission editing turn or serf walking on the map. I think it will be fun to try to make few steps versus OpenKAM project I didn’t decided yet.
TKE was slow to progress. At times it was months between updates and it made me impatient. There were other issues with Harold’s plans. I did not shared his ideas of changing the game with new features before delivering a playable version, change of map formats and scripts. I did not liked that he wanted to emulate palette graphics on GPU with pixel shaders(!) That was like shooting at sparrows with a cannon. Besides, that would have put many players out because their video cards were not modern enough to support shader code (yet old KaM would run fine on them). He also used C# and .NET. Back in that time if you wanted to run a .NET application (even as light as 100kb) you would need to download and install several version updates to .NET totaling at 150-300mb. That all felt quite wrong.
I thought that TKE was going in the wrong direction, OpenKaM was not any better – it was mostly rumors. That made me feel sad about KaM future. I was doing my part with KaM Editor, Lewin among others worked on script editors, but occasional thoughts wandered about – who would play the maps created in it?
Out of curiosity and for fun I have been doing experiments in KaM Editor: adding sketches of mission editor functionality (town placement), capturing water animation, trying bigger maps. One of those experiments was a plain red moving square. I took the square from the house ownership flag. I have added a timer that would move it between two positions. Then another idea – I could make square move to a place where mouse was clicked.
I did not had Remake idea in mind back then. It was too big to grasp. I mean it was one red square moved by a timer, how would ten such squares move together, interact, hand over wares and enter houses? Impossible.
Now I need to tell you about Alex. He is my friend who taught me programming. That was several years before KaM Editor and even years before WR tools. Somewhere around year 2000(?) he explained to me how to use Delphi (it was version 5 back then?) and read/write data from files. Back then I used that to convert racing game models into Lightwave 3D. I opened data files in a DOS editor and studied weird symbols trying to make any sense out of them and convert that into 3D model of a car. I was more passionate about 3D modelling than anything else back then. So Alex has taught me how to read these bytes of data, combine and transform them and save back in another format, suitable for Lightwave 3D. The first object I was able to extract was a cars mirror. I have spent next years getting 3D models out of racing games, writing data unpackers and modding tools to add my own 3D car models into the games. It’s fun how over time one passion (3D) gradually changed into another (programming).
Anyhow, we were talking with Alex one time, I was telling him about my progress with KaM Editor (he had played KaM few times) and how it would be nice to have KaM with modding possibilities (addon maps, new units, houses, etc). I had a graphics part of the “engine”, but I did not knew how the rest of the game works. Surprisingly he told me that that was a solvable problem. He knew how the logic part of “engine” should be structured to be functional.
Since that evening we met over a beer few more times and decided to give it a try. I would give Alex my graphics part of KaM Editor along with explanations of how it worked and he would add games logic parts into it. Alex set up a local storage and we could start working together exchanging our code improvements. I don’t remember exactly how long did it took him to write the main parts of the engine, but it felt like a very short time, something like 3 to 6 weeks. Essentially Alex was writing a skeleton of KaM Remake. Alongside I was changing rendering code and resources loading from procedural to a more OOP-ish pattern, as well learning OOP from Alex.
That’s how the project was started.
to be continued …