Featured Projects




Star Cooler Carnage:


Rogue asteroids have damaged the space prison. The guards have already left and the remaining prisoners have to fight each other for the one seat available on the incoming escape pod.

A team of students made this game in Unity over the course of a semester (with other additions afterward).

Features:
  • Many weapons, each with different features
  • 1-4 player action using touch screen, keyboard, or controllers
  • Several screen rotations and sizes to facilitate screen sharing
  • Fill any empty seats with AI (or have bot only matches and place bets)
  • Level decreases in size as it takes damage from asteroids
  • Support for 4 different platforms, as well as old non-Xinput controllers in Windows
  • Randomly-generated level layouts so no player can memorize where the best weapons and strategic locations are
  • Nav points for when the escape pod appears and cues to inform players of less obvious options
Team:
Bryan Buttars: Level Design, Effects Bella Cherone: Concept and 3D Art, Animation Will Groves: Concept Art, UI/UX, Sound Effects, Technical Artist Daniel Williams (me): Engineer, Technical Artist Garrett Young: Production, 3D Art, Effects


Gained Experience:
  • Pathing - Created AI which can navigate cluttered levels and play the game entirely on their own
  • Unity - First large project using the Unity Game Engine
  • Teamwork - Worked with 4 other people
  • Analysis - A goal of this project was to take an outside prospective on what the game should be rather than just hammering out something runnable.




Online CT Viewer for Behavioral Experiments:


github logo Runnable
Demo
This CT viewer has been designed for convenient in browser use during the Covid-19 pandemic.

