Home Professional Profile Professional Projects Contact
Home

David Diaz

Home

Welcome, my name is David Diaz, I'm a game programmer passionate about my profession. In this site you will get to know my profile as well as the projects that I have worked on in my career.

LinkedIn

Professional Profile Professional Projects Contact
Home Professional Profile Professional Projects Contact
Home

David Diaz

Professional Profile

Highly creative engineer with strong analytical aptitude. Proven experience executing a game development lifecycle from concept to maintenance with over 20 shipped titles. Skilled in translating a game design into software design and then breaking up that design into a series of tasks for implementation. Deep expertise in programmable shaders for mobile devices, particle systems and computer graphics in general. A Team player with excellent communication skills, worked for clients like GSN, Bonanza Media, 505 Games, Playdom (Disney) and Shockwave Games (Viacom).

Expert Unity3D developer C# programmer, working on the games industry at a professional level since 2007. Well versed in mathematics for game programming and able to tackle the daily challenges of game development with a logical approach.

Continuously taking part in self training of new technologies and interested in the latest trends of the industry, attended GDC since 2012. Passionate gamer and fortunate to own a console from each generation since the NES.

Home Professional Profile Professional Projects Contact
Home

David Diaz

Professional Projects

These are the professional projects I have worked on with a description and a bullet list of my involvement. Tap on any one to expand it:

Omega Knockout

Platform Role Span
Unity Solo Developer Feb 2024 - Aug 2024

Omega Knockout is an Arcade Boxing game enhanced with unique enemy specials and strategic player power-ups. Each special and power-up adds a new mechanic to the fight, providing fun and variety to an already engaging — quick reflexes and strategic thinking — arcade experience. The game is complemented by a 16-bit retro art style that improves readability and eases the timing of player actions.

  • Diverse Opponents: With 10 unique opponents, each featuring a distinct fighting style and special mechanic, Omega Knockout challenges players to adapt their strategy to emerge victorious. Identifying and countering opponent moves is key to progression.
  • Dynamic Power-ups: Explore five unique power-ups, each adding a distinct strategic layer to gameplay. Omega Knockout encourages players to find the power-up that best suits their style and adds fun to their fights, making every encounter both a strategic decision and a personal preference.
  • www.omegaknockout.com

Engineering Director of Games Execution

Platform Role Span
Unity Director of Engineering May 2022 - Aug 2023

Directed the integration and execution of games developed by internal and external teams for the WW Platform.

  • Lead the team in the development and evolution of the game integration SDKs for internal and external teams.
  • Responsible for integration of all games into iOS, Android and Web Platforms.
  • Lead the maintaneance of games currently existing in the platform.

Skill Tech 3 Prime Games

Platform Role Span
Unity Director of Engineering Jan 2021 - March 2021

New tech for fast paced development and integration of games into the World Winner platform.

  • Design and imeplementation of non deterministic games with minimal integration effort into the existing deterministic pipeline.
  • Lead the development of the new SDK and tools for internal and external development teams.
  • Implementation of the Web SDK for WebGL ports of SKT3 Prime games.

Wheel of Fortune

Platform Role Span
Unity Lead Programmer Jul 2021 - Apr 2022

Wheel of Fortune was a unique game because it had to validate in the server but serve questions as the player played the game. To that end we designed a data safe server that would serve the questions to the client and work with the validation server to ensure the player didn't cheat by fetching question data outside the game.

  • Design and implementation lead of the game.
  • Design of the deterministic engine with asynch web fetch requests for the game questions.
  • Team leadership from inception to release.
  • Design and implementation of the deterministic datasafe system to validate games while offering async question fetches.

Bingo

Platform Role Span
Unity Lead Programmer Jan 2021 - March 2021

Bingo game using the new Skill Tech 3 Platform. The game proved Skill Tech 3 to be a success within the WorldWinner platform.

  • Development lead of the game as a deterministic SKT3 game.

Skill Tech 3

Platform Role Span
Unity Lead Programmer Jan 2021 - March 2021

