World of Grey is an atmospheric point-and-click adventure game set in a world without a sun. Several generations have passed since the loss of the sun, and its absence has created a world devoid of color and the time of its existence has passed into the realm of rumor.
To facilitate the unique style of World of Grey, the environments are all hand-drawn in a black-and-white aesthetic. This means that a standard 3D rendering setup couldn't be used. Instead, each level uses a "level metadata" actor to control the placements of backgrounds and 2D elements, and also generates an orthographic perspective camera. The player character and physics parts of the environment are fully 3D, and are placed to match up with the 2D backgrounds. Some careful scaling is applied to character legs to provide the illusion of them standing on the ground plane of the background, despite the nature of the orthographic camera.
To assist in the level designer's burden, C++ code was tapped into to provide a responsive node system for default, item, and spell interactions with environment elements. These custom functions allow for quick binding of the proper actions to take when a specific item or spell is used on an interactable object.
Like the interaction system, C++ was used to provide a fast, but still powerful, method of defining and linking dialog messages, allowing for conditional checks and user selected options that morph even as the player is progressing through the conversation. These conversation messages are able to be displayed as anchored to any character or location in the level, automatically adjusting their positions and styles based on their screenspace locations and conversation data.
The inventory system allows for the collection of both items and spells, which are displayed for the player's access in expanding, scrollable containers, that move out of the way when not in use. Similarly, the options menu, found in the top left corner of the screen, expands to display the save, load, and quit options. Save Games display out of a drop-down menu that displays screenshots of when the save was taken. The screenshot system was external code that I brought into the project and integrated into the game system.