Sie sind auf Seite 1von 7

Overall

8 Aralk 2013 Pazar 20:10

Kana Mahjong is a mahjong solitaire game where tile symbols are hiragana, katakana and kanji characters. It aims to help Japanese learners by making them familiar with the Japanese characters. Target audience: Japanese learners Target platforms: PC, browser and tablet

Kana Mahjong Page 1

Development
15 Aralk 2013 Pazar 09:54

Project is aimed to be completed in a month. Each week will focus on one aspect(phase) of the game. Development platforms: C#, Mono, Unity Game Engine Development tools: Visual Studio Professional 2012, Unity 3.5 Unity will be used as render and port engine. Most parts of the project will be coded and unit tested in Visual Studio. Development phases: Creating and displaying layout Implementing game logic and displaying characters Applying memory augmentation techniques Testing the game and final touches Rules for the developer: You are expected to follow Microsoft naming guidelines, write comments and implement unit tests. You are not allowed to use third party libraries unless stated. Things to develop (details will be explained in phase documents) Parsing, creating and unit testing the layout Rendering custom fonts Game logic Character selection SFX Layout selection Background selection Tile texture selection Theme selection (Background+tile tile texture selection)

Kana Mahjong Page 2

Phase 1
15 Aralk 2013 Pazar 10:15

This phase will focus on the layout. At the end of the phase, a Unity app is expected to display different layouts. It is also expected to unit test layout class (and its methods). Things to develop: Implement layout and tile classes Basic class structure is implemented in Visual Studio project. I guess you shouldn't need to add more fields or properties. But new methods will be required for parsing. Implement layout parser Layout will be generated from the input string. A parser must be implemented for the input data. More details are below. Render layout Layout should be displayed. Tiles will be empty, showing only a texture (no symbol/character will be displayed for this phase).

Make layout and tile backgrounds changable When implementing the layout rendering in Unity, note in mind that both screen background and tile textures must support changing on the fly. Background image can be one of them http://12monthsofwinter.deviantart.com/art/111-12monthsOFwinterORIGAMI04-76521274 Tile texture can be one of them http://www.ultimate-mahjong.com/images/points.jpg (Both images will be changed later in the following phases)
Prepare input data string for basic layouts All the input strings for the layouts in site http://www.masswerk.at/mahjong/ should be prepared. (as txt files snake.txt and ox.txt)

Write unit tests More unit test should be written for parsing and other implementations if necessary
Screen resolution Layout should resize along with screen if screen resizes. Layout must keep its aspect ratio, must leave empty spaces at bottom&top or sides if necessary.

Layout input strings: Layout strings will be composed of 'X', '0' and '\n' (new line) characters. 2x2 'X' char will denote a tile, '0' will denote empty space, '\n' after 'X's or '0' will denote end of the row and '\n' making empty line will denote a new layer for the layout. Invalid input strings should throw exception. There should always be even number of tiles in the layout (first example should be ignored), if not input is considered as invalid. Example layout input strings and tiles structure:
Kana Mahjong Page 3

Example layout input strings and tiles structure: Input string XX XX Render Data new tiles[1][2][2]; tiles[0][0][0] will be assigned to a tile, others will be null

XX0000 XXXXXX XXXXXX XX0000

new tiles[1][4][6];

tiles[0][0][0], tiles[0][2][0], tiles[0][1][2], tiles[0][1][4] will be assigned to a tile, others will be null

000000 000000 XX0000 XX0000 XXXXXX XXXXXX XXXX00 XXXX00

new tiles[2][4][6] tiles[0][2][0], tiles[1][0][0], tiles[1][2][0], tiles[1][0][2], tiles[1][2] [2], tiles[1][0][4] will be assigned to a tile, others will be null

There are also some examples of valid and invalid input strings in the example unit test.

Kana Mahjong Page 4

Phase 2
4 Ocak 2014 Cumartesi 14:47

This phase will focus on displaying symbols on the tiles and applying game logic. At the end of the phase, it is expected to see custom symbol of each tile and selecting and removing valid pair tiles. Things to develop: Displaying tile symbols Characters must be rendered at the top of the tile textures. Displaying custom fonts Fonts of the characters must be loaded before rendering. Displaying alternate symbol/text A helper text (latin, hiragana, katakana or kanji) should be rendered at the bottom (left or right? TODO) Game logic Tiles can be selected by the user. If the first and second selected tiles are identical (or have same selection id), they are removed from the board/layout. If the two selected tiles are not identical then they are deselected automatically. A tile is selectable if: It is visible It is not under another tile (by upper layer tiles) It's there is no tile touching its left or right side (by the same layer tiles) Game ends when all tiles are removed. Retrieving all selectable tiles A method should retrive all selectable tiles from the layout. Another method should retrieve all possible selectable pairs from the layout. Distributing tiles to the layout A tile list should be distributed to a layout. This distribution should always ensure that there is a valid solution to end the game. This will also be used for reshuffling the layout.

Kana Mahjong Page 5

Phase 3
13 Ocak 2014 Pazartesi 23:05

Logging end game results(remembered, couldnt remembered words)

Kana Mahjong Page 6

Phase 4
11 Ocak 2014 Cumartesi 00:42

Main menu window Options window Sound effects Character splash effects (with stroke order) Easy, medium, hard options

Kana Mahjong Page 7

Das könnte Ihnen auch gefallen