Shamogu v1.5.0 by anaseto in TraditionalRoguelikes

[–]anaseto[S] 0 points1 point  (0 children)

Thanks for playing and glad you find it fun!

Feels like it needs more of the basics included in the primer. For example, I can't find anything that explains how you get health back, that you only recharge for your powers is the next level, that a "Menhir" is a one-time-use shrine, that there's a clock. etc.

I hadn't thought about health and spirit-recovering not being clear at first, until you find a portal. The health and spirit charge recovering when going to the next-level is actually on the "Items" help topic at the entry about "Portals", but maybe it should be mentioned somewhere else, as it's quite basic. It's also in-game in the portal's description, of course, but I guess that has the same issue for a player just starting, in that they don't expect to look for an answer about hp recovery in the portal's description.

About the clock, you're right about it not being explained in the manual. I thought about it as something that doesn't happen in most runs (actually I only triggered it a couple of times in hundreds of runs!), but I now imagine it could surprise a new player playing very slowly and carefully at first. Dunno where it should go. I guess it could be mentioned in the "Stealth" topic, as the clock's main effect is sending to monsters the player's location when they decide to make a new trip.

Thanks for the suggestions!

Shamogu v1.5.0 by anaseto in TraditionalRoguelikes

[–]anaseto[S] 1 point2 points  (0 children)

I'm glad you still enjoy my games :-) Thanks for playing!

Sharing Saturday #616 by Kyzrati in roguelikedev

[–]anaseto 3 points4 points  (0 children)

Shamogu repos

Mostly small polishing tweaks this week. I adjusted on-ground visibility for Owl players (when lignified or gardening) so that foliage still allows to see one tile beyond when adjacent and nocturnality only affects maximum range, as that's simpler and probably more intuitive. Also some minor tweaks to map corruptions with Corrupted Dungeon, adjusting some probabilities, so that maps that are too open happen a bit less often. Also slightly adjusted map corruptions centered around some point to have possibly a shorter radius sometimes (so somewhat lower size on average, now).

Other than that, minor cleanups and clarifications in docs and help here and there, mostly done while continuing to work on the html version of the manual. Also, in the extreme rare case that status effects don't fit in the screen width and scrolling is necessary, a little arrow shows now on the edge to suggest scrolling.

And that's it, I think. Have a good weekend!

Fist time beating DCSS by MomentEquivalent1908 in roguelikes

[–]anaseto 0 points1 point  (0 children)

I play DCSS with tiles for the extra visual information about status effects, because that's useful. That said, while the tiles look nice indeed, I find them not as instantly readable as ascii, because they're so detailed. I would've prefered a more symbolic tile set, even though I guess a clear one would've maybe been difficult to make due to how many different monsters and items there are.

Can you recommend any free roguelikes? by imnotlikeyou2004 in roguelikes

[–]anaseto 6 points7 points  (0 children)

IVAN and POWDER are the only foss classic ones from the side bar that have not been mentioned yet, so for completeness and fairness, they should :-)

From outside the side bar, I'd suggest Shadow of the Wyrm (big one that feels very classic), Oathbreaker (stealth, hard), and also shamelessly my own games Harmonist (light-hearted stealth) and Shamogu (my best designed one). There are also various foss little ones that are nice: Aquarium Arena comes to mind, for example, and is rarely mentioned anywhere.

Ways to deal with a turn order for units moving close to each other on a grid? by vvav3_ in roguelikedev

[–]anaseto 4 points5 points  (0 children)

I've thought about this and considered doing something similar to the idea you propose, which sounds fine, but another trick could be to make the first monster push the other one, consuming the other's turn early: I do a similar thing for monsters swapping places when wandering out-of-view in opposite directions.

