Sunday, 17 April 2016

Sources of HyperRogue: part III

This is the third post in the series, about the lands from versions 7.x.

I think it was Fulgur14 who wanted a beach with many horocycling seas. I have implemented this, but it turned out to be more convincing as a sea with horocyclic islands, so I have decided that this will be a pirate-themed land, with pirate treasures to be found in the islands. I have named this land the Caribbean, since that's where the Pirates usually roam, and I had no other ideas for another name of a pirate-themed land. (I didn't like the famous Disney film series that much, but I like the Secret of Monkey Island, which is based on the same thing.) One of the treasures in Colossal Cave Adventure is simply called the Pirate treasure, and I am referring to this in HyperRogue's Caribbean somewhat :) The theme has Parrots and treasures, I wanted to have treasure maps too, but as the description says, maps are useless in the hyperbolic plane. So there are compasses. The first time I encountered a compass which points to some specific goal (not just North) was the Secret of Monkey Island, but this also appears in Spelunky and the Disney movie. The Orb was supposed to be described "affect all Orbs which do not affect anything", to keep with the self-referential theme of Escher (see the Eternal Golden Braid), but finally I had to write a more precise description.

The Red Rock Valley started with the snake. I wanted a monster who could walk only on hexagons, and since this provided another way to have a slow monster (but still faster than one moving once per two turns), a snake variant was interesting. I have tried this, and managed to kill the hex snake with its own tail -- but just before killing it, I noticed that the snake has created a very nice structure, which could be used for something. Meanwhile in the forums, tricosahedron had a idea of a land where cells had several elevations, and I have combined the two -- creating steps and structures out of the dead enemies became the theme of the land. The theme, and the Valley part of the name, is based on the Monument Valley, but I preferred a more generic name -- although there is actually the Red Rock Canyon in Nevada, and I have been there.

While the Caribbean was already implemented, but not yet released, wonderfullizardofoz contacted me, and told me about his ideas of the Ocean, with beaches ravaged with tides, whirlpools, and pirates who could use boats. Interestingly, his idea for Pirates and Boats were just like what I have already implemented for Caribbean :) Anyway, Ocean and Whirlpool were great ideas too, so I have implemented them. The treasure of the Ocean is named Amber, because that's what you can find on the beaches in the Baltic region. And Pearl is a typical sea treasure, so it was used for the Whirlpool.

In 2012 I have been discussing hyperbolic geometry in HyperRogue with Piotr Migdał. I did not know Piotr in person then, although we did have some common friends -- for some time, I wanted to meet him and own up to talking to him anonymously, and this eventually happened, with the help of tehora. It turned out that Piotr did not know about how HyperRogue had grown in the meantime. After learning the news, Piotr has sent me some ideas for new lands, including one which I found very interesting: one based on the popular Minesweeper game. A Minesweeper game without any enemies would be quite bland though -- and the best enemies would be ones that could ignore mines, but interact with them somehow, and that's how the Bomberbirds were born (or hatched). And what could the Bomberbirds protect? Obviously, the Bomberbird eggs! Additionally, this has solved a potential problem with this land -- one could go back to the old part of the map, which was generated when the player did not yet collect many treasures and thus contained not too many mines -- and since the treasure was Eggs, they would hatch if you tried to do this. The Angry Birds were probably a slight inspiration too, with eggs as a treasure, and bomb birds -- although not a very strong one, since the Angry Birds have no wings, and they look different in general.

One time, we were discussing with tehora where we will meet. Both of us insisted on their own suggestions of the meeting place and none of us wanted to change their mind. Some time later, tehora said said that she did not like my suggestion, but she felt that she would likely change her opinion in a hour. Knowing that she liked Prince of Persia (the original from 1989), I have said something about conjuring a hourglass, and explained her that, contrary to the propaganda spread by the evil rebel, the Grand Vizier Jaffar in Prince of Persia was actually a good guy, and the hourglass was just a tool to help the Princess decide to marry the man she loved in reasonable time. Then, she said that she wanted a golden palace... Not a real golden palace, but a land in HyperRogue based on Prince of Persia, and this was a great idea, since Prince of Persia had so many features which could work greatly in the HyperRogue world: gates and pressure plates, and guards which could be killed with your sword or pushed into the collapsing floors. The unique enemies of Prince of Persia -- Skeleton, Fat Guard, and Vizier -- also could be turned into interesting enemies. The pattern is based on a pattern made out of circles of radius 3, invented by Fulgur14. The treasure is the Hypersian rug, which is a pun based of Persian rug (I have again used Colossal Cave Adventure as a source of ideas for names of treasures... and there were golden eggs there too, by the way). Since jumping is also a big part of Prince of Persia, Orb of the Frog has been added.

