Sun is shining, the weather is sweet

Building Disney Cars at Gameloft

Experience from my first job when I went to Guadalajara, Mexico.

Arpit Agarwal
5 min readFeb 11, 2018

--

In mid 2013, I started my first job as a game programmer at Gameloft Studios in Guadalajara, Mexico. I was part of a team of six that shipped the Android version for Disney Pixar’s title, Cars© Fast as Lightning. Cars currently has 50–100 Million installs on the Android play store. The game got million downloads in the first 3 weeks! Though it was a larger than life experience to write about and share, I am just going over some quick learnings in this article.

Here are the 8 things I learned

#1 — Deliver high quality work. Always.

Gameloft partnered with Disney to build and launch their mobile game. The game had to be as high standard as the Disney Cars movie. Even a pixel detail that showed for a moment in the user’s journey was given high attention. As this was the start of my career it taught me the importance of writing high quality software.

#2 – Step up your debugging game

I learnt how to reach to the root of bugs in the code. Since the whole app was written in C++ and connected to Java with Android NDK, the C++ part could only be debugged with console logs, and not breakpoints. This meant I had to follow functions down to the point that I find the single point of failure in the system. Second, I learnt how to debug with console logs.

#3—Modularise your code

A game has many moving parts — sound, animation, user interface, monetisation models, interactions, and graphics. Running these modules in coordination without proper architecture would break the experience. Gameloft has a practice to build modules that function independently and run with multiple games*.* Hence writing reusable code becomes an important practice. I learnt that reusability is a very important part of your code architecture.

I later applied this modular thinking at apps we developed at Zomato, here’s my article on it —

#4—Focus on reusability

From a business perspective, a single game title cannot cater to diverse audiences. But at Gameloft we tackled this intelligently. We created a graphics module and placed it in a single game. If that game succeeded, we reskinned the graphics module for other games. Take the example of Spiderman Unlimited and Despicable Me Minion Run. With the success of Spiderman Unlimited we reskinned the graphics module for Minion Run. Similarly, we reused the graphics module of cars in Asphalt 7 for cars in our own game.

Disney Cars reused the same 3d textures built for the cars in Asphalt.

#5—Learn how to write adaptable code

We had to build Cars for all kinds of android phones in the world. Android screens have massive fragmentation in terms of size. In order to support 1200+ devices we had to write a highly responsive UI. I learnt how to create responsive UI components and create device profiles so these components are highly adaptable on different devices.

Android device fragmentation — by screen sizes. August ‘15

#6—Use a Continuous Integration (CI) system

At Gameloft we had a practice of releasing nightly builds. Each day a developer had to merge the team’s code, compile it and update the build. This took over an hour everyday. To speed up this process, I learnt how to set up distributed compilation in C++, and set up a CI system for automated builds. We configured a Jenkins CI system that automatically merged our code at midnight, compiled it, and emailed an update to the team.

A continuous integration system can save a lot of development time and manual effort spent on compiling and creating builds. I created this animation based on my own work life.

#7— Empathise with Artists, Designers, and Producers

I worked with world class programmers, 3d artists, designers, and animators. A highly talented and creative team. I realised that understanding diverse perspectives of various people you work with is super important. I learned that empathising with your product is as important as empathising with the people in your team.

#8— Learn to enjoy the hard work

Great things require hard work and persistence, never give in to the stress. I learned how to keep a balanced head and enjoy the process.

My team’s producer taught me how to not be stressful with those late night releases.
Some sweet surprises at work can keep you going— Mario cupcakes, country flags, and Go karting days!

My Cultural Experience in Mexico

  • I learned the Spanish language to communicate with the locals. What helped me a lot was to force myself to spend time with people who do not speak the English language. I learned that pushing through the uncomfortable phase of struggling to communicate is the most important part of learning a new language.
  • I understood Latin American culture and even drew some connections to the Indian culture! There weren’t many Indian people around in Guadalajara, so it was a lifetime of experience to immerse in such a foreign culture. I learnt that how people are more or less the same everywhere, and how age old beliefs have shaped up modern age culture. Will write more on this later.
  • I learned how to cook and survive as an ovo-lacto-vegetarian! Meat is consumed a lot in the Latin American diet and the concept of being vegetarian was a rare knowledge. I learned how to cook Mexican food with a vegetarian twist.
  • I backpacked the whole South and Carribean side of Mexico in a group of 50 people primarily communicating in Spanish. I also saw Chichen Itza. I learned how to be more open and accepting.
  • And lastly,

I learned that spending a day on the beach can fix most of your life problems.

Fin.

If you enjoyed this story, let me know by pressing that 👏Clap button. You can clap upto 50 times!

--

--