Samuel Jackson's Portfolio

Project: Necrodoggiecon

Introduction

Studio Simulation: Necrodoggiecon

Necrodoggiecon was a Team-Based project consisting of 7 Games Programming Students and 3 Games Development Students meant to simulate a studio enviroment


My primary respnsiblities were sole developer of the project's Level class and acompanying Level-Editor.
I also created the project's UI system used for the in-game menus.
Source-Code

Necrodoggiecon was a Team-Based project consisting of 7 Games Programming Students and 3 Games Development Students meant to simulate a studio enviroment


My primary respnsiblities were sole developer of the project's Level class and acompanying Level-Editor.
I also created the project's UI system used for the in-game menus.
Source-Code

User Interface

Functionality

The menu system I implemented has a heavy inspiration from Unreal-Engine's aproach, using Canvases and parenting to bring it all together.
UI elements are grouped together in canvases. These contain the functionality to create the various UI elements we required. When a canvas is hidden, so are the children.
The button class I created has the useful functionality to be able to pair their button presses directly to a function, allowing for an easier time when creating more complex menus.
lastly, all UI elements are managed by the UI Manager, this maintains references to all instantiated canvases and can allow access to them as long as the caller has the corresponding ID.

Inside the editor, you can see the exact transform data of each tile and the placement snaps to the grid.
All of the UI Elements are built using ImGui
You can choose between using the shape tool or singular tile placements, this can control either walkable spaces or wall.
You can save levels at anytime, same goes for loading.
For edge cases, you can toggle debug mode to display walkable and unwalkable as black/white.
There is a seperate window for both Entities and Property inspector.

Level Editor: Map

Map creation, Unloading / Reloading

As previously mentioned, the Editor tools contain a handful of options for the user.
Additive tools add unwalkables, while subtractive add walkables. As you edit the map, it will automatically render the new tilemap using the data you've inputed which saves conisderable time.

There is an additional tool that allows you to clear the entire canvas.
Lastly, when you save the map it bakes out the exact TileIDs, so when the game loads the map, instead of having to regenerate the tilemap it instead goes straight to loading the asset and setting the collision profile.

As previously mentioned, the Editor tools contain a handful of options for the user.
Additive tools add unwalkables, while subtractive add walkables. As you edit the map, it will automatically render the new tilemap using the data you've inputed which saves conisderable time.

There is an additional tool that allows you to clear the entire canvas.
Lastly, when you save the map it bakes out the exact TileIDs, so when the game loads the map, instead of having to regenerate the tilemap it instead goes straight to loading the asset and setting the collision profile.

Level Editor: Items

Property Inspector / Controls

Items are loaded from the weapon Json file, it automatically builds the list of items and presents it as a drop down on the item's property inspector.
Due to the limited characters and time constraints, AI characters were unfortunately hard coded into the editor.
however, when you select one in the level, you can view it's properties and edit them as required. All character attributes are available.
Different characters have slightly different Inspectors as well, As the standard enemy type can be assigned a weapon. All Characters can have their Navigation waypoints assigned in the editor as well.

All Items can be moved and deleted.

Items are loaded from the weapon Json file, it automatically builds the list of items and presents it as a drop down on the item's property inspector.
Due to the limited characters and time constraints, AI characters were unfortunately hard coded into the editor.
however, when you select one in the level, you can view it's properties and edit them as required. All character attributes are available.
Different characters have slightly different Inspectors as well, As the standard enemy type can be assigned a weapon. All Characters can have their Navigation waypoints assigned in the editor as well.

All Items can be moved and deleted.