Fundamentals of a Game Developer
Identifying the Actors and Objects
For the web developers out there, seeing “Actor” probably spawns the visual of Brat Pitt or Johnny Depp in your mind. Wrong kind of Actor! In the context of game development, an Actor is simply anything that represents a single person or “entity” in the game. The terms Actor, Entity, and Object all go hand-in-hand with similar meanings. Anything that needs to be described in the world with information to store can be classified as an Actor or Object. Do you want to store information about a soldier describing their equipment? They should be an Actor. What about an unopened treasure chest? That’s also an Actor. After all, the contents of a chest needs to be described somewhere. Actors can be self-dependent an information relevant to them.
Establishing the Environment
This means to describe the environment in which the actors live in. It’s the setting, the container in which these pieces of a puzzle fit in. This is commonly referred to some developers as “scenes”. These environments often manage the Actors, storing information about the game that would otherwise not be stored within a visual Actor. Think of the environment as a stage for the Actors. If the Actors were chess pieces, the environment would be the chess board.
Defining the Rules
Much like the real world, games have rules that need to be followed. These are constraints put in place by game developers so that the user experience is controlled and created as intended by the designers. Rule definition can vary from physics to something more explicit like imposing restrictions on what a user is allowed to do.
Drawing the Comparison
Now you’re probably wondering, how does this relate at all the web development? Thanks to evolution of web development and new tools and frameworks, the two types of development are strikingly similar. One could even call them long lost siblings finally reunited by the power of modern web technologies!
Component Based Development
With the emergence of frameworks such as React, web developers have become accustomed to the idea of thinking with components. Components have a striking similarity with actors and objects in game development. They both achieve the exact same purpose in that they represent an entity. The only thing that is different between the two is the context in which they are used.
A component, much like an actor, stores information about it. So if you’re a game developer turning web developer, all you would need to do is apply the same concept. Identify the components of a website the same way you identify the Objects in a game. If something can be described, it can be an object.
Site Architecture and Frameworks
The architecture of a website is similar to that of a game developer creating the world the actors live in. If you translated actors in game development to components in web development, where would they live? The answer to that is simply within the structure of the site itself. In game development, these are called scenes. However, in web development, they are simply templates. These templates load components and the components have access to the information relevant to them.
Again, similar with the actor comparison, scenes and templates share the same purpose under their own contexts. With how much modern web development has evolved, the visual aspect of web applications evolved with it. Websites have become more interactive and it’s not too difficult to see how some of these components can be viewed as if they are living within a gaming environment.
Now that I’ve covered actors and scenes, let’s dive into the similarities in the user experience. As briefly noted above, the look and feel of a website in todays day and age can almost be mistaken for a game. Websites and web apps have become so interactive and in such creative ways, that they have become entertaining to use. If a website is boring and loses attention of the visitor, then the website is failing to achieve its goal of converting the user to whatever metric the web developer had intended. Similarly to game development, goal conversion happens by creating an entertaining and engaging user experience. Games have mostly achieved this through visuals and sound, and in most cases, storytelling. Websites have been more focused on information and content. However, due to the power of modern web technology, it is possible to think of creative ways to make a website entertaining; The same way that game developers do.
Game and web development go hand-in-hand more ways than originally thought. Modern web technology such as React, ES6 and many more, bridged the gap between the two. If you are a web developer looking to make something modern and engaging for your viewer, maybe take a step back and ask yourself, what would a game developer do?