About Me
I'm Alex Lawson, a generalist programmer and game designer with particular interests in procedural generation and systems-driven gameplay.
While I continuously strive to improve my technical skills, I also believe in applying broad experience and clear communication to any role. I aim to create games that advance both the medium and the industry, bringing new audiences to broaden and enrich the landscape of interactive media.
Professional Work
Starbound
Starbound is a sprawling space sandbox adventure game developed by London-based studio Chucklefish. Players explore, fight, craft, dig and build their way across an infinite universe of procedurally-generated worlds, alone or with friends. Starbound has received high acclaim from players and critics, numerous awards, and has sold over 3 million copies to date.
I joined the team shortly after Starbound's early access release in 2014. My role began with scripting entity behaviors in Lua, but quickly grew to include a range of responsibilities such as:
- Development of the game's custom C++ engine
- Building and documenting Lua APIs
- Supporting the modding community with information and API features
- Managing our issue tracker
- Project and release management
After the game's 1.0 release in 2016 I also served as lead programmer and project coordinator for several major post-release content updates.
While I had a hand in countless aspects of the project, some of the systems I was most directly responsible for designing and implementing include terrain and cave generation, fishing, rails, and customizable, modular space mechs.
Personal Work
'Catchy' Prototype
Prototype for a bug catching game, made primarily as a learning exercise for environment and character art. I used Blender for modeling/rigging/animation and Substance for procedural materials. Implemented in Unity using URP + shader graph for visual effects including occlusion dithering, dynamic foliage displacement and shader-driven UI elements.
'Bubbly' Prototype
Prototype for an alchemical experimentation game in the style of an animated chalkboard. Try combining reagents at different temperatures to discover new substances. Made in Unity.
'Matchy' Prototype
Prototype for a match-3 game with survival/crafting elements. Features a mostly faithful recreation of Tetris Attack's core mechanics with JSON-configurable block behaviors for rapid prototyping. Made in Unity.
Filaments
A game about wandering through twisted, procedurally-generated worlds where up and down are relative. Initially made in a week for PROCJAM Summer 2018, Filaments incorporates a few different procedural techniques into a simple but satisfying game loop.
Levels are built from pools of prefabs based on connector transformations and a few simple connectivity rules. Architectural elements (“shrines”) are generated meshes with rotational symmetry. Colors are selected by applying varying saturation and value ranges to a simple complementary scheme. Made in Unity3D using C#, with models created in Blender.
Stargazer
A procedural constellation generator focusing on minimal interface and elegant presentation. Stargazer creates fictional constellations by iteratively placing new stars, with a set of simple restrictions that enforce a pleasing shape and sensible connectivity. Names are generated with a Markov sequence. Made using LÖVE.
Starfoundry
Created just months after Starbound’s early access release in December 2013, Starfoundry was a collaborative modding project that added a variety of new systems to the game, most of them focused on automation and wiring. In addition to being a core contributor, I also managed the project including source control, issues, releases, etc. My work on this project and involvement in the modding community led to me joining Chucklefish later that year.
LÖVE Experiments
I love creating experimental projects to explore different techniques or algorithms. Here are a few samples of procedural generation made in LÖVE, mostly from 2017:
Endless drifting landscape parallaxes built from composable noise functions
Generating islands that change over time using Perlin noise layers, including gradual drift/erosion and seasonal rainfall
A dungeon generator with a surprisingly simple approach, using random walks within a grid of rooms to achieve a partially-collapsed appearance that retains connectivity
An exploration of some Lindenmayer systems, including a few different rule sets and ways to introduce stochastic variation
Double, Double!
A tile matching game with some novel mechanics. Rather than being directly swapped, tiles are “stirred” clockwise or counterclockwise within the square reticle, and contiguous rectangular groups of powers of two are cleared periodically. Made using XNA for Ludum Dare 25.
Robo Rancher
My first published game, Robo Rancher is about breeding robots using a simple genetic algorithm, then using them to collect scrap from a test chamber in order to build new ones. Robots are autonomous and the player’s interface consists of moving them between various “pens” with different purposes. Made using XNA for Ludum Dare 24.