Andre Duvoisin

Blog · Portfolio · Resume


Chambara

Back End Engineer (Node.js with MongoDB)
Spring 2015 - Spring 2016
Website: chambaragame.com

Overview

Chambara is a networked multiplayer stealth-deathmatch game with only two colors, allowing players to seamlessly camouflage themselves with the environment. This empowers players to sneak, search, and ambush each other in dramatic, stylish duels.

Chambara was created with a team of 20 people. The front end uses Unity3D, while the back end consists of Node.js and MongoDB on Linux.

Programming Contributions

  • Designed and implemented the back end platform to communicate with both the game client and server, on both PC and PS4. Includes:

    • Player Profiles
    • Matchmaking
    • Analytics
    • Game Server Management
  • Created a build system with Jenkins for multiple platforms (PC, Mac, Linux, PS4)
  • Fleshed out the deploy system from build servers to production Azure boxes

Skills Developed

  • Node.js
  • MongoDB
  • Jenkins
  • Linux
  • TCP
  • Build and Deploy Systems

Polyseum

Gameplay Engineer, C++ (Unreal Engine 4)
Spring 2014 - Spring 2015
Website: polyseum.com

Overview

Polyseum is a team-focused first person shooter where the goal is to knock enemies into hazards or off of the stage in order to kill them. In a sense, it’s akin to a cross between Super Smash Bros. and the first person shooter genre, with emphasis on teamwork and player roles rather than headshots and twitch reactions.

Polyseum was created with a 20-person team in C++ using Unreal Engine 4.

Programming Contributions

  • Architected in-game chat system
  • Added on to our status effect system

    • Hitstun - After hit by an attack, the player is input locked for a short amount of time.
    • Gravity Reset - When hit by a certain attack, gravity is lost and slowly regained.
    • Damage Over Time - When hit by an attack, the player takes a small amount of damage every interval for a certain amount of time.
    • Area Damage Over Time - Damage Over Time applied to a player if they’re located within a certain area.
  • Game Flow: Pre-Game to Match (round-based) to Post-Game

    • Pre-Game - Before the game begins, players may freely choose their weapon kit, face off against players on the other team, and “ready up” to move on to the match. Once the match begins, players are locked into their weapon choice.
    • Game Modes - Responsible for the Arena game mode in which the goal is to eliminate the enemy team. Surviving team wins the round, and first to three rounds wins!
  • Spectator mode with a free-flying camera
  • Handled reconnecting to the game while maintaining player stats
  • Dash formula

Skills Developed

  • C++
  • 3D Math
  • Networking Models
  • Perforce

The Maestros

UI Engineer, Scaleform GFx (Unreal Development Kit)
Spring 2013 - Spring 2016
Website: maestrosgame.com

Overview

The Maestros is a fast-paced 3v3 real time strategy game in which killing neutral enemies gives the player base units that can then be transformed into more powerful units. Each player controls a commander who has unique abilities and supplements their army. Players can customize their strategy by choosing between 6 different commanders and a selection of 12 units on 2 unique races. Kill enemy commanders to score points and win!

The Maestros was created on a team of 35 people using Unreal Development Kit (UDK).

Programming Contributions

  • Deigned and created the front-end for 3D Main Menu system.
  • Implemented front-end for a login system with session information.
  • Integrated against a web API using HTTP and TCP to form a working lobby system. Lobby flow includes:

    • Creating a lobby or selecting from a list of available lobbies.
    • Changing and replicating game settings (e.g. Game Mode, Team Select)
    • Lobby chat
    • Commander select with live updates to teammates, so that you may see which commanders your teammates are choosing before locking in.
    • After everyone locks in their commander, a message is sent to the lobby server to transition to the game. The client connects to the game server upon receiving its network information from the lobby server.
  • In-game status overlay with information such as kills/deaths/assists, commander information, and army composition information.
  • In-game pause menu
  • Victory and defeat overlays
  • Post-game score screen with final match results and statistics.

Skills Developed

  • HTTP/TCP
  • Scaleform GFx
  • UnrealScript
  • ActionScript 3
  • Perforce

Super Smash Skyrim

Gameplay Engineer (C++)
Spring 2015

Overview

