Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Mikon

Pages: [1] 2 3 4
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.
* [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

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 release so that you can get your game/mod out without delay.

Keep the feedback coming! Cheers!

Please give your feedback on the Early Dev thread:

- make fireworks slower and so easier to spot
- make rattlesnake deeper but more common
- announce no effect of activation
- describe original and current faction of an actor
- highlight dominated actors
- mark organs with comma instead of percent and gems with dollar
- make the healing cave dangerous to prevent camping
- slightly balance various content
- by default move item the same as last time
- often spawn between heroes and stairs going deeper
- fix totalUsefulness computation for negative effects
- fix abandoning distant enemy target despite no alternatives
- fix slow pushing of actors
- fix a crash when many actors run towards stairs
- hotfix: Pass zoom keys through to the browser
- help players find the info about changing the font size
- depend on GHC >= 8.0 and new vector
- specialize client code already in SampleMonadClient.hs
- enable StrictData in all modules
- replace 'failure' with 'error' that now shows call stack


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. (alternatively:

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.

Have fun and please drop me a line!

Temple of the Roguelike / Re: Issues with forum / blog? Post here!
« on: October 10, 2017, 10:41:53 AM »
When clicking on "Show new replies to your posts" I'm repeatedly getting this:

Database Error
Please try again. If you come back to this error screen, report the error to an administrator.

5 Windows/Linux/Source/Browser

Have fun! :)

- fix redrawing after window minimized and restored
- hack around vanishing texture on Windows
- hack around SDL backends not thread-safe on Windows
- the only breaking API change: specify font directory in game rules content
- let the game use its own fonts, not fonts from the sample game in library
- tweak some item creation to occur in character's pack, not on the ground
- slightly balance various content
- make sure the 'resolution' effect is not a drawback
- make artifact weapon rarities more regular
- avoid creating lit, open dungeon at the bottom, where foes have ranged weapons
- number scenarios in user descriptions
- correct, add and modify some in-game messages
- let player hear unseen summonings performed by other actors
- don't let actors hear blasts hitting walls, as opposed to hitting actors
- when moving item out of shared stash, reset its timeouts
- when ascending, shift timeouts of inventory as well
- when creating item not on the ground, discover it
- when dominating, auto-discover only if the item can't be discovered by use
- let henchmen take into account their targets, as described in
- let only walkable tiles be explorable, for clear walls inside solid blocks
- move to API 2.0.0 of sdl2-ttf and depend on corrected sdl2 (builds on Windows)
- simplify code thanks to the new sdl2-ttf API
- tweak travis scripts and building docs in README

Yep! And I will be hacking at the game at ZuriHack (Haskell Hackathon in Zurich, Switzerland), so please free to join me if you live nearby:

Announcements / Re: Unangband (now at v0.6.4c)
« on: September 04, 2015, 01:33:15 PM »

Programming / Re: LambdaHack and new content
« on: August 05, 2015, 02:30:10 PM »
v0.5.0.0 is out ( The content API is unchanged vs v0.4.101.1 and it's now frozen and will be supported for a longer time in this form.

I'm looking for OSX binaries for the example LambdaHack game and for Allure of the Stars, as well as for any success reports and links to games defined with v0.5.0.0 content API.

Have fun and feel free to ask any questions!

Thanks for the hint. :) Added screenshot links.

Allure of the Stars, the Sci-Fi squad roguelike game, with source and binaries


and its free software engine in Haskell (with it's own little game)


are out, ready for your tinkering, the API is frozen, the branch will be bugfixed and supported for some time.


P.S. Windows and Linux binaries are included, but OSX binaries would be very much appreciated as well.

Programming / Re: LambdaHack and new content
« on: May 29, 2015, 11:43:27 AM »
Actually, I've just added a few more tactics, which can be changed with Ctrl-T during a game, as opposed to being set for the whole game in content. One of them makes your followers ignore all items. Another lets your henchmen only melee, yet another only melee and throw (both are useful, e.g, when setting an ambush around a staircase, otherwise the henchmen crowd over staircases or just wander away). Unfortunately, the tactics change UI is still very cumbersome, contributions welcome.

Programming / Re: LambdaHack and new content
« on: May 28, 2015, 08:34:16 AM »
I don't mind if henchmen are doing these tasks by themselves. In case they find something that I would rather have on leader, I can always later manually move it.

Sure, but when you switch the leader to another actor, the previous one can spontaneously decide to get rid of that item and/or equip other items. ;)
Another solution would be to let player mark items with an inscription {henchmen off} so that the henchmen AI knows it may not touch them. Post-5.0.

This one I haven't done yet, but should. Does weight of a thrown object affect to damage or distance any way? Or would it be better if I would assing maluses to very heavy weapons?

The weight only affects the distance of throwing. Additionally LH melee weapons have attributes like 'toVelocity 40' in their ifeature field that limit the throwing velocity further. But, e.g., a dagger realistically can be thrown quite far. OTOH, not being balanced for throwing, it can hit with the wrong side, so additionally I add 'AddHurtRanged (-60)', which makes it as weak as a dart, but travelling much slower and closer. That balanced well with the durability, I guess, so the darts are not made obsolete once you find a few daggers.

Programming / Re: LambdaHack and new content
« on: May 28, 2015, 12:19:13 AM »
Thank you again for the report. It's fixed now on branch master. I couldn't reproduce it, because I never use the 'e' command available when the game shows me the description of an item (the noun-verb command). Instead I use the standalone 'e' command and only then pick the item to equip, changing display modes as needed (this is the verb-noun command).

BTW, you probably noticed that your henchmen (non-leaders) sometimes move items from equipment to pack, etc. Would you perhaps prefer to reserve such item management for yourself and only allow them to autonomously pick up items? Or perhaps you'd prefer to only pick up items with your leader? If the former, I'd need to separate the picking up skill from the current item management skill, so this is post-0.5. The latter can already be accomplished by changing fskillsOther of playerHero.

Another thing: I just remembered that the ranged damage bonus (AddHurtRange) aspect only applies to the item in question, not to other items. The aspect comes into play only when the item is used as a missile. The logic is that when the missile hits, bonuses are calculated as if the missile actor hit the target actor in melee. The only tweak is that, instead of the melee damage bonus, the ranged damage bonus is taken into account. In the future, when missiles comprise of many parts, the bonuses of all the parts will naturally be taken into account, since all the parts are carried by the missile actor.

That's different than for AddHurtMelee and AddArmor*, which are summed over all items of the original actor, as can be seen in the ! screen. That's intentional, only the bonuses on the ammo and perhaps on the launcher should affect the ranged damage, which otherwise easily gets overpowered and also induces equipment micromanagement when switching from ranged to melee combat and back again. (That's also how, e.g., Angband does it.) I wonder how to prevent confusion both in the UI, the player guide and in the content code naming. Perhaps when launchers are added to the game this will settle down and become clearer, but I'm open to suggestions already.

So, items that add AddHurtRange are useless in equipment, they can as well be kept in the pack and thrown when appropriate.

This is also why I have huge AddHurtRange maluses on the melee weapons in LH --- this prevents their use as super-ammo (they have large damage dice and they are durable, unlike normal ammo). And, OTOH, this doesn't affect other items, so keeping them in equipment doesn't make other ammo weaker.

Programming / Re: LambdaHack and new content
« on: May 27, 2015, 08:31:04 AM »
Bummer, I cannot reproduce the problem even with exactly the engine version you indicated. Could you send to all the data you have, including a savegame (the whole saves/ directory to be sure), if you can reproduce (or just seeds if you manage to reproduce with automated tests)? Thank you.

Edit: I reproduced this using the command I never use normally: the 'e' command available when the game shows me the description of an item.

Programming / Re: LambdaHack and new content
« on: May 26, 2015, 10:04:17 PM »
Created some more books that can be used to boost your stats. One such is book of close combat, that gives 3% damage to close combat, but 3% penalty to ranged one.

Fun stuff, as well as the librarian that often carries those. From my experience in my games (but YMMV), 3% bonus to damage dealt is not worth an equipment slot, and if there's a penalty, it's not even worth the turn spent picking it up. OTOH, if you scale up the bonus and the malus, players may be tempted to wear some items for melee combat and take them off for ranged combat. Which may be fun on levels with corridors, where you risk that you start a fight with wrong equipment, but is rather tedius on open levels, where you just need to remember the routine. The joys of endless balancing. ;)

I also noticed a bug in the engine. If your character has maxed equipment (as many items equipped as possible) and you try to equip one more, the game crashes with error message: execFailure: cannot equip any more items

Thanks a lot. Could you give the the git hash (or commit message) of the commit on the LH master branch that you work with? Also did it happen when the player's leader tried to equip, or another player's actor or the AI faction?

LambdaHack has pretty refreshing take on inventory management and used items. I like that I'm able to equip several weapons that boost my stats and use the strongest one in combat.

I'm glad to hear that. The idea was to make the inventory management as automatic as possible, given that the player controls many actors and also given that newbies should be taken care of until they learn to make their own equipment choices (the 'make your own detailed equipment choices' part is partially WIP, e.g., we still don't have a way to order the actor to attack with a particular weapon).

Pages: [1] 2 3 4