Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > The real world > Idle chatter

Reply
 
Thread Tools Display Modes
Old April 5, 2015, 07:48   #1
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road
LambdaHack: my party-based roguelike (engine) in Haskell

Announcing LambdaHack, my party-based roguelike (engine) in Haskell. Released with Linux and Windows binaries and source code. 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; April 5, 2015 at 10:47.
Bandobras is offline   Reply With Quote
Old April 9, 2015, 18:52   #2
Narvius
Knight
 
Narvius's Avatar
 
Join Date: Dec 2007
Location: Poland, Katowice
Age: 25
Posts: 588
Narvius is on a distinguished road
I will spend many days and nights reading the source.
__________________
If you can convincingly pretend you're crazy, you probably are.
Narvius is offline   Reply With Quote
Old April 9, 2015, 21:56   #3
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road
Quote:
Originally Posted by Narvius View Post
I will spend many days and nights reading the source.
Haha, well met, old buddy from UnAngband days. Please feel free to comment (e.g., here), ask questions and, of course, contribute (e.g., defining your own crazy game with the engine is a great start).
Bandobras is offline   Reply With Quote
Old April 12, 2015, 13:07   #4
Narvius
Knight
 
Narvius's Avatar
 
Join Date: Dec 2007
Location: Poland, Katowice
Age: 25
Posts: 588
Narvius is on a distinguished road
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 13:16.
Narvius is offline   Reply With Quote
Old April 12, 2015, 13:32   #5
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road
Quote:
Originally Posted by Narvius View Post
The sample implementations for Client and Server really help
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:
Your CliImplementation is a newtype wrapper around a small monad stack.
Yep, and a very similar stack for SerImplementation.

Quote:
the plethora of MonadClient* instances
Yep, I use those and the read-write and read-only monad a lot to ensure clients can't modify the main game State they share with the server, etc. (Actually, they can modify it, but only in the little bit of code (Atomic*) where they update the shared state based on messages sent by the server. Also, only restricted bits of the the state are shared based on what clients' actors can see, etc.) [Edit: I also use it to make sure only tiny bits of the client code can send/receive messages from the server, etc.]

[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 14:09.
Bandobras is offline   Reply With Quote
Old April 18, 2015, 10:12   #6
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road
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!
Bandobras is offline   Reply With Quote
Old August 7, 2015, 17:03   #7
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road
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.
Bandobras is offline   Reply With Quote
Old November 11, 2015, 15:23   #8
gglibertine
Apprentice
 
gglibertine's Avatar
 
Join Date: Dec 2007
Location: Chesterfield, UK
Age: 50
Posts: 98
gglibertine is on a distinguished road
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.
gglibertine is offline   Reply With Quote
Old November 11, 2015, 15:43   #9
Bandobras
Knight
 
Join Date: Apr 2007
Posts: 691
Bandobras is on a distinguished road


It contains an open engine, ready to encode just what you describe.
Bandobras is offline   Reply With Quote
Old November 11, 2015, 18:40   #10
MadeOfBees
Scout
 
MadeOfBees's Avatar
 
Join Date: Apr 2013
Location: NOT THE BEEEEEEES
Posts: 44
MadeOfBees is on a distinguished road
I love haskell speak.

Now fork it to erlang too!
MadeOfBees is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Party based roguelikes? Therem Harth Idle chatter 32 January 11, 2015 23:11
Can anyone recommend an ascii engine? TJS Development 9 October 15, 2014 09:52
engine for rand art generation quarague Vanilla 19 July 5, 2013 09:08
T-Engine 4 & ToME4 beta 2 are upon us! DarkGod ToME 15 May 27, 2010 20:06
Party-focused *band Garrie Variants 6 February 24, 2008 14:09


All times are GMT +1. The time now is 11:11.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.