Author Topic: Allure of the Stars (Sci-fi,squad, browser)/LambdaHack (Fantasy, Haskell engine)  (Read 27106 times)

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Hi! Two ASCII squad-based roguelikes for your enjoyment, built using the same Haskell engine. Both can be played in the browser or you can download binaries (less lag, especially in AI vs AI mode). I'm grateful for any feedback.

Here is the Sci-fi one, with survival elements (these will be more pronounced in the future, including building, crafting and story-telling; but there is already a robust tactical framework for improvised item throwing, dynamic lights for stealth and scouting, with fleeing/chasing/taunting/avoiding unnecessary combat, and more, including attempts by AI to best the player in all of that). It has multiple scenarios, in most of them you control a party of characters; the main scenario is a long crawl through an abandoned spaceship, in which the happily looting heroes suddenly find themselves unfairly trapped and stranded. The game ASCII UI follows the Angband/Moria visual tradition.

http://allureofthestars.com/play (alternatively: http://allureofthestars.github.io/play)



And here is the low Fantasy one, Cthulhu/MathPunk, much less serious, not as varied content, but may be more palatable if you don't like (near-future) Sci-fi. It is bundled together with the free software Haskell game engine. Feel free to to build your own game with it or mod an existing one. The game follows the Nethack visual tradition.

https://lambdahack.github.io



Have fun and please drop me a line!
« Last Edit: December 18, 2017, 08:43:37 PM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Hot! Plans for the next year!

* [UI] This is a big one. We are breaking through the eternal 80x25 characters barrier! The game window will be resizable and dungeon level viewport will be scrollable. Help needed, including brainstorming. In particular, I have no idea whether the view should always centre on the squad leader or only until any area outside the level is visible or yet something different, e.g., auto-scrolling so that the messages that overlap viewport from the top don't obscure the leader. See. https://github.com/LambdaHack/LambdaHack/issues/22
* [Gameplay] As soon as this is implemented, levels will have awesomely different sizes! But then we suddenly don't know how to align them vertically and it matters, because a single staircase is located at the same position on each level it passes through and so the relative distance of staircases needs to be preserved (even if we rotate levels, which I don't think we are loony enough to implement). Assuming there are no story-wise constraints, should the levels just align with their geometrical centres or is it too boring? Or top-left corner? Or centre of the top line? Also, what to do if a staircase passes through a void outside the level? See https://github.com/LambdaHack/LambdaHack/issues/115


News! (Also Hot)

* [Engine] Veronika Romashkina have just overhauled and sanitized our commandline support, using the optparse-applicative library. Commandline messages now look much spiffier and adding new options for testing and debugging will now be a breeze.
* [Engine] We switched to a new notation for specifying dice rolls in content. Where before you'd write "3 * d 4 - 2 |*| 5" now you enter "(3 `d` 4 - 2) * 5". BTW, it's just pure Haskell (hence the backquotes for infix function application) so you can include arbitrary expressions. e.g., to make sure that when you change base die for a weapon it changes for all weapons of the same class. If you are writing your own game or modding an existing one, please switch to the current master branch and write your dice in the new format to save your effort. Let me know and I will speed up 0.7.0.0 release so that you can get your game/mod out without delay.

Keep the feedback coming! Cheers!
« Last Edit: December 10, 2017, 10:50:58 AM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Release candidate (v0.7.0.0-rc) is now tagged on github. You can find windows binaries at

https://ci.appveyor.com/project/Mikolaj/allure/build/artifacts
https://ci.appveyor.com/project/Mikolaj/lambdahack/build/artifacts

The game engine API for 0.7.0.0 is hereby frozen. Quite a few changes for 0.7.* are planned (e.g., the big dungeons, if they fit), but they will not break the API any more. The game will now be tested for a few weeks or months (please contribute feedback) and then will be released, including the browser versions.

Here is the changelog (only the first few changes are visible to a player or a game creator, though some minor ones are not included in the changelog):