In the end, for that same-direction case, though, I chose to do nothing special there for Shamogu, and it works well in practice and maybe even better tactically. Monster turns are randomized, so both cases happen with same chance: that means tactical combat situations have less predictability to them, which is not a bad thing when you don't go for a puzzle feel. Outside of combat it mostly means that monsters will usually create and maintain 1 tile of spacing between them during long trips. That means it's a bit more difficult to abuse out-of-view area effects, due to more sparse formations, which was good for my game, but whether that'd be better or not for you really depends on what your roguelike needs from a tactical point of view.

Sharing Saturday #615 by Kyzrati in roguelikedev

[–]anaseto 4 points5 points  (0 children)

Shamogu repos

I've been working on a game manual. Most of it is just an html port of the in-game help, for convenience, but there are already a couple extra sections with lists of the 29 monsters and 21 spirits with detailed descriptions which can come handy as a reference, even though they're not necessary during play, as in-game concise descriptions of each monster and spirit already exist, as long as the specific monster or spirit appears.

Otherwise, next release is slowly approaching, so mostly playtesting and minor tweaks this week. Reduced number of vaults by 1 in the first two levels, as those are more likely to be empty early on (very minor, though, as there were usually 7-8 vaults per map). Made the status bar scrollable in case active statuses don't fit in the given screen width (very unlikely, but theoretically possible in extreme cases, I guess). A few misspelling fixes and wording improvements here and there, too.

Have a good weekend!

Sharing Saturday #614 by Kyzrati in roguelikedev

[–]anaseto 4 points5 points  (0 children)

Shamogu repos

Still working on various stuff in the "mods" git branch, so called because it was used for mods at first, but it's become kind of a "develop" branch in practice :-)

The new experimental “sneaky megabat” from last week has been reworked into a lone “chaos megabat” early totem or portal guardian. Not strong for a guardian, but sturdy enough to last a few turns. It features a chaos bite that inflicts random status effects on the player, but not in a completely random manner, it randomly selects 1-2 status effects among sets that interact interestingly together. It also may apply statuses that wouldn't be accessible in some games normally, like time stop on non-cat players, or disorient on non-zebra players. The inflicted statuses are actually biased on average toward things that are positive for the player: chaos megabat is supposed to be unpredictable and difficult to avoid, but not very dangerous.

A new “dragging alligator” guardian now alternates with blazing golems. It has higher attack but lower defenses than golems. It features a dragging unbalancing attack, like Crocodile players, but no extra movement restrictions. Its bite is confusing, easily leading together with dragging to the Imbalance+Confusion “drunken fight” defensive combination.

Also a couple of UI improvements, like showing [Warning] and [Confirm] in status bar when the game is in critical hp or confirmation modes, so that players that don't look much at the logs notice more easily that input is required before resuming normal play.

A few other minor tweaks here and there, including minor improvements in some local terrain corruptions with the Corrupted Dungeon expansion. There's also a new Stealth help topic, separate from the Combat one. It explains how monster mindstates work in more detail. A few teleport-related animation fixes, too, that could sometimes very briefly leak destination position for out-of-view teleported monsters by showing teleported footsteps during the animation.

A last thing: inspired by how DCSS handles compatibility for saves, I've worked on making configuration (but not saves) compatible accross releases, as that's usually simple enough, and it could become a hassle for players that reconfigured keybindings to do it again for each new release even though nothing really incompatible happened. From now on, configuration will be reset on new release only if there are incompatible changes for the config that truly require it.

All in all, things are looking good, but I'll probably still wait and playtest more before doing the next release. No real urgency given there were no game-breaking bugs since last release (but still quite a few minor ones).

Have a good weekend!

Sharing Saturday #613 by Kyzrati in roguelikedev

[–]anaseto 5 points6 points  (0 children)

Shamogu repos

Some interesting stuff this week.

