Too Cool for Internet Explorer

Thomas O'Connor

Console and PC Game Programmer with a passion for writing and combining game systems (animation, physics, gameplay, tools), learning new things, and collaborting to create fun and unique games!


Education

DigiPen Institute of Technology - Graduated May 2009

Major - B.S. in Real-Time Interactive Simulation - Equivalent to a B.S. in Computer Science

Minor - Mathematics

Worked with several teams to design, produce, develop and test games throughout the course of an entire year, specifically focusing on project management, game design, and high end programming and math skills.


Technical Experience

Platforms - PC, Xbox 360, Nintendo DSi, Google Native Client, Multiplatform engine development

Computer Languages - C/C++ (8 years), Lua (6 years), XML (1 years), HLSL (1 year), C# (1 year), Action Script/Java (1 year), MySQL (.5 year), HTML/CSS (.5 year), PHP (.5 year)

APIs - Microsoft XDK, DirectX TWL/Nitro SDK and System, PhysX, Bullet, Box2D, XNA, Valve Source Engine, ASP.NET, Winsock, SDL, GDI/GDI+

Software - Visual Studio, CodeWarrior, Perforce, SVN, Microsoft Office, Adobe Flash, Hansoft, Jira, Bugzilla, FogBugz, Trac, MediaWiki


Professional Experience

Programmer

5TH Cell Media

August 2011 - July 2012

Hybrid, XBLA Summer of Arcade 2012

Hybrid is an innovative multiplayer 3rd person cover-based shooter for XBLA using the Valve Source Engine. Primarily worked on gameplay systems, audio integration, UX through Scaleform/Flash, and XBLA systems.

Duties

  • Gameplay Programming: Weapons, Abilities, Game Modes, Special Effects, Main Menu, Leaderboard Menu, HUD, Server/Client synchronization and prediction.

Engineer

FuelCell

February 2010 - July 2011

Insanely Twisted Shadow Planet, XBLA Summer of Arcade 2011

Worked on a very small programming team to build a game engine from scratch and ship a 60fps XBLA game in time for Summer of Arcade. Worked closely with artists and scripters to define, implement, and support engine and tool features that met their needs. Worked with an external test team to deliver builds and fix reported issues.

Duties

  • Programming: Animation systems, Effect systems, Bullet physics integration, Lua binding, Game Object systems, Streaming world, WxLua based Level Editor, Script Systems, Resource and data formats/pipeline/run-timemanagment, Build tools, debug systems
  • Engineering: Build configurations and settings, Publisher submissions, feature and bug fix scheduling
  • XBox 360 Live Arcade: XContent packages; profile management and guide integration; save files; leaderboards; achievements; trial mode; TCR/MAT, certification

Software Developer

FishBeat LLC

Sept. 2008 - Nov. 2009

Worked on an unreleased music based shooter for XBLA, based on the IGF 2008 Student Showcase winning game "Synaesthete"

Duties

  • Programming: Integration with Bullet and PhysX; physics component editor; character controller and contact responses; Lua system debugging, performance and memory management
  • Gameplay: Beat-matching; player feedback; UI/HUD; prototypes
  • XBox 360: profile management; leaderboards; achievements; guide integration; trial mode

Vice President, Developer

EveryWare Inc.

May 2009 - Present

Founder of a video game startup making awesome downloadable games for the DSiWare, during our free time

Projects

  • "Power Defense" - unreleased DSiWare title

Duties

  • Programming: Nintendo DS memory and resource management; 2D and 3D rendering systems; physics; gameplay systems; build configurations
  • Business: Contacting publisher and exploring contract work opportunities

Student Game Projects

"Froggle"

Technical Director

2007 - 2009 (Junior/Senior Years)

  • IGF 2009 Student Showcase Nominee, and 2009 Indie Game Showcase Entrant
  • Featured in GamePro magazine (Italy)

3D cartoon-style adventure/platform game where the player uses his long sticky tongue to grapple and swing through large interactive environments

Duties

  • Programming: Engine architecture; rigid-body physics engine; Lua integration; script management; game object management; debug systems and tools; internet/LAN multiplayer; resource management; cinematic and editor features; input system; graphics system optimizations and post-processing effects
  • Gameplay: Scripting for physics-based player swinging mechanics, NPC/Game Object interaction, level rules and progression; multiplayer; cursor and camera behavior logic; mini-game logic
  • Production: Production scheduling and milestones; Wiki based design and technical documentation

"GrappleMod"

Level Design / Programmer

2007 (Junior Year)

Action-packed Half-Life 2 modification created by a team of 5 programmers

Duties

  • Programming: Added a barnacle weapon that works as a grapple beam into the Valve Source Engine; pulled the team's levels together into a packaged mod
  • Design: Created a tutorial level and a boss fight level in the Hammer Editor; imported new models & textures

"Redevilopment"

Product Manager / Programmer

2005 - 2006 (Sophomore Year)

2D "metroid-vania" platform game, playing as the evil villain taking over a kingdom by placing deadly traps and thwarting the hero

Duties

  • Programming: Lua Integrating and script management; Lua binding using ToLua++; LAN networking; multiplayer gameplay
  • Production: Marketing materials, game manual, DVD box art

Overview of School Experience / Specialties

Teaching Experience

  • Teaching Assistance for Networking Course (Fall 2006 - Spring 2008) - Instructing and grading students on windows based network projects.
  • Lua Lab Sessions (Fall 2008 - Spring 2009) - Coordinated and volunteered to host instructional classes advising other students on embedding Lua into game engines.

Using Lua in Game Projects

  • Binding Lua in new projects; Integrating Lua with existing C++ code; Managing lots of scripts files
  • Hand writing as well as automatically generating very large glue function libraries (Lunar, ToLua, etc)
  • Complex Gameplay logic for various game types; logic for AI, UI and game rule systems
  • Game Object configuration, management, communication;
  • Serializing and processing physics contacts and network packets
  • Editors for creating Game Objects, cinematics, application settings, and content management
  • Teaching Lua syntax, the Lua C-API, and various project integration and debugging techniques
  • XBox Live guide integration, memory allocation, garbage collection, performance and thread safety
  • Debug systems - logging to files and console windows, in-game console command system, external tool integration, and variable watch windows

Game Development

  • Game engine architecture
  • Systems for serialization, messaging, game objects, scripting, physics, networking
  • Project scheduling, milestone management; Waterfall and Scrum methodologies
  • Working on small teams and wearing multiple hats

Networking

  • Reliable UDP for Server/Client model
  • Packet and Session management
  • Networked based gameplay

Animation

  • Boned animation, skinning
  • Non-uniform scale per bone
  • Script based bone control that modifies currently playing animation
  • Combining animation with physics for artist driven interactive environments

Physics

  • Particle, Mass-aggregate, and Rigid-Body physics engines
  • Rigid-body integrators: Euler, Verlet and Runge-Kutta
  • Rigid-body collision detection and impulse based resolution
  • Integrating PhysX, Bullet, and Box2D in game projects
  • Physics based gameplay

Math

  • Linear Algebra
  • Quaternions
  • Calculus
  • Curves & Surfaces