Development Day 1: Decoupling from the Engine

ChronoWatch v1.0 suffers (well, suffered) from two primary problems:

  • It’s actually part of the game engine (GGEngine).
  • It ships with its own macros.

It was originally part of the game engine because, while modular, ChronoWatch wasn’t intended to be used in other game engines. The work that must be done here isn’t the prevent the game engine from depending on ChronoWatch but the other way around – prevent ChronoWatch from depending on the game engine. This specifically means:

  • Cease using GGEngine’s exceptions.
  • Cease using GGEngine’s libraries.
  • Cease providing GGEngine with that awkward macro, which shouldn’t be ChronoWatch specific. It is a design decision that – should the macro be desired – the game team should re-implement it.

GGEngine’s exceptions are no longer used as of today.


Macros were originally used because it appeared to make sense that a macro should exist for quickly getting the “real” current time. This is no longer the case.

Bye-Bye Macro

Time spent: 2.5 hours. (Admittedly, some tweaks were made to GGEngine as well.)

~Nolan T Yoo


Wait, what’s this?

This is the development blog for ChronoWatch v2.

ChronoWatch is a solo DigiPen project, designed to be a drop-in C++ Code/Routine Profiler. It’s primary purpose is to calculate the costs of systems in relation to other systems and how long the full frame to process. For instance, the Graphics engine may be 65% of your game engine’s frame time, the sprite-loading system may be 30% of the Graphics system’s frame time, so on and so forth.

It is specifically for DigiPen students building a custom engine in GAM courses at the 15X/2XX levels. DigiPen does not currently offer a fully-fledged Game Engine Architecture course, and as such, these students tend to be inexperienced. While I do not intend for ChronoWatch to fill that role, I do feel that it will be of great help to students that are building their first game engine.

It’s worth noting that more than 8 days were spend developing this project – about 300 hours in total were clocked – the 8 days are those in which a prominent feature was implemented, or an interesting thought was had. Many hours went into code refactors, debugging, consultations, the configuration of this website, and so on.


~Nolan T Yoo

Hello world!

This will be the blog for ChronoWatch… or ChronoSuite… or ChronoSweetSuite.
I’m nearly certain I’m going to settle on ChronoWatch (v2.0) as the working title. At least until I feel like doing a non-DigiPen version rewrite.

Until further development, I’d like to close with a joke:

Him: Wow. There's a lot of junk in that trunk.
Me: You're still calling it a trunk? Are you using SVN? We're in the age of decentralized development, you know!
Him: ... I'm leaving.

I’m funny, I swear.

~Nolan T Yoo