123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- The FPC ModeX docs...
- --------------------------------------------------------------------
- NOTICE:
- The ported games (see below) were found on a site that claims to only have
- PD stuff, and the webmaster said that everything he published was sent to
- him with that purpose. We tried finding the persons mentioned in the mail
- over internet, but that failed.
- If there is somebody that claims authorship of these programs, please mail
- [email protected], and the sources will be removed from our websites.
- SameGame can also use the API for mousecontrol. This because the RTL mouseunit
- MsMouse only exists under Go32V2. The API mouse routines work with Linux, but
- have (right now) a problem with GPM version 1.17. Use a different version if
- you can 1.15 works according to the developpers.
- The source code of FPCTRIS and SAMEGAME) are written by Marco van de Voort
- and are donated to the FPC project. The FPC project distributes all sources
- under a modified GNU license (much like the so called LGPL) see copying.fpc.
- --------------------------------------------------------------------
- REQUEST:
- As a developper team, we don't want spend 90% of our time in creating demoes.
- If you have something nice, which explains not yet demonstrated features or
- technicques, mail contact us via [email protected], or add it to the
- contrib page.
- The readers are also encouraged to explore FPC's excellent documentation
- with many examples!!!!!
- ------------------------------------------------------------------------------
- What are the FPC games?
- The FPC-games are a series of simple, small games written or ported by
- Marco van de Voort ([email protected]) as demos for the
- Free Pascal compiler (FPC) and its Run Time Libraries (RTL).
- The "ported" games were first used to test the compability of the GRAPH
- unit. Since we had them, and they were very likely PD or GPL, we decided
- to use them when we couldn't contact the authors
- Currently the games are
- (Games written by Marco van de Voort)
- - FPCTris (v0.08) Tetr'ish game.
- - Samegame (v0.03) As found on e.g. GNOME.
- Other games:
- - Gravwars (Sohrab Ismail-Beigi?) Simple angle and shoot game
- (like TANK distributed with QBasic)
- - Maze (Randy Ding) Maze generator and "game"
- - Quad (Justin and Whitney Pierce) Memory game but with 4 cards each.
- move.
- All "other games" games are simpler than my ones, though Quad has overall
- the most sophisticated graphics, and Maze a reasonably complicated algoritm
- (compared to the other ones)
- Most of these games use Gameunit.pp which contains some very simple
- generic routines:
- - textual and graphics mode safe input dialogue (replacement for readkey)
- - highscores (show, helper routines for entering scores etc)
- - wrappers for mouse via msmouse or API on other targets
- - Some routines needed for BP compability. (Go32 and cursor routines in Crt)
- To compile the games on non dos targets you have to change DEFINE the
- MouseAPI conditional in gameunit.pp (automatical for Linux).
- To get the graphics versions of fpctris and samegame, compile using
- -dUsegraphics, the makefile should automatically build both.
- ---------
- FPCTRIS
- Fpctris is a tetris class game, originally designed
- - to be distributed with FPC as Crt demo,
- - Keeping possible integration in the IDE in mind (would add 15k or so)
- - Svgalib version etc etc. Anyway, the engine is quite platform independant,
- and can be ported to different platforms (also TUI,GUI) if needed.
- (this has now be done. Graph seems fast enough)
- The current versions are still under development, but already playable even
- under telnet.
- TODO list:
- - (difficult, also interesting for Crt and IDE), get more terminals supported
- under Linux. Specially I don't want to issue the escape sequence that rapes
- your console to an IBM compat charset. Linux users don't like that.
- (temporarily solved by doing this only on user request)
- - (Linux) Sockets multiplayer client system :-). Have actually started on it,
- but are getting nowhere. The server will be separate and support more than
- one game. So you get one port for several games.
- - Setup screen ((create) alternate blocks etc)
- - Commandline options/config file. (.rctetris per user :-))
- KNOWN BUGS:
- - Upperrow not used with some chars. (Requires shifting up). Possibly related
- that very rarely "game over" appears when there's still one or two rows to
- go. (Since the 5x5 version some of this has been removed. If you get a
- L-shaped character and immediately rotate, the upper line is used)
- - Biggest problem at the moment is the delay procedure and its init on machines
- under heavy load. Can't change that though. Only under heavy load, so a
- less big problem on heavy machines.
- - Selection of colors don't take screen attribs into account. So figures can
- seem to disappear on weird TTY's or 4Dos people using strange ANSI prompts.
- History:
- v0.00 First version with working gameplay, created during the Brussels
- meeting. published on tflily.
- v0.01 Some work done, first version on my page. Most improvements done in
- Brussels, too many to name here.
- v0.02 - Got rid of binary encoding, and calculating shapes etc when a new
- figure is created. All is done on startup now. Adding characters
- is simpler now.
- - A lot of parameters are variables instead of constants.
- - Experienced tetrissers press "e" once.
- - Colors! Linux has the color default off (press "C")
- v0.03 (Only used at Stack, not on web)
- - Keep on pushing arrow down no longer freezes FPCTris.
- - Basic level system implemented.
- - High ascii background in color mode.
- v0.04 (Only used at Stack, not on web)
- - The push-down arrow fix removed the possibility to move the character
- after arrow-down, which I liked much. Fixed. # of possible moves after
- arrow-down also adjustable.
- - Tried compiling with W32 compiler. RTE 216 (which is gpf I believe)
- Is Crt unit. Hello World "Use crt" also gpf's.
- - Removed the first, forgotten bugfix for the hickup problem. Now the
- "feel" of the game is ok. When you push down, it goes down, but you
- have the change to do one more move.
- v0.05 (Never used anywere, backup version before movement to 5x5 figures)
- - More Score info
- - Help possiblity
- - Highscores. (also saved to file, and searched in the path)
- - Entering highscores uses inputstr. Size boosts to 1200 lines. Yuck.
- - Most functionality now implemented.
- v0.06 (To Peter)
- - 5x5 figures including "The Cross". Worked almost rightaway, but figures
- rotate a bit weird.
- - Better rotation 5x5 system. Only smallest square around figure is
- rotated.
- - Better scores. Incl quadratic (progressive is a better word) scores for
- multiple lines. Now it does matter if you remove 2 x 1 line or 2
- lines at once.
- - Some small other fixes.
- - 'q' is also exit.
- v0.07 - Highscore table routines moved to gameunit. Gameunit.pp now required.
- v0.08 - FileMode in GameUnit fixed.
- - Small error that never popped up fixed. Pierre found it by compiling with
- checks on.
- - Graph mode implemented. Hopefully it also works under Linux (read the
- Graph unit is platform independant enough) Compile with -dUseGraphics.
- v0.09 - Fixes for Win32 GUI mode.
- ----------
- SameGame.
- Principle copied from KDE/GNOME.
- The principle: The playfield is a grid consisting out of 3 colors.
- You can mark a certain spot on the playfield, and all adjacent grid-cubes
- (horizontally or vertically) will also get marked by the computer.
- When you press the left button, and two or more cubes are marked, the marked
- cubes will disappear, and the playfield will colapse to the bottom left.
- This can be repeated until there are no more agregates. If the field is empty
- then, you receive a bonus.
- The trick is that the score for each disappearing aggregate of cubes is more
- than linear (0.25* quadratic right now) dependant on the number of cubes it
- contains.
- This means that removing 5 times an aggregate of 2 cubes will result in a far
- smaller score than one aggregate of 10 cubes. ( 5*2^2 < 10^2)
- TODO:
- [none]
- BUGS:
- - Maybe better algoritm for initial filling of playfield.
- - Runtime sizable playfield.
- HISTORY:
- v0.01 :
- - Initial version.
- - Slightly improved initial algoritm.
- v0.02 - Using gameunit. GPM support via API, but whole thing GPF's under Linux,
- but works under Go32V2.
- - Highscores,helpscreen, all small things that come with a decent finishing
- of the concept
- v0.03 - Fix to game unit that upset configuration files under 0.99.13
- - q,x and Escape now exit.
- - Weirdly enough, mouse cursor disappears when moving over a black spot.
- Playing with delays was unsuccesfull.
- - Graphical support. Compile with -dUseGraphics
- v0.04 - Fixes for Win32 GUI mode.
- ----------
- Gravwars (author:Sohrab Ismail-Beigi)
- Specify angle and speed, and try to hit the other spaceship. Some planetoids
- exist that can bend the curve of the bullet/ray.
- The game uses is designed for TP4.0 and uses Turtle'ish drawing. So we
- use it as a test for TP4.0 Graph compability.
- TODO:
- - Use InputStr for input.
- BUGS/FLAWS : None, except that it is very basic (and not worth extending)
- HISTORY:
- v0.01 :
- - Initial FPC port.
- ----------
- MAZE (Author Randy Ding)
- Nothing special, but from all FPC-games the one with a real algoritm.
- (some form of shortest path through a maze I guess) The others are much
- simpler as far as algoritms are concerned.
- The programs asks some simple parameters, and creates a more or less complex
- MAZE. The task for the player is to go from one side to the other:
- Use I,J,K,M or arrow keys to walk through the maze
- Hit X when you give up!
- TODO:
- - Use InputStr for input.
- - Help on screen if there is enough room?
- - Big mazes/very high resolutions?
- (bigger than the current max 200x200 is unreadable on 1024/768)
- HISTORY
- v0.01 :
- - Initial FPC port.
- ------------
- QUAD
- My favorite of the other games, and by far the most work to port/clean up.
- The program deals some cards blind. It flips over maximal 4 cards, and if
- the 4 turned are the same, it removes them. (the game exists as a card game
- called MEMORY too, but only with two cards at the same time)
- You have to remove all the cards to win, and the highscore record
- the time. QUAD loads some pictures from quaddata.dat.
- TODO:
- - Use graphical versions of highscore. (done in win32 GUI mode)
- HISTORY
- v0.02 : Win32 GUI mode.
- v0.01 :
- - Initial FPC port.
|