ansi-terminal-game: cross-platform library for terminal games

[ game, gpl, library ] [ Propose Tags ]

Library which aims to replicate standard 2d game functions (blit, ticks, timers, etc.) in a terminal setting; features double buffering to optimise performance. Aims to be cross compatible (based on "ansi-terminal", no unix-only dependencies), practical. See examples folder for some minimal programs. A full game: venzone.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Flags

Automatic Flags
NameDescriptionDefault
examples

builds examples

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.3.1.0, 0.4.0.0, 0.5.0.0, 0.6.0.0, 0.6.0.1, 0.6.1.0, 0.7.0.0, 0.7.1.0, 0.7.2.0, 1.0.0.0, 1.1.0.0, 1.1.1.0, 1.2.0.0, 1.2.1.0, 1.3.0.0, 1.4.0.0, 1.5.0.0, 1.6.0.0, 1.6.0.1, 1.6.0.2, 1.7.0.0, 1.8.0.0, 1.8.0.1, 1.8.1.0, 1.9.0.0, 1.9.1.0, 1.9.1.1, 1.9.1.2, 1.9.1.3, 1.9.2.0, 1.9.3.0 (info)
Change log NEWS
Dependencies ansi-terminal (>=1.0 && <1.2), ansi-terminal-game, array (>=0.5 && <0.6), base (>=4 && <5), bytestring (>=0.10 && <0.13), cereal (>=0.5 && <0.6), clock (>=0.7 && <0.9), colour (>=2.3.6 && <2.4), containers (>=0.6 && <0.8), exceptions (>=0.10 && <0.11), file-embed (>=0.0.15 && <0.1), linebreak (>=1.1 && <1.2), mintty (>=0.1 && <0.2), mtl (>=2.2 && <2.4), QuickCheck (>=2.13 && <2.16), random (>=1.2 && <1.3), split (>=0.2 && <0.3), temporary (>=1.3 && <1.4), terminal-size (>=0.3 && <0.4), timers-tick (>0.5 && <0.6), unidecode (>=0.1.0 && <0.2) [details]
License GPL-3.0-only
Copyright © 2017-2023 Francesco Ariis et al.
Author Francesco Ariis et al. (see AUTHORS)
Maintainer fa-ml@ariis.it
Revised Revision 1 made by fffaaa at 2024-04-22T14:04:12Z
Category Game
Home page http://www.ariis.it/static/articles/libraries/page.html#ansi-terminal-game
Source repo head: git clone http://www.ariis.it/static/repos/stagit/ansi-terminal-game/
Uploaded by fffaaa at 2024-02-07T16:49:13Z
Distributions LTSHaskell:1.9.3.0, NixOS:1.9.3.0, Stackage:1.9.3.0
Executables hot-reload, balls, alone-playback, alone
Downloads 10186 total (76 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-02-07 [all 1 reports]

Readme for ansi-terminal-game-1.9.3.0

[back to package description]
==================
ansi-terminal-game
==================

`ansi-terminal-game` is a library for creating games in a terminal setting.

Goals
-----

- be cross platform (linux/win/mac). If you plan to have your executable
  unix only, I invite you to check brick [1] or other, more expressive
  libraries.
- be simple: no curses/ncurses/pdcurses/etc. dependencies, all
  functionality built on a standard input / ANSI terminal base.

[1] http://hackage.haskell.org/package/brick

Learn
-----

- run the basic example with `cabal new-run -f examples alone`;
- check the source in `examples/Alone.hs`;
- open the 'Terminal.Game' haddock documentation (start reading from
  `data Game`).

A full game can be found at:

    http://www.ariis.it/static/articles/venzone/page.html

Other games made with a-t-g
---------------------------

- caverunner:
    https://github.com/simonmichael/games/blob/main/caverunner/caverunner.hs
- pigafetta: http://www.ariis.it/link/repos/pigafetta/
- avoidance: https://sabadev.xyz/avoidance_game

If you want yours to be added to this list, write to me.

Contact
-------

For any feedback or report, contact me at:

    http://ariis.it/static/articles/mail/page.html

Contributing
------------

browse repo: http://www.ariis.it/static/repos/stagit/ansi-terminal-game/
Upload your modifications somewhere and send me an email (<fa-ml@ariis.it>).