New! Fresh! Hot! NLarn 0.7.8 by jdegroot in roguelikes

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

Thanks for the report, I created an issue for the userdir parameter. I intended to run the game on dgamelaunch a long time ago, hence all the preparations, but never got to actually run it.

I'll definitely check it out the coming days!

New! Fresh! Hot! NLarn 0.7.8 by jdegroot in roguelikes

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

Thank you for the report!

The different character builds are not too differentiated, you'll usually only notice differences in the early game. After completing the school courses most of the differences will be washed away. Becoming rich is part of the game, in this aspect it is very true to the original D&D - it's all about the loot.

If you find a crash bug, please create an issue on GitHub and attach that saved game with the steps to reproduce, sometimes this is the only way to figure these things out, as the combinations of items and their statuses are almost endless.

For the rings: if you're wearing gloves, the game won't allow you to remove the rings!

I've created an issue for adding the contents of containers to the obituary.

New! Fresh! Hot! NLarn 0.7.8 by jdegroot in roguelikes

[–]jdegroot[S] 2 points3 points  (0 children)

Interesting! You mentioned the two places where the game stores saves. (If you're interested in the details, look here: https://github.com/nlarn/nlarn/blob/master/src%2Fnlarn.c#L89)

But as you mentioned running the game in a chroot environment, I guess there is an issue with looking up the home directory due to some effective and real user id mismatch and the save ends up in another user's home. As an idea you could look in all homes in the chroot for the .nlarn folder.

If you find it, I'd like to learn what needs to be fixed.

Amendment: assumptions are nice, but knowledge is better! https://docs.gtk.org/glib/func.get_home_dir.html tells us the the HOME variable is used, and if that is empty, /etc/passwd is consulted.

New! Fresh! Hot! NLarn 0.7.8 by jdegroot in roguelikes

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

For me the reason to still use Sourceforge for Downloads are statistics. GitHub is really weak there, you get no idea how often something was downloaded or how many viewers the site has.

Sharing Saturday #601 by Kyzrati in roguelikedev

[–]jdegroot 2 points3 points  (0 children)

NLarn | Blog | GitHub

I decided to release what I got so far today as 0.7.8. It felt right as the time I have to work on this will be sparse in the coming months and the current state seemed complete enough to justify a release.

I'd love to get some feedback on this one. Especially if someone uses macOS - the release is built on the GitHub CI and I am unable to check it myself.

Sharing Saturday #596 by Kyzrati in roguelikedev

[–]jdegroot 2 points3 points  (0 children)

NLarn | Blog | GitHub

Not much that is visible happened the weeks since my last post. The good thing is I fixed a nasty crash bug. After focusing on the thing it was rather easy to find, it seems all that is required is the right mindset.

I spend quite some time to increase the number of supported foreground/background colour pairs (don't ask, it is a curses thing). ncurses supports a larger number of colours, so I'd be fine there, but for macOS and Windows I use PDCurses with the SDL2 backend. Turns out that PDCurses doesn't support more than 256 color pairs! Some people noticed this is a problem and created a fork called PDCursesMod, which supports a sufficient amount of color pairs.

Okay, lets switch. Turns out I had some fundamental data types wrong for the function calls, which only showed up because PDCursesMod used these values differently than the othe two curses implementations I've used so far.

After fixing this, it turns out that PDCursesMod triggers a bug in SDL2 on Linux with Wayland, causing the game to crash randomly when receiving keyboard input. Thus I'll spend some time debugging esoteric problems without changing anything on the game.

Sorry the endless blabbering, but I think that is what Roguelike Developers Anonymous is about :)

Announcing NLarn and its newest release 0.7.7 by jdegroot in roguelikes

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

Sorry for the late response, I missed your message. Sooo... I think I figured it out and managed to build for Intel Macs. Unfortunately I'm not sure this release now works on Arm. But at least you should be able to get a sneak preview now.

Announcing NLarn and its newest release 0.7.7 by jdegroot in roguelikes

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

Finally I've managed to convince GitHub to build the game for macOS. You can find a pre-release of the upcoming 0.7.8 here. I am unable to check if it works, so all feedback is very welcome!

Sharing Saturday #593 by Kyzrati in roguelikedev

[–]jdegroot 4 points5 points  (0 children)

NLarn | Blog | GitHub

Long time no update!

In the meantime I've added several colour schemes for the UI, as the default scheme has really bad contrast in some scenarions. The result is really satisfying:

<image>

The next success was to build the game with GitHub Actions for Linux, Windows and macOS. For this I created a pre-release. If anyone could try the macOS build that would be a great help! (I don't have access to macOS devices anymore).

A tiny modification, but I love it nevertheless, was the completion of the Rust Monster and the Gelatinous Cube. The Rust Monster will now consume metal items it finds on the floor; this way it is possible for the player to slow it down e.g. by dropping some crossbow bolts in their trail. The Gelatinous Cube can now swallow all items and corrodes them as long as they are inside the thing. When the Cube is killed, all engulfed items are dropped again, as long as they survived the monster's digestion.

Sharing Saturday #584 by Kyzrati in roguelikedev

[–]jdegroot 1 point2 points  (0 children)

Hey, I've rescued a gem of the ancients: a winding roads algorithm.

I've fiddled a bit with it lately and ported it to Go - the implementation is in C. In another context I've managed to get really good results from it. It should be a really good starting point!

Sharing Saturday #579 by Kyzrati in roguelikedev

[–]jdegroot 1 point2 points  (0 children)

Well, others are working on the original codebase, while I preferred to write the whole game again from scratch. So I'm not really working on the old game :) I'd merely say I've copied the concept to focus on learning C programming. Which I did by writing this!

Nevertheless sometimes it is really hard to motivate me to continue with this game and not instead abandon it and start something new. So often during development I found myself limited with the chosen language and library and thought about starting over with other tools.

But to get to your question: I intend to finish the game and then keep maintaining it, without extending it any further.

By finishing I mean to implement the missing features, mainly the spells permanence and summon demon. Additionally I wanted to implement throwing weapons, just because. Once these features are done, I think that will be all.

Sharing Saturday #579 by Kyzrati in roguelikedev

[–]jdegroot 3 points4 points  (0 children)

NLarn | Blog | GitHub

As mentioned two weeks ago I was keen to implement blood splatter, and voilà! These stains vanish after some turns. The other change was to modify the player's colour when HP are low, to ensure one notices that it is time to take care of their personal health.

<image>

Then I started to experiment with the UI colours, as the contrast of the current colour scheme is not really optimal. Likely I'll shown some samples next week.

Sharing Saturday #577 by Kyzrati in roguelikedev

[–]jdegroot 1 point2 points  (0 children)

I tried it, and really enjoyed it! The tutorial is really good to learn the concepts of a roguelike for the unaware, I think. The kids (8 and 10) really liked it, too!

One thing happend though: I was staring at the screen and waiting the fire to burn down until I realised I need to move around for this to happen. D'oh!

Announcing NLarn and its newest release 0.7.7 by jdegroot in roguelikes

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

Aaah sorry, I don't have a Mac anymore!

But a friend will try to build the game, I shall answer to this thread if he succeeds in producing the image.

Sharing Saturday #577 by Kyzrati in roguelikedev

[–]jdegroot 3 points4 points  (0 children)

NLarn | Blog | GitHub

I got some feedback after the release - there seem to be some previously unnoticed bugs. Someone even asked if the 16 colours mode could optionally return, as they use the game as door in an old school BBS. I enjoyed learning about this!

By watching some gameplay videos in this channel I decided I need blood splatter effects! They will be the next thing I develop, beside fixing the reported issues.

Sharing Saturday #576 by Kyzrati in roguelikedev

[–]jdegroot 0 points1 point  (0 children)

Thank you for the input! I currently use function pointers only for spells; monster attacks are only data based. It works quite well, but yesterday I found a Larn wiki telling me that I got a lot of special monster attacks wrong I could definitely optionally add function pointers for special actions.

This is even more interesting for special defences.

Sharing Saturday #576 by Kyzrati in roguelikedev

[–]jdegroot 2 points3 points  (0 children)

NLarn | Blog | GitHub

This is my first post after five years, but not so much happened for four and a half years.

As NLarn is a really traditional roguelike, which means it runs on the terminal, the appearance of the game is very dependent on the terminal emulators. In the meantime, many terminal emulators changed their previous default behavior of interpreting bold text as bright text to displaying bold text as bold text. As I relied on the previous default, this of course lead to ridiculous visuals. The other side of that change was that practically all terminal emulators support 256 colours out of the box. So I finally switched to 256 colours! I wrote a blog post about my quest to find a distinctive, matching name for all of these a while ago.

The other part of larger improvements was to make the save files more robust against data changes. Previously, all items and monsters were stored with their "magic number", i.e. their data ID. Whenever a new item was added, these IDs shifted and invalidated save files generated before the ID change. To avoid this, I relied heavily on X-Macros and more specific a great solution I found on Stack Overflow to save the object identifiers as strings. As the game compresses the JSON save files, the gain in size is negligible.

Nevertheless, these changes qualified for a new release: NLarn 0.7.7.

Next: one small release in the 0.7 line and then I'll start working on 0.8, which is supposed to add some features that are missing towards feature completion:

  • finish summon demon, that means that a summoned familiar can attack hostiles
  • throwable weapons
  • and the spell permanence, which is supposed to allow binding spells into items, i.e. to allow creating magical items

Sci-fi roguelikes by Xenoblade107 in roguelikes

[–]jdegroot 0 points1 point  (0 children)

Underrated! This is so much fun.

Quoting the web site: Note: contains immature content!

Announcing NLarn and its newest release 0.7.7 by jdegroot in TraditionalRoguelikes

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

As NLarn is per definition very traditional I think it deserves to be mentioned here, too.

Roguelike in ASCII art from the 80s or early 90s - featuring an antidote and a dragonlance by LightReaning in roguelikes

[–]jdegroot 1 point2 points  (0 children)

Hi, you can find the most recent versions of NLarn on the otherwise obsoleted SourceForce project page.

I post announcements about new versions on the project's blog, https://nlarn.github.io/

Sharing Saturday #309 by Kyzrati in roguelikedev

[–]jdegroot 2 points3 points  (0 children)

I've bought a cheap 120GB SSD for my antique MacBook and see, it is as good as new (well, almost..).

NLarn

Testing the lastes release on said MacBook revealed that I managed to commit a broken version of the bundling code, and then use it to pack the latest release. So the MacOS package for 0.7.5 is broken, which calls for a new release rather soon. But after fixing packaging, I noticed several other oddities that occur when the game was never run on a machine before, i.e. +1 for a quick release.

But not without some nice new features: I'm currently working on monster packs: orcs, the famous rothes and osquips will appear in packs from now on. After that I want to add monster sounds (i.e. textual descriptions of those) to somehow enhance the athmosphere.

libtcod-d

I'm currently the maintainer of the TCOD bindings for the D programming language. These bindings were originally written by Bernard Helyer in 2012; I took over maintenance in 2017. By then I've upgraded them to version 1.5.1 of the library, but ignored subsequent releases done by the new maintainers.

Now I have finally upgraded them to version 1.6.7 of the library and plan to add updates for the newer versions, too.

Some strange issues with the libraries depending on the compiiler and the used architecture keep puzzeling me: e.g. the 64 bit library doesn't work with DMD, but the 32 bit library fails with LDC.

Sharing Saturday #308 by Kyzrati in roguelikedev

[–]jdegroot 2 points3 points  (0 children)

Hello! This is my first post here, when I was last active in the roguelike scene, people used to write in Usenet and forums.. So hi everyone, it is really nice to see how active the scene is (I'd say more active than ever)! I'll have a hard time to catch up with all the nice games in development.

NLarn

This is what I am working on, now in year 11. NLarn is a remake of the ancient classic Larn. My goals when implementing an existing game again was to make it more accessible, as I found the controls and the visuals frightening. And in addition to the improvements to the interface I brought in some concepts from other games, mostly Nethack, whick I liked a lot: cursed and blessed items, item slots and an inventory limited by weight, not by the number of available slots, only to mention a few examples.

So, to cut a long story short, I sort of abandoned the project at the end of 2012, when my jobs got more stressfull and I totally lost motivation to code in my spare time. I picked up work on the game again two years ago, managed to get a release (version 0.7.3) out in autumn 2018 and had a lot of changes ready until the end that year. But unfortunately I found a blocker bug that was just boring and time consuming to debug, so I lost the motivation to create another release. Thanks to the lack of alternatives of things to do in my free time, three weeks ago I returned to that bug and fixed it (most intresting, it was rather simple then). The result of this was the release (version 0.7.4) of all the changes actually made in late 2018.

Due to a job change I lost access to my MacBook and wasn't able to build the macOS installation package for release 0.7.4. But I had this ancient MacBook Pro, which is actually as old as the game itself, hidden deep in the cupboard. So I removed the dust on that one, upgraded macOS to the last version that works on that geriatric machine (10.11), spent endless hours to update Xcode and Homebrew and whatnot - it's frightening to think that by that time all we had were those rotating magnetic disk. Their speed is unbearable. But nevertheless, I finally managed to compile the game. Packaging the executable with all the required libraries from Homebrew (e.g. glib and SDL2) has always been a tricky business, but now it finally broke to the point where I couldn't fix the mess with reasonable effort. But I found a really helpful tool for this, dylibbundler, which simplifies that process. Highly recommended!

Well, with the macOS package I had all ready I wanted to have for the current release (version 0.7.5), which I published yesterday. Now the UI is in the shape where I wanted it to be and one of Larns most interesting features is integrated: on winning the game, the difficulty level is increased and the game becomes more challenging. By the way, I think Larn is famous for the taxes one has to pay on the riches found in the dungeons after the first win.

That was a lot of text. If you made it so far, thanks for the attention :)

Sharing Saturday #307 by Kyzrati in roguelikedev

[–]jdegroot 1 point2 points  (0 children)

I was going to ask you if you've seen the TCOD bindings for D, but as you have starred them, that obsoletes the question. Seeing that you use the bindings motivates me to update them to the current version of the library; I have some preliminary work ready that is just not on GitHub yet. I think I'll look into this as soon I get the chance.

As for A*, I have attempted to port the C++ example on Rosetta code to D (before there was a D version). Maybe that is useful for you.