Super Smash Skyrim is a networked multiplayer game where the object is to attack and grab enemies in order to hurl them off the stage. It is written using Prime Engine, a custom C++ game engine, using C++ along with Maya, Lua, and Python for level editing.

Super Smash Skyrim was created with a team of 4 people.

Programming Contributions

  • Loading assets on level start
  • Networked 4-player support
  • Movement and attack mechanics
  • Physics system (as it relates to gameplay)
  • Time syncing and client-side prediction
  • Win conditions

Skills Developed

  • C++
  • TCP and UDP
  • 3D Math and Physics for Games
  • Game Engine Systems
  • Gameplay Systems

Spirit

Gameplay Engineer, C# (Unity3D)
Fall 2014 - Spring 2015

Overview

Spirit is a free-flowing rhythm game created for iOS using Unity3D (C#). The player traverses the cosmos as Spirit and taps on the screen when Spirit comes in contact with a pad, which are laid out to the beat of the song. Keeping the rhythm is essential to maintaining your flow.

Spirit was developed in a 3-person team: two engineers and a sound designer.

Programming Contributions

  • Wrote a sound wave analyzer in order to distinguish the strong beats in a given sound file.
  • Dynamic level generation based on the timing of the beats.
  • Spirit movement from pad to pad throughout the levels.
  • Scoring system based on input timing.

    • “Sweetspotting” the pads netted more points.
  • Overall game flow: traversing the level, pad input timing, and beginning/death/end states.
  • UI and Menu system

Skills Developed

  • C#
  • Unity3D
  • Sound file analysis
  • iOS development

Starfox 65

Gameplay Engineer, C# (Microsoft XNA)
Spring 2014
GitHub: git.io/Starfox-65

Overview

Starfox 65 is a 4-player split-screen 3D space shooter programmed in C# using the Microsoft XNA game engine. The object of the game is to fly around an arena and shoot down the ships of opposing players, using either normal shots or lock-on targetting.

Starfox 65 was made in a 4-person team.

Programming Contributions

  • Spring camera that follow each ship
  • Shooting; regular and homing projectiles
  • Lock-on Targetting
  • Reticle projected in front of the player’s ship
  • Xbox 360 Controller input
  • Split Screen gameplay
  • Main Menu

Skills Developed

  • C#
  • 3D Vector math
  • Camera programming
  • Input support for controllers

Game Engine

Software Engineer, C++
Fall 2014
GitHub: git.io/Game-Engine

Overview

As part of a Game Engines class, I developed a game engine demo that included:

  • SIMD Math Library
  • DirectX 9 Graphics
  • Skeletal Animation
  • Custom shaders, including implementing phong shading.
  • Camera - Mouse and Keyboard control
  • Memory Allocators (Stack and Pool)

Skills Developed

  • C++
  • 3D Math
  • Memory Management
  • Graphics

SimCity201

Software Engineer, Java
Fall 2013
GitHub: git.io/SimCity201

Overview

As a final project for an agent-focused multithreaded programming course, our team of 8 people created a city simulation that would run independent of human input. The city had many different facets:

  • Citizens who eat, sleep, pay their rent, have jobs, travel about the city, go to the market, visit the bank, and go to restaurants.
  • 8 restaurants that citizens may choose to eat at.
  • A market that citizens may buy food or cars at.
  • A bus system to traverse the city.
  • A control panel that controlled things like number of citizens and different real-world scenarios (e.g. a restaurant runs out of food).

Programming Contributions

  • Bank GUI
  • Bank Integration
  • Citizen Technical Design
  • Base and Citywide GUI Technical Design
  • Control Panel Design, Implementation, and Integration
  • Zoom-In View Functionality
  • Trace Panel Integration
  • Restaurant Integration Manager

    • Responsible for merging individual restaurant projects into one working city.
  • Weekend Behavior

    • Disabling/Enabling Workspaces
  • Role Switching (Events)

    • Citizens had the ability to change jobs.
  • Transportation Integration
  • Bug Squasher

    • Fun Fact: I was nicknamed Fix-It Felix for my mad bug squashing skills!

Skills Developed

  • Java
  • Multithreading
  • Agent-based Design
  • Unit Testing
  • GUI Design