Arc Apellago

Engine Programmer 2019 - 2020

"Traverse the sky in this open-air platformer featuring elegant, fluid movement and swift combat. Play as a mysterious assassin-like wielder of spirit energy to strike down enemies, restore the great guardian statue and return the land to the earth."

Team size: 12

Development Time: 8 months

Platform(s): Windows, Linux

Engine: Custom

Language: C++

About

Trailier:

Arc Apellago was my sophomore game at DigiPen Institute of Technology. The team of which consisted of 6 programmers, 4 artists, 1 deigner and 1 sound designer who were all outstanding in their own rite. It was a great experience full of lots of learning opportunities about systems, tools, cross-platform and cross-discipline development. Go try it out on Steam!

Contributions 

  • Input integration

    • Using SDL2, I wrote an easy to use wrapper that served as a key component for abstracting away the lower levels of control.

  • Inter-object messaging

    • Type specific messaging system to communicate with a child of a particular enemy class​.

  • Event system

    • With the help of meta template programming, this event system was a core feature throughout development, leading to faster integration.

  • Turing complete, custom scripting language & interpreter

    • Tired with ugly conditionals for input and having to recompile after changing one value, I wrote my own Turing complete​ scripting language to map multiple inputs into a single action which were editable at run time.

  • Cross discipline tools and pipeline

    • Built the pipelines to serve the ​non-tech disciplines

    • Managed a build server to keep everyone up to date on non-broken builds

  • Cross platform support and development

    • Provided development support for both Linux and windows along with helped manage the code base to fix any incompatibilities.

  • Other

    • Helped to polish the game​ with VFX

DeltaBlade 2700

Gameplay Programmer 2019

"Fight as a Rogue Cyberpunk Ninja-Robot in DeltaBlade 2700: an Action-Packed, High-Energy, Competitive Local Multiplayer Brawler with Explosive, Fast-Paced Sword Combat... and Jetpacks."

Team size: 11

Development Time: 8 months

Platform(s): Windows

Engine: Custom

Language: C

About

DeltaBlade 2700 was my freshman game at DigiPen Institute of Technology and my first big project since learning how to program the semester before. It was one of the best development experiences that I have had still to this day. It was featured at PAX-WEST in 2019 and was one of the first games published on Steam through DigiPen. It was fun developing and is fun to play!

Contributions 

  • Input integration

    • Integrated support for keyboard, mouse and controller through Window's XInput

  • UI utilities and design

    • Designed and implemented some of the core systems behind the more advanced UI sequences​

  • Combat and weapon logic

    • Programmed the main combat logic behind the weapons

  • Collision

    • Co-wrote the underlaying collision between objects and the reaction to those events occurring

  • Core gameplay mechanics

    • Hit boxes, score logic etc.

Trailier:

Csys 

Cross-platform C++ Custom Console

Library

2020

"Fast iteration is a fundamental part to any successful application. This cross platform framework facilitates the access to your data through command line arguments, giving you more control over your program at runtime. "

Team Size: 2

Development Time: 3 months

Platform(s): Windows, Linux

Language: C++

About

The Csys library allows the user to have the same level of control over their program at run time, that they normally would over the OS through a standard terminal. This includes commands + command line arguments, auto complete, etc. This framework was developed as a summer project in collaboration with Roland Munguia.

 

My dive into network programming has led me to use Csys to facilitate the conversation between server and client. With its built-in error checking, you can rest easy knowing what you are passing in is what is being ran.

Contributions 

  • System design

    • Designed how the client interacts with the library's functionality​ and the kind of expandability some of the functionality had

  • Argument parsing algorithm

    • Wrote the parsing algorithm for the command line arguments for both primitive and custom data types

  • Meta template programming

    • Using MTP, I was able to enforce a syntax for the client that made sense and was easy to use

  • Cross platform support and development

    • Developed in Windows and Linux for cross-platform compatibility purposes​

  • Unit testing

    • Collaborated with Roland Munguia to implement over 100 unit tests, testing all aspects and edge cases of Csys's functionality

C++ Events API

2020

"Real-time applications typically have many things that must be interconnected. Whether its a controller input resulting in the player jumping, audio playing etc., or a time sensitive event such as a client entering a queue, this api makes it quick and easy to modulate those responses."

Team: Solo

Development Time: 3 months

Platform(s): Windows, Linux

Language: C++

About

After the completion of Arc Apellago, I decided to rewrite its event system and make it a standalone library for people to use. This was one of the more technical endeavors I embarked on as it required a vast amount of meta template knowledge to be completed. I learned a lot about compile time operations and pushed the limits of C++ through "Substitution Failure Is Not An Error" (SFINAE), fold expressions, macros and many more techniques.

 

It has become a very useful library in my arsenal for many projects as any real time application can benefit from it. All documentation can be found on the Github page!

Features

  • Universal function signature support

    • Support for all C-style and member functions including variadic and lambdas

  • Easy to use syntax

    • Easily understandable syntax to eliminate the learning curve of the API

  • Light weight and performance focused

    • Everything was designed with performance in mind, therefore having little overhead

  • Wide range of applications

    • Should be used in any real time application​​

  • Extensive documentation and examples

    • o    The documentation covers from the functions, their complexity along with ​​issues that may come up with DLLs and more​

© 2023 by Tristan Bouchard