shon diaz - rare gentlemen syndicate making steel pinion strategy tactics game

Steel Pinion



Steel Pinion is a tabletop inspired steampunk airship tactical strategy game. Deep ship/fleet customization, multiplayer, and open-source balance collaboration are built in from the ground up. Many technologies and techniques are implemented here to bring together the full game experience. This has been my greatest cross-discipline project to date. There is a blog in the site going into more detail, but if you ever ask me about how the development is going, I can talk about it for hours on end.


Terraform Github Cloud9 VSCode Svelte Vue NodeJS Typescript Unity3D C# Unreal 5 AWS Cloudfront Cloudwatch Route53 S3 API Gateway Lambda MySQL Dynamo Discord Codecks Storybook SVG Houdini Websockets

Match Analyzer & Visualizer



I talk about "Cursed Problems in Tactics Games" during article #8. Approaching that problem is hard, yet I want to build a system that can overcome typical strategy game balancing issues. We can't make everyone happy, however, we can give some power to users to fix their own problems. For the time being, I've created this tool which allows us to deeply inspect each turn and decision made by a player. We can walk through the event-sourced state changes backwards or forwards in time. Visualizing the match data this way lets us slow down and understand each explosion, side effect, crew position, and more.


PhaserJs Svelte Typescript Terraform Github VSCode NodeJS AWS Cloudfront Cloudwatch Route53 S3 API Gateway Lambda MySQL Discord Codecks Websockets

Own Krillin



A fun phaserJS 2.0 project with a playable demo for all DBZ fans. Play as the villians and crush the weak and pathetic Krillin.


html css javascript phaserJS LSW

Houdini Workflow Tools



Houdini has become my goto 3d modelling program for game asset processing. With it, I've been able to use a combination of wrangle nodes, and it's built in nodes to optimize models and compress intelligent shader features into the verts. I've established multiple workflows such as player customizable vertex coloring or complex destruction animation sequence templates for any future ship design. I've been able to compress features into verts, removing the need for textures (which works well for some stylized graphics). Although I've also developed a way to store the same data into textures utilizing COPS to flatten geometry, and interpolate vert positions into a 2D plane (aka texture).


Houdini vex SideFX Labs Geometry Rigging Keyframes Simulation FBX COPS SOPS TOPS Discord

Unity Asset Pipeline



Turns out making unique steampunk vehicles the world has never seen before isn't easy. There are tons of premade assets for humans, and well known vehicles, even many animals have models which could be used as a base. SteelPinion has animalistic airships with various interchangeable parts that must be conceptualized and created from scratch. I started uploading tutorial videos covering the 20 steps from concept art to game engine ready assets. A high level overview sample can be seen here. Training people outside of software engineering and in a more artist friendly workflow is satisfying. The results have dramatically improved our project's pace, since we need about 200-300 part/vehicle models before we are ready.


Houdini vex Unity3D SideFX Labs VAT Geometry Rigging Keyframes FBX COPS SOPS TOPS

A1111 -> 3D



The advent of generative artwork has been interesting and controversial in video game usage. I've dabbled with A1111 (automatic eleven eleven) and managed to create a set of weapon designs which fit into our specific cannon dimensions required for our niche ship mod attachments. Each weapon needs to be attachable to a variety of ships and needs a specific circular base size as well as limited cannon length. This process is documented on SteelPinion discord server, which still includes our artists converting the flat concept into a 3d model; not replacing our artists, but saving them time.


A1111 SDXL Juggernaut XL Control-Net Prompt Engineering canny Blender Discord

A.I. Bio Writer



biography.adviserly.com is an excellent timesaving tool to manage the onboarding of large dealership staff. It can be difficult to break down preconcieved stereotypes about dealership sales. No one wants to deal with an oily salesman! These generated biographies help quickly represent each staff member accurately by walking each user through a small digital interview; concluding with a generated biography.


Terraform Github GithubCI Cloud9 VSCode Svelte NodeJS AWS Cloudfront Cloudwatch Route53 S3 API Gateway Lambda MSSQL Generative AI Prompt Engineering

Character Sheet Generator



There is another project which I began for my children which teaches the importance of emotional maturity; the criticality of understanding oneself. It started out as a specification document, which is rather dry and unreachable for children, so I began converting it into a narrative. Since I wanted to visualize the characters and possibly convert them into playable characters some day, this workflow was created. Utilizing a combination of tools to specifically generate clean consistent concept art for the front, back, side of a person is as fun as it is addicting.


A1111 SD Control-Net Regional Prompting Prompt Engineering openpose NodeJS

Regal Arbor



An epic tale told over pixels, we spent 8 years working on it. The project's hand crafted pixel assets are one of a kind, beauitiful, and difficult to replace. The primary artist landed a job at Blizzard and this project ceased. This was good for us all because we gained so much experience working together, and we all proceeded in different directions professionally. The closed alpha testing site is here. Regal Arbor was originally built in Unity 3D version 2 before sprite layers were supported. Logic was written in unityscript, then converted to C# back in those days. Before totally closing up shop, a more modernized approach with terraform handling IaC (infrastructure as code) gels together a Vue website. PhaserJs 3.0 was the last game engine we used with some new advantages and disadvantages. With the main advantage being project orginization and modern vanilla javascript.


