iOS & macOS engineer,
designer, game creator
Author: Matt Reagan
« Previous | Next »

Dust: Dev Blog
For the latest, check out the Recent Updates.

So it's February. 2017. According to the AppDelegate.h, this means I've been working on Dust weekend warrior style for about 2 years. Given the anniversary, I thought it befitting to post an update (new video below). I've written about Dust on my game development page before, but my plan is to treat this article as the new informal Dust dev blog, which I'll be updating occasionally with more status reports.


What is Dust?

A 2D classic-style role-playing game, with some unique gameplay elements thrown in the mix, which I'm creating in my spare time.


The biggest challenge currently is finding spare time and energy to work on it. I'm fortunate enough to be employed on a very talented team working on a very challenging project. The only downside is that my job requires just about all the time and energy I can give it. However, when I'm able to find the time, working on Dust provides a creative outlet for me where I can enjoy developing and controlling every aspect of the game from top to bottom, which is a kind of artistic fulfillment that is hard to find when building products as part of a larger team.


The idea behind Dust was to incorporate several gameplay elements that I've always wanted to explore mixing together:
  • Open world adventure, non-linear plot; encourages exploration
  • Oregon Trail-like travel mechanics where resource management and trip planning are essential to survival
  • Meaningful environmental effects (weather and time of day play significant role)
  • Classical party-based RPG with leveling, skill trees, and detailed item management
  • Tactical turn-based combat


Thank you, mysterious denizen of internet, for visiting the new Dust page. If you'd like to talk game dev feel free to contact me, and please check back again soon, more updates are forthcoming. 👍

Recent Updates

As with the previous entry, this update lists some of the features I've been chipping away at over the last few weekends.
  • Implement initial weatherscope to display time of day and weather in UI
  • Implement all (almost) initial weather effect emitters for both world map and weatherscope
  • Several fixes and updates to weather generation and temperature fluctuation over time
  • Initial support for collision detection bsaed on map decoration textures (walking over rocks, trees, water, etc.)
  • Active party effects now apply to various player status, such as travel speed etc.
  • Improvements to built-in map editor, including a visual texture scrolling grid for choosing various map decorations
  • Numerous fixes and updates to the GameAction system, which fixes a number of encounter and dialogue flows for more complicated events
  • Added UI for selecting party members for things like lockpick or speech attempt actions
  • Added UI for showing contextual help when hovering over active party effect badges

Note: This update contains a bunch of stuff I worked on over the course of several weeks during my last inspired burst of development.
  • Fixed drinking action to actually consume water items from inventory, this turned out to be more complicated than it appeared since each party member can carry any number of drinkable items which have varying capacity and H20 values, and some may have special abilities. This is an area that will need continued testing and some additional thought before deciding on the best approach to make it fun and meaningful but not annoying for the player.
  • Added combat terrain decoration randomization (WIP), included some fun details like distant clouds that slowly drift in the sky, and birds
  • Fixed some SpriteKit related issues. Dust has been in develompent long enough that some recent macOS updates changed some API behaviors, particular around calculating nodes at a given point.
  • Sandboxed a proof-of-concept on how to detect when player is walking on various terrain (forest, water, etc.) on the world map based solely on the map decoration textures. It currently makes use of non-dynamic SKPhysicsBody's and the -enumerateBodiesAtPoint: method, but I won't be able to use the original terrain textures themselves because they are too complex for SpriteKit to interpret, I will probably need to maintain dual textures for each terrain type, one which is used specifically for the physics-based body detection
  • Initial spellcasting, dialogue encounter, and combat loot screen UIs implemented. All still WIPs
  • Vendor UI implemented, added custom animation for haggling attempts
  • Added slider control for use when bartering and needing to specify a quantity
  • A lot of early work done for probability calculation for skill and attribute-based rolls (of which haggling is one)
  • Continuing to work out the arrangement and appearance of controls in the world and combat status bars
  • Added combat 'flee' zones on edges of combat scene, akin to how the party could flee combat in the Exile series by attempting to step out of the combat map