John Sensebe’s Portfolio

A portfolio for John Sensebe, software engineer.

Virginia Torpedo Room Block III Trainer

Platform(s): Desktop (Windows)

Role: Interaction Design / Systems Engineer

Engine / Tech: Unity (legacy version), custom trainer framework

Year: 2016


Overview

The Virginia Torpedo Room Block III trainer was my introduction to Unity and my first project at Proactive Technologies. The trainer was originally built on top of the Block I/II system, which had been written by outside contractors, and the inherited codebase was widely considered difficult to maintain. Because the project was already deep into development, rewriting the entire system wasn’t feasible — instead, I was tasked with stabilizing, extending, and modernizing the trainer while working within the constraints of an outdated Unity version and inconsistent legacy code.

Despite joining late, I delivered several foundational improvements that made the trainer more maintainable, more consistent, and easier to extend. Many of the engineering patterns I developed here became the basis for my later work on the 688i and EMALS trainers.


My Responsibilities


Technical Highlights

1. Rebuilding the UI Interaction Framework

The inherited UI code relied heavily on one‑off solutions and duplicated logic. Radio buttons, in particular, were implemented differently in multiple places. I replaced all of these with a unified radio‑button group component, where:

This eliminated a large amount of duplicated code and made future UI work significantly easier.


2. Redesigning the Valve System

The original valve implementation attempted to simulate physical torque, friction, and resistance — an approach that made sense for physics‑based gameplay but was completely inappropriate for a touchscreen trainer. The result was a system that was:

I reframed the problem as a UI interaction, not a physics simulation. The new valve system used:

This redesign made adding and tuning new valves trivial and dramatically improved usability. I later extended this system to support locking pins and other locking devices.


3. Stabilizing and Extending Legacy Systems

Because the project was already deep into development, I had to work within:

I cleaned up numerous ad‑hoc systems while preserving compatibility, ensuring the trainer could ship without a full rewrite. I also added a sortable, searchable dropdown property drawer for managing the growing list of messages supported by the system.


Engineering Challenges

Inherited Codebase

The trainer was built on top of older Block I/II work, and the code quality varied widely. My job was to stabilize and extend it without breaking existing functionality.

Outdated Unity Version

To avoid compatibility issues with legacy code, the project used an older version of Unity. This limited available features and required careful engineering.

UI/UX Consistency

The trainer relied heavily on touchscreen interactions, but the inherited UI systems were inconsistent. I unified them and made them maintainable.


Collaboration

I coordinated with other engineers to integrate my rewritten systems without disrupting existing work.


Outcome

The Block III trainer was deployed successfully, and the project established my engineering approach at ProActive and set the stage for my later leadership roles on the 688i and EMALS trainers.



← Back to Projects


© 2026 John Sensebe — Gameplay & Simulation Engineer