Game Career Guide is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Get the latest Education e-news
  • How I Built A Game Studio From The Ground Up

    - Quilly Chang

  • Role 2 - Software developer

    I was the most confident in this role throughout the process, despite being the single person to not only code the entire game, but to integrate with Steam API and handle deployment. It was a lot of responsibility, not only to myself, but to any players when the game went live.

    On the coding front, I learned the most about good OOP (object oriented programming). Game menus, screens, character types (e.g. playable vs. non-playable) and many other objects, are best implemented with classes and heavily rely on inheritance to avoid duplication and allow for scalability. I spoke about this at PyCon Canada, video link to be updated when available.

    I learned a lot about deployment on a huge platform, which has a lot to do with using Git and Steam's patching system for binary files. I was strict with using Git, since I develop with multiple machines (laptop when remote, desktop at home). I also used a separate Linux machine for testing. One litmus test of my Git expertise was that I launched the game to customers while moving apartments, so I had to set up my desktop on the ground, pull a week's worth of code changes which I had pushed from my laptop, compile the new build, and deploy the game immediately. Thanks, version control!

    The pros of being a solo developer was full control over features and implementation methods. As such, I had a lot of fun implementing anything that came to mind, such as a timer that tracks how long players take to respond in-game, and dynamically generate dialogue in response (I have a Visual;Conference talk about this feature). I could also change the UI as much as I pleased, a luxury that I likely wouldn't have in a large team of game developers.

    Because of this absolute power, there are some parts which I implemented with less structure than if I'd planned to hand over the code to someone else. However, it turns out that these "hacks" are pretty readable, as evidenced by the process of porting to consoles, several months post-launch, involving more remote developers, who didn't even need to ask me questions! Thanks, habit of detailed code comments... I always think to myself, "I should delete those comments", but then it came in handy!

    Role 3 - Project manager

    Project management was one of the hardest roles, up there with creative writing. I completely underestimated how much brain power and attention that outlining tasks and scheduling timelines takes. It requires a different type of focus than coding; it was difficult to constantly switch between the two models of thinking, which, for a long time, dragged down my effectiveness at both tasks.

    Come to think of it, a major difficulty was that, I was both the PM and the developer resource that the PM manages! The experience definitely helped me be more empathetic towards PMs, and I do think it helped me become better at communicating approaches and timelines at work.

    During the development process, there were often struggles between my PM self and my developer self. As a developer I would set overly aggressive/optimistic timelines, which my PM self would then schedule other dependencies on. When the developer self couldn't get things done, the PM self learned to add more buffer time, and communicate that to the developer self. The process was like inner dialogue with multiple mindsets. There was nothing better than actually being in the PM's shoes, to realize what I was doing wrong on the communication front as a developer!

    I have many favorite learnings from this experience - Buffer, buffer, buffer, ask good questions of the developer to gauge their effort and timeline, and managing scope creep (shared learning with the optimistic developer me)...

    Role 4 - Business development and marketing

    Yet another role was to get exposure and coverage that would lead to sales. For example, I had to reach out to reviewers, journalists, and influencers, as well as create contests to generate buzz. I researched gaming journalism, created spreadsheets of emails to reach out to, and gained a huge insight into the influencer channels in the gaming industry.

    What I didn't expect, was that this role also improved my public speaking skills. Through game development I've been able to share my technical expertise with large audiences, such as at Python conferences and meetups, as well as being a 3 time speaker at a well regarded conference on the genre. In addition, as an attendee of large gaming conferences, I developed the ability to walk up to any fellow attendee and strike up a conversation. This ability has had infinite dividends, including in my professional career in the machine learning field. I also learned to speak with people all day when I boothed (showcasing demos of the game at conferences). There was no one else in the studio to swap shifts with!

    Another role, which I'll put within business development simply because it was part of my efforts to gain exposure, was marketing. I did market research, and created outreach strategies that my business development self acted on. Thankfully, I game a hell lot, and am an avid collector of games, so I came into this role with existing industry insights. What was new, was learning to pay attention to game design details from the perspective of a creator, in addition to that of the player.

    I also had to DIY marketing materials at times, which added amateur graphic designer into this mix. Cropping and resizing logos, creating banners and thumbnails, for my store fronts, website, press communications, promotional graphics, and so on, helped me appreciate, even more, the work of graphics teams that goes into every product launch.


comments powered by Disqus