Worked on a game similar to Elements, in the part where you destroy similar blocks to open a path for water flow. In this game, there are water sources , and the water destinations that need to be flood to complete level. The application had functionality when I started to work with it, but required a lot more to be done and corrected, so I had to understand almost everything. The game has replays and editor scenes, and with them, the following features:
* Logic to detect proper water animation according to flooding.
* Actions replay to emulate a video, with less memory usage. Most game actions are serialized and reproduced in the same fashion as the user played. It's logic automatically cuts long idle times and adds a flash when playing to indicate that time was skipped.
* Video and audio recording to AVI format, using AVPro Media Capture, and Youtube upload using a custom made code based on Google C# guide. Video controls to start, stop and pause recording. Upload progress display.
* Action replayer with forward and backwards play. Seeking function and pause.
* Board creation with preset sizes and layers for walls, gems, water and background.
* Tools to draw/erase tiles, using dots, lines, circles, rectangles, ellipses and fill.
* Level rule customization using integers and toggles, with rules such as undo amount, rotation allowed, zoom allowed.
* Undo and Redo in Editor Mode. Undo in Game/Test modes.
* NGUI and tk2d Toolkit Interface with tooltips, localization and anchoring.
* Tutorial Editor, to set tips and check amounts in any order, and reordering by dragging slots. Customizable trace tutorial tips to display a cursor selecting tiles as a demo.
* Logic to select sprites and create shadows from walls configuration.
* A shortcut panel with toggles to define binds for tools, save, load, and game actions such as rotate, move, undo.
* Level serialization to save and load custom levels.
* Auto-save and resume with player files so the user can quit playing and return to the same point in time to continue. These saves work in unity with action recording to continue smoothly.