top of page

- Status : Unknown -

information.png

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

browser.png

Web Requests

App Script

Odin Inspector Personal Logo.png
analytics.png

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

AppScriptTest.gif

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 

 SU_GoogleSheetUnity.gif

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.

TTS_test.gif

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.

CombatSimulator_v1_Encounters.gif

Saving or loading new content (enemy encounter)

CombatSimulator_v1_Builds&Simulation.gif

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.

Tool_Dialogue_v1.gif

Example of a dialogue graph. There is one for each dialogue scriptableObject

Tool_FactionEditor_v1.gif

The Faction Editor, to create the NPC that will hold its dialogue and quest data

Tool_ND_Workflow_v1.gif

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

Capture d’écran 2023-12-05 220104.png

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

memory.png

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.

talking.png

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.

pie-chart.png

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.

complaint.png

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.

illustration.png

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.

experience.png

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.

bottom of page