We decided to categorize the games in the platform by tech generation with Skill Tech 1 being the initial batch of Unity Games embedded in the app, Skill Tech 2 the web Phaser games and Skill Tech 3 the Unity Games to be implemented in separate Unity projects and added through the new Skill Tech 3 game integration pipeline for the WorldWinner App.

  • Design and implementation of the Skill Tech 3 SDK for internal and external game dev teams.
  • Design and implementation of the validation pipeline for deteministic games in Skill Tech 3.

Catch 21

Platform Role Span
Unity Lead Programmer Jul 2020 - Dec 2020

Catch 21 was an effort to streamline the development process of games for the WorldWinner platform. After the streamline process, the game was made in 10 weeks and polished/tested in 2 extra weeks, the game went to production without any issues as the first 12 week project of the platform.

  • Streamlined the development process for fast paced game development.
  • Lead the development from inception to release in 2 months.

Bejeweled Champions

Platform Role Span
Unity Lead Programmer Jan 2020 - Jun 2020

Bejeweled Champions is an amazing technical achievement, it implements a match 3 deterministic logic engine that was designed to run for 40 hours straight with cascading gem matches and interactions without any issues. The game was made in Phaser and adapts to any device on any resolution.

  • Lead the development team from inception to release.
  • Match 3 engine completeley made with integer logic for multiprocessor determinism.
  • Design and implementation of all mechanics within the deterministic engine.

Solitaire Rush

Platform Role Span
Unity Lead Programmer Jul 2019 - Dec 2019

Solitaire Rush is a Unity/Phaser hybrid game with a common abstract display API between platforms and a deterministic model for validation.

  • Design and implementation of the common Phaser/Unity layered framework to create a single game for both technologies.
  • Lead the team from inception to release.
  • Succesfully created the game so that it felt the same in Phaser (Web) and Unity (WW App).

Spider Solitaire

Platform Role Span
Unity Senior Programmer Jan 2019 - Jun 2019

Spider Solitaire is a Phaser solitaire game in the WW platform.

  • Consolidation of the Phaser game dev architecture for World Winner.
  • Design and implementation of the game mechanics.
  • Implementation of the Phaser prototype for fast kickoff of future Phaser projects.

Pop N Plunder

Platform Role Span
Unity Senior Programmer Jul 2018 - Dec 2018

Pop n Plunder is a Phaser bubble pop game with deterministic 2D physics.

  • First Phaser game in World Winner.
  • Architectural definition for future Phaser games in the platform.
  • Design and implementation of the bubble popper engine.
  • Design and implementation of the Voronoi level generator tools.

World Winner Angry Birds

Platform Role Span
Unity Senior Programmer Dec 2017 - Jun 2018

After Sparcade became WorldWinner, a porting effort was made to adapt some of the games including Angry Birds to the new platform.

  • Android port of the deterministic 2D physics engine and it's integration with the game.
  • WebGL Implementation including assets download optimization and adaptation of the 2D deterministic physics engine.

WorldWinner Tetris

Platform Role Span
Unity Senior Programmer Oct 2017 - Dec 2017

After Sparcade became WorldWinner, a porting effort was made to adapt some of the games including Tetris to the new platform.

  • Revamp of the deterministic game model to adhere to the new standard in order to validate the game on the WW servers.
  • Integration of the game code and assets into the new WW pipeline for games integration.

Sparcade Pacman

Platform Role Span
Unity Lead Programmer Nov 2016 - Oct 2017

Sparcade pacman offers the classic pacman experience paired with real money betting on the Sparcade platform.

  • Architectural baseline creation for the programmers to adhere to a design standard.
  • Tasks planning and distribution amongst the programmers.
  • Daily code review of the programmers.
  • Overall architecture definition to cope with server validation (when a playthrough ends, all the inputs from the player are sent to the server and an accelerated simulation is performed to calculate the score and compare it with the alleged score from the client).
  • Design of an integer only pacman logic to allow validation (floating point ops may give slightly different results across different processors).
  • Special pellet implementation: Because of validation in the server, each pellet could not cause an interaction with pacman, it would have been too expensive. Instead the pellets are a property of the edges of the maze graph and prediction was used to eat them in the client.
  • Design of the game view: The model processes inputs and triggers events. In the server the events are ignored but in the client the events are handled by the view to show the player what’s happening.
  • Maze layout change design and planning.
  • Conveyor belts game mechanic
  • Sundae game mechanic
  • Handled GSN SDK updates to keep the game compliant with the platform while minimizing potential bugs.
  • Animated background implementation.
  • Custom Cg Shaders: This pacman version uses custom shaders to increase the visual quality and reduce the assets load at the same time.
  • Game Link

