It’s a bird… It’s a plane… It’s Superman… No, it’s El Capitán Danny!

Now this is the story all about how
My life got flipped, turned upside down
And I’d like to take a minute just sit right there
I’ll tell you how I became the intern (and later employee) of a company called Expansive Worlds

First of all, I should probably introduce myself to those of you who don’t know who I am (for the record, shame on you if that’s the case). My name is Daniel Gutierrez Gustafsson, but people call me Danny, and I’ve been a game programmer here at Expansive Worlds for over a year now, first as an intern and now as an employee.
I think it’s time for me to post a picture of myself:

Gosh, I love that one.

I’m an avid gamer. I’ve played computer games since I was a kid. That’s probably why one beautiful day for four years ago I decided I would become a game programmer. Why not an graphic artist you ask? Well, good question. And the answer is that my graphical skills are as good as a programmers, coder art with other words.

I started studying game programming after the summer of 2009, and after two years I got an internship here at Expansive Worlds. I must say that those two years were in hardcore mode, studying six to seven days a week and at least 10 hours a day. But anyway…

Since I started working with theHunter I’ve been doing a lot of different things, but one of those things that I would like to go into detail is the auto/manual reload feature.

One day, after finishing a task,  I decided to implement a feature a lot of people in our community asked about; the possibility to manually reload a weapon instead of being forced to reload after shooting.
I assumed it couldn’t be that hard to implement. Big mistake.
Since I didn’t think it would be that hard, I just started working on it right away on the main branch. Usually, we use different branches of the code base (or graphic resources for the artists) depending on how much time the feature will take. For example, something like a new environment is made in a different branch than let’s say, the next weapon to be released, because the weapon probably goes live earlier than the environment. The main branch is the one that is used for the features that will go live in the next game update.

I personally thought that implementing this feature wouldn’t take longer than a couple of days. So wrong I was.
Long story short, the way things worked at the time made it pretty hard to implement the manual reload without breaking other things (often the auto reload).
After a week or so I realized that we had to change some animations for some weapons. We had to remove all the cycling, pumping and cocking/decocking animations from the reload animations (since they were in the same animation), and have them by themselves.
At this point I couldn’t just roll back all the work I had done (since it worked for almost all the weapons and because I had been working on it for over a week), so I had to ask José, our animator, to drop whatever he was doing at the time and help me fix the animations. This wasn’t problem free either, and after a week of going back and forth with them we decided that they were good enough.

Before releasing something live we always let our beta team test everything we do, so we released it to them. They found a lot of bugs, so I just sat and fixed them one by one. I think this took probably another week.

Finally, we released the game update with the auto/manual reload feature. It wasn’t perfect (I remember some bugs that found its way to live), but it was good enough.

This feature took me almost three weeks to implement, instead of two days. So what did I learn from this? Well, never assume anything. Things will never go smooth, they will always take at least π-times what you thought beforehand.
But now I know.

tl;dr: I <3 U!

Until next time
Gangnam Style,
Danny.

Click here to go to the forum discussion about this post

Share this
Facebooktwitterredditmail