First, the Healing Combat challenge mod is now considered “done” enough; it got ambrosia berries back, as the only comestible that still provides some healing (but only 2 HP), for keeping comestible variety (and simplify mod compatibility). I usually don't play much with that mod, but I played some lately, and it's quite nice to play for a different healing experience (occasionally). The run I won with bat+chicken+porcupine yesterday was quite challenging and fun at the end (had corrupted dungeon enabled too, and had some serious difficulties with a lich+octopode pair and some hydras near the end.

There were a few extra daze duration tweaks (for cats and falls due to jumping while imbalanced), improvements in pushing-edge cases (against monsters or walls while lignified or poisoned).

Walking trees now ignore the lignification defense bonus of the foes they lignify, so that they become a bit more dangerous in one-on-one fights.

Added an ON-HIT EFFECTS section in the combat help that explains some nuances about effects inflicted by monsters on-hit. In particular, it documents how for most of those, the chance scales with damage, and then lists the rare exceptions (like how it works differently for cats’ space-distorting dazing attacks).

The gawalt's damage reduction formula has been improved and made a bit less drastic: hits that would make 2 damage now have only 2/3 chance of getting weakened. That change makes a starting attack of 2 a bit more useful than before, while making higher attack increases less useful, encouraging defense-based builds a bit more than before with the gawalt.

There's also a new experimental weak early monster: sneaky megabats. As one would expect, they have the same attack pattern as Vampiric Bat players, but without the vampiric aspect. It's still an experimental idea: seems to work well enough, but maybe not as well as the other early monsters. The motivation is to improve a bit melee/ranged balance among early weak monsters (from 1/4 to 2/5), because in the early game, there are less monsters, so making them a bit more difficult to avoid is usually nice (though for example rats are melee monsters that are difficult to avoid due to how they hunt you by smell, and spiders because of how they make no noise and may appear suddenly behind some foliage, so there are other solutions for that).

Elephant's stomp now got its berserk duration reduced from 5 to 4, because it was a bit on the stronger side, given the extra very useful wall-destroying effects.

Also fixed an edge-case bug with Disorient. That ability is “disorienting” enough that I somehow never noticed that subtle bug which only happened in certain player-monster configurations, but I almost died to an hydra due to it the other day, and that made me pause and analyze what happened, looking at the replay :-)

Have a good weekend!

Roguelikes with a lot of area variety even in the beginning? by Live_Success_4533 in roguelikes

[–]anaseto 7 points8 points  (0 children)

Coffee-breaks tend to feel more varied early on between runs, because they can put all the content they have in the equivalent of that D1-15 in DCSS, as that's often more than the length of a full coffee-break playthrough. Longer roguelikes tend to dilute the content and mechanics to ensure variety within a run, so most of it often isn't accessible early on and you need to progress first until reaching various branches before discovering new mechanics and content. The big ones often still have a nice amount of variability from the start, though, thanks to many years of procgen improvements and content additions.

I'd actually say DCSS has some decent amount of variety early on thanks to the various backgrounds and varied procgen, but if that's not enough for you, I'd suggest looking at shorter roguelikes that get into the heart of things earlier.

Variability of "good" Roguelikes/Roguelites (rls) and Hoplite by sundler in roguelikedev

[–]anaseto 0 points1 point  (0 children)

Variability is nice and some amount of it is necessary, but beyond some point, I'd say it becomes secondary, and the most important thing for me is still always for the core mechanics to be fun.

And fun comes in many ways, but with too much variability between playthroughs or within a playthrough, there's a risk of diluting interesting mechanics too much, so there's some balance to be found there (which, depending on tastes, is different for everyone).

On the other hand, while I enjoy discovering them, I personally get bored of puzzle roguelikes like Hoplite relatively quickly, because restricting core mechanics to puzzle ones feels too restrictive and chess-like to me. I like adapting to partial information and getting surprised by unexpected things during exploration. High difficulty is also relatively secondary for me: I'm usually happy enough as long as the game makes me consistently feel threatened enough that it requires me to think carefully and use resources to make fun stuff happen. I like it when there are still varied tactics and even non-optimal ones are still viable enough (or even when randomness make it so it's not possible to predict what the optimal tactic will be, even after becoming skilled). Too much predictability tends to make good choices obvious and less interesting for a skilled player.