Sparcade Two Dots

Platform Role Span
Unity Senior Programmer Jun 2016 - Nov 2016

This is an adaptation of the two dots mobile game to the sparcade platform.

  • Analysis of the two dots original code and proposal of a conversion strategy
  • Model logic baseline
  • Tutorial implementation
  • Game Link

Air Adventure Slots

Platform Role Span
Unity Lead Programmer Oct 2015 - Nov 2015

This was a slot machine made with Unity in which you travel the world collecting prizes.

  • Collaborative generalization of the slot machine code from other projects to separate the machine logic from the visual customization.
  • Planning of the tasks to create the air adventure visual customization.
  • Tasks planning and distribution amongst the senior developers.

Tribal Idol

Platform Role Span
Unity Lead Programmer Oct 2014 - Oct 2015

Puzzle game based on bingo in which you rescue tribe members from the board daubing symbols and using powerups.

  • Architectural baseline creation for the programmers to adhere to a design standard.
  • Tasks planning and distribution amongst the programmers.
  • Daily code review of the programmers
  • Assets API definition with an external CDN, local filesystem caching and bundles embedding for the initial playthrough.
  • Texture reuse system using asset bundles to share them between scenes.
  • Adaptation of the falling mechanics of the Match3 engine for the cascading bingo game type
  • IOS auto build system with Jenkins
  • Game Link

Wicked

Platform Role Span
AS3 Flash Lead Programmer Feb 2013 - Oct 2014

Match 3 game based on the broadway musical. The game has an interesting progression mechanic over a big maze filled with gems.

  • IOS and web flash build pipeline definition to be able to build the game in Windows.
  • Generalization of a Match 3 engine from previous match 3 games.
  • Adaptation of the new Match 3 engine to scrolling boards with thousands of gems.
  • Implementation of the score calculation
  • Creation of an automated Adobe Air app that tested the game’s logic and animations with pseudo-random inputs. This helped us improve the robustness of the code.
  • Definition of a process to include new gems and obstacles through the implementation of an abstract design
  • Localizable UI framework for flash UIs
  • Player IO integration for player profile and messaging
  • Local saves for offline play and PlayerIO cloud saves with synchronization across devices.
  • Tutorial implementation with a flow of stages that had input and graphic masks triggered and removed by game events.
  • Social integration with facebook invite, requests, gifting and friends portrait on map.
  • Memory optimizations for the game to run appropriately on IOS, the max amount of RAM memory we could safely allocate in IOS at the time was 64MB.
  • IPA size reduction to 35MB for 3G download by moving most assets to the CDN.
  • Ads implementation for web and IOS with HasOffers
  • GameCircle implementation for the Amazon kindle port
  • Google play implementation for the Android port
  • Game Link

Everybody Draws

Platform Role Span
AS3 Flash Senior Programmer Aug 2012 - Mar 2013

Multiplayer game made with flash. Players take turns to draw, the rest of the players try to guess the drawing.

  • Multiplatform scalable UI framework in flash for web and mobile
  • Player IO integration for multiplayer
  • Multiplatform multiplayer matchmaking
  • Multiplayer match logic implementation; replicating draw strokes and player actions
  • Game Link

Jewels of the Amazon

Platform Role Span
AS3 Flash Senior Programmer Jun 2012 - Sep 2012

Match 3 game made with Flash.

  • Gameplay re-implementation following an MVC pattern. The prior implementation had reliability, design and performance issues, my new implementation corrected all of those shortcomings.
  • The new gameplay implementation was successfully rolled out with the game already in production
  • Game Link

Disney Dream Kingdom

Platform Role Span
Unity Senior Programmer Aug 2011 - Feb 2013

