New Year Resolutions

Photo by Chandan Chaurasia on Unsplash

I know most of us hardly stick to new year resolutions. But I still like making them. It makes me size up my life and think of what I have and what I miss. For this year, I want to –

1. Get Off the Computer

If you’re the typical developer, you probably have all the other parts of your life on the computer too. Your friends are all online. You hobby is probably playing video games. Reading books, watching videos, doing their budget, writing down to-do lists. Almost everything you can think of, you’re probably doing on the computer. When you think of a side project – it’s probably something to do on a computer – writing a blog 🙄 , freelancing as a coder and so on. If you study you’re probably going to take one of the online courses and study on the computer.

Well this year, I want to get off the computer. Of course I’ve already started an online course and I’m writing a blog. But I don’t think those are taking up much of my computer time. Apart from my work, and a couple hours for those things, I think I don’t have to sit at my computer at all. A major chunk of computer time goes for gaming, Facebook, YouTube and Netflix. I can altogether drop those. I resolve to have my entertainment and social life, away from the computer. This means I’ll have to let go of some of the new and the cool. Even for studying and blogging, I’m thinking to partially move them away from the computer. Maybe I can write drafts on pen and paper before I sit to publish it on the computer. I can also study the online course using a tablet, take notes with a pen and paper.

Less computer. More real world. More pen-and-paper.

2. Learn Continuously

This is partially already done because of the nature of development jobs. You just can’t avoid learning. New frameworks and tools pop up every day. Parts of the job are getting obsolete and new parts are getting created. Lines between business and IT are getting blurred. If you’re a developer, the only way you can be successful, or even just survive for long, is if you keep learning new things. This much goes without saying.

But what about the other things? Do you know anything at all besides coding? Have you learnt music or an art? To play a sport? Do you know about economics? Do you know to cook? Pick one or two skills outside of coding, and work on it regularly. Maybe cook food on weekends. Learn a new language (a spoken language – not another programming language). Join a workshop on reparing cars. Practice it by yourself or join a class. Do something that expands your mind. Do something that makes you interesting.

Develop a new skill. Keep improving.

3. Take Health Seriously

Whenever I get pain in my shoulders, neck or lower back, I go through a ‘fitness phase’. I get the pain treated and follow a workout routine for a few days after that. But as the pain is relieved, so is my motivation. Not only fitness, but even looks can become invisible when most of your life is online through a computer. I mean who cares if you’re fat if no one ever sees you right? After two years of living alone as a developer, I have literally become that fat guy who’s only contact with outside world is with the food delivery guy. Literally!

I resolve to take health seriously. Prevention is better than cure. I’m targetting a healthy fitness level, eating good food, moderate regular exercise and frequent breaks for ergonomics. My chiropractor said the best posture is no posture at all. I like the way he put it. You need to move frequently so that you’re not really getting ‘fixed into a posture’ in the first place. That’s the only way to avoid posture related problems.

Do about half an hour of exercise, almost everyday. Include some fruits and vegetables in diet. Do not keep sitting for more than half an hour at a time. Go to bed early – without your smartphone.

4. Give to Relationships

This one is particularly hard for me because I’m a complete introvert. I am truly fine just being single rather than have to put up with a family. I simply hate even just being around people. But I’m resolving to this anyway. Because I’m old enough to know that this is important. Being around people, having face-to-face interactions, depending on and being depended upon, are immensely more satisfying than a lonely-yet-comfortable life. I, like many other developers, have always avoided social interactions with people. I don’t do small talk, I don’t attend ceremonies, I don’t even go to casual meetings at work.

I try to avoid my family as much as possible. Even though I like to spend time with my little nephews, I’d rather not because it would mean I have to be around the grown ups too. I need to stop being such a loner. Wisdom tells me that friends are important, family is important.

Make more friends and invest some time and effort into the ones that exist. Be in touch with family.

5. Travel