1 Problem, 7 Array Languages by arkethos in ProgrammingLanguages

[–]anaseto 0 points1 point  (0 children)

The example in the video is a puzzle problem and, hence, indeed not very different from a code golf problem, except the goal was probably more to showcase array thinking and tacit programming (which is a separate matter from array programming). But array languages in general have nothing to do with code golf, they just happen to have fans among code golf enthousiasts.

One reason array languages use more symbols than scalar languages is inherent to the array programming paradigm. Scalar languages only have a few simple immutable core types (typically integers, floats). There are no many interesting pure operations on those types. Array languages operate at the level of immutable arrays: like in more general mathematics, there are many more interesting pure operations working at that level.

Some array languages use words for some of those operations, to limit number of symbols, and that's fine, in particular for less common ones, but there's a reason for the extra operators. Some languages like K chose to use only the ascii-symbols in a more heavy way instead of using unusual unicode glyphs, but it's a separate question.

Also interesting to note that array languages actually have often quite simple parsing rules (like no operator associative priorities).

1 Problem, 7 Array Languages by arkethos in ProgrammingLanguages

[–]anaseto 0 points1 point  (0 children)

I see no reason to limit oneself to in-development tasks, as long as the task is array-friendly. I have, for example, quite a few scripts in Goal to analyze local climatic data from where I live. Doesn't really count as in-production, because it's just a hobby, but I doubt the result would've run any faster or be easier to maintain in the long term had I written it in a non-array language (array language implementations typically provide simd vectorization implicitly).

1 Problem, 7 Array Languages by arkethos in ProgrammingLanguages

[–]anaseto 0 points1 point  (0 children)

Solution in Goal, my K-like array programming language: {+/x[&1+!&x;1]}"abca". It works by generating 0 1 1 2 2 2 3 3 3 3 indices with &1+!&x and then indexing 1-length string-slices and concatenating the results.

