|
|
Tetris for Pocket PC 2002
Overview
Tetris for Pocket PC 2002 is similar to the popular game that is
available on nearly every computer platform. It probably doesn't need
any introduction. This Pocket PC implementation is almost the same as
the original version and doesn't include any fancy features (yet).
The creation and evolution of Tetris
Bubbles was the first game I have written
for the Pocket PC. That game is very suitable for the Pocket PC,
because it makes excellent use of the pen. The next step was to
create a more dynamic game with more animation. Because I liked
Tetris very much, I decided to implement it. The Bubbles source code
was used to jumpstart the development. Bubbles is distributed
under terms of the GNU Public License and contains full source code.
Tetris is currently distributed as freeware as well, but its source
code won't be released.
Tetris uses some simple animation, which is quite hard to
implement on the Windows platform (without DirectX). Even on my good
old Commodore CBM-64 it would have been easier, because it features
sprites. Sprites aren't available on Windows CE, so you have to
implement animation completely by yourself. This is a little
troublesome, because it's a lot of work and software sprites are
relatively inefficient. Tetris redraws it's display each time the
blocks move. Although inefficient, it's easy to implement and the
Pocket PC has enough power to use this algorithm without any problems.
A friend of my started developing Pac Man for Pocket PC in parallel
and encountered the same problems. Unfortunately, Pac Man uses a lot
more moving objects (you and the ghosts) and has much smoother
animation, so the performance problem becomes more and more
problematic. My next project will probably be a high-performance
reusable sprite library for the Pocket PC. It will probably take a
lot of time, but it should make developing games for the Pocket PC
a lot easier.
What's hot and what's not
The current version of Tetris is sufficient for a whole lot of
fun. It has the following features:
-
The concept of Tetris is very simple, but the idea is just great.
-
The Pocket PC navigation keys are used for game control. I only
have experience with the Compaq iPaq, but I am not very happy with
the navigation keys on it. You can also use the command bar buttons,
but this is probably even harder.
-
Highscore list, so you have prove when you reach a good score. It's
also possible to reset the list of highscores.
-
Synchronizing highscores with other Tetris users using the
infrared port. People who are familiar with Bubbles, will notice
that the Tetris highscore list is quite similar.
-
Very neat about dialog, which is similar to the picture shown at the
top of this page. The logo is created using
POV-Ray.
Some features are still missing. I might implement it in a future
version, but don't expect anything soon. The following features are
planned:
-
Add animation when rows are deleted.
-
Skins for the Tetris main screen, shapes and fonts. Although not
very difficult to implement I just hadn't time to do so. It has
a low priority (I'm just not that much of a UI guy).
-
Better installation support, but I do need to get some more
experience with ActiveSync installation. I don't want to rely
on external tooling (such as InstallShield).
-
Help file for the game, explaining the various options and rules
of the game.
Links
There are just to much Tetris related sites on the internet to list
them all, but the following sites might be worth checking.
-
One of the creators of the original Tetris game started an
Official Tetris site
describing the history of Tetris.
-
Daniel Jackson released a freeware Tetris for the Pocket PC as well
and it is called
QTris.
It's pretty good, but it doesn't have the programmable keys of my
version of Tetris. This makes it useless for devices without
navigation keys, but if you have navigation keys it's definetely
worth a download. The graphics are great and gameplay is good as
well. If you're there take a look at some other fine games from
Daniel.
-
Applian released an Applian
Bonus Pak, which includes a Tetris clone for free. It's called
called
Blox.
It was one of the first freeware Tetris clone I found on the net.
Don't bother downloading the game, because it's just a waste of
memory on your Pocket PC.
-
Play Tetris online (using shockwave) at
Shockwave Tetris
.
-
Another online version of Tetris is called
Dropping blocks and uses
Java to play the game.
-
My Tetris has been reviewed by some magazines. One of them is a
Spanish magazine called Mi PC de Bolsillo and their review can be
found
here
. PocketNow.com wrote an
article, called
Battle of the Tetris clones!
and compared Tetris for Pocket PC with Retris from
Resco Software
, which costs a few bucks. Tetris for Pocket PC was the big
winner (and not only because it's free).
If you know about more Tetris clones, please mail me.
Legal statement
This program is copyrighted by Ramon de Klein and distributed under
terms of the GNU General Public License.
History
v1.0
-
Ported release to PocketPC 2002 SDK. Only the ARM release
is supported, because PocketPC 2002 doesn't support other
platforms.
v1.0 (beta 6)
-
Changed speed algorithm, so the game is still playable at
levels 9 and above. Speed won't increase after this level
anymore.
v1.0 (beta 5)
-
Added key-mapping, which allows the user to map navigation keys
and buttons to certain actions. This allows users without the
complete set of navigation keys to map keys differently, so
they can still use Tetris.
-
Added pen support for devices which don't have four navigation
keys (up, down, left and right) like the Compaq iPaq. You can
use the pen to tap on the screen to move and rotate the piece.
-
New options dialog which now uses property pages to display all
the options, which makes it better readable. The option titles
now use a smaller font.
-
Redesigned commandbars to make them more intuitive. The toolbar
buttons have been updated. The SIP has been removed from the
main window, because it had no use there. The commandbar is
empty in the dialogs and property sheets.
v1.0 (beta 4)
-
Fixed a bug that prevented scores above 10000 to be displayed
correctly in the hall of fame.
-
Fixed a bug that restarted the game at the same speed as the
previous game had ended.
-
Restarting the game performs an implicit resume, when the game
was paused.
-
Rewritten layout code, which makes adding skin support easier
and the code easier to read. If everything went fine, then you
won't know the difference.
-
The Compaq iPaq suffers from the so-called
button problem. It can cause problems while playing
Tetris. Sometimes the iPaq won't see that you've released a
key on the navigation pad. The result is that pieces keep
dropping (when soft-drop is enabled) or keep moving sideways.
Unfortunately, I cannot fix this problem in Tetris. However,
I have added some intelligence in the code, which stops the
key-repeat at certain moments. When a piece hits the bottom
or the side of the screen it stops repeating. If the button
problem occurs, then you now only may lose one piece instead
of the entire game. I know it's not the ideal solution, but
it's all I can do to fix it.
v1.0 (beta 3)
-
You have a short time to shift and rotate the piece after it
hits the bottom (if there is space to do so). In beta 2 (and
earlier) another blocks falls immediately, which limited the
oppertunity to fill some gaps (thanks to Glen Carbone for
mentioning this).
-
Use own keyboard repeat mechanism, which is much more intuitive
and can be configured using the options dialog.
-
Dropping a piece is now done using a so called soft-drop, which
drops the shape only one position. As long as you hold the drop
key it keeps dropping until it hits the bottom. This is can be
useful to quickly move a piece to the bottom and still be able
to move and rotate it later. If you like harddrop better, then
you can enable it in the options dialog.
-
More efficient screen update mechanisms, which reduces CPU load
during gameplay. Not really necessary, but you might be able to
play a few seconds longer, when running on battery power.
-
Added sound when a piece hits the bottom or is rotated.
-
The background of the game area has lower contrast, so the
game area is now better visible. I hope this reduces mistakes.
-
Changed the scoring rules again. Every time you manually
drop a piece you get one point. Clearing a row is now awarded
100 points (1 row), 400 point (2 rows), 900 points (3 rows)
or 2000 points (4 rows). Speed increases after each 2000
points.
-
The easy level drops one position each second. Each speed increase
is 100ms faster, until you reach level 10. The moderate level is
twice as fast and the hard level is four time as fast.
-
Pause key can be enabled or disabled in the options dialog. Several
people complained that they accidently pressed the pause key during
gameplay. If the pausekey is disabled, the game can be paused and
resumed using the commandbar. When the game is paused, it will be
shown in the navigation bar.
-
Removed accelerator table from program, which has become obsolete
and only causes problems in the emulator (during development).
-
Removed navigation keys from the commandbar, because it was horrible
to use.
v1.0 (beta 2)
-
Use a semi-transparent background bitmap, which uses double
buffering techniques.
-
The shape's building blocks have been updated and are better
visible. The shapes have now the same colors as the original
Tetris.
-
The game is paused, when another window is activated. It's resumed
when the window is activated again.
-
About box uses smoother building blocks.
-
Fixed text problems in the commandbar.
-
Improved scoring mechanism. You're now awarded if you clear
several rows at once (1 row=10 points, 2 rows=20 points,
3 rows=40 points and 4 rows=80 points).
-
It's now possible to rotate the shape, even when it doesn't
fit at the top. The invisible remainder just isn't visible. I found
that it made the game more intuitive and better playable.
v1.0 (beta 1)
-
Initial release for ARM, MIPS and SH3 processors.
-
Based on Bubbles v1.0 (beta 3) sourcecode.
Download
Before you download one of the packages, listed below, you must make
sure that you've read the legal statement.
Tetris.zip
|
Tetris executable package compiled for use on a Pocket PC 2002.
|
Tetris_src.zip
|
Tetris source package containing the source code and project
files. You need at least Embedded Visual C++ v3.0 with the
Pocket PC 2002 SDK to compile and link the code.
|
Tetris (old).zip
|
Tetris executable package compiled for use on a Pocket PC running
Windows CE v3.0 with an ARM/MIPS/SH3 processor. This is an old
version (v1.0 beta 6) and is not maintained anymore.
|
Tetris_src (old).zip
|
Tetris source package containing the source code and project
files for all supported Tetris platforms. You need at least
Embedded Visual C++ v3.0 with the Pocket PC SDK to compile
and link the code. This is an old version (v1.0 beta 6) and
is not maintained anymore.
|
|
|
|