-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
78 lines (60 loc) · 3.63 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
CC_Clones - Classic games reimplemented
© Callum Lowcay 2006-2011
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
=======================================
This is an old project of mine, recently revived. The goal is to reimplement a
few of those classic old computer games everyone remembers. Many of my old
favourites exist only as 16bit Windows binaries, and are difficult to run on
modern operating systems. When they do run, the graphics are uninspiring, and
the animation jerky. In reimplementing them, my hope is to make these classics
playable again, so that they may continue to waste time for years to come.
Feel free to package, mod, and/or rebrand any or all of these games for your
own purposes. You don't need my permission; but keep in mind the GPL license:
_all derivative works must be GPL'd_.
What's included
===============
- snake: Eat the apples to earn points. The snake grows longer as it eats.
When you have eaten all the green apples, the exit opens so you can advance
to the next level. Don't crash into the walls or your own tail; there are no
extra lives in my implementation of one of the oldest video games.
- tetris: Fit the falling tetronimoes together by shifting and twisting them
into place. When you form a complete line across the play field, the line
vanishes and you get points. More points are awarded when you clear
multiple lines at once, or in quick succession. When the play field fills
to the top with tetronimoes, the game is over.
My tetris uses the modern SRS rotation system, which supports all kinds of
fancy moves (http://tetris.wikia.com/wiki/SRS). I don't award bonus points
for T-spins though, and the lock delay does not reset on shifts or spins.
Gravity is naïve, so you can't use cascading moves.
Building
========
If you downloaded the binary distribution, skip this section.
I have chosen to implement these games in Haskell. Why? Because it is hands
down the best general-purpose, cross-platform, compiled high-level programming
language around. C/C++ are not high level, Factor lacks maturity, and OCaml is
simply not as elegant as Haskell.
To build the clones, you will need to install GHC and some Haskell libraries.
Namely mtl, SDL, SDL_Mixer, and SDL_TTF. I recommend you install the Haskell
Platform (http://hackage.haskell.org/platform//), which includes the cabal
tool. Use the cabal command to install the SDL packages.
Under Windows, a certain amount of hacking is required to install the SDL
libraries. This should get you started:
(http://www.animal-machine.com/blog/2010/04/a-haskell-adventure-in-windows/).
One you have GHC and all build dependencies installed, just run the appropriate
build script. unix_build.sh works on Linux, and might work on Mac too.
cygwin_build.sh works on Cygwin under Windows. It is currently the only way to
build under Windows.
Installing
==========
No installation is required. If you have a binary distribution, extract the
games somewhere and double click the executables. If you built from source, the
executables are in the build directory. You can delete the *.o and *.hi files.