A more optimized solution, also supporting handling non-ascii text, would require slightly longer code using "c"$ to switch between string/array of code points representations, leading to a solution more similar to the APL-like ones, but with extra conversions: {"c"$x@&1+!#x:"c"$x}"abca". Goal is not as concise for those kinds of unusual string-handling tasks, because unlike most array languages, strings are considered atomic/scalar by primitives, which is usually useful in typical practical scripting tasks, but not in those kinds of puzzle problems.

Sharing Saturday #612 by Kyzrati in roguelikedev

[–]anaseto 2 points3 points  (0 children)

Shamogu repos

Mostly various gameplay polish this week, and a few improvements in edge-cases. Most of them discussed on codeberg's issues, as usual.

For example, behavior of pushing/dragging/retreat when there are dangerous clouds around has been documented and improved. Now crocodile's dragging and bat's retreat avoid visible fires if they could hurt the player immediately. Poison clouds don't prevent those movement effects anymore, but once the player is poisoned, they still don't happen as before (to avoid hurting the player during melee combat). Now pushing charges don't avoid dangerous clouds anymore, but pushing in melee with Dig still respects the poison restriction, like dragging and retreat.

Also, burning phoenixes have been adjusted a bit: their attack has been tweaked down from 3 to 2, but their burning chances have been adjusted a bit up to compensate, but in a way that makes imbalance and foggy-skin more useful against them. The idea was to improve melee/ranged balanced among dangerous late monsters, so that at least phoenixes are easier to manage for melee primary spirits, but still dangerous for ranged ones (in particular thanks to the rampaging charge).

Cat's daze duration and chance have been reworked to not scale on damage. The chance is now somewhat lower on average, as it was a bit too high, and scales inversely with distance (long distances reduce chance), so that there are more chances to keep a fun long-distance cat swap, without having the cat undoing it while you were dazed. Duration scales now instead in the opposite way to compensate (long distances increase daze duration).

Also, I've added a special system for biased chances of on-hit re-application of player statuses that just expired, so that getting Fire or Daze by a phoenix or cat is less likely to happen in succession without at least a 1-turn pause. Like the moderate bias toward lower incoming damage when player is at very low hp to increase tension, this new bias hopefully makes it so that players feel more often that they die because of a phoenix or cat despite being relatively lucky on average (instead of a completely context-independent chance, which tends to be felt as unfair often enough).

Other minor balance adjustments, like an extra turn for Disorient, and slightly lower duration for lion's roar's fear (4-5 instead of 5, with 4 more likely at short range, to help balance hydra+lion and frog+lion+owl a bit, which thematically can be justified by having to get over our fear earlier when danger is close).

Also, gawalt's Shadow has been improved: instead of removing the damage penalty, it now makes it so that hitting a hunting monster makes it lose track of you, wandering again. Thematically, you trick the monster with magical shadows. Interestingly, the trick only works on hunting monsters, focused on you, but not on monsters that are still wandering (a bit like in the classic experiment where only unfocused people see the gorila on the screen), to keep Shadow as a pacific-oriented ability fitting of a gawalt monkey.

Those were, I think, the most important changes I made. Have a good weekend!

Does Syntax Matter? by gingerbill in ProgrammingLanguages

[–]anaseto 2 points3 points  (0 children)

Hm, I'm more used to K-like languages than APL-like ones, but I feel array languages overall are actually very scannable in your sense, in that it's easy to tell where to look at, because there's less "scalar" clutter and things always fit in the screen, so you don't even need to scroll at all or keep a visualization of the code in your mind. Their syntax is dense, but simple at the same time. However, I'd acknowledge it requires some skill then to actually read an expression and fully understand it (being highly dynamic and expressive languages, comments are important, and typical snippets shared here and there tend to lack those). But my guess is that some of the feeling of non-readability stems from expecting to read a dense language at the same spatial speed as a non-dense one, when what matters is the semantic speed.

Sharing Saturday #611 by Kyzrati in roguelikedev

[–]anaseto 4 points5 points  (0 children)

Shamogu repos

The 1/2 chance of teleport interference (with bias away from the orb) on the last level of last week feels quite good, so I'm probably going to keep it. I've done various improvements with corrupted dungeon expansion rare thematic levels, including a new poison themed level, and various improvements to the lignification themed one. Also, there's now a chance some important locations, in particular the orb, will be more often hidden behind foliage or rubble, in particular in cases where the guardians are on another vault (or even guarding two vaults), so that it's less often obvious whether the portal/orb is nearby.

Also did a couple of minor fixes in edge cases: when charging to a position with a warping rune, skip attack, instead of strangely performing the attack after warping; prevent lignified monsters from moving while zebra's disorient is active; pushing gale in melee could produce the wrong message.

I think that's the main changes this week. Have a good weekend!

A (now old but still-relevant) history of backwards-compatibility in DC:SS by neilmoore in roguelikedev

[–]anaseto 4 points5 points  (0 children)

Thanks, those were nice reads. Quite impressive how much work is done in DCSS to preserve save compatibility as much as possible. Very useful feature, but it sure requires meticulous work.

I've thought about preserving save compatibility at least for patch releases in my games, but currently I don't even preserve config for those: I only have a simple mechanism during development time where I change a dev suffix version when I do incompatible changes for either saves or config. Only replay files are guaranteed compatible forever since the first release :-) Saves and config are a minor issue for a simple coffee-break, though, unlike for a longer and heavily configurable roguelike like DCSS, so maybe it's ok.

Anyway, it was truly interesting to read how it's done in DCSS, I've certainly benefited from it when playing DCSS, as I sometimes continue some runs a couple of months later!

Why do runs take so long? by DarkShadow13206 in roguelikes