I also wanted a land based on the Living Caves algorithm, but with water instead of caves, so you could also take a boat and go through water. The result looked more convincing as a Fjord than the Emerald Mines, so I have called it the Living Fjord, and created Vikings as enemies who could use boats -- a better match for the Fjord than the Pirates -- also a new species of Troll who could be used to create bridges (since Trolls come from the Norse mythology and are related to bridges, they were quite a good match), and Water Elementals who could connect bodies of water. The treasure has been chosen to be Garnet, as apparently that's what the Vikings prized.

Initially, the Princess was simply mentioned in the description of Palace as another reference to Prince of Persia, but in 7.3 I have decided to add a quest to actually save the Princess. I like how, when attempting to get to the Key in Hell, lakes of sulphur can be large, but they can be circumvented with probability 1 -- but, since this was not actually the easiest way to solve the Yendor Quest, I wanted another quest which exhibited this even better. Testing revealed that I had to make the quest part of the Palace a bit easier with respect to gates (it was still solvable with normal distribution, but just too hard -- so I made this a separate Princess Challenge), and that a Mouse which could open or close plates would be too annoying -- a bit against the original Prince of Persia, where stepping on a pressure plate to open a gate was the only thing that the mouse did. To avoid the (quite sick) "damsel in distress" trope, the Princess/Prince has been made quite a powerful ally. The description of the Orb of Love comes from sayings about love: one is "love heals all wounds", and another is "love transcends time and space", which is inspired by the movie Interstellar.

As already mentioned above, there were some discussions on the Steam forums about how the third dimension could work in the hyperbolic world; in particular, while three levels of rock in the Red Rock Valley is still quite fine, higher altitudes should have hyperbolic effects of its own, since vertical lines supposedly should also diverge. I have decided to explore this further -- with a platformer-style level, with gravity. The first time I have seen a platformer level in a normally top-down game was Legend of Zelda: Link's Awakening; there were also several small platformer 7DRLs (like Earl Spork by Eden Howard, Fuel by Ido Yehieli, and Bump! by Aaron Steed). I have initially called this land the Edge (like, the world ends, but gravity pulls you back), but I was not convinced -- I have shown the draft to Fulgur14, and he suggested the Tower and the Gravity Well, which I also liked, but I felt that Gravity Well was too abstract, and Tower does not explain why does it stand in place. Finally, I have called it Ivory Tower -- a traditional place where scientists (and wizards, in fantasy settings) perform their experiments disconnected from the world, and I felt that the description explains the changed gravity quite well. Gargoyle is a flying fantasy creature, which is made of stone and likes high buildings (based on the architectural element of the same name), so they were a natural idea for the monster there.

The trapdoors in the Palace made me really want to create a land similar to the Land of Eternal Motion, but with only 50% floors unstable. Initially, floors were supposed to be random, but then zelda0x181e posted a very nice pattern in the "Suggestions for the new lands" thread, and I have decided to use that instead. I have decided the monsters to be just the basic type, to refer to the Land of Eternal Motion once more -- and I think the land obtained is very nice, as you have to really use the land to your advantage to success there. Unfortunately, I had no good idea for the theme, and finally I have decided for the "Zebra" theme, with everything in black and white stripes (amusingly, "Zebra" was close to "Zelda", which was the inital name of the land, based on the nick of the designer of the pattern). Onyx is a mineral with a similar structure. I still had no idea for the Orb -- I have added Orb of Discord first (which was initially implemented for the Living Fjord before deciding that Orb of the Fish will be a better match, but was still unused), but then decided that Orb of the Frog was a better match for the land where jumping is very useful, and the Orb of Discord is great for the Palace too, so I have switched the native orbs of Palace and Zebra -- still keeping lots of Orbs of the Frog in the Palace.

After having two Elementals in the game -- the Earth Elemental from the Dead Caves, and the Water Elemental from the Living Fjord -- I thought that there should be some relation between them, like they should fight each other, or appear in the common land based on the classical four elements. When I first saw Fulgur14's fifty cell pattern painted with four colors, I thought that it would be good for such a land -- but I was still unconvinced, as Earth and Water elementals make more sense in infinite areas. Then Fulgur14 told me about his idea of using crossing Great Walls as a way to separate the four elements, and I found this very interesting, so I used this. I have been testing the crossing Great Walls in the Crossroads, and I liked the effect too, and that's how Crossroads III were created. The four Elements are not symmetrical -- I think it is more interesting that way.

And that's all in Versions 7.x! The next part will describe the lands and features from versions 8.x. Since this major version is not yet complete, it will be probably some time before part IV is posted :)

Tuesday, 29 March 2016

Sources of HyperRogue: part II

This is the second post in the series, about the lands from versions 5.x-6.x.