There are so many YouTube channels that make you yearn to just drop your ‘normal’ life and become a nomad with a back pack. But that’s simply impractical and unnecessary. Not everyone can (or should) become a full time traveller. But I believe vacations are necessary. They create a disconnect that simply can’t be achieved otherwise. I’m at the end of a two week holiday but doesn’t even seem like I left work. Because I just spent it all at home. Still at my computer. Still thinking about work.

Traveling – without your laptop – actually traveling, acts like a reset for the mind. You don’t have to travel to fancy places or spend a lot of money. Just to a simple place a few hundred kilometers away. Maybe for beautiful views of nature, maybe for spirituality of an ancient temple. Maybe solo, maybe with friends or family. But make it a point to do it.

Travel to a far away place. Atleast 3 days together. Atleast once in 3 months. Create memories.

Picking My Game Development Tools

A process that used to excite me during my early days of development is to choose a tool or framework. But now as an experienced developer, I realise that’s probably the most exhausting yet not very useful to spend a ton of time and energy to make difficult choices at the beginning of a project (or in this case even before getting started with the project). So I will put my thoughts until lunch today. Make the quickest decisions that I can make. Stick with till I’m good.

Guiding Principles

  1. I have to first learn a boatload of things. And it is yet to be seen whether I will stick to my commitment or I will get tired and give up. So
  2. This is a last time I process this choice. Before I complete my first game, I will not go back on these decisions. If I don’t get some feature I need, I will sacrifice on it rather than think back and change these decisions.
  3. Whenever possible, learn the art first. Invest money in tools later.
Photo by Jo Szczepanska on Unsplash

Time

The most important and difficult to get resource is going to be time. I have no intention of quitting my job and doing this full time. So my schedule would be to utilise the weekends and holidays to the fullest. It’s been very long and I have about a ton of gaps in knowledge to get where I want to be. So I don’t expect I’ll make anything significant at least for a year or even two. I’m also currently studying for masters, which will go on for one more year. So for one year this will be in the third priority. I can pickup a bit more speed after that. Strictly keep this to the weekends.

Hardware

I have a 13″ MacBook Pro 2015 and a 1080p monitor. I also have a Wacom Intuos drawing tablet too, in case I need something more than my Logitech Trackball mouse for drawing. I will purchase a small – maybe 25 keys – MIDI controller for making music. But only after 3 months. If I’m still going strong. Until then, I think I can simply use my computer keyboard to learn basic music composition. Decision here is that I already have everything I need. After 3 months, I will invest in a MIDI Controller – Akai MPK Mini MK3

Artwork

There wasn’t much questions here. Blender was the straightforward choice. But I need to learn to use Blender. Making 3D models can be considered my weakest skill in this whole endeavour. I practically do not know anything about it. I learnt some 3D modelling 20 years back (on a tool called Gmax – which has been discontinued now). I’m not sure whether I will remember anything or whether that knowledge will be useful now. I don’t think I will have to upgrade in future even after I become a good 3D modeller. Both Blender and Sketchbook are great tools even for professionals. So they should be good enough for me. So Blender and Sketchbook for artwork.

Music

There weren’t any good open-source music making software. I found LMMS, but it was far behind any decent commercial alternative. Almost nobody on the internet recommended it for a beginner. But fortunately, since I use a MacBook, I have GarageBand and it’s free. I will learn the basics of music composition and then upgrade my setup to a 25-key MIDI controller and FL Studio. I checked out another software called Reason – which appears to be great, but for a higher price. But in terms of popularity, FL Studio came out as a big winner, and so I believe as a beginner, it’s better I use FL Studio since I’ll have to be asking help from the community a lot. So decision is FL Studio.

Game Engine

A quick search on the internet showed me that I have two options Unity and Godot. I did some time-consuming research, before coming to the realisation that Unity is free-to-use. I don’t have to worry about its cost unless I am making significant revenue, which I don’t t think I will be making anytime soon. If you are making that much revenue, Unity’s licensing costs wouldn’t seem much. And Unity also didn’t appear to me as an evil company that would irrationally jack up license costs. So Unity it is.

