Games are art. I always saw it that way. People need to communicate their ideas; each goes their own way about it. For me, I saw making video games as a medium to express myself. When I was younger, I slowly and loathingly learned programming to create games. After months in the Unity engine, I started to love programming itself rather than the final product, despite how poorly written the C# was.
What do I do in game development and how did that help my internship?
Game development is about what? Making a game, of course. Unless you work for an awful and greedy corporation, the games you create are fun. The game developer's task is to make a game with an engaging central design. As I developed games, I acted as both a programmer and a designer. As a result, I created a few rules of thumb. In tutorials, text is regarded as the worst way to tell information. Designs must consider how the player will react to them. Creating a new mechanic should solve many issues at once, and so on. All these little details make up the experience for the player, connecting back to the game's central theme. Every feature I designed was vital and had to be thoroughly tested. Similar to the examination process of software products, testing ensures that the final product is usable and practical. These principles in game design subconsciously transferred to the ideas and practice of user-focused design for software development.
What did I do in my internship and how does it help my game development?
During my internship, I was tasked with creating a Blazor application to manage projects, which uses C#. Within the internship, I learned three critical skills: proper coding practices, version control, and agile development. As I mentioned in the first paragraph, my C# abilities were elementary. I was never exposed to proper convention and practice. The first thing I had to learn was the naming convention of the variables; I was fascinated by how I coded without knowing camel and pascal cases for so many years. I learned how to use C# with good practice: interfacing, injections, singleton services, unit tests and logging. These procedures make faster code that is easier to read and write. These skills would transfer to better development of my future games. In addition, I learned the impactful habits of proper version control. In a team environment, protocols must be implemented to modify code effectively. What was previously foreign to me now seemed natural, preparing me for a future team environment. Lastly, I was no longer creating code for myself but as a client. I learned strategies for creating designs in the form of user stories. The problem and solution must be broken down to their core to understand the complexities of the idea asked by a client. As each person has their own vision of an idea, such as a game design, it is vital to have a common ground of understanding. All these new skills will directly help my skills in game development in the future.
What did I learn?
Embracing your passion can lead you closer to your career path, which generates a positive feedback loop of even more interest in your passion. In addition, don’t be afraid to show off your passions. In my technical interview, I showed off Fartknight (a game I made in two days), and my interviewers loved it. People are still talking about Fartknight over a month in my internship.
Finally, through my internship I learned that Arcurve is an amazing company to step out into the real world of programming and development.