Tuesday, June 7, 2011

An internship and an experience plus

For the past few months (since around the end of February), I've been working in and experiencing the game industry, in Terato Tech. Throughout the span of 14 weeks of my internship programme, I've learned a lot from the people there. 

And here's a list of things I picked up and learned from there (in point forms, I hate writing essays):
1. Experiencing the real world - the "real world" is
a term where undergrads like us refer to as "the actual game industry". I'm from an art degree, and originally wasn't really suppose to be involved in "the game industry" but rather "the art industry", even though my degree did do stuff about game development for my entire second year there, I did it anyway, because it's what I wanna do in the future. And the "real world" is... a really hard place to work at, unless if you love coding and developing games all day like me. 

Well, I've grown to hate it a little bit... the coding part, because everyday was a programming and bug-fixing hell. I get headache from time to time, but we do get to rest every once in a while. I even fell asleep in the office, then lied to my boss that I'm sick or having a stomach-ache... but the whole headache part was definitely true. 

Now I've been cooling myself off with a no-coding phase for the past few days after my internship because of the trauma I faced from the real world... And I still can't believe when my supervisor told me that he loves to work under stress... and he continues coding after he got back home until midnight. 

It's experience I guess.

2. Working with the clients - one of the most pain in the ass thing I experienced from the real world. I'm not sure whether working with the clients who knows a lot about game would be easier, but the one we had was a bunch of (really) casual game players who... play games, and that's all. Probably didn't play too much games, but enough to differentiate between a game and an apps (I guess). 

Around the third weeks of the program (somewhere around that... I don't keep track), we were assigned to a new project... with a client, a big one. But due to some P&C regulations, I can't reveal them here, just that they are very big, and not a game development or publishing firm.

Anyway, here's how every day in a week of my internship life goes after week 5 - 6 (after we have built an alpha version of the game and was presenting it to the clients for user testing):
Monday - the supervisors take the latest version of the game (of all builds: iPhone, iPad, Android) and show it off to the clients. We have some time to rest here, it's either I watch a bunch of YouTube clips, or fix previous bugs and add in new features that the clients want.

Tuesday - Receive logs/bug reports from the client. <-- This was the part I hated the most (so did my other team members/colleagues), because we sometimes get really outrageous request from them... adding features that makes us doubt whether they've play games before. 

Wednesday to Friday - bug fixing, and latest version to be finish by Friday, else we'll have to do it during the weekends for Monday's presentation.

It was around the second last month of the programme that I finally, decided to give in, let them do what they want while I was just following the clients orders. Because that's what working with a client is all about, they are the game designers, the one who wanted to make the game in the first place. But not to say we on the employee side don't have to do a thing, we do give some suggestion of our own while at the same time doing the (crappy) stuff they want. Also have to thanks my supervisor for his advices on these working-with-clients issues that I had.

3. 2D Game development on mobile devices (iOS + Android) - before these, we have never work on any games for the mobile devices, but for PC games, we do a lot. And most of the time, we don't really care about optimizing the games that we made, because the PC we used for our presentations were strong enough to handle it. Which is why this experience was very crucial to us. Because the mobile game industry is going to be the future of casual gaming, and the stuff we made... inside Unity (the main engine we used), should be optimized as much in order for it to run smoothly in these mobile devices.

At the same time, we (the interns) also never have any experience in 2d game development. So for the first four weeks of our project, after we managed to build an Alpha vers., the game took like 20+ seconds to run... it was a failure. After a few weeks of experimentation with the SpriteManager, we managed to lower it down to 8 seconds at maximum. It was fun process, I wrote a lot of frameworks to further optimizing the rest of the games, making it smoother... which leads me to the next point:

4. The experience of being the lead game programmer - I suppose almost everyone who started developing games in college or high school would want to become the lead game programmer on a project team one day. It was also one of my wildest dream, as soon as I started developing games and get a little bit good at it, I've been dreaming about being the lead game programmer of a game project. Though I wasn't getting the title in the company, I think I was getting close to being the role. There were three of us working on the game mechanics, and I was in charge of making sure my partners are doing his/her works right, using the framework and tweaking the game correctly, etc.

5. Working in a team - one of the skill I lack of the most... is to work within a team, as I've always been developing games solo. I do have an experience once in my campus, where I have to collaborate with a classmate of mine on a networking game. However I do not know how to utilise the skill she had... nor do I find any. 

Throughout these 14 weeks, I have a chance to work in a real team, where it's full of pros from different fields. We have an art director, a game designer (the supervisors, besides the clients), a brilliant iOS developer (from Japan), sprite artists who's as good as those you saw on deviantArt (the good ones), sound designers (also the supervisor with one of the interns), and game programmers (me and another intern), on the team, which was like... a dream come true for me, and working in a game development team is an awesome experience! 

6. The game development process - Lastly, one of the precious stuff I've learned from my internship programme was the game development process. Back before the internship program starts, I never properly follow the game development process when doing my game-related assignments. Mostly it's just: game concept, then art, then straight away Beta production. No prototyping, game testing, researching, proper game designing (we just design it along the way)...

During this internship programme, I get to experience all that: building the prototype, designing the game, then release an Alpha version, get user acceptance testing, receive log/bugs reports from clients, build new versions every week while slowly adding in new features... I'm really gonna miss all these. In fact, I'm gonna use what I've experienced from this for my final year project (FYP) in my third and the last year of my degree. I think I can make a better game this time, as long as I don't forget what I've learned... XD

In the end, despite all the game development-hardships I faced over there, I was kinda reluctant to leave so soon. Felt like I should've stay longer, work on a different project, get tougher... in terms of stress-handling. But I still have my chance in the future, as long as the world doesn't end so soon. And thanks a lot to my colleagues for their advices, helps and teachings, I really appreciates all that. In return, I'll try my best to make a kick-ass game for my FYP :D


Pisyek K said...

Er, "a brilliant iOS developer (from Japan)" -> Hijazi?

Hahahaha. xD

Latest post: 5 Joomla! 1.6 templates free download

Lee Zhi Fei (JakeL168) said...

Yaya, you know him? Lol... XD