- decouple tile searching from tile alteration
- refrain from identifying items that are not randomized
- switch away from incapacitated leader to let others revive him
- make rescue easier by not going into negative HP the first time
- fix crowd of friends on another level slowing even actors that melee
- fix missing report about items underneath an actor when changing levels
- API breakage: change the syntax of dice in content
- API addition: introduce cave descriptions
- keep all client states in the server and optimize communication with clients
- improve item choice for identification and item polymorphing
- reset embedded items when altering tile
- replace atomic command filtering with exception catching
- reimplement dice as symbolic expressions inducing multiple RNG calls
- switch to optparse-applicative and rewrite cli handling
- add stack and cabal new-build project files
- improve haddocks across the codebase

Have fun!

Edit: changelog has been extended; web-browser versions are already updated to v0.7.0.0 (but may still be hot-fixed before the official release).
« Last Edit: December 14, 2017, 02:53:30 PM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Allure of the Stars v0.7.0.0 and LambdaHack v0.7.0.0 are out!

This release is dedicated to our recent and future contributors. We need you! Also, hacking a game in Haskell is even more fun than playing games! :)
But there are also gameplay tweaks and fixes in the release. In particular, the high drama of getting from 0HP back to life is quite possible and even common now, if you can pull if off. See the changelog in the post above. Gameplay feedback and any kind of advice are very appreciated.

Some of the places where hacking help is needed are described as github issues:
https://github.com/LambdaHack/LambdaHack/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
https://github.com/AllureOfTheStars/Allure/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
Please write on the issue that you consider implementing it and I will add to it more info, we will discuss things and that will benefit the project even if you eventually pick another issue, e.g., created especially for you.

See also the post above about the grand plan of "breaking through the eternal 80x25 characters barrier".
You are, as always, welcome to create your own game using the engine and the assets of the existing games.
Help from (ASCII-)artists and from literary minded English speakers would be invaluable.

Whether you just enjoy coding games or wish to polish your Haskell on a single easy task, don't hesitate, give it a try, there is a lot to gain for all involved, even just by random two-way feedback.
The Haskell code of the engine is large, but elementary. We don't use lens nor advanced type-level programming. The focus is on architecture and modularization, so there is relatively little entanglement among individual tasks. Consequently, the easy tasks should really be easy, while there are extremely difficult tasks as well. You are welcome.

Edited: Allure github issues, etc.
« Last Edit: December 13, 2017, 05:12:29 PM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Re: Allure of the Stars (Sci-fi, squad, browser)/LambdaHack (Fantasy, Haskell)
« Reply #4 on: December 18, 2017, 08:42:53 PM »
Thank you very much for your generous contributions, feedback and help in bugfixing. As a fruit of your labour, let me present to you

v0.7.1.0 of both Allure of the Stars and LambdaHack!!!

with the following changes:
- add amazing cave and item (actor, blast, organ) descriptions by Peritract
- package for Windows as an installer and also as zip archives
- fix a crash from SDL frontend under some OpenGL drivers (no thread-safety)
- add WWW address to the Main Menu, for other sites that may run our JS blob

Keep it coming!
« Last Edit: December 18, 2017, 08:45:02 PM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Trying out explosives and firecrackers in a nearby cave, with friends. Brainstorm here: https://github.com/LambdaHack/LambdaHack/pull/135

« Last Edit: January 20, 2018, 02:41:22 PM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
A showcase of shooting down explosives. Small font. A couple were shot down close enough to enemies to harm them. Others exploded closer to our party members and took out of the air the projectiles that would otherwise harm them.

This is a semi-automatic stealthy speedrun of the escape scenario. The enemy gang has a huge numerical and equipment superiority. Our team loots the area on auto-pilot until the first foe is spotted. Then they scout out enemy positions. Then hero 1 draws enemies and unfortunately enemy fire as well, which is when he valiantly shoots down explosives to avoid the worst damage. Then heroine 2 sneaks behind enemy lines to reach the remaining treasure. That accomplished, the captain signals retreat and leaves for the next area (the zoo).

« Last Edit: February 17, 2018, 05:49:57 AM by Mikon »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email


v0.8.0.0 explodes with many new features, backstory elements, a dashboard and scratches and itch: https://man-of-letters.itch.io/allureofthestars

