Diogo Costa
Game Designer, Programmer, Narrative Designer

... Who enjoys wearing many other hats when push comes to shove.


My purpose is to craft meaningful and/or aesthetic experiences that create feelings of wonder, makes players question their actions and hopefully stick with them for a long time.

I do not design to distract, to addict, or to merely move money from one pocket to another pocket. I do not trade in souls.

Experience: 20 months of Unity/C# (Programmer, Designer, VFX Artist); Professional 1 year of C/C++ algorithms and bioinformatics research; 5 years of Unity/C# for personal projects.

Games

THE MAGIC FLUTE (2022) • Classplash

Programming Game Design VFX Tools Narrative Design

The Magic Flute is the official companion game to the 2022 movie of the same name.
It is a rhythm game designed to be played with a real recorder through the microphone input.
I was the main programmer working on the game, and also extended the design from the previous apps to provide a more polished and complex experience - I believe players can and should be challenged, when provided with tools that make learning smoother and empower the player.
I also brought new techniques in animation and VFX to the table, resulting in a more polished look and feel.

  • Programmed most of the game
  • Co-designed and implemented basic gameplay
  • Designed additional training modes
  • Designed virtual touch instrument
  • Designed and implemented all animations and VFX
  • Revised the script and helped adapt it into a game format
  • Created tools used to script the narrative

Download: App Store, Google Play

Project details
ANARCHIMA (2022) • Solo, in-development

Narrative Design Game Design AI Programming Tools 2D Art

Anarchima (placeholder name) is a tactical cRPG I've been developing in my spare time in 2022.
Its biggest influences are Ultima and the early Fallouts, with a heavy focus on narrative design, where quests set up conflicts between various towns with multiple solutions. The different solutions change internal variables that will determine the decision available in the end-game as well as their outcome in a game that goes beyond good/bad.
The combat, although not as much of a focus, is being designed to provide a much wider toolbox to the player, allowing for both tactical depth (with positioning, flanking, tile attacks, etc.) as well as study and preparation for fights (with buffs and versatile equipment).

  • Focus on choice, consequence and intention
  • Tactical combat (positioning, flanking, tile effects, buffs, elemental weaknesses)
  • Modding tools (branching dialogue with checks and rolls, tile editor, item/enemy editors, etc.)

Download: Demo Soon

Project details
AMALGAMA (2016) • Solo

General Design Programming 2D Art Music

AmalgamA is a casual puzzle game where levels are generated using a cellular automaton.
Everything came together beautifully in about a month and a half of work (although the ideas, unknowingly to me, required a brewing period during which I was learning about and playing around with cellular automata).
The cellular automaton provides puzzles that quite literally grow from a small seed, resulting in very aesthetically pleasing results (if I may say so myself!).
The music, although not at all relaxing, was also procedurally generated, with dissonance tied to the puzzle state (it starts out very dissonance, but slowly becomes consonant and uplifting as you solve the puzzle).
Despite its very apparent flaws, I am still very happy with it, especially in its symbolism and how each element reinforces each other. It was very organic to develop, with each element being the way it is almost out of necessity.

  • Infinite level generation using cellular automaton
  • Procedural music tied to puzzle state
  • Beautiful (if I may say so!) patterns

Download: itch.io

Project details
ANGKHORROR (2020) • Solo (abandoned)

General Design VFX Programming Tools 3D Art

Angkhorror is a prototype of a horror "walking-sim", inspired by Ultima Underworld, the works of KittyHorrorShow and Indian/Khmer Architecture.
It unfortunately did not come together in the end, but I am happy with various of its elements, which I may still use in the future.
I tried to capture the fractal nature of Indian architecture with custom 3D modelling tools.
The combined use of the low-fi aesthetic also let me using various kinds of textural noise (using shaders) to design the abstract ornaments for friezes and other panels.
I was very happy with the skybox, using a previous high-res starsky shader, coupled with dithering and larger stars to work in a low-res setting.
Unfortunately, compression kind of killed the video, so please check the project page for crisper screenshots.

  • Created 3D modelling tools and used them to create all the architecture
  • Creation of various shaders for low-fi aesthetic and abstract ornament
  • Creation of a skybox shader (day/night + twinkling stars) specifically designed for low-fi aeshetic

Download: send me an e-mail and I'll provide the project!

Project details
HARMONY CITY (2021) • Classplash

Programming Tools Network

The Harmony City is a rhythm game designed to teach youngsters to play chords Guitar and Ukulele.
I started my job there at the end of development programmed the tool used to create its weekly levels as well as several support features
. I also tweaked the practice mode to allow players to pause the game and practice the upcoming chords (a glaring blind spot in the then current design).

  • Implemented level creation tool used for weekly released songs
  • Extended practice mode
  • Implemented communication with external login provider
  • General support features, UI and maintenance

Download: App Store, Google Play

Prototypes (2014-2020) • Solo

This is for smaller prototypes I've done over the years.
It includes many different kinds of games and mechanics, mostly done during my university years, in my spare time.
These are very unfinished and unpolished, but it gives a sense of my curiosity and tendency towards constant experimentation.
A general overview of the prototypes includes:

  • 2D platformers (planet gravity based, castlevania-like, energy conserving grappling hook)
  • 3D Vehicle movement (almost Mario Kart-like, in a dune terrain)
  • Puzzle games (like Akari and other Nikoli-like games)
  • Weird strategy (using metaballs and immune-system inspired mechanics)