While HyperRogue was not yet on Steam, Maciej Chojecki has sent me a bunch of ideas for new lands. One of the ideas was about a forest -- with forest ghosts which can walk on trees, and "timbermans" who can destroy trees and drop "axe orbs" on death, which could allow you to destroy trees too. I liked the idea of a maze of trees, but I was somewhat afraid of static mazes then (you could just run into a dead end and slay any followers easily), so I thought that there should be some anti-camping mechanism -- and what anti-camping mechanism fits the theme of a maze of trees? Bushfires sounded great, especially if you could cut the trees to make the fire spread slower! I have tried several approaches, but finally it worked as I wanted (two types of trees were required so that escaping from the fire, and stopping it by removing trees, was balanced well). Also, in the meantime I have played Hoplite, which is another small tactical roguelike. I loved some of the great ideas here, such as the stabbing mechanics -- possibly HyperRogue would develop in a different way if I had played Hoplite before... In Hoplite your character has a choice of learning one of possible skills, allowing the player to develop their character in many different ways. I miss this in HyperRogue somewhat, but on the other hand, I find the extremely simple rules of HyperRogue nice too -- and new lands would be harder to balance if multiple builds were possible. Hoplite is newer than the early versions of HyperRogue, so maybe it took some inspiration? I don't know. :) Anyway, I have copied the stabbing mechanics, and created HyperRogue's Hedgehog Warriors. In the Slavic mythology, ferns blossomed only on the summer solstice, and the Fern Flowers brought wealth to whoever found them. Seemed like a great treasure for the forest land. Interestingly, after finishing the Dry Forest, I read Maciej Chojecki's e-mail again and found out that he had the same idea for the name of the treasure.

Cocytus, the hellish version of the Icy Lands where heat creates immovable terrain instead of destroying it, was partially created before LoEM. The idea for the mechanics is somewhat inspired by Stanisław Lem's Three Electroknights, a short story where a knight steals the precious gems from an extremely cold planet, until his heat melts the ground below him. The problem with heat-based lands is that it is somewhat hard to plan your next moves here, as it is hard to tell whether a cell will melt in the given turn or not. Thus, I have decided to make it an unfinished land, only accessible to cheaters (or by getting 2000 $$$ -- which was actually possible in some versions, by using exploits). As for the name, Cocytus was one of the four rivers in Hades in the Greek mythology, a frozen lake in the ninth circle of Hell in Dante's Divine Commedy, and the ice-themed part of Hell in Dungeon Crawl -- I guess Dante is the closest to HyperRogue here. After adding the Dry Forest, I have decided to finish Cocytus too -- I have added the missing graphics, and also added the Crystal Sages. I wonder how people interpret their weird gestures? I think nobody has commented about that. Anyway, read Three Electroknights for an explanation -- the gestures come from there.

Thus, 5.x included two new lands. Version 6.0 started with five new lands...

I have already mentioned the forest idea by Maciej Chojecki. While I did not want a static maze because I was afraid of camping, his ideas actually solved the problem -- the "timbermans", and also somewhat the monsters moving through walls only, would prevent you from just waiting in a dead end. Thus I have decided to create a new land based on the mechanics, just changed the theme to a cave -- and thus the Dead Cave was created, reusing Seeps for the Forest Ghosts, and with Earth Elementals instead of timbermans, still dropping orbs providing means to go through the walls. HyperRogue already contained Orbs of Digging, which worked only in the Living Cave -- I have made them work in both lands and also in some other lands, and renamed them to Orbs of Earth. Also renamed Orb of Lightning to Orb of Storms. (Speaking of orbs, the name Orb of the Flash from the Icy Lands is based on a spell from Diablo.)

Some players on Steam wondered how a war game would work in the hyperbolic plane, and that's how the Hive was born -- and they wanted ants, so the Hyperbugs who fight there are ant-like creatures. Royal Jelly is the food of baby bee queens, and it appears as a quite valuable item in many roguelikes (ADOM, NetHack, older versions of DCSS, Spelunky HD). Again, I have tried several attempts -- in some of them Hyperbugs were invincible, in some you only received Royal Jelly by killing the Hyperbug queens, and in some there were actually three sublands, for the different Hyperbug races -- before finally settling for circles of radius 9. Note that this was before horocycles were added to the game, and even circles of radius 9 were somewhat a challenge for me at the moment... they were (and they still are) generated completely when they were created -- I think that the reason for the sparsity of Hive is that I did not want walking through Hive to use too much memory (even though it probably actually uses more memory as it is, since you have to walk longer before finding a nest).

I don't remember how I got an idea of a more complicated repeating pattern... possibly it came from a discussion with Fulgur14. I think I wanted a dense regular pattern of ultraparalell lines, to make a better use of the hyperbolic geometry. I have called it the Vineyard, since that's what dense paralell lines remind me of. (Also see some regular graveyards from the real life.) Vine Beasts appear in some addons for Battle for Wesnoth.