Also, v0.8.1.1 follows up with much lower RAM usage when compiling and other developer comforts: https://github.com/LambdaHack/LambdaHack

Enjoy!
« Last Edit: June 09, 2018, 08:07:21 AM by Man of Letters »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
The giveaway has started!!! https://www.indiedb.com/giveaways/allureofthestars

Excitement! Emotion! Thrill, Tumult, Rush and Commotion!

Details at https://redd.it/8rguey

« Last Edit: June 17, 2018, 12:31:56 AM by Man of Letters »

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
I'd like to thank all people engaged in the giveaway event: the organizers and the hundreds of contestants and also those that didn't register, but vociferously participated in the festivities on various fora. If you didn't win, don't despair --- you are cordially invited to name the price of your choosing at https://man-of-letters.itch.io/allureofthestars and enjoy the game to its fullest. If you won, you rock and you are entitled to all future versions of the game (though not necessarily all DLCs), no matter how high the minimal price rises when the game exits Early Access (in a decade or so). Now let's go claim from the pesky aliens what is ours!

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
v0.8.3.0 is just released, with Mac OS X binaries included for the first time, thanks to Pablo Reszczynski.
who apparently found the game's Easter egg, became an alien and is seen at the screenshot giving the puny humans a hard time. :D



Changes, as in https://github.com/AllureOfTheStars/Allure/releases/tag/v0.8.3.0:
- 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
- Tweak loot and terrain a tiny bit

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Regarding these illustrious plans:

Hot! Plans for the next year!

* [UI] This is a big one. We are breaking through the eternal 80x25 characters barrier! The game window will be resizable and dungeon level viewport will be scrollable. Help needed, including brainstorming. In particular, I have no idea whether the view should always centre on the squad leader or only until any area outside the level is visible or yet something different, e.g., auto-scrolling so that the messages that overlap viewport from the top don't obscure the leader. See. https://github.com/LambdaHack/LambdaHack/issues/22
* [Gameplay] As soon as this is implemented, levels will have awesomely different sizes! But then we suddenly don't know how to align them vertically and it matters, because a single staircase is located at the same position on each level it passes through and so the relative distance of staircases needs to be preserved (even if we rotate levels, which I don't think we are loony enough to implement). Assuming there are no story-wise constraints, should the levels just align with their geometrical centres or is it too boring? Or top-left corner? Or centre of the top line? Also, what to do if a staircase passes through a void outside the level? See https://github.com/LambdaHack/LambdaHack/issues/115

I've decided to fix Allure window to 45x80 characters and keep LambdaHack at the old 24x80. Also, all levels will have size equal or smaller than the viewport size (until somebody wants to create a game with huge levels, at which point we'll tackle the issue again). Both of these design decisions simplified matters a lot. In particular, as of now, the display code copes with the generality and dungeon generation limps along somehow.

There is still a lot to do, though:
- Allure cave and place content needs to be overhauled to create nicer dungeons (currently they are just scaled).
- The other content (rooms, tiles, items, blasts, actors, organs, temporary conditions) needs to be extended to fill the twice bigger dungeon with exciting things.
- The codebase needs to be overhauled to create interesting, tight dungeons and not be hampered but take advantage of the larger level size.
- To make it possible to vary the size of Allure levels (but all will be smaller than the viewport), stair and level creation needs to be rewritten (because stair locations match on levels they connect).
- Dungeon generation and content choice need to take into account the small (21x80), tiny (21x40) and very tiny (???) levels, to make them interesting and balanced.

Contributions and feedback, as always, very warmly welcome.

Man of Letters

  • Rogueliker
  • ***
  • Posts: 68
  • Karma: +0/-0
    • View Profile
    • Email
Progress on the UI front. A new placeholder ASCII art for the Main Menu and help screens that use the twice area. Other menus and listings where scaling up automatically fine






quantumpotato

  • Newcomer
  • Posts: 1
  • Karma: +0/-0
    • View Profile
I'm always curious when devs us efunctioal languages. How have you found Haskell for development?