Alex Lawson

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 screenshot

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 screenshot

'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 screenshot

'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 screenshot

'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 screenshot

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 screenshot

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 screenshot

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:

love2d landscape generation sample

Endless drifting landscape parallaxes built from composable noise functions

love2d island generation sample

Generating islands that change over time using Perlin noise layers, including gradual drift/erosion and seasonal rainfall

love2d dungeon room generation sample

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

love2d Lindenmayer systems sample

An exploration of some Lindenmayer systems, including a few different rule sets and ways to introduce stochastic variation

Double Double screenshot

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 screenshot

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.