LHD SWCM

*Note – As some information about this project is still undisclosed I am only able to publicly share Screenshots of the final project. If you would like to see video of the completed simulator in action please contact me.

LHD SWCM (Ship Walkthrough Computer Model) is a virtual training simulator for the Australian navy ship HMAS Canberra. It acts as a means to train mechanics and engineers under a repeatable, realistic and fully 3D environment. During the 2 years I was at KBR, it gave me the opportunity to work closely with CryEngine. The project had a vast team of artists, instructional designers, fellow programmers and project managers who I worked with on a daily basis.

When I first entered the project, much of the core system had already been built so I quickly had to learn about, use and improve pre-existing software solutions within the first few months. With the learning simulator set on the backdrop of a 230 meter long navy ship the integrity of the ship structure and training data had to be handled with utmost attention. I assisted with the development of tools which handled the ID data that worked in conjunction with the game engine. This pipeline allowed me to concurrently work with various programming languages and concepts.

crossSection
Cross Section of the multileveled 3D Model Ship

C# was the main language for maintaining the central tool used by designers, content developers and testers. I learned how to manipulate XML and make the data editable within the tool’s interface. I used .NET API to implement features such as document exportation, improving designer work flow, error checking and general aesthetics. Because this tool was built directly for the other members of the team constant communication was paramount. I had to maintain a solid understanding of both the ID content and the technical aspects of the tool.

IdTool2_blurredOut
The project’s main tool was an important aspect of the content pipeline

As the project used CryEngine it meant C++ went hand and hand with development. I had to understand the general engine structure to help complete tasks such as debugging AI, develop a pipe messaging system, detecting room numbers and designating ID data. The project used CryEngine’s AI navigation systems, camera system, animations and sound to allow ID content come to life in the 3D environment.

lhdAI_blurredOut
The simulator had AI guides to help end users

This project had me utilise ActionScript for the first time to develop LHD’s UI. The UI showed important information for each individual task during training modules. The UI displayed a multi leveled mini map to show current objectives, player and AI locations. Similar to the ID Tool, working with ActionScript had me communicating with UI artists to ensure the content was suitable and correctly displayed.

lhdUI_blurredOut
Flash allowed a dynamic and effective user interface

The project also had me pick up LUA and CryEngine’s Flowgraph for the training system. With them I helped develop various features such as elevators, highlight cues, doors and sound fx.

elevator
Lights and Sounds!

The project had me exposed to professional bug tracking systems, tasks management solutions and version control. I also got involved with wiki documentation and QA throughout the software development cycle. Tasks or bugs could be assigned to me from fellow programmers, artists or anyone within the project. In turn I also had the ability to designate tasks to the team. This resulted in an effective work flow where I learned from and helped others.

The LHD project reinforced my understanding of how a project manifests itself through hard work and clear communication. After the 2 year span my code was part of a multi-million dollar project. I learned invaluable lessons of professional work flow and programming practices from my personal endeavors and fellow team members.

IMG_20140206_110158_746
That’s me recording some speech for a special training module!