Y2: 2D game level designer
For this second year university assignment, I was given a prebuilt and working tile-based game and tasked to develop a XAML-based GUI editor around it and use the lecturer-developed C# game engine's API to implement the functionality needed to operate the new controls. I received a distinction for my work.
Before (left) and after (right) development of the UI
Before and after resizing the game board
Using a file dialog to select a level file
Example of a change in tile texture
Description of my UI
Menu, toolbar, and status bar
I added these traditional UI elements to rehouse some of the original basic UI features given with the original game. The menu houses the not-so-frequently used functions, secondary access to file I/O functions, and options - these options being enabling/disabling gameplay and item placements overlapping. The main toolbar houses main file I/O functions such as finding, loading, and saving levels. With gameplay enabled, buttons for starting and stopping the game will appear on the toolbar too. The status bar houses the main game status label and labels for reporting the properties of the level (namely tile and entity counts).
Level editor sidebar
All options for directly manipulating the level are housed in the left-hand sidebar that contains three group expanders. The first expander "Item Images" allows you to preview and change tile and entity textures. The second expander "Item Placement" allows you to select what item you want to click-place onto the game board. The third expander "Level Properties" contains text boxes to allow you to change specific things like game time limit and the size of the game board.