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