For my final year university project I made a procedurally generated dungeon crawler. The Dungeon level layout is generated using a BSP Tree algorithm. A square is split into randomly sized rooms, which are then connected together with corridors. The rooms are then populated with gems, which award points, depending on which gem is picked up.
My Mobile Games assignment at uni was to make a Tower Defence game for Android. The game had to include a main menu, allowing the user to view the instructions and high scores, select a level to play, or just quickly jump into the game.
The main user interface of the game is comprised of the main game screen, the info bar, and the purchase window.
The info bar displays the level number, the user’s remaining hitpoints, the user’s money, and the remaining number of enemy waves, and number of enemies in the current wave.
The purchase window allows you to buy three different sizes of turrets. Each turret has different stats: radius, hitpoints, damage, rate of fire, and cost. Advanced turrets have a larger radius and deal higher damage, but cost more and may have a lower rate of fire than basic turrets.
Enemies spawn in waves, starting from the right hand side of the screen, following the blue squares. If they reach the other side of the screen, the user loses hitpoints. The user builds turrets on the yellow squares to defend his base. Killing an enemy rewards the play with money, which he can use to build more defences.
I used SFML to program a 2D chess game, using the chess set modelled in Maya to create the sprites.
The piece images are placed automatically in positions determined by reading a ‘FEN’ string (Forsyth-Edwards Notation). The FEN string for the start of the game would be “rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR”.
Lower-case letters are black pieces, upper-case are white pieces. ‘/’ represents a new row, and numbers represent empty squares. So ‘ppp4p’ would represent a row with three pawns, then four empty squares, then a single pawn.
The FEN string for the second image would be this:
I wrote a program that uses repetition to teach the user the two Japanese writing systems (Hiragana and Katakana). The characters are grouped into columns, and each column can be activated and deactivated by clicking a checkbox, so the user can learn one group of characters at a time.