[Kde-games-devel] kjeweled

Vic Fryzel vic at shellsage.com
Sun May 13 06:33:56 CEST 2007


Hi,

I'd like to make a "Bejeweled" knock-off for KDE, called kjeweled.  I think 
that it should be pretty straight forward.  I'm convinced that this could be 
a "beautifying" game for KDE.  The nature of the game could really provide a 
lot of aesthetic appeal and fun.  I think it'd give a lot of people something 
to do in their spare time, and really add a staple to kdegames.

I've written a detailed description of the game.  It follows below.

kjeweled is a game involving a board filled with gems.  The objective of the 
game is to align like gems into rows or columns.  Every time three or more 
like gems are aligned, the player's score is incremented.  The player must 
try to gain the highest score possible in the least amount of time.

The kjeweled board is an n-by-n matrix of gems.  Each gem has 8 neighbors if 
it is not a gem on an edge or corner of the matrix, 5 neighbors if it is on 
an edge of the matrix, or 3 neighbors if it is on a corner of the matrix.  
Moving in kjeweled consists of selecting a source gem, and then selecting a 
destination gem.  If, after switching the chosen source and destination gems, 
an alignment of three or more like gems is found either vertically or 
horizontally, the move is allowed.  Otherwise, the move is disallowed.  A 
player may not move diagonally, meaning that the destination gem may only be 
directly above, below, to the left of, or to the right of the source gem.

kjeweled has a number of different gem types.  Each gem has a specific shape 
and color.  The number of gem types could be used to make the game more 
difficult.  The number of gem types matters, as given the rule set, too few 
gem types would result in an instant or near-instant win too often.  For 
example, if a kjeweled game instance only had 2 gem types, it would not be 
possible for the board to ever "settle" in a stopped state to allow the 
player to move pieces, as they would constantly align, be removed, and be 
replaced.

A kjeweled game instance could be timed, either to provide "rounds" to the 
game, or to log a points/time ratio as a way to rank player success.

The manner in which points are alotted in a kjeweled game is such that for 
every gem alignment, a minimum number of points is awarded to the player for 
making an alignment of 3 gems, and an additional number of points for each 
gem in the alignment.  Thus, aligning 4 gems should result in more points 
being awarded than if the player were to align only 3 gems.

Additionally, the kjeweled game could be played in a multi-player manner, in 
one of two modes.  The first mode involves two players playing on the same 
board, taking turns to move gems.  The players would be competing to get the 
highest score in the time alotted for each player's turns (meaning there 
would be a timer for each player, and when one player's time expired, scores 
would be counted and compared, and a winner declared.)  The other mode would 
involve two separate player boards, where players attempted to get the 
highest score in the common alotted amount of time, while making moves to 
their own board.  In this mode, both boards would be displayed to each 
client.  In all multiplayer modes, boards should be updated in real-time.

kjeweled will store player scores and records, allowing for records to be 
broken.


I was going to move forward with writing the game in C++ against the KDE/Qt 
libraries, although I was considering doing it in Python.  Do any game 
developers have any experiences with which worked out better for their 
game(s)?

Does anyone have any hints for me before I move forward?  I'd like to host a 
Trac instance on my server, along with an SVN repository.

Is there a way I could get some KDE artists to give me a hand with art for 
various parts of the game (e.g. gems, board tiles, gem stationary animations, 
gem movement animations, etc.)  Do we have any audio experts who could come 
up with some music and sound effects?

Please let me know your ideas and comments.  Thanks!

-- 
Vic Fryzel (vic at shellsage dot com)
http://shellsage.com/
Key id C7B780CA = 3235 2261 807B 451C DA4D  DFBA CAA7 80CF C7B7 80CA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-games-devel/attachments/20070513/49beca28/attachment.pgp 


More information about the kde-games-devel mailing list