Skip to content

Sample dungeon crawler

Mikolaj Konarski edited this page Dec 29, 2017 · 7 revisions

Theme of LambdaHack the Game

Let's stick to the game's origin, that is, a fantasy world with obscure functional programming references. Following Nethack's abandon, let's be unashamedly silly, whenever we feel like it, and not care about the suspense of disbelief. Hence, whenever it serves a higher purpose, we can pile up absurd metaphors and over-the-top descriptions and disregard physics, history and common sense in the dungeon design and item mechanics. We can also freely mix themes. Modern: programming, category theory, maths, holographic principle, Matrix hypothesis. Recent history: gentlemen scientists, the Age of Discovery, Victorian optimism (every human problem can be solved through a mixture of manly resolve and Progress). Fantasy: Cthulhu, generic medieval pastoral utopia. However, let's not mention computers explicitly and steer clear of Steampunk, to limit the technological spectrum to some manageable size (we don't have a pool of contributors comparable to Nethack).

The game world is simplified, generic, medieval or early Victorian. There is a whiff of high fantasy, mostly via the Victorian idealism, praising pursuit of any abstract higher causes, courage, audacity, steadfastness in the face of adversity, etc.. However, the functional programming or maths references are bound to break the high fantasy serious tone, because they are at best tongue-in-cheek for functional programming and maths people and alarmingly obscure and exotic to others. The monsters (except animals) have some Cthulhu flavour in that they are incomprehensible, alien beyond understanding, popping in and out of existence, not of this world, but on the other hand touching our very primal, archetypal fears and revulsions. Would be grotesque, if they were not deadly. Would be absurd and impossible, if they were not real and warping reality at will.

Now, match that to functional programming, and especially category theory (or any abstract maths if out of better metaphors). Talk about monsters belonging more the the world of warped ideas than to the physical world, with shapes and properties defying common sense and everyday experience. Pick popular category-theory terms, attach them to body part names and play on their categorical meaning and it's everyday connotations, on everyday meanings of parts of this name, onomatopoeias, etc. Easier said that done, but fortunately, in an example game for an engine, we should take a minimalistic approach. We should just illustrate enough features of the engine and don't restrict player's tactics too much (we do restrict his dungeons already by sticking to the Nethack tradition, but not overstraining the visuals).

Recently, mostly in item and scenario descriptions, there accrued especially many over-the-top tropes from the naively optimistic 'Science and Progress' Victorian world view. The attitude is here warmly but mercilessly ridiculed, while at the same time homage is paid to the serious (even when hypocritical) devotion of these people to the now forgotten (sometimes rightly so) virtues of the Old World, especially when compared to the cheap virtue signalling of our age. The link between the cutting edge innovations in programming and Victorian world view is probably the profound and absolute abstractness of math sciences and the (now dying) ethos of academia, both tropes also present in LambdaHack. These directions are probably more understandable to the general public, so why not follow them, keeping the maths and programming as the source of the more horror-like elements of the game (e.g., the monsters, but perhaps also traps, rooms descriptions).

Visual style of of LambdaHack the Game

LambdaHack derives it's visual and narrative style from the Hack/Nethack branch of roguelikes. This is unlike Allure of the Stars, which is rooted in the Moria/Angband tradition, with the characterictic '#' sign for walls:

Allure screenshot

The visual style shared by LambdaHack with Nethack is pretty and refined (e.g., different vertical and horizontal walls). The '#' sign represents corridors:

LambdaHack screenshot

However, the style is not very general and it's quite rigid (corridors that can't have any ambient light variants, rock walls that can't be lit by reflected light). This makes free-form caves, burrowing, diagonal walls, cloisters and colonnades come off visually strained, especially when not using extended ASCII for walls. See the following pictures for an illustration: 1 2 3 4. Imagine how much more regular and readable they would look in Angband style. But the simple dungeons wouldn't like as pretty, so it's a trade-off.

We welcome contributions from Nethack connoisseurs that would be willing to propose and implement (as content and/or engine patches) any other interesting Nethack features that fit LambdaHack. Apart of enriching the game, that would prove and/or improve the generality of the game engine. A full reimplementation of Nethack in our engine would be welcome too, but as a separate project. ;)

You can’t perform that action at this time.