LambdaHack Versions Save

Haskell game engine library for roguelike dungeon crawlers; please offer feedback, e.g., after trying out the sample game with the web frontend at

v0.11.0.1

6 months ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips.

This is an emergency release fixing a compilation problem with unsnoc due to updates in dependencies (and no upper bounds) and adding a few other fixes and tweaks. Web version of the game is not being updated at this time, binaries are not provided and a corresponding version of Allure of the Stars is not released.

Changes

  • Split the long Content.ModeKind texts into lines, #283
  • In unit tests, re-use values from UnitTestHelpers and Game.LambdaHack.Common.Kind, #286
  • Rename unsnoc (see #300)
  • Bump the bound on hsini to handle trailing whitespace properly
  • Hack around a crash when TABbing during item manipulation
  • Document better that macros start with Cmd_
  • Correct a typo in test/Spec.hs
  • Add the communication overhead explanation proposed by fYnch
  • Compress detail levels and don't show paths at DetailHigh
  • Balance speedrunning and explain it better in player docs
  • Change failed alter message to less confusing; thanks go to Pug
  • Tweak tutorial hint enums and tests
  • Make lore menu with all tutorial hints
  • Don't punish naughty window managers with spammy warning
  • Try harder to prevent resizing in SDL
  • Change install from Hackage instructions so that they work outside package dir
  • Interrupt sleep and running a bit less

v0.11.0.0

2 years ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips.

This is an emergency release containing a partial workaround for a regression in the libsdl2 graphics library. Web version of the game is not being updated at this time.

Changes

  • Partially work around regression in libsdl2 2.0.16 (https://github.com/LambdaHack/LambdaHack/issues/281); to also avoid deformed boxes around tiles on the game map, please switch to a different SDL2 version
  • Deduplicate UI code for exiting game, with extra style points
  • Create monadic test harness and use it for UI and other unit tests
  • Validate empty content and fix other soundness issues revealed by unit tests
  • Add extra hints in --more and similar lines when tutorial is on
  • Show full history at SPACE press and let second SPACE close it
  • Spawn insects in the swamp
  • Remove slot letter display in menus and instead display subtle bullets
  • Repurpose item slots to item roles
  • Redo display and control of main menu and its submenus
  • Make Teletype frontend a bit closer to playable
  • Switch right pane item description display from mono to prop font
  • Ensure score not zero if victory
  • Add a custom SDL cursor, working around a bug in SDL2 bindings
  • Gut out most content symbols; weren't used even in lore menus after all
  • Add a flag to disable the costly optimizations (that give 15-25% speedup)
  • Add faction kind content and redo game mode content to use it
  • Display seen faction lore
  • Simplify and fortify faction and client assignment code
  • Make a few unique items that were identified meta-game identifiable instead
  • Fix persistence of meta-game discoveries in save files
  • When assigning a faction, first try the group actor was picked from
  • When assigned faction is dead, don't spawn the actor
  • Don't use benign weapons on projectiles not to lose the fun
  • Make the unique harpoon worth saving for a unique foe
  • Spawn enemies closer and fix too random spawning location
  • Improve display of item's range
  • Warn when SDL game windows is resized not via config file
  • Ban or force sleep on levels
  • Protect against unset or primitive OS locale
  • Add temporary hearing aids
  • Disallow generating a door beside an opening in room's wall
  • Permit smaller caves and validate cave content more accurately
  • Try harder to generate escape from dungeon in a level corner
  • Avoid exit/escape confusion in content names and descriptions
  • Extend LH game mode a descriptions since people play it instead of Allure
  • Make sure every cave has a description
  • Many fixes, refactorings and tweaks

v0.10.3.0

2 years ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips.

This is an emergency release containing a workaround for a regression in the freetype font rendering library. Homebrew and Nix are currently affected and other operating systems may be affected soon. Web version of the game is not being updated.

Changes

  • Work around regression https://gitlab.freedesktop.org/freetype/freetype/-/issues/1076 by making the scalable square font the default as the map font; the tiny map fonts, for which there is no such workaround, won't work for anybody with freetype 2.11.0
  • Enable display of details in right pane in many menus
  • Switch mouse wheel to move selection now that it changes right pane display
  • Make the line where messages wrap configurable in config file
  • Remove rarely used options from config file and code
  • Prepare client-server for delays when operating over the network
  • Reveal all map at game over and make it explorable
  • Don't run with -threaded, increasing speed by a couple dozen percent
  • Don't show messages during enemy turn (except when under AI control)
  • Spawn many actors at once with probability correlated to spawning at all
  • Gut out Ubuntu Font Family fonts
  • Default to more old-fashioned small fonts in LambdaHack the game
  • Add a few tutorial messages, reword some in-game texts
  • Move with CI from Travis to GitHub Actions (but GHA can't keep up as well)
  • Add hlint to CI
  • Make place content directly define legends instead of overriding them
  • Add a warning that crosshair is out of flinging range
  • Add ANSI display to SDL2 frontend; remove vty, hcurses and GTK frontends
  • Make Teletype frontend more usable (input, speed, overlays)
  • Remove sight malus from light sources to avoid micromanagement
  • Keep convenience settings between new games
  • Add an option to mark FOV area with grey background
  • Refactor and clean up a lot of the code
  • Unhardwire various constants (hat tip to Jamie)
  • Fix a couple of bugs and improve documentation
  • Add whole new kinds of tests (even greater hat tip to Jamie)

v0.10.2.0

3 years ago

v0.9.5.0

5 years ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP. Additional binaries, in particular for Android and iOS are very welcome.

Changes

  • Fix NumLock disabled in the browser
  • In screen reader frontend, highlight active menu line with the cursor
  • Clone the main main menu commands as map mode commands
  • Add C-RMB and C-S-LMB as alternatives of MMB
  • Announce prominently MMB binding for describing map positions
  • Clean up the default config file, keeping compatibility
  • Make scenario names longer and slighlty more informative
  • Make Vi movement keys the default in addition to keypad and mouse
  • Fix a bug where death prompt when autoplaying was capturing a keypress
  • Let ESC from main menu return to insert coin mode, if applicable
  • Make various small UI tweaks, especially to main menu and its submenu
  • Let main menu lines have 35, not 30, characters
  • Make the main menu ASCII art less intrusive (and easier for screen readers)
  • Don't invalidate the score file due to game minor (only) version bump

v0.9.4.0

5 years ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP. Additional binaries, in particular for Android and iOS are very welcome.

Changes

  • In vty frontend highlight actors more
  • Clean up actor highlighting
  • Add yell/yawn to minimal command set, remove swerving the aiming line
  • Invoke yell/yawn exclusively with '%', due tor Windows and terminal woes
  • Move C-c command to C, not to mask C-c on console frontends
  • Tweak and fix vty console frontends, for screen-readers
  • React specially at gameover under certain special circumstances
  • Simpliy assignSlot now that slots are auto-sorted
  • Get rid of explicit item sorting; let lore and menu slots agree
  • Make DetectExit non-modal
  • Mark in a game end confirmation message that more treasure can be found
  • Add a description to the escape embedded item
  • Reword gameover text for raid scenario
  • Be more verbose when confirming escape from the game
  • Don't claim to summon, when not possible on this level
  • Fix missing 'no longer poisoned' when applying antidote
  • Don't ask confirmation for neutral (e.g., not IDed) items
  • Fix 'you fall down; you stand on a sword'
  • Prevent selecting regions via mouse down in web frontend
  • Deselect item if player declines to apply or fling
  • Hand-hold the player, warning if flung item is beneficial
  • Hand-hold the player, warning if applied item is harmful
  • Rewrite the condition in UI applyItem check
  • Improve the lobable item skill failure message
  • Let mouse buttons describe tiles, etc.
  • Unblock S-MouseButton in SDL2 frontend
  • Always describe things under mouse button
  • Make the message when hitting dead foe more varied

v0.9.3.0

5 years ago

Please see README.md for installation and configuration information and PLAYING.md for gameplay tips. The windows binaries no longer work on Windows XP, since Cygwin and MSYS2 dropped support for XP. Additional binaries, in particular for Android and iOS are very welcome.

Changes

  • Introduce message classes with configurable behaviour
  • Create a new 16x16 font and use it everywhere; tweak smaller fonts
  • Lock some levels or otherwise make ascending tricky
  • Add cooldown to most melee weapons, display that in HUD, adjust AI
  • Add per-scenario and per-outcome end-game messages in content
  • Add duplicate and reroll item effects in preparation for crafting
  • Add actor and item analytics as a preparation for XP gain quests
  • Implement piercing projectiles that may share a tile with a big actor
  • Increase the spawn speed now that monsters sleep a lot
  • Introduce actors falling asleep and yelling
  • Allow any level size and position
  • Mention places when looking at tiles and add place lore menu
  • Expand all kinds of content and rebalance
  • Create and rework all item, cave and plot prose (Dan Keefe @Peritract)
  • Make explosives in cramped spaces twice weaker
  • Tweak player fling command
  • Tweak equipping when equipment overfull
  • Start cycling stores at equipment since that's the one mentioned in help
  • Overhaul CI scripts
  • Restructure and clean up codebase
  • Extend balance debugging tools, using item and actor analytics, places, etc.
  • Drop the gameplay option that first death means defeat
  • Avoid idle-GC between slow keystrokes
  • Put content data into a compact region to limit GC
  • Remove the border around web frontend game screen; seems unneeded now
  • Don't draw aiming line nor path in vty frontend
  • Highlight xhair by cursor in vty frontend
  • Highlight player by cursor in vty frontend
  • Switch the default FPS to 24 for tradition's sake
  • Highlight current high score
  • Remove most stopPlayBack, now spurious, because message classes used
  • Overhaul cabal file: define common options, split into internal libraries
  • Fix confusion of nub and uniq
  • Rename short wait to lurk and many lurks to heed
  • Show a red message when HP or Calm dip too low or when foe appears
  • Lose Calm and so alert AI even at weakest non-zero HP draining attacks
  • Enable screenshots while in menus
  • Rename config options related to fonts
  • Recolour aiming line not to clash with the red crosshair
  • Exchange the functions of yellow and red highlight
  • Tweak all colours, in particular to differentiate blues/cyans
  • Cap bright colours at 85 CIELAB Lightness at D65
  • Normalize dark colours to be between 42 and 57 CIELAB Lightness at D65
  • Get rid of colorIsBold option; KISS
  • Tint white in alternating lines with different hue for long text readability
  • Don't split lines at articles
  • Set xhair to currently meleed foe to see his HP
  • Display speed on HUD; tweak status lines in other ways
  • Don't show description of leader target in HUD; TMI
  • Help AI flee in a consistent direction over many turns
  • Expose the save backup command, for browser games
  • Don't display target info when item selected
  • Let AI actors spawn even quite far from the player
  • Auto-select all new team members, to help new players
  • Replace O by zero on the map display; make zero distinct from O in all fonts
  • Flesh out the initial ? prompt
  • Add 'I' alias for pack-related commands, unless laptop key-scheme used
  • Turn off movementLaptopKeys by default not to confuse new players
  • Make sure AI attacks bosses even if distant and fleeing or non-moving
  • Lower bonus HP at extreme difficulty
  • Add a separate frame for each projectiles start
  • Don't go modal at the frequent and weak hidden tile detection effect
  • Make AI pick closest stairs more often
  • Let apply-unskilled actors activate embedded items
  • Don't boost damage by speed unless actor is projectile
  • If everything else fails, let AI flee by opening doors
  • Help AI actor prevent being dominated
  • Make computing gameplay benefit to items more accurate
  • Rename, clone and fine-tune effect Temporary
  • Simplify code and content by getting rid of Recharging effect
  • Let applying periodic items only produce the first effect
  • Tweak item detection to help in skipping boring level portions and in stealth
  • Invoke and display embedded items in the order specified in tile definitions
  • Let lit trails illuminate colonnades
  • Prevent an exploit for avoiding self-invoked firecrackers
  • Don't let AI attempt summoning if not enough Calm
  • Improve item label bracket codes in menus
  • Pick randomly destination stairs if teleporting level
  • Display the number of items in store
  • Summarize value of player loot in shared stash menu's header
  • Start history menu at the close-up of the last message
  • Make fast-dying insects aggressive
  • Overhaul game score DSL and particular scoring definitions in content
  • Add and extend messages, e.g., tell if victim blocks and with what armor
  • Extend and rework menu manipulation keys
  • Remove specialized quaff, read and throw commands; KISS
  • Split walls of text into more paragraphs and/or make them narrower
  • Extend and update help and manual
  • Don't let AI waste time looting distant lone projectiles
  • Make Enum instances of Point and Vector contiguous, hackily
  • Make dominated actor drop all his items, for ID and in case he defects ASAP
  • Try to find a non-waiting action, if better AI leader can't be found
  • Prevent summoning OoD actors
  • Let animals eat food and add several foods
  • Make Domination effect harder to activate
  • Let only actors and items with SkOdor property leave smell and add perfumes
  • Let spawning rate level out after a few dozen spawns
  • Describe smell, if present in an inspected tile
  • Let pushed actor fly after crashing a door open
  • Show passing time and heard events even if no actors in the UI faction
  • When movement impossible, describe the tile with SHIFT-direction
  • Catch and steal projectiles when braced instead of when weaponless
  • Let actors that are pushed perform any action in addition to movement
  • Improve deduplication of messages
  • When describing actor on map, tell if it has loot
  • Represent being braced as having an organ; also add other pseudo-organs
  • Overhaul hearing to facilitate triangulation based on sound cues
  • Prefer to spawn aquatic actors on aquatic tiles
  • Add swimming and flying skills and shallow water tile features
  • Boost/drain skills via many new items
  • Rework and extend skills and their effects as a preparation for XP rewards
  • Enable specifying each side of outer cave fence separately
  • Make definition of caves of a scenario more precise
  • Specify more properties of levels in content
  • Extend content validation
  • Improve placement and fitting stairs and rooms on levels
  • Don't hardwire level size
  • Simplify game rules content
  • Change the format of game client content
  • Fix an arbitrary delay in killing dying actors
  • Fix arbitrary branch of a corridor chosen when running
  • Fix bush patches blocking off a level's corner
  • Fix config file ignored at game reinit
  • Fix running disturbed by flavours of walls
  • Fix splitting lines one character too early
  • Fix Calm drain from nearby foes occurring only every other turn
  • Fix some AI looping movement, in particular when fleeing
  • Fix running into own periodic explosions, e.g., from necklaces
  • Fix 'she painfullies collide'
  • Fix AI with vector targets unwilling to change them
  • Fix crash when attempting to fling at a target on remote level
  • Fix wrong timestamps in history
  • Fix, again, various kinds of frames intruding between fadeout and fadein
  • Fix wrong pluralization of some item names, compound and exceptions
  • Fix disabled items benefit recalculation after item kind learned
  • Fix in many ways too close initial faction and item positions
  • Fix performance in many ways and places, particularly for JS translation
  • Fix missing perception updates, causing missed AI actions concerning us
  • Fix uninitialized sarenas, which was probably causing resume to change state
  • Fix weak AI actors fleeing even if enemy can't melee
  • Fix and optimize sifting free tiles for spawn/summon location
  • Fix various cases of excessive summoning
  • Fix recording of item first seen level
  • Fix many problems with item descriptions and other messages
  • Fix reporting of reduction and elimination of actor conditions
  • Fix reading and interpreting old format config files
  • Fix synced initial item timeouts and actor times, leading to artificial feel
  • Fix actors erratically following their leader
  • Fix lifts continuing as stars and the other way around
  • Fix various 32bit overflows
  • Fix other errors, probably not present or not visible in previous version

v0.8.3.0

5 years ago

This release fixes an SDL crash on OS X and comes with OS X binaries included (you need SDL2 installed, e.g., from libsdlorg). See README.md for installation and configuration information and PLAYING.md for gameplay tips.

Changes

  • Add a hack to run SDL2 on the main thread, fixing the OS X crash
  • Warn visually when impressed and Calm running low, risking domination
  • Display actor as red when low Calm and impressed or when low HP
  • Fix, complete and fine tune UI, AI and server skill and weapon checks
  • Fix a bug where item aspects look different to clients than to the server
  • Change the requirements for the main menu ASCII art

v0.8.1.2

5 years ago

This release has no major player-visible changes and is aimed at developers and package maintainers. It fixes a bug introduced in v0.8.1.1 that is triggered by an old async package. For binaries, please refer to previous releases. See README.md for installation and configuration information and PLAYING.md for gameplay tips.

Changes

  • Fix typos detected by lintian
  • Fix the code that runs in case of old async (bug introduced in v0.8.1.1)

v0.8.1.1

5 years ago

This release has no player-visible changes and is aimed at developers and package maintainers. For binaries, please refer to previous releases. See README.md for installation and configuration information and PLAYING.md for gameplay tips.

Changes

  • no player-visible changes
  • make it possible to compile with old async package
  • rewrite copyright information according to Debian format
  • make github display the correct main license