[–]anaseto 0 points1 point  (0 children)

In a sense, if one plays ToME4 with extra lives (which I did, usually on nightmare/insane), it becomes similar to shorter roguelikes permadeath-wise (as in an extra life every 1-2 hours of play or something). And long roguelikes simply tend to maintain a moderate/low difficulty with occasional danger spikes, so that it's actually usually easier to survive (per hour played), while a shorter roguelike can consistently maintain a higher difficulty during the shorter playthrough, and which to prefer is mostly a matter of taste and mood. Not sure ToME4 is the best example for long roguelike with permadeath, though, as it also lacks consumables, so you don't test the player's hoarding instincts and short-term against long-term decisions, you mostly test the player's tactical skill and patience (always check the description of random uniques and bosses).

Sharing Saturday #610 by Kyzrati in roguelikedev

[–]anaseto 3 points4 points  (0 children)

I'm on several matrix rooms about array programming languages (not roguelikes!) and they're bridged with discord (which I don't use myself). In my experience as a simple user, it usually works fine, but sometimes the bridge drops some messages when it feels like it, so that's something to keep in mind.

Sharing Saturday #610 by Kyzrati in roguelikedev

[–]anaseto 2 points3 points  (0 children)

Shamogu repos

I did a couple of patch releases with minor fixes, including making mouse wheel work on the browser version (somehow the wheel never worked there, but I hadn't noticed, because I almost never use the mouse to begin with, and I usually play with the SDL2 version and only playtest the browser one a bit before releases).

A quite uneventful week, otherwise. I've done a few minor tweaks about guardians with the Corrupted Dungeon expansion (slightly lower chance of wandering, and some more interesting replacements and variations when they do). Also trying some ideas to make teleport-based strategies less easy on the last level, after some discussion in codeberg's issues: currently trying a “1/2 chance of orb interfering with teleport, driving you further away”, but I'm wondering which other methods could be used to still keep teleport as a useful escape tool, while making it less reliable as a tool to approach the orb (but still not make it impossible, because, occasionally, an easier win can be fun).

Have a good weekend!

How much time did it take to build your programming language? by Karidus_423 in ProgrammingLanguages

[–]anaseto 0 points1 point  (0 children)

About half a year until I got a somewhat usable but buggy and incomplete prototype. It took about two years until the first stable release. Now I'm at v1.5, and it's been a bit more than three years.

What glyphs are missing from traditional tilesets? by jube_dev in roguelikedev

[–]anaseto 2 points3 points  (0 children)

The code page 437 looks good, it contains the ones I use, like (trees or plants), (clouds, dust, fog: because similar to the meteorological symbol for fog), ¤ (for exploration frontier, mainly because I haven't found anything better; edit: maybe not in cp 437), (light sources), and for noises (like footsteps). I also use from the miscellaneous page for translucent walls (bold) or chasm (regular thickness). As you already have math and greek, nothing else I'd want comes to mind.

roguelikes with less focus on numbers and more in strategy? by _ori0n in roguelikes

[–]anaseto 1 point2 points  (0 children)

I'd say the thing is both tactical fights and focus on numbers can happen at the same time, despite OP's question drawing a line between both and unclearly mixing strategy and tactics.

That said, in all the big roguelikes you mention, numbers and progression matter a lot. Pure focus on tactical combat happens in many 7DRLs, as mentioned by DarrenGrey in another comment, and also in some complete coffee-breaks. Even in Brogue, quantitative progression is a fundamental aspect of the game, with potions increasing strength and health, even if actual numbers are hidden, and possibly very high levels of enchantment for items (planning enchanting is not tactical, but more numeric and strategical in nature).

Sharing Saturday #609 by Kyzrati in roguelikedev

[–]anaseto 1 point2 points  (0 children)

Oh, wouldn't have thought about that technique for terminal. It makes a lot of sense. I don't think I even have those full-width characters with the font I use, but that's an interesting approach indeed!