Satisfied with the Hedgehog Warriors, I have created some more monsters requiring special means of killing -- ones which were killed when you approached them (again a bit like in Hoplite), and ones which were killed when you moved away from them (somewhat inspired by the game Ultima, which is a chess-like game where pieces differ mostly by the way they attack, rather than their movement capabilities -- I have never actually played it, but I find the idea interesting). Also, it turned out that I could create several interesting repetitive patterns by changing the vineyard one a bit. I wanted a sea land for a long time, so I wanted to combine all these ideas into one -- a "fjord" with a regular pattern and filled with Hedgehog Warriors, Pikemen, and Flail Guards. However, this turned out extremely unconvincing, so I have dropped the fjord theme, and it became the Emerald Mines instead -- a maze of small twisty passages, all alike. (By the way, that quote about small twisty passages is from the classic adventure game, Colossal Cave Adventure -- not used in HyperRogue, but Hydra Slayer quotes another line from CCA.)

I was somewhat unhappy with the relatively low usefulness of the early Orbs, so I have created the Land of Power, where the Orbs were essential. Initially it was supposed to have fires arranged in a way similar to the ice walls in the Icy Lands, but finally, I have decided to use another rearrangement of the Vineyard pattern. The enemies were called Witches so that we have more female enemies, to complement the choice of playing a female character, which was also introduced somewhere around that time. By the way, a bit of history about this choice: players have been asking to translate HyperRogue to their languages. At first, I did not want to add translations to HyperRogue -- I did not believe in translations too much, since programs are usually translated very badly to Polish, where nouns can be in several cases based on their role in their sentence, and verbs and adjectives change depending on the genus of the noun. Most translation engines cannot handle that -- instead, they cheat by using forms which are always correct, but very ugly and unnatural. But then, I thought, let's show them how to create a beautiful Polish translation -- so I have created an engine which created nice Polish sentences, and even cared about the gender of the player character correctly.

That was HyperRogue 6.0. Then, tricosahedron has asked on the Steam forums about large and infinite circles -- he believed that the placement of Great Walls in the HyperRogue world was static, and thus there would be fixed large circles made of a specific land, and wanted to know how to find a center of such a circle. Actually, great walls are placed randomly (not based on any circles), so this question does not make much sense -- but still, his question seemed to be an interesting challenge, and that's how Camelot was born in HyperRogue 6.2. Camelot, the Knights of the Round Table, and the Holy Grail obviously come from the English legends.

Camelot required HyperRogue to be able to create made of billions of cells, which could not fit in the computer's memory. Changing these routines to also enable infinite structures -- that is, horocycles -- was relatively easy. It was Fulgur14 who wanted horocycles to appear in the game -- and the first land featuring them was the Temple of Cthulhu, greatly improving the previously quite boring R'Lyeh. I wanted the player to have to go deeply into the infinite sequence of horocycles to obtain a big amount treasures. There are many famous fictional books of magic in the Cthulhu mythos, such as the Necronomicon -- to force the player to go deep into the horocycle, I have decided that these books would be the treasure, with more valuable ones deeper in the temple, but no point to collect two copies of the same Grimoire. With the ultraparalell lines of the Vineyard, medium circles of the Hive, large circles of Camelot, and infinitely nested horocycles of Cthulhu, the hyperbolic theme of HyperRogue became much stronger -- thanks to Fulgur14 for discussing the hyperbolic geometry :)

To be continued, with the lands from versions 7.x...

Thursday, 24 March 2016

Hydra Slayer released on Steam!

Hydra Slayer has been just released on Steam!

