Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


An ncurses procedurally generated dungeon crawler

Story and History

In A Hag amongst the Glyphs, you play as a nameless adventurer. You begin the game with no almost no skill and a sword so blunt it literally does not help you defeat enemies at all.

You were quite content with you life as a simple farmer, until one day, an evil Hag descended upon your village and turned all of the surrounding property into a wasteland, including your farm! You are the only one brave (or stupid) enough to try and take revenge on the Hag.

As you progress through the dangerous dungeon, you find and combat enemies of increasing power and ferocity. You also may find potions and weapons on the journey, these may help you but also may hurt you - so beware! If you reach the end of the dungeon, you must battle the Hag to the death. Kill her, and your vengeance is delivered! If you are lucky, maybe you will be able to reverse her magic, too.

The game Rogue is a dungeon crawler adventure game that was initially released in 1980. Thematically, it was inspired by classic medieval and dungeon crawling media, primarily Dungeons and Dragons and Lord of the Rings. Its features that have created a genre are its mechanic of permadeath, where your character only has one life and you must start a new game each time you play, and its mechanic of procedurally generating level layouts and enemy and item placements. A Hag Amongst the Gylphs includes both of those mechanics. In addition, Rogue used the curses library and ascii art in order to represent its game state to the user. Needless to say, the majority of modern roguelikes have eschewed this type of graphical representation in favor of more modern game development stacks and graphics libraries. However, we have not done so, and developed our game with the ncurses library and in full compatibility with the C89 standard. We have also retained thematic conformity with the norm for the genre, using enemy names only from the high fantasy tradition. We have also kept our general plot in this tradition as well, as you play as a nameless adventurer delving to the bottom of a dungeon in order to confront an evil monster, and you must overcome a myriad of enemies and grow in your own abilities in order to reach the end.


If you don't have libncurses5-dev, install it

Then, clone this repo and run make

Finally, run the executable ./out/hag


Press ? to shows controls in game.


		h = left

		j = down

		k = up

		l = right

		y = up left

		u = up right

		b = down left

		n = down right


		walk into the enemy you want to attack


		e = pickup/swap with item on ground


		< = go up an up staircase

		> = do down a down staircase


	on levelup, press:

		s to increase strength

		d to increase dexterity

		i to increase intelligence


	on death, press space to exit


	to exit, press F4