Features:
  • Convenient functions for Windowing
  • Many input options (keyboard, mouse, touch)
  • Convenient user logging (scrolls, clicks, shaders)
  • Use up to 20 scrollable images (many more if they're static)

Designed for research:
  • Loads everything before the user can participate so that intermittent delays don't effect your results
  • Stores clicks as well as records scroll behavior and windowing use
  • Size can be in pixels, inches, or just grow to accommodate the available screen space

Compatible:
  • Runs on the GPU as much as possible, providing a smooth experience on weaker platforms
  • Control with scroll wheel, mouse/finger dragging, or keyboard (arrow or WASD)
  • Divides up long periods of CPU work so that slower computers won't complain about an unresponsive script
  • Edit config files to simulate weaker systems

Configurable:
  • You mostly write (with tutorials guiding you) the flow of your own experiment in JavaScript/HTML
  • Edit simple config files to change appearance and behavior of the viewer


Uses:
Williams, L. et al. The invisible breast cancer: Experience does not protect against inattentional blindness to clinically relevant findings in radiology


Collaborator:
Lauren Williams, Ph.D.


Gained Experience:
  • JavaScript and PHP - First serious project for a platform which relied on communication with a remote server.
  • Google Web Toolkit - Had to employ the JavaScript Native Interface to provide a control and communication with many different experiment types.
  • Research - Had to dig into dicom images and stand alone viewers to see what could be realistically added to an online viewer.
  • Training - Created many supporting materials and training videos for both Windows and Linux work environments.




Documentation Over the Years: (for potential employers)


Aside from work as a TA, there have been many opportunities to create documentation (written sample). Throughout the past few years, I have created many tutorials for both my software and other tools.

At the University of Utah, my computer science degree had an added emphasis on games. Many classes allowed me to work closely with students in other majors such as: art, design, and production. This allowed me to gain experience describing things to people whose backgrounds weren't identical to my own.






Ballad of the Masked Bandits:


steam logo Windows PC
Ballad of The Masked Bandits is a gaming experience where you play as three raccoons in a duster pulling off wacky wild west heists.

A team of students made this game in Unity over the course of a year.

Features:
  • Cute raccoons performing even cuter actions
  • Tons of puzzles which require one to three characters at a time
  • Wild West settings.
Team:
Aaron Anderson: Art Sterling Beecroft: Art Patrick (Yun Chung) Chou: Tech Art, Design Michael Gardone: Engineer Jason Jackson: Tech Art, Sound Deborah Landis: Art, Creative Jessica Murdock: Engineer Michael Rapley: Tech Art Timothy Seitz: Art Aron Selimovic: Design Daniel Williams: Engineer Kimmy Workman: Art S Brian Zavala: Producer, UX Fukuan Zeng: Design


Gained Experience:
  • Teamwork - Worked with 13 other people




Pawney's Wrath:


google play logo Full Version
Trial Version
Fight with your friends no matter where you are.

Pawney's Wrath allows between 1-10 players on a single device. It doesn't matter if everyone has the game or not. If one person does, you can all play on their device.

Gameplay:
  • Play with as many people as you want. If there is an empty spot around a device, another player can be added (most devices have a hardware limit of 10).
  • Random levels that can have 2 additional layers of depth, increasing play area for a large number of players.
  • Run, stop, turn, attack, jump, switch items, and open the menu with a single button.
Modes:
  • Kill other players
  • Kill bots which constantly respawn or come in waves
  • Avoid being rammed and killed by the bots
  • Capture nodes around the level
  • Collect coins that drop randomly, or drop from kills
  • Horde extra loot
  • Odd man out
  • …or any combination of these
Accessability Options:
  • One button control system
  • Adjustable game speed
  • High contrast level options and game object highlights
  • Adjustable level sizes (simplifies and zooms levels)
Pawney's Wrath is published on Google Play.
Further development is paused until Void Control's framework can support it.


Gained Experience:
  • Large project - First completed and released project
  • Mobile:
    • Power Management - Game suspension and mindfulness over resource consumption
    • Touchscreen - Supports multi-touch controls in addition to usual scrolling gestures and tapping for menus
    • One Platform/Many Platforms:
      • Supports Android 2.8 and up
      • First time that one build required multiple test platforms
      • First time fixing platform-specific bugs on devices I could not access




Void Control:


github logo Gameplay
Test
Framework:
Want to play a game with a friend but they don't have it installed? No problem … even when both of you are without internet access.

With Void Control, an app can host its own multiplayer clients, removing the requirement that every player install the game.

Using libGDX, I am building a multiplayer framework for past and future games which will run on Android, Java, and HTML5.

Implemented Features:
  • Network play over TCP
  • Network play through WebSockets
  • Web Server to provide in-browser clients to local players
  • Scanner to find local servers


Game:
Some players had difficulty adopting Pawney's Wrath's one-button control style and would switch to the multi-button layout. In Void Control, I will implement a more natural attraction-based system.

Hold the button to pull your player to nearby pillars. Use the momentum to slingshot yourself from pillar to pillar around the level. Thanks to classes at the University of Utah I can improve this system as it gets tested on my fellow students.

Features:
  • Intuitive, one-button controls
  • Cross-platform
  • Local network play
  • Host HTML5 clients for anyone to join the game


Gained Experience:
  • Multiplatform:
    • LibGDX - Second project using the framework
    • Realized the necessity of keeping platform specific code separate
      (e.g. Thread safe data structures for Android vs. common data structures GWT can translate)
  • Web Server - Created small web server to provide access to HTML5 clients
  • WebSockets - Used WebSockets to allow communication with the HTML5 client
  • Gradle - First time working with Gradle's syntax
  • Vector Math - Movement system changes pull point based on player location




Brisk Banter:


itch logo Windows PC
Fight stress with stress.

Brisk Banter is a fast paced RPG with an emphasis on dialogue that helps players with social anxiety.

Gameplay:
Run from person to person as fast as you can soaking up any morsels of information they might have for you. Control a socially anxious player who actively avoids interactions as you also learn to control your own inclinations to flee uncomfortable situations. Don't overextend though, enjoy little breaks from the action by chasing animals around or running through the grass. Then, once your heart rate returns to normal, start a new level with fast paced action all over again!

Team:
Bryan Bylsma Ryan Whittle Daniel Williams


Gained Experience:
  • Pathing - Created AI for an ingame deer to move its way around a map
  • Serious Gameplay - Created with an intention to teach and relieve real world stress.




Character from my game