If you don't know what Hydra Slayer is: is a roguelike with a unique combat system based on the properties of numbers (inspired by some old mathematical puzzles). At first this is simple addition and subtraction, but then divisibility and more complicated properties of numbers come into play. As a general design rule, it is rarely clear which weapon is better: the more potential the weapon has, the harder it is to use (for example, a blade that can cut 12 heads at once is useless against hydras which have less than 12 heads). You will need to combine your weapons into sets which can kill hydras as effectively as possible: hydra attacks cost you health, and it does not regenerate. You can play it as a short 12-level coffebreak roguelike, or continue to the full game, filled with many different special types of multi-headed beings, lots of special artifact weapons, levels with strange topologies, and so on. Hydra Slayer's system is very clear (no more wondering whether +3 Evasion or +1 Dexterity is better, because you don't know the formulae used by the game), but hard to master. Many of the items in Hydra Slayer are also unique -- they would not make sense outside of this combat system, like the Powder of Growth, which makes a hydra grow extra heads -- which is very useful, since a hydra with less heads is not necessarily easier to kill. See the detailed list of features.

The new version (17.0 -- of course, 16.3 is still available for free) has the following features:

  • Typical Steam features, such as online achievements and leaderboards, Steam trading cards, cloud-based saves, automatic updates, and community.
  • Updated interface. Some new animations (watch those heads fly!) and graphics.
  • Slightly updated performance.
  • A random challenge, which is 10 levels long, and much more random than a usual run of Hydra Slayer. Also, a daily challenge, where everyone plays the same random challenge, and can compare their scores.
  • New music, by Brett Cornwall (work in progress).
  • Some minor new gameplay features: traps to lead hydras on, Orbs which provide a powder/potion effect many times at the cost of a weapon slot, and new map generators.
  • Source code (except the Steam features) is included.


You can buy Hydra Slayer on Steam or itch.io. Have fun playing!

Saturday, 19 March 2016

Sources of HyperRogue: part I

This is the first post in the series which attempts to list all the cultural references and sources of ideas in HyperRogue. I always want to read such things, so I write one myself too :) (especially for historical fiction, which I often find somewhat annoying because I don't know what is history and what is fiction)

Starting from the basics: HyperRogue is a roguelike set in a hyperbolic world. I wanted to create a hyperbolic game since I have learned about it, like 20 years ago. First it was supposed to be some kind of a shooter, then I got involved with roguelikes, but I was unable to find a grid which could work well (each grid works only with one specific size of tiles, and all of them appeared too large for a roguelike). Then, I have found the "hyperbolic football" pattern, and that just was what I needed!

HyperRogue started as a weird mathematical experiment, I have implemented the hyperbolic grid, some wall/treasure/monster generation, and the simplest combat system. I had some rough ideas for a quest (coming to think of it, maybe a good idea for a new land...), but this simple thing already turned out to be surprisingly good when moved to hyperbolic geometry! But one thing I did not like about the combat system: the player could just camp in a place with just one passable adjacent cell, and destroy all the enemies easily. So, inspired by the theme of Frozen Depths somewhat, I have introduced the heat mechanics, and yet another enemy which tracked its prey by heat. That was the first version of Hyperbolic Rogue, and also that's why the game always starts in the Icy Lands.

For the 7DRL challenge (version 2.0), I have decided to extend the game, and create more lands...

A desert with huge worms is referred to in JRR Tolkien's Hobbit, but Thumpers, Spice and Sandworms are a reference to Frank Herbert's Dune. Mechanically, Sandworms come from the popular "snake" games (most famous one is the Nokia, but the concept is older), and more directly, from DROD. Also, they work as an anti-camping mechanism -- every land attempts to have one. In the earlier versions, sandworms were not allowed to leave the Desert.

I also wanted some cavernous region, and I got the idea that a cellular automaton might generate nice caves. Trolls and Goblins are typical fantasy monsters living in the caves, and Seeps come from DROD again. Translators always seem to ask what a Seep is...

The roguelike Ragnarok (aka Valhalla) has a monster called the ivy creeper. All other monsters in Ragnarok took just one cell, but the ivy creeper could grow. Sadly, it was extremely rare, and thus not very prominent. Shame for such an interesting idea -- but the Jungle in HyperRogue brings Ivies back their deserved glory. In the early versions, Ivies were rarer (you would usually see just one), and thus it did not look much like a Jungle. This was changed in the later versions (4.x?), also making the Jungle the hardest early land -- although some of the hardness was apparently caused by creating Eagles more frequently than intended due to a bug on MS Windows. Later (8.x?), this was somewhat toned down again, by not generating double Ivies (two adjacent roots -- much harder than the normal ones) if the player has not yet collected many Rubies.

Ragnarok also had a level called the Crossroads, which allowed travelling between the different places quickly. Hyperbolic geometry makes this work better :)

Slimes are typical RPG monsters, and the elixir of life is the typical objective of alchemy. So, nothing really special about the Alchemist Lab, but note that HyperRogue was still an ASCII only game at that point (there were only graphical effects for Orbs, and Sandworm/Ivy segments were connected with lines). If I recall correctly, the reason why we have a rule that cells containing Elixirs of Life (or other items) are considered to belong to both colors is because it was impossible to show the color of slime beneath the item in the typical roguelike ASCII display. HyperRogue still has an ASCII option, but I no longer care much about tailoring the rules so that the ASCII display is 100% playable.

DROD also has Mimics, which try to repeat your moves, leading to quite interesting puzzles. I wanted to see how this mechanics works in the hyperbolic grid, and that's how the Mirror Land was born.

This was the last land in the 7DRL version of HyperRogue. Later came Version 3.0, which introduced graphics, and some new lands. The graphics are inspired by M.C. Escher, most notably the Circle Limit series, which are based on hyperbolic geometry.

Graveyard was the first land with a regular pattern, and Ghosts move through walls, as everyone knows. Zombies come from the Haitian folklore, and are everywhere in the fantasy works nowadays. It always felt strange for me in e.g. ADOM that a necromancer can turn a dead body either into a ghost or a zombie -- shouldn't creating a ghost require just the soul, leaving the soulless body to create a zombie? So, in HyperRogue, Necromancers are able to create both a ghost and a zombie from a single grave. Graveyard also features an invincible Shadow who follows you everywhere, somewhat inspired by Darren Grey's 2DRL, Run from the Shadow. However, the Shadow turned out to be not very interesting, just creepy. Some time later (around 5.0), Ghosts have started to appear whenever the player stopped exploring the world -- this was originally intended as a way to force the game to actually end when the player is stuck in the Living Cave, but it also brings some new interesting tactical insights of its own.

People playing the early versions of HyperRogue said that the non-Euclidean geometry reminds them of works of H. P. Lovecraft. I have not yet actually read anything by Lovecraft at that time (other than playing a RPG session in the Call of Cthulhu system long ago, which somehow turned into a math joke and had nothing to do with the actual Cthulhu mythos...), so I have read the Call of Cthulhu: swallowed up by an angle of masonry which shouldn’t have been there; an angle which was acute, but behaved as if it were obtuse. (Well, in HyperRogue and hyperbolic geometry in general, an acute angle is always acute, no matter how you look at it.... I guess Lovecraft's geometry was even stranger, or maybe he did not know how hyperbolic geometry works). Anyway, I have added R'Lyeh, with Cultists, tentacles and statues, typical things from the Cthulhu mythos (I am not an expert in these mythos --- the Call of Cthulhu remains the only book by Lovecraft I have read --- but it is hard to not know about the tentacles and cultists of Cthulhu, or the Necronomicon). IMHO R'Lyeh was the most boring land for a long time, but this changed when the Temples of Cthulhu were introduced.

Many RPGs use a rather weird system: on one hand, getting experience or powerful items makes you stronger, but on the other hand, it also brings stronger enemies. In the end, getting stronger does not actually make you more able to fight the enemies you meet, and in some cases, it is actually much better to avoid getting powerful (for example, in IVAN items which increase your hitpoints are believed to be actually counterproductive, since they attract powerful enemies, and the rest of your equipment is not sufficient for handling them). Hell's demon fighting mechanics parody that. Orb of Yendor obviously comes from the Amulet of Yendor, which is what you have to collect in many roguelikes (such as Rogue itself, NetHack, and Brogue). And the Demon Daisy was a nasty herb in ADOM, I liked the name, so it became the treasure in Hell. The pavement in Hell is somewhat inspired with M. C. Escher's Circle Limit IV (although, according to the Polish proverb, the Hell is paved with good intentions).

Disappearing floors appear in many games, DROD is again the most direct reference here. The Land of Eternal Motion was the last land added to pre-Steam HyperRogue. Feathers were chosen for the treasure, since something which would not disrupt the land was required. Phoenix feather is a powerful material in IVAN, possibly the best thing to have your legs made of.

Versions 4.x did not introduce any new lands, but they introduced music by Shawn Parrotte (4.0) and an improved graphics engine (4.2 -- it turned out that OpenGL works with the Minkowski hyperboloid model very well). There were two cases when I have asked Shawn for a somewhat specific type of music -- since Escher's art is an inspiration for the graphics in HyperRogue, I wanted music based on similar ideas of paradox and repetition, inspired by Douglas Hofstadter's Gödel, Escher, Bach: the Eternal Golden Braid somewhat. One of them was a variant of the crab canon for the Mirror Land -- a canon that is the same forward and backward, very appropriate for this place. The other one was a variant of the Shepard tone, used for R'Lyeh -- a tone which seems to get lower and lower infinitely (very appropriate for the Temple of Cthulhu which came later). Both crab canons and Shepard tones can be understood as musical counterparts of Escher's art.

That's all the lands and important features that were there before HyperRogue got accepted for Steam. To be continued!

Tuesday, 8 March 2016

HyperRogue 8.2

After a quite long wait, a new version of HyperRogue is ready! Compared to HyperRogue 8.1, 8.2 introduces two new lands with treasures, a new variant of Crossroads, and two new modes.

The Warped Coast is a new coastal land, based on a different grid, composed out of heptagons and triangles. The enemies here, the Ratlings, only move when you move. These two rules work together quite well, making this land quite different. The Warped Coast unlocks at 30 $$$.

The Rose Garden is full of dangerous beauty. The rosebushes have deadly thorns and irresistible scent, which is so beautiful that it forces most creatures to move towards them. On the other hand, the Rose Beauties are so beautiful that you cannot force yourself to attack them. There are ways to kill them, though... The Rose Garden unlocks at 60 $$$.

The Crossroads IV is a new layout of Crossroads, which has no walls. It unlocks at 200 $$$.

Version 8.2 also introduces the heptagonal mode, where the whole game is played on a grid made of heptagons only. As we already know from the Euclidean mode, if we replace the heptagons with hexagons, we get a flat Euclidean world -- but if we go the other way, and replace the hexagons with heptagons, we get an even more curved hyperbolic world, where less steps are required to witness the effects of hyperbolic geometry. All the lands work in this mode with only minor modifications -- for the lands based on hexagon/heptagons distinction, such as the Red Rock Valley, Clearing, or Graveyard, a pattern of "pseudoheptagons" is used, which works similar to heptagons in the normal HyperRogue grid.

In the chaos mode, lands change very often, and there are no walls between them. Some lands are incompatible with this -- this includes all the Crossroads variants (since they become quite redundant), and all lands based on large shapes, such as equidistants, large circles and horocycles (except Temple of Cthulhu and Ocean beach, which have their chaotic variants with a part of their features). Chaos mode is unlocked by reaching Crossroads IV, and there is an achievement for getting 300 $$$ there.

The Hypersian rug mode allows you to play HyperRogue on a 3D surface. This is an isometric embedding: equal distances in HyperRogue's world are represented by equal distances on the surface. To fit all the visible part of HyperRogue's world in such a way, the surface must be very twisted...

The Hypersian rug surface is similar to the one which is obtained from HyperRogue's paper model creator, or by hyperbolic crocheting. To me, it also strongly resembles lettuce... The photo also includes a sandworm, and some HyperRogue T-shirts. Thanks to tehora for the sandworm, crocheting, and ideas for the Rose Garden!

Have fun!

Note: to make the new features of 8.2 (triheptagonal grid and rose scent) work, there have been big architectural changes in movement and attacking. Everything seems to work correctly, but there might be some special cases -- if something could move or attack somewhere but it no longer can, it is possibly a bug. Please report here!

More small changes in 8.2:

  • new floor graphics for Euclidean/heptagonal mode
  • pure heptagonal mode fixes/balances: compass earlier, weakened closing plates, balanced the Princess Quest, sealands should no longer be generated on beaches
  • activating the Palace Quest in the Overview while cheating teleports you to Princess (instead of an empty land)
  • fixed the mirrors in shmup mode: shards taken outside of mirror land no longer count, knives breaking mirrors/mirages are mirrored now, mirrors/mirages created by mirrors worked incorrectly
  • birds now can fly over the Red Rock Valley
  • friendly creatures are now better at stabbing
  • in the map editor, hotkeys were replaced by searching for a given word
  • you can no longer push thumper on a boat
  • Hypersian Rug mode: Home/End keys
  • Crossroads in PTM didn't mirrors
  • slight color changes, to help the colorblind people
Changelogs for patches are first reported on the Steam forums.

Saturday, 2 January 2016

NotEye+Hydra Slayer update, last year, and further plans

So let's start the 100th on this blog by summarizing year 2015.

2015 started with HyperRogue just accepted for sale on Steam. I put it on Steam Greenlight some years ago while it was still free to do so, because why not? At that time, HyperRogue, although it seemed to be the most popular of my games, was quite small and simple -- I considered Hydra Slayer to be more interesting from the gameplay perspective myself.
Well, the plan was to add typical Steam features such as achievements and leaderboards, and release it for a very low price. But it went much better than that. Quite a lot of people have bought HyperRogue, added positive reviews, and formed a community who discussed strategies and suggested many new ideas for further development. I have decided to add new features -- these features are added to the Steam version first to encourage people to buy, but the free version is also updated later. At the end of the year, HyperRogue on Steam has 38 lands (including some that are very interesting and I am very proud of), contrary to 11 when it was first released on Steam -- as well as many special modes, such as Euclidean, cooperative shmup, Yendor Challenge, or pure tactics mode. The free version of HyperRogue has 32 lands, so whether you have bought HyperRogue on Steam or not, you got a much more interesting game to play :)

