Chance Alexander
Game Developer
Commercial Projects

Spirit Hollow is a feature rich cozy farming game set in a tarot inspired world.
My responsibilities have included securing funding, managing budgets, and forming an effective team, as well as programming and technical art.

Chinatown Detective Agency is a cybernoir point and click adventure game.
I assisted in storyline mission implementation, UI creation and general gameplay programming.

Volcanic Games’ debut title. A zombie defense game released on PC and Nintendo Switch.
I was brought on early in development as the primary developer to complete all game features for Frontline Zed.
Chance was hired as the primary Unity software developer for an 18 month project. He was responsible for the full stack of development, specifically integrating UI, visual FX, character control, animations, localisation, data serialisation and saving, gameplay and balance systems, platform middleware (Steamworks), and anti-piracy functionality.Chance was able to implement comprehensive and performant solutions, despite the technical challenges presented by 3rd-party assets. Over the course of development, Chance proved highly agile and responsive, able to independently identify problems, propose solutions, and enact fixes.Additionally, Chance’s 2D and 3D art expertise proved highly beneficial for UI, visual effects, and performance optimisation. In many cases Chance was able to design and implement functionality which exceeded the initial scope, and significantly increased the appeal of the product, thanks to this expertise.
Critically, Chance was able to design and build systems which could be easily updated and expanded.The end result has been a successful commercial product released on multiple consumer platforms, including multiple successful upgrades delivered to a live customer base. Chance will be my first point of call for any further development work. I wish him all the best for the future.
-Richard East, Game Director at Volcanic Games
Personal Projects & Game Jams

A year of weekends resulted in this action roguelike demo. I programmed and co-designed Book of Eve as part of a team of 3.
This project taught me a lot about roguelike design and game production in the context of a tiny indie team.
Highlights:
RestAPI high scores.
Highlights:
Procedural level generation.
AI and combat systems.
Technical art and shaders.

A simple game about surviving a journey above the clouds. Made in 72 hours for Ludum Dare #53.

A pun riddled culinary adventure. Made in 2 weeks for the Seattle Indies 2022 Slow Jam.
Highlights:
Momentum based platformer controller.
Spatial audio system with occluding surfaces (no middleware).
Highlights:
Advanced Timeline scripting.
Yarnspinner implementation & extension.
Pushing existing tools to get more out of Terrains.
Challenge: Filling a small open world (Around 4 square kilometers) with vegetation and other objects, doing it with a lean team, and while using tools that are easy to use and maintain.Solution: I rerouted the Terrain’s splatmap texture to define zones which a procedural object placement system uses to populate vegetation and other Terrain objects.

A shader flag is automatically set when painting, showing the user an overlay of the painted placement zones.
Results:
DCC agnostic: Placement can be driven by any tool that can export splatmaps as well as in-engine Terrain painting.
Removes a bottleneck: Users are not limited by the maturity of the procedural placement system, or by object asset availability since simplified placeholders can be used. Design, art, and engineering can proceed independently.
Calendar justified tooling: For a very small initial time cost, painless open world object placement is possible. A huge win for an indie title.
Process is not interrupted: There is no need to learn a new tool and the workflow can be explained in seconds.
Shader reactivity: in the case of the road layer, out-of-the-box splatmap painting is preserved AND object placement is driven.), additionally the system places non-player facing objects like waypoints for NPCs.

The placement system binds sets of prefabs to each splatmap layer, allowing any number of spawn criteria to be set.
Shader Graph Continued…
The Terrain Shader Graph handles texturing based on region, slope, splatmap layers, and other criteria. It also has some more advanced features.
World Render Texture
Applied across the entire world Terrain is a writable Render Texture. At 2048x2048, this is the largest texture in the game and is in memory at all times during gameplay. A collection of compute shaders and systems allows for a number of Texture Writer Objects which effectively paint the Render Texture at runtime. This is used heavily throughout the game.
The channels of the World Render Texture are as follows
R = Snow
G = Tilled Earth
B = Wet Earth
A = Footprints


The Weather System, as well as the player and even NPCs and animals all create responsive changes to the Terrain.
Takeaways
There are a lot of out-of-the-box features which may be broken or made redundant by our own tooling, or even by other out-of-the-box features. It's my goal to use the whole animal. If the engine provides any opportunities to make a better game in less time, they should be taken.
Bite sized projects
Fast perlin noise map generation.
1 draw call, 2 tiny textures in memory.

128x128 source texture generation

3 perlin noise maps are generated, one for the base landmass shape, another to distort that, and a third which is stepped to generate roads and land bridges where roads travel over water.
These are stored in different channels of the same 128x128 texture.
Final shader

I've applied a tiny texture atlas containing grass and sand tiles for some simple detail.
Setting the filter mode of the generated texture provides enough information to smooth the output, detect edges for adding sand along the borders between grass and water, and create simple shoreline waves on the water.
Takeaways
While the initial output produces results with little direct control over path flow and connections, as well as some nonsensical loops, this technique is simple and fast, and consistently produces many natural paths covering the entire map whether or not a more complex base terrain generation system is used.
By determining the placement of intersections and the connections between paths, undesirable routes could be discarded. This can be followed by running further iterations to introduce new connections, or by incorporating other techniques to this system. I believe this would be an appropriate approach to create natural and believable roads and pathways for many game types.
