Looking back, I spot a variety of items I could have done better, but I also see all the value that is in the exercise and the time I have taken to get well acquainted with all the software. What you learn through the years of working as a software engineer, is that the less familiar you are with what can go wrong, the braver you are in just coding from the hip.
A lot of us programmers can work very fast, but usually just in a field where we are very comfortable. When we leave that particular arena, we need to gather our thoughts and learn the ins and outs properly before we become efficient. I find the term “programmer”, so generic and misleading. There are the basics of working through text editors and tool chains, but the problem that needs solving do not always map well to your current preference of tools. Being well familiar with a variety of tools, systems and methods of programming should only improve your problem solving skill set. Trying to fit the problems to your way of thinking will not only make you less competitive, it will make your work less reliable.
One of the most important bits I have been trying to keep in mind, is maintaining a minimal structure.
- Programming takes heavy advantage of game engine features and 3rd party libraries to assure stability and simplicity.
- Art and content creation follows simple rules that plays nice with the science of perception and the constant small-batching problem of computer games. (Herman Von Helmholtz and other scientists did a lot of work regarding visual perception, where you can basically utilize minor heuristics to guide the eye to see shape more clearly or differently. Those tricks allows me to save a lot of effort in texturing).
- Game mechanics are simple but with a flexibility that allows every player to solve problems differently. Don’t solve all the problems the player could do on his own.
- Utilize OS features to help with stability. Windows and game programmers suffer from this “Monolithic” development approach where you are utilizing only one process and spending a lot of effort keeping tally of memory and cleaning up. Linux is inherently more stable because most of the developers split the work between processes, where the OS does the clean-up for them. Inter process communications are not slow and you should be very familiar with them.
As for keeping motivated, I find the best approach is to put so much work into it, that I am seeing progress preferably on a daily basis. If I am not reminded of that fact that I am making progress, I run the risk of losing momentum and losing focus. Pacing yourself is a losers mantra.
You are the average of the people you associate with the most, so don’t underestimate the effects of the pessimistic, unambitious and disorganized.
I am moving into a new office space in a couple of weeks, with access to meeting rooms, a cafeteria and access to various advisers to help me create a legal structure and a company around my efforts. It is not simple to acquire funding to create an operational company, and getting there can take some time. But, it is a lot easier if you know where to look and how to ask for it. Which I will need to do.
When you are asking for grants and funding that hands out no stakes in your company or your creative efforts, you will need to be able to finance about 20 – 30% of the efforts yourself. If on the other hand you are not so afraid of loosing percentages and influence of your efforts, there are numerous companies that offer guidance and a network to possible venture capitalists. This all does require you to have a well thought out strategy to get where you are going and that when you get there, you will actually see the returns you are planning to see. Have a business plan and be able to present the idea to people that are very experienced in that area.
I am reading through a few books right now regarding creating small businesses, creating viable business plans. And making an effort to understand that side of the coin a lot better.
So, after 7 months of work I am not giving up, slowing down or updating my CV. I plan on making this work for me, and never again have to worry about how my CV looks to potential employers, but rather create something of value that attracts hobbyists, buyers, investors and all types of adventurous people that want to be part of what I am doing.
But, my game needs attending and a lot more work. Best get back to it.