In the meantime, I have been also working in Team ADOM. This was mostly working on NotEye, which ADOM is using as a graphical engine. I consider working on innovative game design (as in HyperRogue or Hydra Slayer) much more fun than mostly working on user interface, but still, it is great to work on one of the greatest roguelikes, that I have played a lot many years ago. In November, ADOM has been finally released on Steam too, and despite some nasty bugs in the initial release, it has been very successful there.

So what are the plans for 2016? I don't think it would be practical to add 30 new innovative lands to HyperRogue per year forever, but there are definitely at least some lands to be added -- HyperRogue community still has some great unused ideas. There is also still a lot of work to do in ADOM -- the user interface needs many more improvements.

More interestingly for me, Hydra Slayer has been just accepted for sale on Steam. In some sense, the situation between HyperRogue and Hydra Slayer has been reversed -- Hydra Slayer is the smaller one now :) Although HyperRogue and Hydra Slayer are both roguelikes based on mathematical concepts, there are also very different in some other regards. HyperRogue is designed as an open world roguelike, with a vast hyperbolic world that you can roam freely; to make it interesting at all times, the player character remains roughly equally strong during the whole game -- there are no experience levels nor equipment other than temporary powerups which cannot be carried far away -- otherwise, the players would just grind the hyperbolic plane to become stronger and stronger. 1HP approach makes all battles full of action, and brings new challenges based on monsters and environments -- so I have to be creative instead of copying other roguelikes -- but it has its limitations, too. For example, an unfortunate consequence is that all characters are very similar, the only difference being which lands you have already completed, and which lands not yet. Hydra Slayer, although its math-based combat is what I find innovative and interesting, is more like a typical roguelike here: a single dungeon, hitpoints, several races to choose from for the character, randomly found equipment that the character has to build their strategy around.

