David Arturo Diaz Diaz
Verified Expert in Engineering
Computer Graphics Developer
David is a highly creative engineer with strong analytical aptitude. He has proven experience executing a game development life cycle from concept to maintenance with over a dozen shipped titles in 9+ years in the game development industry. David is a team player with excellent communication skills.
Portfolio
Experience
Availability
Preferred Environment
Google Docs, Git, Unity
The most amazing...
...thing I worked on was Sparcade’s Pacman. It made heavy use of shaders to achieve the artist’s vision and had a distributed logic due to server side validation.
Work Experience
Lead Developer
Joju Games
- Generalized common functionalities into reusable unity packages—created the Assets API and replicating the Persistence API, Localization API, and Analytics API.
- Adapted the company's match 3 code base from AS3 to Unity in C#.
- Defined the standard Jenkins auto-build system for mobile projects.
- Defined the architectural baseline for the programmers to adhere to a design standard in various games.
- Planned and distributed the Agile tasks among the programmers; was responsible for meeting the project milestones during the specified deadlines from a technical standpoint.
- Conducted daily code reviews of the programmers.
- Defined the overall architecture to cope with server validation for real money betting in Sparcade Pacman. (all the input from the player was sent to the server and an accelerated simulation was performed to validate the score).
- Served as the computer graphics expert in the company helping other teams achieve the artistic vision through CG shaders, particle systems, and custom computer graphics solutions.
- Programmed procedural shaders using mathematical equations to achieve diverse visual effects in various games.
- Worked for clients like 505 Games, GSN, Playdom (Disney), and Shockwave Games (Viacom).
Senior Game Programmer
Joju Games
- Integrated different games with PlayerIO and proprietary back-ends for different functionalities like persistence, server-side validation, and payment verification.
- Implemented a GUI system that converted a Flash SWF UI into an XML representation with a Sprite Atlas and then loaded it into Unity.
- Added a CDN integration to Unity games (with asset bundles) and flash games (with compressed assets) to reduce the web initial download or the mobile binary size.
- Added external services to many mobile games like Google Play, Game Circle, analytics packages, ad providers, error trackers, and back-end services.
- Generalized the MATCH 3 functionalities of many games into a single MATCH 3 framework for Wicked and any future MATCH 3 games in the company.
- Implemented alternative rendering techniques using low-level APIs to overcome the limitations of the standard tree structure in ActionScript 3 for open world 2D games.
- Optimized heavily the ActionScript 3 web-based games to work on mobile devices.
- Created stand alone Adobe Air editors for different games with advanced tile bit masking and mission definition modules.
- Worked for clients like 505 Games, GSN, Playdom (Disney), and Shockwave Games (Viacom).
Independent Game Developer
Freelance Work
- Implemented advanced shader model 3 graphics, variance shadow maps and instanced skinned meshes.
- Researched and applied state-of-the art AI techniques for NPCs.
- Implemented a continuous physics system from scratch with swept capsules.
- Published 2 Xbox 360 games successfully that can still be downloaded and played today.
- Created the BetaCell3 D toolkit for game development aid in the XNA platform.
Software Engineer
Isthmus Software Solutions
- Collaborated with a team of over 40 developers maintaining a powerful banking application.
- Worked for TSYS, a major payment solutions provider.
- Implemented the rewards front-end for the TSYS credit card solution by implementing Java web components connecting to a J2EE back-end.
- Tracked time and money critical bugs in a sizeable code base.
- Maintained a professional relationship with all the platform stakeholders as part of the outsourced Isthmus team.
Software Engineer
AppTech
- Acted as a software solutions consultant for local businesses.
- Designed casino management software solutions.
- Implemented layered architectures for distributed client server solutions.
- Refactored client applications that were lacking proper design and architecture.
- Estimated resources of different projects for local clients.
Certified Instructor
Sun Microsystems
- Taught the official Sun Enterprise class courses.
- Evangelized about the Java and the J2EE platform.
- Always maintained a high ranking in the course evaluations.
- Taught multiple courses to many important local companies.
- Earned 4 Java Sun certifications.
Experience
Pacman for Sparcade
• Defined the overall architecture to cope with server validation.
• Designed an integer only Pacman logic to allow validation (floating point ops may give slightly different results across different processors).
• Designed the game view. The model processes inputs and trigger 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.
• Planned and designed the maze layout change.
• Handled GSN SDK updates to keep the game compliant with the platform while minimizing potential bugs.
• Implemented the animated background.
• This Pacman version uses custom Cg shaders to increase the visual quality and reduce the assets load at the same time.
2 Dots for Sparcade
• Analyzed the 2 dots original code and proposal of a conversion strategy.
• Created the model logic baseline.
• Implemented the tutorial.
Air Adventure Slots
• Collaborative generalization of the slot machine code from other projects to separate the machine logic from the visual customization
• Planned the tasks to create the air adventure visual customization.
• Planned and distributed the tasks amongst the senior developers.
Tribal Idol
• Created the architectural baseline for the programmers to adhere to a design standard.
• Planned and distributed the tasks among the programmers.
• Conducted daily code reviews of the programmers.
• Defined the Assets API with an external CDN, local filesystem caching, and bundle embedding for the initial playthrough.
• Developed a texture reuse system using asset bundles to share them between scenes.
• Adapted the falling mechanics of the Joju's MATCH 3 engine for the cascading bingo game type.
• Created an iOS auto build system with Jenkins.
Wicked: The Game
• Defined the iOS and web flash build pipeline to be able to build the game in Windows.
• Generalized the MATCH 3 engine from the previous MATCH 3 games.
• Adapted the new MATCH 3 engine to scroll boards with thousands of gems.
• Created 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.
• Defined a process to include new gems and obstacles through the implementation of an abstract design.
• Integrated a PlayerIO integration for a player profile and messaging.
• Added a function that saves for offline play and PlayerIO cloud saves with synchronization across devices.
• Integrated social media with Facebook invites, requests, gifting, and friends' portraits on a map.
• Optimized the memory for the game to run appropriately on iOS, the target amount of RAM was 64 MB at the time
• Reduced the IPA size to 35MB for 3G download by moving the assets to the CDN.
• Implemented ads for the web and iOS with HasOffers.
• Implemented GameCircle for the Amazon port and Google Play for the Android port.
Everybody Draws
• Created a multi-platform scalable UI framework in Flash for the web and mobile.
• Integrated PlayerIO for multiplayer game play.
• Developed a functionality for multi-platform multiplayer matchmaking.
• Implemented multiplayer match logic; replicating draw strokes and player actions.
Jewels of the Amazon
• Reimplemented the gameplay 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.
Disney Dream Kingdom
• Developed an Adobe Air jigsaw puzzles generator.
• Built an Adobe Air application that converted a Flash SWF UI into an XML representation with a Sprite Atlas.
• Implemented a parser in Unity to display the UI.
• Implemented camera movement for the Soarin over California minigame using splines.
• Enabled silhouette highlighting via edges detection on meshes and on the fly silhouette mesh update.
• Created a story system with camera movements, character animations, and assets management for the Sleeping Beauty minigame.
• Integrated CDN to reduce the initial download.
• Enabled soaring clouds dynamic generation.
• Implemented the Sleeping Beauty castle where the different puzzles were selected.
• Adapted and optimized the Unity project to be able to build the minigames with the Flash exporter.
• Skinned Monsters Inc.for the Sleeping Beauty jigsaw mechanics.
• Skinned Dumbo for the soaring mechanics.
• Skinned Dumbo for the Sleeping Beauty story system.
Caribbean Paradise Slots
https://apps.facebook.com/mindjolt/games/caribbean-paradise-slots• Implemented the minigames including random rewards design to keep the machine’s return rate.
• Created a Montecarlo simulation for payout fine-tuning.
Bubble Atlantis
https://apps.facebook.com/254782291207333/• Developed a stand alone Adobe Air editor to define gem placement.
• Integrated BaaS with PlayerIO for profiles, messaging, and achievements.
• Implemented IAP lives with Facebook credits.
• Integrated Facebook for a message feed, requests, and invites.
Acrobat Smashers
• Adapted the Box2D physics for the different elements of the game.
• Created the visual representation of the game elements and linking them to their Box2D physical counterparts.
Autowars
• Developed the stand alone Adobe Air editor with advanced tile bitmasking for automatic placement of roads.
• Created the visual quest editor module with triggers and actions.
• Adapted the Box2D physics for car and weapon physics.
• Optimized asset instantiation and destruction on a 400x400 tile map to cope with Adobe Flash limitations.
• Created a custom rendering pipeline using low level graphical APIs. The hierarchical rendering approach of Flash had an unacceptable performance overhead.
• Crafted a GPS system that distributed the A* search implementation across multiple frames to prevent performance hiccups.
• Developed an enemy AI with goals and steering behavior.
• Integrated a Shockwave back-end for the player profile and IAPs.
• Implemented a tutorial system that masked dialogs and actions.
B-A-Mazed
• Developed the advanced shader model 3 graphics.
• Implemented the AI with goals and steering behaviors.
• Implemented the continuous physics.
Old School Destruction
It uses 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.
• Developed the advanced shader model 3 graphics.
• Implemented the AI with fuzzy logic, goals and steering behaviors.
• Implemented the continuous physics.
BetaCell Toolkit
http://betacell3d.com/This was made entirely by me and used in both Old School Destruction and B-A Mazed.
The main advantage of the toolkit was the compile time effect composition for Xbox 360 and for the 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.
Skills
Languages
ActionScript 3, C#, Java, HLSL
Frameworks
Unity, Unity3D, JavaServer Faces, Photon
Paradigms
Design Patterns, Agile Software Development
Platforms
Mobile, Jakarta EE, Oracle
Other
Unity Shaders, Unity3D AI, Shaders, Computer Graphics, SDKs, Game AI, Game Physics, 3D Math, Mathematics, Leadership, Web Services, Multithreading, PlayerIO, Amazon GameCircle
Tools
Subversion (SVN), Git, PlayFab, GameSparks, Google Docs, Jira, Blender, Flash
Libraries/APIs
XNA, Google Play API, Facebook API
Storage
MySQL
Education
Unity Certified Developer in Game Programming
Unity Technologies - San Francisco, CA, USA
Bachelor of Engineering in Software Systems Engineering
Universidad Javeriana - Bogotá, Colombia
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring