3.24.2011

End of development

I came to the conclusion that I don't like personal coding if I can't control everything. Many of my open mind forks join into this conclusion, most notably that I'm doing it not for money, but for personal interest and learning aspect. I was always like that, never been satisfied with something after learning more about it's inner mechanics. So it's just natural to me that I don't want to code such a huge project without getting any money for it. My list of stuff to create for it is very, very, very long. Longer than anything I had in mind before and it becomes even longer. Using a programming languages specific features does ease the work, but it's still a huge amount of work and I completely overlooked it in the beginning. Of course where my expectation different because I wasn't as smart with it as I'm now. The more I practiced, the more I learned about it and the more I noticed that my astronomically creeping long list of features is just the top of an iceberg. The list is still there and so is my vision. But I'm afraid I'll die insight if it doesn't work as expected. I had too ambitious ideas, too many things I wanted to implement - stuff that's nowadays calculated on the graphics card and not on a general purpose CPU. Even the most optimized software renderer can't just allow another, equally demanding component while still performing good. I have to face it, my idea failed hard due to having too many ideas I wanted to see in it.

It's not about how to archieve something, but rather the work I would need to implement everything in my mind. I take personal projects personal. Seriously personal. On the side, I take commercial projects rather professional. Means I take completely different steps rather than randomly trying to archieve just some thing I have in mind. I could start right now like I did some years ago and keep on pumping code as it's required. It'd only take time but also boredom on my side - it cost my free time and don't get anything back. The results would be debatable since it's "just" an ASCII game with slightly pimped graphics but enormous amounts of code and tools required to make to the game I wanted to have. If I'd get an appropriate amount of money for that, I'd totally start right now. If I'd get more people also getting money and thus motivated enough, I'd also keep up developing even if it turns out I can't implement everything.

So whatever I do personally, I shouldn't waste it this way. I mean just look at your usual random game written in C/C++/Java/noidea using SDL/OpenGL/Allego/whatever! It's simple in shape, doesn't try to hard to squeeze every possible feature and does keep it do what was fun to the developer. Is it fun for me to play? Probably not, I'm a spoiled gamer. Was it fun for the programmer? Probably - simple code, simple things, stuff to relax and he probably get's what he wanted in his free time cause PHP programming is probably not his favourite home activity. Did he tried to meet some standards? I don't know. Do you know? He probably knows and I bet he just set some guidelines to make it fun for him, not to make it "perfect". But if you aren't even comfortable with to tools you use, you won't have fun coding it.

So there's where we were in the beginning, not beeing able to to control what you want if you want control everything. I should never get a lead programmer job, this would probably result in the same shit as I'm currently my own lead programmer, designer, normal programmer, game developer, manager and whatever not you'd need in developer studio. See, I'm someone who likes to make really, really good code. That doesn't mean I want to code everything, I just want to make the best way I can, giving the best possible result as time allows me to. So, where's the time now? Right, it's sitting in my cup of hot chocolate, doing me all favors but no pleasure. So when time's not a limit and money not existent, no one would do anything.

So what the fuck am I coding this stupid game, I'm only whining and swearing all day cause nothing works like I want it to be. I don't like it anymore, it became the bullshitty shit ever since I began it. You know what? I'll not freeze it, I'll give it up. I'll be free at last! It's a bad project with too much perfectionism in mind. I'm a code monkey and I can only deliver bigger work if there's some goal set by another person or a team behind. It's simply to much for me and should drop everything related to it... The basic concept of it was to get everything perfect and that's the worst starting condition ever for a project you want to have fun with.

I failed so hard but learned a lot. That can only be good, thinking about how much could have gone wrong if I had this attitude during an assignment or bachelor project or just in a regular job. It's crucial for me to know where my practical limits are, not the theoretical ones. Never give me the freedom to implement anything in any way I want, it'll go downhill as soon as I start... That said, I'm probably the best person to work in a small team and get direction for what is to do.

I mean just look at this huge pile of blog entries about how coding using C++ is - it's actually not, it's just not perfect. It's the same with Java - it's not perfect for anything I had in mind, but for an NXT it's quite convenient cause it enables you to profit what's already specified in the Java technology itself. I decided to settle with it cause there wasn't any way I could get it to work. But on an everyday computer? You have so many tools and languages, so the search for something perfect is endless cause it's the major platform along all other platforms (technically) and you have more decision than you can choke. On the NXT on the other side, there's only a limited set of compilers and the most worthy one in this case was LeJOS for executing Java bytecode. On the PC, I'd probably choose the most performant one which's unfortunately also what I know is not capable of doing it in such a way I'd like to want. So the circle closes and I end up beeing annoyed and frustrated about how I can't find the perfect solution for it on the PC. And since my only personal motivation for doing something on my own is music generation and pretty graphics, it boils down to either choose a limited platform or repeat endlessly along the voids of /dev/null.

But what I liked was to read a lot of stuff on Wikipedia. It was the only thing I enjoyed during those stupid jumps between getting syntactic sugar out of C++ it doesn't have and actually coding something I could use later. I only put it under the light of "game development" to say myself I'm working on it. But I didn't and never will due to this. I'm personally just not interested in making games without getting money for it. I see good games as something you paid people for cause they invested a shitload of time and nerves to bring best quality games they could come up with. That's why I'm paying for everyday I play more often and longer than just a few hours. Of course, bad apples are everywhere, but you need to pay them what they invested and keep up their good work! I see where this is going. I wouldn't start game development without getting money for it cause I do usually give money for games... Hm. That's psychologically interested. You give, you get. Circle closed.

So yeah, I give and get in normal case. But since I won't get anything for it, it's done. However, I'm interested in learning more about the inner workings of programming languages and how they they implement their features, concepts and so on. I'm currently trying to figure out how GCC's assembler works, so I can please myself with most low-end thing with maximal control I can ever get. That's basically bedrock. Oh, and I'm also playing minecraft again. It's simple zen-like gameplay did help me to get over my little programmer crisis.

No comments: