This is a multi-year project which is being developed to teach users about the pre-trip inspection portion of getting their CDL license. I am leading a team of mostly programmers to develop this using Unity, and we are about midway through the development effort. My main duties involve deciding architecture of the game and developing some of the high level systems, while delegating work to my part-time co-workers.

Some of the systems that I have worked on include:

  • Overall Gameplay Engineering and Architecture
  • Text Resource management system
  • Subtitles
  • Level progression system
  • Various other interactions

Here is a very brief highlight video, this project is still in development which is why it is relatively short, most of the development has been building out architecture

Highlights:

Text Resource System:

I developed a resource system that allowed developers to add in dialogue and audio clips in an easily accessible editor. With this system it would also be easy to implement other languages with no changes to code, and to make adjustments to dialogue lines.

Subtitles:

Subtitles in VR games are difficult, especially when the player will be very close to the objects in the game world. Here are some of the problems that we faced:

  • Subtitles being constantly visible to the player. If we were to place the subtitles somewhere in world space the user would have to look away to read what the subtitles were saying. It was a goal of ours that people that or either deaf, or hard of hearing would be able to enjoy the game

  • If a player is close to an object and has their face near the surface, placing the subtitles at the bottom of their view will cause a headache while the eyes try to determine what it should be focusing on.

  • The text may be hard to read in certain situations

The solution we are currently working with does something to address all of those issues. The subtitles will initially start near the bottom of the field of view. Once the player has changed their current gaze to somewhere else the subtitles will then move to a location that is easily visible, but not directly in their line of sight. We would also ensure that the subtitles were placed in front of whatever object they were currently viewing so as to prevent nausea which can be caused by trying to look at something that was further away than something in front of it. The way the subtitles render, they are always drawn over everything. We also added a background for the subtitles so that they will always be visible. The Subtitles can be seen at the 31 second mark in the video above.

Level Queue System:

This level queue system essentially allowed us to create small building blocks of reusable code which can be combined to build out new content quickly. Each reusable block is a “command” which contains an execute function. These are then placed into the queue and are executed in the order that they were queued in, allowing for an intuitive way to program linear content.