![]() |
#1 |
Knight
Join Date: Apr 2007
Posts: 726
![]() |
LambdaHack: my squad roguelike engine in Haskell (and Allure of the Stars, the game)
Announcing LambdaHack, my party-based roguelike (engine) in Haskell and Allure of the Stars, the Sci-fi game. Released with Linux, OSX and Windows binaries, a version playable straight in the browser and source code. Follow the links for newest versions. Contributions welcome!
https://github.com/LambdaHack/Lambda...eleases/latest Version v0.4.101.0, aka 'Officially fun' is out! Code:
- the game is now officially fun to play - introduce unique boss monsters and unique artifact items - add animals that heal the player - let AI gang up, attempt stealth and react to player aggressiveness - spawn actors fast and close to the enemy - spawn actors less and less often on a given level, but with growing depth - prefer weapons with effects, if recharged - make the bracing melee bonus additive, not multiplicative - let explosions buffet actors around - make braced actors immune to translocation effects - use mouse for movement, actor selection, aiming - don't run straight with selected actors, but go-to cross-hair with them - speed up default frame rate, slow down projectiles visually - rework item manipulation UI - you can pick up many items at once and it costs only one turn - allow actors to apply and project from the shared stash - reverse messages shown in player diary - display actor organs and stats - split highscore tables wrt game modes - move score calculation formula to content - don't keep the default/example config file commented out; was misleading - I was naughty again and changed v0.5.0.0 of LambdaHack content API slightly one last time Last edited by Bandobras; May 3, 2019 at 08:19. |
![]() |
![]() |
![]() |
#2 |
Knight
Join Date: Dec 2007
Location: Poland, Katowice
Age: 29
Posts: 589
![]() |
I will spend many days and nights reading the source.
__________________
If you can convincingly pretend you're crazy, you probably are. |
![]() |
![]() |
![]() |
#3 |
Knight
Join Date: Apr 2007
Posts: 726
![]() |
|
![]() |
![]() |
![]() |
#4 |
Knight
Join Date: Dec 2007
Location: Poland, Katowice
Age: 29
Posts: 589
![]() |
Alright, so I started delving into the source. The sample implementations for Client and Server really help, though one thing that I've been wondering about those: Your CliImplementation is a newtype wrapper around a small monad stack. Have you thought about making the client type in general be a monad transformer as well? Then you can just type alias one single monad transformer stack and have all the default MonadState functionality for free.
I would code it up myself quick, but I don't yet feel comfortable enough with the codebase, and I don't know where you rely on MonadStateRead/MonadStateWrite. [Edit] Ah, upon closer inspection, the plethora of MonadClient* instances would make this a bit harder, since they need access to what's on the inside. Nevermind, then. :'D
__________________
If you can convincingly pretend you're crazy, you probably are. Last edited by Narvius; April 12, 2015 at 12:16. |
![]() |
![]() |
![]() |
#5 | ||
Knight
Join Date: Apr 2007
Posts: 726
![]() |
Yep. They are 'sample', but they should actually be enough for a lot of crazy games. I suppose one would extend the main engine code rather than add an extra state component to CliState and then transform the extra state in some external code. But the generality helped me ensure via types that engine doesn't depend on the concrete representation of the state data underneath. [Edit: and on the fact, that there's the IO monad underneath.]
Quote:
Quote:
[Edit: this is described in https://github.com/LambdaHack/Lambda...r-architecture, though it may not be very accurate nor specific. It will also get abstracted a bit more when I let the client-server communication operate via net and so they will no longer reside in the same binary (and not in the same binary as the frontend thread either).] Last edited by Bandobras; April 12, 2015 at 13:09. |
||
![]() |
![]() |
![]() |
#6 |
Knight
Join Date: Apr 2007
Posts: 726
![]() |
I've just released v0.4.101.1 of Allure of the Stars (a standalone game based on LambdaHack):
https://github.com/AllureOfTheStars/...eleases/latest and a slightly updated LambdaHack (the engine and the example game): https://github.com/LambdaHack/Lambda...eleases/latest The next version will be the grand v0.5, but the API is already frozen (won't succumb this time, promise). Have fun! ![]() |
![]() |
![]() |
![]() |
#7 |
Knight
Join Date: Apr 2007
Posts: 726
![]() |
Allure of the Stars, the Sci-Fi squad roguelike game, with source and binaries
https://github.com/AllureOfTheStars/...s/tag/v0.5.0.0 (screenshots: http://www.roguebasin.com/index.php?...e_of_the_Stars) and its free software engine in Haskell (with it's own little game) https://github.com/LambdaHack/Lambda...s/tag/v0.5.0.0 (screenshots: http://www.roguebasin.com/index.php?title=LambdaHack) are out, ready for your tinkering, the API is frozen, the branch will be bugfixed and supported for some time. Enjoy! P.S. Windows and Linux binaries are included, but OSX binaries would be very much appreciated as well. |
![]() |
![]() |
![]() |
#8 |
Adept
Join Date: Dec 2007
Location: Portsmouth, UK
Age: 55
Posts: 216
![]() |
When I first saw this thread, I thought, "What a great idea! You have to fight off handsy drunks and avoid ex-boyfriends, acquire drinks and hors d'oeuvres, and you win by taking home the biggest boss!"
Imagine my disappointment. |
![]() |
![]() |
![]() |
#9 |
Knight
Join Date: Apr 2007
Posts: 726
![]() |
![]() It contains an open engine, ready to encode just what you describe. |
![]() |
![]() |
![]() |
#10 |
Scout
Join Date: Apr 2013
Location: NOT THE BEEEEEEES
Posts: 44
![]() |
I love haskell speak.
Now fork it to erlang too! |
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Party based roguelikes? | Therem Harth | Idle chatter | 32 | January 11, 2015 22:11 |
Can anyone recommend an ascii engine? | TJS | Development | 9 | October 15, 2014 08:52 |
engine for rand art generation | quarague | Vanilla | 19 | July 5, 2013 08:08 |
T-Engine 4 & ToME4 beta 2 are upon us! | DarkGod | ToME | 15 | May 27, 2010 19:06 |
Party-focused *band | Garrie | Variants | 6 | February 24, 2008 13:09 |