Match'em Poker

Match'em Poker

About the game

Match'em Poker is a traditional 'match3'-type game in a rectangular grid. The player can swap the position of any two cards. When a 'poker hand' is formed, it will disappear from the level and the player's score increases. A card will drop down if there is an empty space below it. New cards will appear in empty spaces in the first row. The level starts with a timer value of 40. This number decreases with time, and increases when the player scores. The level is completed when the timer reaches a value of 100. If the timer drops to zero, the game is over. Accepted 'hands' are: 4 or more of the same colour, 3 or more of the same number, a straight of 4 or more. The hands can appear either horizontally or vertically. The difficulty increases when the player reaches higher levels. The time spent will affect the timer more and more, and destroyed cards will increase the timer less and less. Theoretically the game can continue forever. In practice, it will get very difficult around level 20.

There are increasing numbers of empty cards in the levels. An empty card will not be accepted to be a part of a hand until it's opened (by clicking it). When an empty card is opened, a small amount of time is removed from the timer (as a payment).

Program structure

Match'em poker is written with the amount of "pure" (no API bindigns) C/C++ / OGLES 2.0 maximised, and platform-specific code isolated behind interfaces. The framework (engine) the game uses is called TileGame. It is designed for any "sprite"-based-games; puzzles, platformers, and so on, and consists of two parts: The game (ITileGame) and the engine (ITileRenderer). ITileGame is the interface for the actual game, and ITileRenderer is its 'runner'.

ITileEngine flow:

  • Initialise framework. Window, OpenGL, etc.
  • createTileGame
  • prepare game
  • run main loop
    • Listen to events and react to them (focus changed, screen touched, profile changed, and so on)
  • release game
  • delete game
  • cleanup environment

Qt application runner

QTileGameEngine is a game runner implemented with the Qt GameEnabler. It's responsible of the platform-specific functionality in the Match'em Poker.

Building for Desktop Windows

If you want to build for Windows desktop for example, you must get some OpenGL ES 2.0 emulation libraries and use them to link against. Imgtec provides a good and easy-to-use solution for this. They are not open, but free. The downloading requires a registration and acceptance of a licence agreement.

Sounds

All the sounds used by the application are taken from The Freesound Project. The sounds were made by the following users: milton, mattwasser, Christianjinnyzoe. Thank you Freesound!

Misc issues

  • The original code is quite messy and complex. However, the port have been tried to make with minimal effort to study the process.
  • All of the rendering is done quad-by-quad basis, this makes the performance much lover as it could be. A good solution would be to deploy the new Qt SpriteBatch to do the rendering.

See the porting story.

Project information

All downloads

Attachments

Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2011 All rights reserved