In the beginning
When I played the first Civilization
game those many years ago I was fascinated by its concept.
Still a student at that time I spent many hours playing and experimenting with it, even altering saved games
so that I could play as Barbarians. The game was excellent but I was always disappointed by one thing. The
moment my empire matured and established itself there was the end. I wanted to continue, to build space ships
and colonize the solar system. I wondered what would happen if there was life on other planets evolving
independently, the possibility of two alien civilizations meeting each other in the vast space out there.
The first time I put serious thoughts on the project I was still at the University, more than
ten years ago now. The original plan was to create one star system with three planets in it. Each planet would
have different "race" and they would develop independently until they advance enough to send ships into space.
I even made basic unit design and calculation for memory and performance requirements. The project was not
started partly because I was not satisfied with available memory and I suppose partly due to not being ready
for such a long term endeavour.
Flow of time
Plans set aside the memory faded and the idea lurked somewhere below conscious thought. I guess
I secretly hoped game like this would be developed so I could try it out. The new versions of Civilization
brought some new ideas but ultimately it always remained the same thing. Then we have space-oriented alternatives
- the best in my opinion being MoO2.
Still, they all have in common the fact they play on "one plane" only - that being usually planet (for more
direct civ-clones) or galaxy (for space oriented games).
Few years ago I realized that I did not really do anything with graphics for a long time. All
free-time projects were either purely AI (like Go playing program) or if GUI was really needed designers like
Visual studio were used. Times of VGA and VESA modes were gone and I would not know where to begin with
even drawing simple point or line on the screen. Considering DirectX I've chosen OpenGL mostly for the
chance of cross-platform development. Naturally I started with 3D, honestly who would not :-). After making simple
"proof of concept" shooter "game" and some small maze application I decided against developing anything more
serious in 3D as I myself prefer to play 2D strategy or RPG games.
Few weeks later I decided to check 2D modes, thinking to use them perhaps as GUI for my Go
algorithm. The first thing I tried was taking squared textures of different terrains (like forest, desert,
plains) and drawing them randomly in grid. The result was quite chaotic picture, nothing to be impressed
with. But this was the trigger. On this chaotic grid I've seen the planet and the old idea came
forward from the deeply buried memory.
Birth of Infinity
This time I chose different approach. I did not do many calculations knowing by instinct the
hardware advanced enough already. The project itself was antithesis of "proper" development. Without any
models or concept I started coding spontaneously, defining structures on the fly starting with generating
terrain so I have something to draw, adding units and bases later leading to end turn calculations and need
for basic user interface to give commands and first AI (random at the time). Most of the project only in my
head, implementing ideas as they surfaced and solving problems on the fly. The first planet was alive and I
quite liked the result. But this was a critical stage.
Most of my free-time projects end like this. Myself I call it "proof of concept". This is
reaching point when I'm confident I could finish the project if I really wanted. Normally I don't want
to waste any more time on it as I can move to something else. With Infinity it was little bit different
as I've already devoted lot of time to it and it was something I did not have alternative for. I still wanted
to play this game and making it gave me chance to tweak it to my liking. But there was big obstacle. I had all
Universe generated and reached point when civilizations are to leave the planet. But I only had pictures
drawn for planets and nothing beyond. That was more than hundred to go and drawing pictures is not exactly
my strong point. And so the project indeed took a long break, more than half a year.
Nothing to play
The second year of development did not bring much progress as I was only irregulary returning
to coding and used spare time more for reading books or playing. Much later, one evening, I had nothing to read and
no game I had available did spark any interest. Quite by chance I stumbled upon the half-done Infinity and
decided to play it. Infinity sparkled my interest once more and I caught second breath with it. Drawing pictures was
actually good way to return as there was nothing to do wrong by it. So I drew several pictures each day and
played alongside. Fixing bugs on the go got me back to be familiar with the old code and this time
I was commited to finish it. So now, finaly, first version is, I hope, stable and complete enough to be presented.
From the beginning it was designed to give me gaming experience I desired to see but perhaps there are
others out there who will enjoy it.