The project was a park where the player could purchase and update rides. We were tasked with creating rides of some iconic Disney ips.

  • Adobe Air jigsaw puzzles generator
  • Adobe Air application that converted a flash swf UI into an xml representation with a sprite atlas
  • Implementation of a parser in Unity to display the UI
  • Camera movement implementation for the Soarin over California minigame using splines
  • Silhouette highlighting via edges detection on meshes and on the fly silhouette mesh update
  • Story system with camera movements, character animations and assets management for the sleeping beauty minigame
  • CDN integration to reduce the initial download
  • Soaring clouds dynamic generation
  • Implementation of the sleeping beauty castle where the different puzzles were selected
  • Unity project adaptation/optimization to be able to build the mini games with the flash exporter
  • Monsters Inc skinning of the sleeping beauty jigsaw mechanics
  • Dumbo skinning of the soaring mechanics
  • Dumbo skinning of the sleeping beauty story system

Caribbean Paradise Slots

Platform Role Span
AS3 Flash Senior Programmer Jul 2011 - Sep 2011

Slot machine made with flash.

  • Minigames implementation including random rewards design to keep the machine’s return rate
  • Montecarlo simulation for payouts fine tuning
  • Game Link

Bubble Atlantis

Platform Role Span
AS3 Flash Senior Programmer Jun 2011 - Sep 2011

Puzzle game with a rotating mesh of gems at the center that you must shoot with a gem cannon.

  • Stand alone adobe air editor to define gems placement
  • BaaS integration with PlayerIO for Profile, messaging and achievements
  • IAP implementation of lives with FB credits
  • Facebook integration for messages feed, requests and invite
  • Game Link

Acrobat Smashers

Platform Role Span
AS3 Flash Senior Programmer Apr 2011 - Jul 2011

Angry birds clone made with flash.

  • Box2D physics adaptation for the different elements of the game
  • Creation of the visual representation of the game elements and linking them to their Box2D physical counterparts
  • Game Link

Autowars

Platform Role Span
AS3 Flash Senior Programmer Sep 2010 - Jun 2011

Adventure RPG made with flash. Open world with missions and customizable cars.

  • Stand alone Adobe Air editor with advanced tile bitmasking for automatic placement of roads
  • Visual quest creation editor module with triggers and actions
  • Box2D physics adaptation for car and weapon physics
  • Optimization of asset instantiation and destruction on a 400x400 tile map to cope with Adobe flash limitations
  • Custom rendering pipeline using low level graphical APIs. The hierarchical rendering approach of flash had an unacceptable performance overhead
  • GPS System that distributed the A* search implementation across multiple frames to prevent performance hiccups
  • Enemy AI with goals and steering behaviors
  • Integration of Shockwave backend for player profile and IAPs
  • Implementation of a tutorial system that masked dialogs and actions
  • Game Link

B-A-Mazed

Platform Role Span
XNA Indie Game Developer March 2010 - Jul 2010

3D maze game in which you control the maze’s orientation rather than the player’s avatar. The objective is to reach your girlfriend before your opponents do, you can use powerups to your advantage or your opponent's demise.

  • Advanced shader model 3 graphics
  • AI implementation with goals and steering behaviours
  • Continuous physics implementation
  • Game Link

Old School Destruction

Platform Role Span
XNA Indie Game Developer Jun 2008 - Sep 2010

Multiplayer single screen 3rd person shooter. It used advanced Direct3D 9 rendering techniques to compensate for XNA’s slow runtime. For example, it used instancing on the enemies storing the bone animation data in textures to draw all enemies with a single call. It was also made entirely by me, I even did the 3D art in blender.

  • Advanced shader model 3 graphics
  • AI implementation with fuzzy logic, goals and steering behaviours
  • Continuous physics implementation
  • Game Link

BetaCell Toolkit

Platform Role Span
XNA Indie Game Developer Jun 2007 - Jul 2008

Toolkit to aid XNA game development. Made entirely by me and used in both Old School Destruction and B-A Mazed. The main advantage of the toolkit was compile time effect composition for XBOX 360 and PC. The developer specified the effect components (like shadow mapping or bump mapping) and the toolkit created the .fx file and compiled it. For more information see the tutorial section of the toolkit’s page.

  • Reusable set of functionality for XNA
  • Link
Home Professional Profile Professional Projects Contact
Home

David Diaz

Contact

Phone: (+57)3175637822
Email: david.a.diaz@gmail.com

LinkedIn