32 lines
1.1 KiB
Haskell
32 lines
1.1 KiB
Haskell
|
module Main where
|
|||
|
|
|||
|
import Alone ( aloneInARoom, sizeCheck )
|
|||
|
|
|||
|
import Terminal.Game
|
|||
|
|
|||
|
-- Hot reloading is a handy feature while writing a game. Here I will
|
|||
|
-- show you how to do that with ansi-terminal-game.
|
|||
|
--
|
|||
|
-- 1. install `entr` from your repositories;
|
|||
|
-- 2. run `find example/*.hs | entr -cr cabal run -f examples hot-reload`;
|
|||
|
-- 3. now modify example/Alone.hs and see your changes live!
|
|||
|
--
|
|||
|
-- Caveat: entr and similar applications do *not* work with interactive
|
|||
|
-- programs, so you need — as shown below — to load a record and play
|
|||
|
-- it as a demo.
|
|||
|
-- This is still useful to iteratively build NPCs’ behaviour, GUIs, etc.
|
|||
|
--
|
|||
|
-- Remember that you can use `recordGame` to record a session. If you
|
|||
|
-- need something fancier for your game (e.g. hot-reload with input),
|
|||
|
-- `venzone` [1] (module Watcher) has a builtin /watch mode/ you can
|
|||
|
-- take inspiration from.
|
|||
|
--
|
|||
|
-- [1] https://hackage.haskell.org/package/venzone
|
|||
|
|
|||
|
main :: IO ()
|
|||
|
main = do
|
|||
|
sizeCheck
|
|||
|
gr <- readRecord "test/records/alone-record-test.gr"
|
|||
|
-- check `readRecord
|
|||
|
() <$ narrateGame aloneInARoom gr
|