Flex Development - Adobe LCCS Applications, Rich Internet Applications (RIA), Facebook API

Game Development

I have developed three games using Adobe Flex version 3.4:

Sudoku

I implemented a datagrid to develop the board of this game. I wanted to use the built-in drag-and-drop functionality of the flex datagrid, but the datagrid is limited to dragging complete rows whereas my objective was to drag and drop single cells. To achieve this I customised the drag-and-drop functionality to use the focus handler which gave me direct access to the row and column coordinates for a cell. I have re-used this technique in 'Chess'.

All game information is stored in XML which is accessed and updated by the Flex application through http requests.

I also implemented the facebook API to provide this game to facebook users. The game is also separately available on the Happy Day Games website.

I have provided a screenshot of the game below, with a description of functionality below:

Sudoku

Some of the features are listed below:

  • Players can drag numbers from the horizontal and vertical rows into the puzzle, or they may drag numbers from anywhere within the puzzle area. There is also the option to use the keyboard by clicking 'Allow Edit'.
  • 'Check Result' allows the player to compare their solution with the correct solution.
  • 'Games List' provides a list of available games and 'Saved Games' lists any games that are in progress.

Chess

I used the Adobe LCCS (LiveCycle Collaboration Service) to develop this multi-player game of chess. The game uses an external php library to interface with LCCS. This is how the game rooms are created. Game information is stored in a MySQL database and interfaces with Flex using XML and http requests.

The player first enters a lobby where they can challenge a player by clicking on another player icon (see screenshot below).

Chess Lobby

Once the challenge has been accepted, the game starts (see screenshot below).

Chess Game

Some of the functionality is listed below:

  • Players can challenge offline players in the lobby. An email is send to the opponent to accept the challenge.
  • Board colour and rotation can be changed by the player. This information is recorded for the returning players.
  • Lobby chat is provided.
  • Private game chat is provided which only allows communication between the two players.

Pingo

Pingo is a two-player game of ping-pong. Players enter a lobby similar to the 'Chess' lobby and are able to challenge another player by clicking on a player icon. Information about the position of the paddles and ball is communicated when the ball is hit or when the ball is missed. This required some careful management of when the communication occurs.

Players can move their paddle by moving the mouse pointer up or down anywhere in the playing area.

I have developed two versions of the game:

Both methods are effective for this type of game.

The screenshot below illustrates the game.

Pingo