Choo Jing Lin Christopher, one of our student in Diploma
in Information Technology (Games Development Option) had received the great
opportunity to join NUS-MDA SHAPE for his internship in USA! Here is the
details of his experiences as well as his opinion about the exciting overseas
internship program!
My name is Choo
Jing Lin, Christopher. I am currently pursuing a Diploma in Information
Technology (Games Development Option) at Singapore Polytechnic, Third Year. I
have been involved in programming and games development during my time in
school. I enjoy playing all sorts of games and this led to my interest in
developing games. I’ve tried out trigger-based programming before and really
enjoyed it, and decided to further pursue in Games Development. I also enjoy
culture from other countries mainly things like Manga, Comics, Sitcoms, Variety
Shows, etc.
I decided on
joining NUS-MDA SHAPE for my internship as I felt it was a great opportunity.
It is not always one gets to experience an overseas internship. Singapore’s
Gaming industry cannot compare to some of the overseas ones and I was hoping I
would be able to bring what I learnt there back to Singapore. There was also
several companies that I was really interested in, like Blizzard Entertainment,
Electronic Arts, THQ, Lucasfilm, etc. It was going to be a new challenge and a
rewarding one.
Internship Experience
My entire
internship experience started way before the actual internship. We had to deal
with the confirmation emails and the visa. There was also a ton of things to
prepare like apartment, bank account, knowledge of the place, etc. I had to do
things I never really tried before until this. To book my apartment, I had to
search through the internet and with help from Jehan, Dr. Newton, Ms Jeene,
etc. I eventually found it on craigslist; I called to US and confirmed my
location.
I was living
alone so the ability to live independently was much more demanded. Firstly I
had to go through 3 different planes to get to Pittsburgh and find my way to
the limousine to bring me to my apartment. Though with some past experience and
some common sense, it wasn’t hard and I got to Pittsburgh.
I had been to
the US before but this was slightly different. I could recognize some of the
roads from Google maps. Throughout my stay Google maps was one of the most
important thing. It was my way of finding my way around the place. I was able
to get to the Giant Eagle, Downtown, the office and many more other places all
thanks to Google Maps.
The room was
simple enough and small enough for one person to clean it often and easily. I
had very simple furniture with only my laptop as a source of entertainment. The
roommates were friendly but we hardly chat.
The best feature about the room is that there was a toilet in it. (Every
room had one).
I had the area
mapped down in my mind within 3-4 weeks of stay and I felt really comfortable
with living in Pittsburgh and working there. There was any awkwardness or
really missing Singapore. I just felt that I was on a rare opportunity and I
should focus on Pittsburgh and Schell Games.
The actual
internship was a mind blowing experience. The first week was merely a ramp up
on what project I was one, who I’m working with, What I’m supposed to do and
how Schell Games works. I felt overwhelmed but I soon get used to it as
everyone was really helpful and taught me a lot of things.
My day would start with me getting to work and working a bit of my task before the morning SCRUM meeting where we were to talk about what we’ve done before, how long it took and what we will be doing today. This is to learn the progress of the group and let each other know whether any task was being blocked by someone else. Like say I was to create the dialog of the NPC actual dialog wasn’t created yet. This would block my progress. Thus SCRUM allows each other to priorities more important task on a daily basis.
We worked about
8 hours each day but everyone else seems to work way more than that. It was a
lot longer than what I was used to and I had to take a breather every now and
then to now ‘overload’. I could go to the min garden, outside to the convenience
store, the games room, toilet, or even just surf the internet a while.
We would work
through a SPRINT where it usually ends a milestone for each SPRINT like say
content lock or feature lock where we will not add further content after or
feature after and focus more on other aspects lie debugging. I was able to
experience most of it as I when though several milestones from adding content,
feature all the way to debugging.
Working on the
programming is much harder than it is in Singapore. In school we are kind of
spoon fed the code and we just had to piece it together. In real life there are
many errors that can appear from your code, especially if your source is some
forum online. The chances are it will take some time for you to make heads and
ends of the code online. However, the people are Schell Games really helped me
a lot on the errors and how to do certain tasks. I was able to promptly finish
the tasks given to me.
There was also some events
or ‘happenings’ during my time at Schell. Birthdays were a common thing and
there was a special system. This system where each person is assigned to gift
another person a present during their birthday in a cycle. The gifts were all
very cool and nice. There was a
minecraft shirt, minecraft pickaxe, a lightsabre and many more. Also we do go
out to lunch sometimes especially when a person is leaving Schell games. They
would usually go to places I wouldn’t think of going and I would realize the
food there are actually quite good but much more expensive compared to what I
am used to.
There was also this special week where we will not do any task but tasks that are suggested by each other. I joined into the Minecraft Editor group and worked on Saving and Loading which proved to be a much harder tasked than I thought it would be. I had to do a ton of research before getting it done 1 day before the actually presentation of what we did. In the end we never really did finish it. It became a tiny region viewer where you can view a chunk of minecraft land.
It was really fun working on this as normally I
wouldn’t get to work on it nor do I have the time. Working with them on this
especially since everyone is testing and learning things out is fun. Also
breakfast and lunch was provided. There was a huge array of food to eat and it
was also.
I would try to understand what they are doing and ask things when I am unsure. Also they have given me quite a bit of advice on how to further work on things or alternative way that might be better.

