OpenEVA

An Extravehicular Maintenance Sim

Philosophy of Design | 2017 - 04 - 24

Most of my professional experience has been as a software developer and programmer and I enjoy electrical engineering and automotive mechanics as hobbies, it is a big part of why I want to develop OpenEVA. My training however is in game art and design, which are two areas that are usually neglected in my projects in favor of putting code to silicon. I am generally bored by high level design and concept art; I can’t count the friends, family and acquaintances, when they learn I develop software and games, who have divulged to me their fourteen billion dollar game ideas; Which tend to be no more than high level story, theme, or character concepts, with no thought given to technical feasibility; Casually expecting a functional prototype within the week, as if they had already done the all the hard work. Despite this, I have enough development experience to know the value of a strong, concise technical design spec and solid development plan. So, with OpenEVA I intent to take a different approach to game development than I usually follow. Keeping a regular devblog, documenting my designs, techniques and processes, tracking issues and feature development, developing models and tests, and taking time to develop strong technical design specs before writing a single line of code.

Whenever I talk about game design people generally start thinking about story ideas, style, theme, setting, art concepts and character designs. It is my belief however that these concepts have little value in core game design as I feel the designer should focus on the systems and interactions which will make up a game’s mechanics, rather than the specifics of the content or narrative they may wish to present. That isn’t to say that story, theme, setting, character and artistic design have no place in game design; These can be very important concepts in inspiring and constraining the design of game features and mechanics. Strong high level conceptual design and high quality concept art are main drivers of funding, investment and support in the traditional and indy game development industries. As well, a strong style, consistent theme, and impactful narrative are vital components of gaming or other interactive experiences. However, the game designer must be able to fully describe and realize their game agnostic of the content or medium.

The designer should be able to write out, in easily parsed, concise English (or whatever their native language happens to be) a full description of the models, mechanics, interactions and features they intend to implement. Writing out a complete description of a feature is an invaluable part of the development process. In essence when a programmer writes code, they are translating their mental model into some human readable representation of machine instructions. Writing out our design in natural language allows us to mentally implement our model in a natural form, free from the constraints and obfuscations of the syntax of whatever technology we end up using. It will allow us to explore interactions, detect logical inconsistencies, uncover problems in our systems, discover simplifications and optimizations, visualize user stories and further test and develop our model. Having a strong specification and concise description of our features and systems will give us reference for the future and facilitate learning, creativity and collaboration.

The designer must focus on the systems, models and interactions that they wish to create and avoid spending too much time conceptualising content or the semantic details of specific implementations. Based solely on their descriptions, someone with no contact or relation to the designer should be able to fully implement the game mechanics as a computer, tabletop, board, card, or any other type of game. Through our design, developers should be free to express whatever theme, style or narrative they choose, using whatever technology or medium they appreciate. Good design is agnostic of implementation and content and instead describes the mechanics, interactions and models which will comprise their game.

Over the course of OpenEVA’s development, I plan to write detailed but concise technical design specs of each system, feature and mechanic before I attempt to implement the code. My designs will be largely agnostic of the game content, setting, theme or story. I want to build a system in which it is possible to portray a any number of themes, styles, settings or narratives simply by customising the game’s JSON defined content. Specific content, art and narrative design will likely not be developed until the game systems and mechanics have been fully implemented and completed. I will draw on theme, setting and content in my design in order facilitate the development of the systems I will be implementing, but it is likely that most content generated during the core development will be reimplemented or thrown away when we move from development to content creation. The systems that I have planned should be relatively simple, OpenEVA’s complexity should come from the variety and depth of content rather than the mechanics themselves. Likewise none of the system’s will be groundbreaking and something that could be implemented in any medium. In the coming weeks I will be focusing on developing a concise technical design spec which should allow anyone to capture the vision of OpenEVA agnostic of content, technology or medium.