Tuesday, November 16, 2010

It feels, kind of, like I'm on a narrow bridge right now. In front of me lies the future of my life that I want, the one that I've been building up to for many years - from the day I started the Swedish equivalence to upper high school. Below lies another life. Not one that I've been building up to, or dreaming about. Maybe one that'll suffice, or maybe not at all. I have no idea what's below me at this point. It could as well end up with me on the street. Or, with any other job just to get by. Or, with me being forced to move somewhere to work.

In front of me lies a future where I control my own life, do my own thing, do what I like to do. In front of me lies what I have behind me, in a way. Today, I finally got an old game of mine to work. I made it 12 years ago in a couple of weeks, sprites and game play and programming and all. It was in C++ and for DOS, writing directly to the video memory. It was art. It was the ugliest code in the world probably, as it was my first attempt at C++, and what was supposed to be pure and clean object-oriented programming it turned into a tangled octopus of cross-referencing code. But it worked. The graphics worked. The loader worked. The mechanics did exactly what they were supposed to do. There was even a level editor, and the graphics editor wasn't just any old editor, it was a program I myself had made in QBasic years back. A program that allowed me to pixelate my own sprites, rotate them, perform smoothing filters on them, load external palettes. It even had a simple RLE compression going on.

The last years I've been taught to plan, to design. To move from producing games into planning for them. To always stand on the threshold to making things, but never to cross it. I'm not a graphical artist. I'm not a programmer. Not officially, not on paper. I'm a game designer. I'm supposed to be done with my job before anything gets made - the ideal scenario of a dream world where I would go on to design the next project as the previous design was implemented by programmers and artists. Crap, really. I don't have much training of it in the last few years, except for Game Maker but that is not like I was before. Even in Game Maker, I went from bypassing the build-in systems for drawing graphics more or less, the levels (rooms) as well, and made my own layers and handler objects that took care of things the way I wanted them to. Today, I mostly use what's pre-built. I want to make things fast. I'm impatient. What once was a challenge now becomes an obstacle. Too many obstacles and I lose motivation. I've been trained to plan and to see the game as a whole, which is good, but when I then try to make the game myself I get impatient because of the amount of work before I can see the "whole".

I'm impatient for many reasons. It's hard to know what developer platform to choose, nowadays. It's easier with Unity though, since it's a powerful tool that's free for indies. But again, there are choices. There's not just one scripting language in it, it's three. And suddently, I can't just make graphics as easily. Should it be 3D? Well, then I need a 3D modeller. There are plenty, and the one I got taught using in school is, naturally, the most expensive one. And so on. What was once relatively simple (and difficult at the same time) has shifted to be complex (and easy). It's ironic; to do today what I wanted to do back when I was young can be done with a few clicks. To do today what I could quickly and easily do back then, like art and all those things, is a science in itself.

A part of me wouldn't want to change a thing with my studies at the University of Skövde. Well, maybe, it would have been nice to have graduated back when I was supposed to instead of this year. But the subject of game design was really interesting. I know a lot of stuff, I understand games, and I probably "get it" more than I realize. But, somehow I regret not taking the "programming" program instead. To be fair to myself, the program I choose was called "design and programming" back then, even though there wasn't much programming to talk about in it - only a beginners course in C++ using some version of SDL. I think it was in the first grade too, so I lost the programming-steam a little the following years.

I love games, and I love programming. Sometimes, when I rarely get down to coding, I realize just how much I love it. To solve the puzzles, to come up with, and implement, clever solutions and finally seeing all the cogs turn and work together as a whole. When things are as easy as they are, with Unity and similar engines, a part of that "clever solutions" thing disappears. A part of what drives me to code dies, and with that a part of the motivation to complete (or even start) a project.

Until recently I've been working on a project (as a hired programmer) where I would make an e-learning application in Flash (Action Script 3). While the project started out fine, and then surely and steadily drifted deeper into crap (due to month after month of delays of resources I had to have in order to develop and test the software, and then getting most of the blame from ONE side of my employers and understanding from the OTHER side of my employers)... well, apart from the crap, and apart from Flash being a b-tch to me much of the time, it was quite fun. I got to do a lot of "clever solutions" due to the flying fridge incompetence of AS3 and Flash. And no, I'm not saying I wasn't happy when the project finally ended.

I wish I had a more advanced, deep, understanding of programming. I felt I got lost on the way somewhere. Maybe even as early as when DOS died and windows was the only thing. I remember trying to code something, and instead of having a few lines of code to set the "screen mode" and set a pointer to the video memory, I instead had to do all kinds of things with a heap load of lines of code, just to make a little visible window. And when things grow in complexity, I know there must be variants of doing it, and with that and not being able to understand each and every line of code I write, I stop. I want to understand - that is how I work.

Maybe Unity could be a way to fool my brain however. The complex things are taken care of for me. When I code, I don't see anything other than the things I want to do - there is no initiation, no memory handling, nothing of that sort - at least not visible to me. So, there are no lines of code for me not to understand. However, the whole engine still feels like a huge black box that I don't understand. I know that it works, but I don't know exactly how, and personally I can't change any of it either - I just need to use it as it is.

But maybe that's the thing - I can't go back to the simplicity of DOS anymore. It's impossible. There is no market for DOS games. There haven't really been a market for them for over a decade. Today, you have to build your game upon pre-built libraries that take care of the complex things for you and speed things along. I suppose, however, that there's still a lot of room for those clever solutions... I suppose I just haven't got that far with a personal project for quite some time to know how that would look today.

I've digressed.

I'm uneasy. Stressed. Slightly lost. I'm at the end of a chapter, and I know that my actions here will determine what the next chapter will be and there is no turning back. At least, there is no climbing back onto the narrow bridge once I've fallen off. And I know that even if I surpass all my expectations of myself and deliver, I might still fail. I might still fall off. My future depends on hard work and luck. I don't really like that combination. Maybe luck - being able to grab the attention and interest of potential customers - can be transformed into some form of diligence; some actual performance that I can control.

I'm closing in on 30. Not there quite yet, I've still got two and a half years to go more or less. And I'm not expecting my life to follow some socially and externally defined ideal or anything, but I want to get on top of things. I want a respectful income. I want to have friends over for dinner and not having to cry about the expenses. A bit of normal luxury, being able to travel, try new things out and afford to take chances. Maybe get a dog, even. Heck, some day I would probably not mind getting a kid of my own. I want to have a nice savings account, a steady income, and... well, simply put, to be on top of things.

I'm holding a bag of dreams and the only clear vision of a potential future in my hands, and there is no longer a safety net to catch me. Better not slip up.