Terraform CircleCI Github Cloud9 VSCode Vue Javascript Phaser 3 Unity 3D C# Javascript GO lang AWS Cloudfront Cloudwatch Route53 S3 API Gateway Lambda Firebase Trello Slack

Procedural Map Generator



Being deeply inspired by XCOM2 map generation, I allowed myself to get distracted amidst the SteelPinion programming tasks. We now have a deterministic seedable map generator which is player modable, and compatible with all the features of the SteelPinion game. What is more is the ability to debug the generation of these maps with noise layer image files as well as a 3D web visualizer. The key to successful procedural generation is found in understanding random numbers, a most crucial mastery.


Typescript NodeJS Javascript Jasmine Vue ThreeJS

Adviserly Profile Manager



My exploration of swiftUI turned into a deep disgust with the ecosystem, ultimately causing me to convert the entire project to NativeScript. I spent 6 months learning swiftUI and building a management portal which included some moderately complex photo editing capabilities and A.I. adjustments. After getting fed up with swiftUI, I converted the project to NativeScript and rebuilt to parity in less than one month.


NativeScript XCode SwitftUI Javascript Svelte Tailwind VSCode Slack IOS Android App Store Google Play

Custom Tax Apps



A whitelabel app making service for tax preparers. I used phonegap to build an app template which was then rebranded many times for each tax preparer. Back when I was working downtown in office, I rode the train for 15 hours a week. During that time, I slowly worked on this concept and partnered with a tax preparer to sell it to other companies around the country.


Cordova Phonegap Javascript HTML CSS Bootstrap Bash C9 XCode IOS Android App Store Google Play AWS Device Farm JS Scrambler

Loan Health



My attempt to save the subprime lending world. Once I understood how difficult it is to payback high interest loans, I made a prototype app which explained how interest capitalizes with automotive loans and how one may lifehack the system to gain an advantage. Half the organization loved the idea, while other half thought it would be detrimental to our business model. Ultimately, this app was worked into the primary website for lenders, but removed the core advice for how to reduce the percentage utilizing the laws.


Cordova Phonegap Javascript HTML CSS Bootstrap C# MSSQL IIS Visual Studio Sublime Text MS Teams Android

S.A.T. Score Sends



Taking the S.A.T.? Sending your perfect results to a prestigious (or not so prestigious) college? Then there is a good chance you will be using this tool and workflow. A great number of people and talent behind the scenes that made such a tool possible. Choosing what you want to send to prospective universities is easier now with the score sending workflow


CloudFormation Jenkins Bitbucket VSCode React Javascript JQuery AWS Dynamo Cloudfront KMS S3 Lambda Jira MSTeams

Universal DMS Feed



An evolution in how we've handled historical dms data in house. After a new data source is discovered; that data from N unknown sources runs through a series of rules. Failure to meet specification places individual rows to the side. We have at least five dms providers with changing schema (some of which include manual entry). This allows alerts to be precise whilst continuing to deliver on the n% good data that always exists in a setting where users hand type information.


Terraform Vue Python AWS Dynamo Aurora S3 SNS SQS Lambda Cloudfront Cloudwatch API Gateway IAM CircleCi Github Cloud9

Reporting Pipeline



Look, reports aren't fun. Fancy numbers are needed to prove a business is functioning as expected. The right numbers communicated at the right time can mean the difference between a churn or a continued B2B (business to business) relationship. This reporting pipeline was designed to flexibly fragment and chunk portions of our lambda fleet to work through customer segments piece by piece. Processing can be replayed for better devEx and troubleshooting. A scheduler controls when reports are delivered, and our internal email-api handles delivery integrity. Finally the reports are published as fixed static sites for greatest portability.


Terraform Github GithubCI Cloud9 HTML CSS NodeJS AWS Cloudfront Cloudwatch Route53 S3 API Gateway Lambda SQS SNS SES MYSQL

CDK DMS Feed Integration



Anyone whom has worked with the dms provider cdk knows just how much of a snowflake (unique server) cluster they have in the backend. I stood up a fault tolerant API interface in front of the CDK API so that our data driven products could be reliably powered by current dealership data. Datasets are not prejoined; we have to aqquire auxillary data whilst avoiding race conditions introduced by cdk's server overload and retries. Our service translates the xml structure into a more modern json while abstracting the taxing time sensative join complexities. Finishing touches included a chat bot named CDKen.


Terraform ECR Python AWS Dynamo Aurora S3 SQS Lambda ECS Cloudwatch API Gateway IAM CircleCi Github Cloud9 Javascript Slack

Realtime Consumer Opportunity



An equity data mining solution. Participating dealerships have their dms data feeds monitored realtime for near immediate notification of a customer on premise. This allows sales persons to head into a conversation with a list of opportunities, and ice breakers that match the profiled personality to boot!


Terraform Vue Javascript Python AWS Dynamo Aurora S3 SNS SQS Lambda Cloudfront Cloudwatch API Gateway IAM CircleCi Github Cloud9 Slack