Project details

Projects

Digital Weaving (2020) • Solo

This project started from Andrew Glassner's Digital Weaving articles.
It's one of my favourite algorithmic art systems, especially for pixel-art like patterns.
It's very understandable and, most importantly, controllable, and with multiple sub-systems to explore and extend. In particle, I love how you can keep a fairly stable (and aesthetically pleasing) structure that goes way beyond simple mirror symmetry while changing the low level pattern details.

  • Cultural-evolution simulation to create new patterns in a similar style;
  • Genetic simulation (akin to Dawkin's Biomorphs)
  • Cleaned up and optimized the algorithm (the articles had some extra convoluted and unnecessary step)

Download: send me an e-mail and I'll provide the project!

4D Crossections (2017) • Solo

This was a project inspired by Flatland and Miegakure, and coalesced as I was reading Tegmark's Mathematical Universe.
It takes a 4D convex object and renders it where it intersects with the our whole 3D space.
This was my first time touching Unity. It was also my first time doing anything 3D - ironically enough.
I really enjoyed it, and it confirmed my love for working with geometry.

  • Created a python program to visualize 4D PROJECTIONS (like a 3D shadow on a 2D wall)
  • Created a Unity program to visualize the 3D Cross-sections of the same 4D objects
  • Implemented QuickHull to do so, using a doubly linked edge list
  • Colored by characteristic of the 4D "volume" being intersected

Download: send me an e-mail and I'll provide the project!

Chinese Lattice (2019) • Solo

This was an algorithm art project dealing with Chinese Lattice Window/Door designs.
I had already done projects with Celtic Knots (following Glassner, Peter Cromwell and George Bain) and Islamic Star Patterns (following Craig Kaplan), but the work was completely my own.
I read through Daniel Sheets Dye's Chinese Lattice Windows book and inferred two different systems to generate more patterns, one based on overlapping tilings (with squares, octagons or hexagons), and one based on space-filling with tetrominos (roughly).
I had another system based on Hamiltonian Paths (including an "easy" version of it) or Space filling curves, but I didn't get to try them out. Maybe one day!

  • Two original algorithmic systems to generate Chinese Lattice Designs
  • One based on overlapping tilings
  • The other based on tetromino-filling
  • Extended the above systems with additional "stylistic constraints"
  • Extended the above systems to different, non-traditional patterns

Download: send me an e-mail and I'll provide the project!

Larger-than-life Cellular Automaton (2017) • Solo

This project was my first application of a shader.
I had learned about much more expensive cellular automata after working on AmalgamA, but those were too slow to explore with my old tools.
So I took an MSc course on graphics, learned the basics of shaders, and implemented this one. It's quite beautiful!
The most important different is that cells look at every neighbour within a radius of 20 or more cells, instead of radius of 1. A shader's parallelization really makes it work in real time, enabling exploration, which is key to finding the coolest patterns!
They grow really organically, it's really great to watch. I colored them with a simple gradient (based on time of stabilization), but then perturbed the saturation and luminosity of the colors for a better result.

  • First time learning/using a fragment shader
  • 60 fps on a 2000x2000 grid with a neighbourhood radius >= 20

Download: send me an e-mail and I'll provide the project!

Fluvial Erosion (2018) • Solo

Having used shaders for a bit, at this point, I was very familiar with the applications of "fractal brownian noise" and the like for basic terrain generation, but something was missing.
Then, I saw Loren Schmidt's own work (unfortunately lost to time), which excited me with the possibility of simulating erosion.
This, then, was the result. I first implemented a shader-version (in shadertoy), based on a heightmap, but then found a paper to simulate erosion in meshes and decided to try it out.
It combines erosion (from rain) with a constant, if slow, uplift due to tectonic movement.
I love the results, has a great textural quality, and is quite fast, too (runs in linear time).

  • Create a fine-grained mesh
  • Compute voronoi diagram to analyze water motion (due to gravity)
  • Apply geology-based formula to increase/decrease height based on uplift vs. erosion
  • Simple shading

Download: send me an e-mail and I'll provide the project!

Starsky (2018, 2020) • Solo

One of the few projects I've done that I think could actually be used to spice up many other games, including AAA.
It's a shader that maps stars onto a sphere and controls their intensity individually at little to no cost.
Initial implementation used 3D noise, but it can easily be baked into a static texture.
Also adapted it into into a low-fi setting for Angkhorror, using larger stars and random dithering to prevent ugly color banding.

  • Colorful & customizable day-night cycle
  • Thousands (if not millions) of individually twinkling stars very cheaply
  • Adapted for low-res settings

Download: send me an e-mail and I'll provide the project!

Others • Solo

The previous slides include my favourite projects. This one is reserved for the remainder.
Voronoi Tilings, as the name suggests, is a tool that uses voronoi diagrams to create floor tilings.
Celtic Knots is a tool to create simple stylized celtic knots using the "cut method" and Bezier Curves for finer-grained stylization.
Apollonian Gaskets is a tool to generate colorful ornaments using the fractal apollonian gaskets (circles all the way down).
The shader experiments were especially important to learn how to use various kinds of noise to synthesize textures and created VFX. I have also experimented a bit with multi-pass effects like outlines and sun shafts.