So there. I have a big set of skills I’ll have to acquire in the next several months. Let me get cracking.

Rebooting the Game Development Dream

A very long time back – about 25 years ago, when I came across computer programming as a subject, the first thing that got me attracted to the field was that I could make my own computer games. More than all the fun of playing them, I was curious about how they were made. The more I found out, the more it made me curious.

But knowledge was very hard to come by. I mean really really hard. As a kid, for years I could not find anything about how they made games. I was able to convince my parents to send me to a teacher who taught BASIC programming for very little fees. Yet, all he was able to teach me was some ‘advanced’ basic. Like changing the screen mode, making the beep sound. But nothing about how to actually put a picture on the screen. This was 1995. All I could do was get the BASIC and C books from some grown ups and try to guess how those programs would work – just a pen and paper. I didn’t own a computer and I could get my hands on a computer for about a couple of hours in a year.

Photo by Arif Riyanto on Unsplash

Fast forward to 2000, I got more frequent access to a computer thanks to one of my uncles who purchased a PC, and more importantly – an internet connection! The internet was brilliant – just so much information. And everything was free! I distinctly remember the first set of colourful graphics tutorials by David Brackeen (glad to see he is still keeping the tutorials online). Then I found the site called makegames.com (the site is closed now, but I found an archive here). And a big book called Action Arcade Adventure Set which it’s author Diana Gruber had released on the internet for free. But all this was still not enough. I was told to ‘stop playing with the computer’ and to study and get into a good college.

Fast forward to 2006, I finished college and it had been years since I tried my hand at programming anything related to video games. Surprisingly, the college teachers were completely disappointing when it came to this stuff. They knew the syntax of languages and were able to teach me enough to pass the subjects and attend job interviews at software companies. But absolutely no one from whom I could learn video game development. My dad bought me a computer, but still no internet. I could still have internet only when I went off to my uncles’ home for holidays. Until 2007. In 2007, I expressed to my dad that I was interested to become a video game developer.

He did not discourage me. He paid for an internet connection, he gave me money for a couple books, and surprisingly, he paid fees for a short video game programming course. It was the only video game related course that was available in the whole city at that time. Happy times! I made a lot of programs in this time – a fancy MP3 player, a simple C code editor, a couple DirectX-based games. But real life caught up.

It was almost 18 months after I finished college and I still couldn’t get a job. There were literally 3 video game companies I could interview at. Two of them quoted very low pay – where I wouldn’t even be able to feed myself. One promised a good salary, but couldn’t put together the team that they needed. So they shut shop and left the country. At this point, folks at my home lost patience. I was about to take up one of those game programming jobs, but they firmly forbade it at my home, because the pay was too low and in their view, I was wasting away my life.

So I took up job as an ERP developer at a reputed automotive company. It was quite easy compared to video game programming. I was able to grow quite fast and I didn’t end up wasting my life like my parents warned. It’s almost 13 years since. Right now I’m a lead Java developer for a very good company. The work is perfect and the pay is good. But still, the fact that I didn’t become a video game programmer keeps nagging me from inside. Whenever I play a video game, watch a trailer .. I can’t help but feel sad. If I had held on a bit longer .. If I had persevered .. I might have been on one of those teams, building those beautiful things.

Since it’s a feeling that keeps coming back, even after a decade, I’m thinking to do something about it. I’m not sure if I’m young enough to learn something completely new now and put effort in a large side project. And I’m quite sure that I don’t remember much from the old days. I have to start from scratch. But I’m not going to be able to put together a team at this point. I first have to learn a lot and become worthy of a team, make something small to prove myself. Then maybe … just maybe .. I would be able to become an actual video game developer. For now, all I have, is the decision that I’m going to give this a true, solid attempt.