I am planning to use the same model for Hydra Slayer as for HyperRogue -- what you get by buying the Steam version (instead of playing the free one) is online achievements (contrary to HyperRogue, Hydra Slayer already has local achievements in the free version), leaderboards, and automatic updates with new features (which are also added to the free version after some time). I have no clear ideas for these new features at the moment, but I hope that the community will help here too, so if you have any ideas already, I am happy to listen :) At first, some work is required to update the graphics, add music (any suggestions here?), create the trading cards and other graphical assets.

For now, I have released a new version of Hydra Slayer+NotEye. The previous release was not tested very well (some of the bugs being the same ones as in the initial Steam release of ADOM). This release fixes them, improves the performance, and includes a new sample for Noteye, written in the D programming language (thanks to Michał 'Ancient' Bieliński, the developer of PRIME). Hopefully all the bugs that were easy to run into have been fixed, so if you want to play the free version of Hydra Slayer before buying it on Steam, it should be much better than the previous release. Furthermore, NotEye now has a repository on GitHub -- this should make it easier to allow both ADOM and Hydra Slayer grow together with NotEye, and potentially to let more developers to use NotEye or to contribute to its development -- previously, NotEye grew continually due to ADOM developments, but this growth was invisible outside.

So, have lots of fun in the New Year!

Changelog for NotEye 8.3:
  • fixes in the copymap optimization, fullscreen mode, some crashes, some timing problems on Linux, true console output
  • an option to disable autocentering if the player character is still close to the center (a configurable area of no-autocentering region, which can be different while targetting e.g. in ADOM)
  • added a capability of improved versioning (previously, the version number of NotEye in ADOM did not change, even though there were differences)
  • an ability to easily add user-made interface mods
  • NotEye's dev menu allows to evaluate Lua functions
  • added a sample in D (thanks to Michał Bieliński)
  • an option to "ignore errors and go to NotEye menu" after the script crashes
  • configuration is now actually saved for the Third Person Perspective mode
Changelog for Hydra Slayer 16.3:
  • added some optimizations to improve NotEye's performance
  • fixed some bugs in the interface, some typos and credits
  • when you finish the Tutorial, you continue normal game as expected, not go back to the beginning of Tutorial
  • Hydra Slayer's save/highscore/log files are now moved to NotEye's userdir

Wednesday, 23 December 2015

HyperRogue 8.1: happy holidays!

HyperRogue 8.1 is released on Steam!

The first new land is the Clearing in the Overgrown Woods. Basically, one infinite Mutant Ivy. And some small annoying foxes.

The Haunted Woods is a subzone of the Graveyard. A dark forest filled with ghosts and graves. But there is also treasure hidden deep within... But don't let greed make you stray from your path, as you can get lost!

This land is based on an idea of wonderfullizardofoz, although there are some small differences.

Someone has put air fans in these plains, causing strong winds everywhere. You think that the purpose is to harness the magical power of Air Elementals, but you are not sure.

This land is inspired by an idea of snowyowl0, although again, there are some differences (winds blow according to a pattern).


Also, there have been some improvements to the Shmup mode. Separate scoreboards have been added for coop shmup, pure tactics mode (single and two-player shmup). Since four players are supported now, all player characters can now be customized separately, and some new characters have been added (cat, dog, and Prince/Princess if you have completed the quest -- these new characters work in the normal mode too). You can assign a key for targetting special orb powers (previously you could only target with the mouse, which was inconvenient in multiplayer).

Other changes include new shapes for Orbs (so that it is easier to tell them apart), and four new Yendor challenges. Have fun playing, and happy holidays!

More changes:
  • more shmup bugfixes: all players get boats in the tactical Whirlpool; missiles destroyed with Orb of Flash no longer appear in your kill list; Hedgehog rotation and missiles are now affected by the Orb of Speed in the shmup mode; "pan up/pan down" commands work as expected
  • Red/Dark Trolls no longer turn into rocks when killed in an unstable land
  • fixed the description of Palace (did not choose prince/princess correctly)
  • in the kill list, different messages are displayed when hovering over friends, constructs, and monster parts
  • fixed yet another inconsistency in the sealing of Land of Power
  • a smaller font is used for the list of items collected; more space for items in portrait mode
  • fixed unlocking information in the description for Temple etc.
  • Graveyard did become (very slightly) harder when monsters were killed -- this effect is removed
  • slime no longer spills against wind
  • when entering the Elemental Planes, you can enter planes based on the types of elementals you have killed
  • monsters in the Ivory Tower no longer can stay in midair when they can't reach you
  • added the Icy Lands as a prerequisite for Cocytus -- thus, each basic land now has an advanced version
As usual, there will be probably some patches -- they will be announced in the Steam thread first.