The end of sprint meeting would usually start with
announcements like birthdays, anniversaries, accomplishments before each
project team start showing what they have done. I felt it was a really good
thing as it not only let me see the increasing progress of other projects but
it also allows me to know what I was working on and how far our game/ project
has been done. Sprints after Sprints, I could tell the progress was definitely
fast and the game was getting better and better.
I worked on several areas of programming. Starting out
on the build server where I was to work on the existing build server code and
make it workable. I was to use cruisecontrol.net to run the build server to
build daily builds so that everyone on the team could get the latest working
copy at the start of the day.
Next I worked on the NPO
scripts, it was unity scripts that assigns what dialog and conversation the
NPOs can do. Most of them were really simple as they were just minor NPOs that
speak random dialogs. Where the quest related ones are slightly more complex,
There was several cases where the logic from the Design was slightly wrong and
I had to correct it for it to work
I also worked on creating
some tools like the NPO script editor that was meant to make it easier to
create basic scripts and also a deep search that allows you to easily find
words in scripts. Also a localization checker to find out if there are any
localization errors that could potentially cause error. I also did a
spreadsheet scripter where I access google docs spread sheet and created a xml
file from the spreadsheet that would be used in the snake game or mukashi
mukashi. This would later be modified to work for other mini games.
I would continue working on the NPO scripts and some
tools. Finally I also worked on debugging and testing. It was really fun trying
to ‘break’ the game. I found a ton of bugs like dying in weird places of
escaping the zone, entering buildings, etc. I also manage to fix a ton of bugs
that were not easily discovered unless you really look for it.
Eventually I finish up my Schell Games internship with a Heat map generator which I barely manage to finish before leaving. I managed to create some really cool heatmaps by stamping gradient circles which I was taught.
Eventually I finish up my Schell Games internship with a Heat map generator which I barely manage to finish before leaving. I managed to create some really cool heatmaps by stamping gradient circles which I was taught.
Q & A
1. Please
provide a short summary of the programme/activities at your internship.
I was assigned to one of
the largest projects Schell Games has done, Librariana. It was a three year project
and I was joining them around their half year mark. It is an education MMO game
where students would use an android tablet to learn, read and play their entire
three years of English curriculum. I switch through several different parts in
the project and I felt that it was great as I learnt a lot from everything I
have done.
2. What type of
skills and knowledge have you gained from the internship?
I’ve worked on C#, XML,
XSLT, Batch, C++, JavaScript, Unity Script, and several more. I mostly work on
C# and JavaScript. I learnt how to create tools that benefit development a lot
using C# like a build server that builds the game nightly and copies it to the
server for everyone.
I’ve also done Java
Script to code the dialogues for the NPOs and learnt how simple quest system
works and how to simplify things using a shared class, shared external xml file
for the dictionary and how the Tech team would work with the Design team.
Things like
communication between the team or to the art team or design team. Communication
is key. We need to ensure that we know the progress of each other tasks that
affects ours to prevent loss in progress. Also confliction and broken builds
can cause a huge delay in time for everyone.
3. How long was
your internship?
It was 4-month long.
4. Were you
satisfied with the supervision and work environment? Why?
I was really satisfied;
everyone was really helpful and taught me a lot of things. I wouldn’t be able
to finish most of my works without everyone’s help and My work environment was
great. I had a two screens at my workstation, which before I had never used two
screens ever, It was extremely convenient. I could get more work done at faster
speeds because of that. Also there were free snacks in the pantry sometimes by
either other colleagues or the boss. Also in meetings there was food to eat, as
most of the time it clashes with lunch time.
5. Were you
happy with your living accommodation? Why?
It was okay. It had
everything I needed thus I have nothing to complain. The landlord was a fair
and kind guy and all my ‘roommates’ were friendly people.
6. Did you enjoy
a good balance between work and play?
Yes, I would work the
weekdays and rest on weekends. I went to the zoo, museums, movie theatre, etc.
It was very fun checking out Pittsburgh during the weekends to relax after
working for five days.
7. Lastly, would you
recommend the NUS-MDA SHAPE internship program to your friends and schoolmates?
Definitely, I was
already recommending it when I was taking the program and even before that. It
is a great experience and a waste not to go for it.
Before and After
Before
|
After
|
I didn’t
really have any money management thinking in Singapore at all. I do save but
normally those are just leftovers that from what I spent.
|
Living in
US and their high prices has made me more conscious of prices and money
management. I look out more for the price of the product and whether I would
really need it. I didn’t really buy any useless things as money was limited.
I also try to find the specific automated teller machine that would charge
extra billing fee and eat slightly cheaper food.
|
I didn’t
really do any exercise during the period I was waiting for the internship and
also I never do exercise at home.
|
I tried
working out in the room itself by doing exercise that do not need any
equipment. I also stretch constantly but I do not go out to run.
|
I didn’t
really look up on code that I do not know and do not need. I mainly focus on
my area of comfort and work on things I’ve already learnt.
|
I was
pulled out of my comfort area and I have to start learning again new things
on programming. This sparked my interest again and I’ve started to go find
out more about other things I can do on my computer.
|
I don’t
really check my emails and reply a.s.a.p. I was always kind of slacking on
this sort of things and I will forget about this replies.
|
I’ve
learnt to read my emails constantly and reply as soon as I get the email if
possible. As communication is important and that I should always ensure I
keep contact in important conversations.
|
The Bottom Line
I
really learnt a lot from everyone and experience what’s it like in a real gaming
company from the morning scrums to the tri-weekly sprints. I’ve learnt how a
game is developed. I’ve also learnt to be more independent as four months
living alone really demands it. I have also realized my own limitation that I
lack knowledge in a lot of subjects and programming knowledge. I should work on
them on my own and add on what I’ve learn in my future works.
I really
appreciate everyone at NUS-MDA SHAPE, Schell Games, Singapore Polytechnic for
giving me this opportunity.