TECHNICAL & SERIOUS GAME DESIGNER
- Status : Unknown -
All content showcased below only represents the work I have done during the 10 weeks of pre-production. This page will be updated betweeen May and July 2024.
Team Size : 12
Role : Technical Designer
Engine : Unity
Time : Oct. 2023 - June. 2024 (9 months)
Tools used
Unity 3D
Web Requests
App Script
Odin Inspector
Custom Graph Editor
Project Overview
Status : Unknown is my final year project at RUBIKA Supinfogame. It's an ARPG/Hack 'n' slash inspired by Minecraft Dungeon and Noita's wand system. The core gameplay will have you fight your way through an alien threat by leveraging an highly modular system to create your arsenal, while dealing with the factions that all want to take advantage of the chaos.
​
Pre-production Prototypes
a. Spreadsheet Appscript
The goal was to get more familiar with Google Drive APIs to better integrate spreadsheet data with Unity. I made this first prototype to experiment with the Appscript environment
Automated color coding, styling and cells data manipulation
​
b. Unity/Spreadsheet Pipeline
This prototype allows to import Google spreadsheets and generate Unity data assets (scriptable objects) out of it, but also to create or update an existing spreadsheet from Unity data. I used Novack GSFU for the connection to the Drive's API and spreadsheet manipulation through an Appscript
For now, I manage the formatting of web requests with JsonHelper but I may upgrade to Json.NET in the future
c. Text-to-speech with a Web API
I made a basic prototype that uses the Large-Text-To-Speech API to generate voices based on Unity gameplay data for dialogue by passing web requests through the UnityWebRequest class. Later, I may upgrade the tool to use ElevenLabs API instead.
Web Request and generation of an audioclip from the returned bytes
d. Balancing and Gameplay tool
The System and Combat Designers needed a way to quickly test their designs and simulate various ways that the player could combine modules to build a weapon. This tool was made to allow for quick design iteration.
Saving or loading new content (enemy encounter)
Saving or loading new content (gameplay effects, combination of modules) and simulating your build
e. Quest and Dialogue tool
The Narrative Designer needed a way to iterate on dialogues and quests in an intuitive way. I am using xNode as a basis to make this visual scripting tool, with custom nodes to manipulate gameplay data such as player choices, quest reward or reputation, while also allowing optional dialogue or icon display. The output is a hierarchy of scriptableObjects that are then used in runtime to simulate the dialogue.
Example of a dialogue graph. There is one for each dialogue scriptableObject
The Faction Editor, to create the NPC that will hold its dialogue and quest data
Adding the newly created NPC to the dialogue system and simulating player progression through various main and secondary quests with their associated dialogues
f. Data Management
I recently discovered the power of Odin Inspector and Odin Validator, and decided to experiment by creating various prototypes to test that plugin capabilities in terms of UX and data management
This window allows us to see any scriptableObject marked with a custom attribute, but also to edit, save or load a scriptableObject of the selected type
Key Takeaways
You are not the end-user !
As a designer, you may be biased to take yourself as an example of the end-user. But your target audience (here, other designers), will never be 100% like you. So, speak to them and let them be the judge of the quality of what you made.
Speak the designer language !
I used to rant a lot about the non-existence of reference for Technical Designers in terms of publicly-available content creation tools. But there actually are a lot (beyond the known ones like Figma or Google Spreadsheet), from character editors like the Hero Designer to modding tools like the Creation Kit, and from System Reference Documents to deckbuilding simulators. Many content creators are used to their UX and features : take inspiration from them.
Separate runtime from editor !
This may be specific to non-standalone tools that are directly writtent in a game engine, but I had to learn the hard way how data is (not) serialized or initialized when going from or out of playmode. Taking this into account when designing a tool may spare you hours of headaches and regret.
Ask them about the problems !
I used to say to my designers things like "let me know if I can help you on x or y". But human beings (and designers maybe even more), adapt pretty quickly to bad UX and workflows just to get the job done. As a tech designer, this is your worst enemy (sometimes called habituation). Be self-driven, watch them going through their usual daily workflow, identify the issues and come up with solutions you can talk about.
Technical Design is still Design !
What I mean is that every choice you make about your tool will have some consequence about your user behavior, experience or creations. And though a skilled creator may be able to make amazing things even with a bad tool, a tool will always influence how easily something can be made and the final game's content design. So, take the time to research and learn about the area of design you are making a tool for to avoid enforcing bad game designs in it.
Don't underestimate the UX !
By now, I have drawn a lot of similarities between Technical and Systems Design. But I am also realising the massive importance of UX Design, which is an area I have less knowledge of. By the end of pre-production, I started to add UX Design practices into my workflow by talking more with my designers to identify problems and pain points, centralising feature requests, using Figma as a prototyping tool, improving the workflow or amount of clicking needed for anything, handling errors in a less stressing way and writing better workflow-driven Technical Design Documents.