Roguelike of the Year 2012 Poll has ended!
Hydra Slayer got 13 votes. It got 11 votes in 2011, and 14 votes in 2010... the numbers are quite consistent :) Although the gameplay has not changed much, Hydra Slayer has received some interface improvements due to its involvement in the Roguelike Incubator. I hope that these numbers say that the game has improved a lot through 2011 and 2012 :)
By the way, Game Hunter is now running a Let's Play on Hydra Slayer. Go watch it! (It seems there are some problems with screens disappearing right away... strange, it never happened for me)
HyperRogue III got 23 votes, plus 5 votes for the 7DRL version (HyperRogue II). I see that the draft from the last year (Hyperbolic Rogue) received 11 votes. Anyway, I am very happy about the success of this weird mathematical experiment.
Vapors of Insanity have received 6 votes (the same number as last year). Not a good score, but I have not worked much on it...
ADOM has received a second place with 1445 votes. It had a great crowdfunding campaign, and I am very proud to be a part of it. I hope that NotEye integration will help it to win ROTY 2013 :)
Thanks for everyone who voted!
What about the next year? Probably NotEye will continue getting improvements. Maybe Vapors of Insanity too, although I feel that it is more effective to spend time on other projects (HyperRogue seems the most popular of my games, and I spent the least amount of time on it). I have no plans about any major further changes to HS or HR, but if I invent something new, or get some cool suggestion, I will happily work on it. I have no good idea for a new game... If I had, I would probably execute it right away, instead of waiting for the 7DRL challenge (just like I did with Hydra Slayer and the Hyperbolic Rogue draft). But the year is long... hopefully I will have something new :)
I wish you happy adventuring in the New Year!
Sunday, 30 December 2012
Sunday, 16 December 2012
NotEye 6.3 and Hydra Slayer 14.3
As an early Christmas gift, I have improved some things in NotEye and Hydra Slayer. Maybe nothing groundbreaking yet, but enough for a release :)
Changes to NotEye 6.3:
Changes to Hydra Slayer 14.3:
You can download NotEye+Hydra Slayer here. If you want to try Brogue, configuring it from the scratch is quite difficult, so you might prefer to download the all-in-one package instead, which works out of the box.
As usual at this time of the year, you can vote for Roguelike of the Year 2012. Please vote for ADOM, Brogue, Hydra Slayer, and HyperRogue :)
Have fun playing roguelikes during the holidays!
Changes to NotEye 6.3:
- provided error handling to NotEye-integrated roguelikes (such as "Sample Roguelike" and ADOM); a script crash in these will now show a menu (continue playing, play in a safe mode, reload the script)
- adjusted the Brogue config to Oryx's animated tiles
- OpenGL disabled by default (it causes problems in some circumstances, I think it is better to turn it off by default just in case; you will probably want to turn it on when using FPP)
- Text over tiles displays faster now
- fixed some minor bugs related to server/client
- quickshots disabled by default (i.e., taking screenshots with F2; edit config.noe if you want this option)
- provided a script to automatically discard music when not used
- added some preliminary work to clean up the memory (although it is not really used yet, except when an error causes NotEye to reload completely)
- screenshot and getpixel now work in the OpenGL mode
- OpenGL mode scaled textures incorrectly on some machines, this should be fixed
- Added a "fadeoutmusic" function which does just that
Changes to Hydra Slayer 14.3:
- Previously, when used against huge hydras, Rune of Growth matched your largest divisor. Now, it also works with your Eradicator and similar weapons, if you do not have any divisors, although not very well (that would be too easy).
- Fixed a crash when ambidextrous attacks against mushrooms (thanks for Peter Brogan for reporting this!)
- Two achievements added: "Don't Divide and Conquer" (win without attacking with any divisor blades) and "Power is for the Weak" (don't drink your first potion of power juice).
You can download NotEye+Hydra Slayer here. If you want to try Brogue, configuring it from the scratch is quite difficult, so you might prefer to download the all-in-one package instead, which works out of the box.
As usual at this time of the year, you can vote for Roguelike of the Year 2012. Please vote for ADOM, Brogue, Hydra Slayer, and HyperRogue :)
Have fun playing roguelikes during the holidays!
Saturday, 1 December 2012
Necklace of the Eye 6.2
The new version of NotEye is released!
This version has the following highlights:
- NotEye now supports OpenGL. This does not give any new features yet, but hardware optimization makes the FPP mode work a lot faster (on my machine, ASCII runs slower in OpenGL though (but still extremely fast), and other modes run at roughly the same speed; YMMV). You can enable/disable OpenGL in config.noe or in the menu (press M,M,O).
- I have improved the support for Brogue, including the tileset made by Oryx:
- Thanks to the help of Thomas Biskup and Jochen Terstiege, NotEye now compiles successfully on OSX.
- OpenGL support (rendering, menu option, "setvideomodei" now allows giving flags, just like the SDL function "setvideomode"; the OPENGL flag makes NotEye use OpenGL)
- improved Brogue support (read Oryx tiles, draw Oryx tiles, detect menus in the tile version)
- OSX support (supplied the directories for included files which are different on Mac, adjusted for the different color order, made the pseudoterminal work, Makefile)
- made NotEye work with fonts including more than 256 characters (NotEye, NotEye-curses, and the libtcod connector)
- transformations (both the usual tiletransform and the more general tilefreeform) now work in almost all contexts (for example, you can use "tilefreeform" for arbitrary rotations, and the dz parameter in "tilexf" to push doors into the center of the tile in the Iso mode)
- tiletransform is no longer restricted to multiples of 1/1440
- transformations are now cached (unless the image is too big)
- transformations are now antialiased (in some circumstances)
- also tilefill works in all contexts now
- added the "transNone" constant which means that you do not want a transparent color
- improved the "console help" development option
- development menu now lists the memory used by NotEye (including the image cache size - unfortunately all that caching means that more memory is used... NotEye still has a problem with determining that memory is no longer used, I need to find a good solution for this)
- fixed ugly characters which appeared in some circumstances
- fixed some combinations of operations which did not work for some reason (layers, transforms, recolor, etc)
- fixed the mouse coordinates in the double minitile mode (did not work in Brogue)
- fixed the "measure FPS" development option
Thursday, 22 November 2012
try Hydra Slayer online
Hey,
AppSurfer is a nice website which allows to play Android apps on the Web. I have added Hydra Slayer:
Hydra Slayer on AppSurfer
Works a bit slow, but if for some reason you want to try Hydra Slayer without downloading, or see how the Android version works, now you can :) You can play by clicking the screen (as you probably would on Android), or with the keyboard (see this page for the list of keys).
But don't forget that the real desktop version looks better, is more user friendly, and you can save game safely :)
HyperRogue is available too, but unfortunately it seems too slow yet.
AppSurfer is a nice website which allows to play Android apps on the Web. I have added Hydra Slayer:
Hydra Slayer on AppSurfer
Works a bit slow, but if for some reason you want to try Hydra Slayer without downloading, or see how the Android version works, now you can :) You can play by clicking the screen (as you probably would on Android), or with the keyboard (see this page for the list of keys).
But don't forget that the real desktop version looks better, is more user friendly, and you can save game safely :)
HyperRogue is available too, but unfortunately it seems too slow yet.
Monday, 22 October 2012
NotEye 6.1 + Hydra Slayer 14.1
NotEye 6.1 + Hydra Slayer 14.1 is released!
Most of the changes in this version went into NotEye (I am working on ADOM and some of these features will be probably used there):
Hydra Slayer got two minor changes: lower walls in the ISO mode (previously it was impossible to see scrolls and potions behind walls), and fixed spelling ("machete" instead of "machette").
Most of the changes in this version went into NotEye (I am working on ADOM and some of these features will be probably used there):
- NotEye menu is now split into several submenus, so you no longer get one huge screen filled with options with strange hotkeys. This also makes it possible for game configurations to easily add their own options, and for config.noe to allow users to add their own menu options for quick access.
- NotEye script refresh (previously Menu-F5, now Menu-DR) no longer breaks games with integrated NotEye support
- Fixed a bug which caused crashes when selecting scaled fonts before selecting their original versions
- isoparam now has an additional argument, useful for tilesets with non-square ratios
- sfIItem (when used alone) is now done via tiletransform instead of caching an image (this is more effective and also no longer causes losses of quality due to double transformation)
- Fixed the Brogue config which apparently did not work for some reason
- tiletransform now works correctly with negative scaling factors (allowing script devs to do mirror images easily)
- you can now compose recolorings if they are of different types (however, for backward compatibility, if recolorings composed were of the same type, the new recoloring replaces the old one)
- "recMult" recoloring algorithm is now able to modify the alpha channel, so you can use it to create a transparent version of an image
Hydra Slayer got two minor changes: lower walls in the ISO mode (previously it was impossible to see scrolls and potions behind walls), and fixed spelling ("machete" instead of "machette").
Monday, 15 October 2012
Hydra Slayer version 14.0 (plus NotEye 6.0)
After some time, I have finally managed to work a bit on Hydra Slayer. Most of the work was on the Android port, but I have also found several big bugs in the desktop version, too. Here is the list of changes.
- Fixed the bug which caused you to clear the further dungeons if you reloaded a game saved before the boss level.
- Fixed the WEADZX keys for hex movement.
- The slayer now looks differently when dead.
- The hex mode uses the color theme similar to the new one (brown, not blue).
- You no longer play the same game seed if you quit the current char and restart.
- (NotEye) Fixed a crash bug when loading the game.
- (pure console obtained by compiling the Hydra Slayer directly) Fixed problems with Curses calls. Fixed the auto-explore
- (Android) Adjusted for the recent changes (13.1-13.9), including some of the new graphics, and the Tutorial. Long texts are now broken more reasonably. Better menu item names. The game shows you where you should touch to get the convenient menu.
Download Hydra Slayer 14.0 + NotEye 6.0
Have fun slaying Hydras!
Wednesday, 19 September 2012
ARRP news
I was planning to release the new version of HS+NE on the ARRP, but unfortunately, my testers were too busy working on their own games, and I was unable to improve the latest version, due to not enough feedback about the new graphical style. I was quite busy, too. Hopefully I will get some feedback soon, and I will release the new version, finally :)
On the other hand, Psiweapon and Michał "Ancient" Bieliński have recently released PRIME, using NotEye as a graphical renderer. Great to finally have NotEye successfully used by someone other than me. And a great roguelike too. I heavily recommend it :)
Good luck!
On the other hand, Psiweapon and Michał "Ancient" Bieliński have recently released PRIME, using NotEye as a graphical renderer. Great to finally have NotEye successfully used by someone other than me. And a great roguelike too. I heavily recommend it :)
Good luck!
Saturday, 1 September 2012
Exciting times
The ADOM crowdfunding campaign became a great success. One of the major roguelikes got $90000 for its resurrection. Congratulations to Thomas for a great campaign! And I am very happy to be a part of it. I have learned a lot about marketing and graphics (Hydra Slayer should look better from now).
I have also put HyperRogue III on Steam Greenlight. I am not very serious about it, but I got some new players, and it generated some interesting discussion, so I think it was a very good idea.
In two weeks, ARRP will come, and we will release the Roguelike Bundle. I have got some useful feedback from Ancient and Darren Grey, and I am releasing the new versions of NotEye and Hydra Slayer.
NotEye 5.9:
Hydra Slayer 13.9:
You can download NotEye + Hydra Slayer here. Have fun! And see you on the ADOM Resurrection Virtual Party today, and on the Annual Roguelike Release Party in two weeks!
I have also put HyperRogue III on Steam Greenlight. I am not very serious about it, but I got some new players, and it generated some interesting discussion, so I think it was a very good idea.
In two weeks, ARRP will come, and we will release the Roguelike Bundle. I have got some useful feedback from Ancient and Darren Grey, and I am releasing the new versions of NotEye and Hydra Slayer.
NotEye 5.9:
- Improved handling of out-of-map cells in the ISO mode
- Minimap can use a different border color
- Added some basic info to README.txt
- Fixed the problem with HOME and END keys
- Changed NotEye's transparency key checking to match the behavior of SDL
- Fixed the mirror images of floors (spFree) in the FPP mode
- NotEye's Curses routines are no longer hardcoded to 80x24 screen
Hydra Slayer 13.9:
- Changed the palette in Hydra Slayer to a more tasteful one (you can press F8 to get the original, although it won't react immediately, and is not documented)
- Changed the floor color to brown
- In Hydra Slayer, unseen cells are now dark gray instead of black; and parts of the map which are outside of the level are a brighter shade of gray (they no longer look like walls)
- Added shadows for items, objects, and walls
- Improved the minimap colors (the background is no longer black, has a frame)
- Tiles changed for PC and scrolls
- A special picture for Centaur and Echidna PCs
- You no longer get a huge menu when you start the game. Race selection is a separate menu now
- Added an option to open another savefile, or rename the savefile
- The game now automatically goes to the main menu when the PC is dead
- However, it is possible to resume game, and theoretically it is even possible to get back to life after being defeated... added an achievement for this
- Made the Human description more concise
- Fixed a grammar error in the Centaur description
- Fixed a bug with weird letters appearing in the inventory in the minimap mode
You can download NotEye + Hydra Slayer here. Have fun! And see you on the ADOM Resurrection Virtual Party today, and on the Annual Roguelike Release Party in two weeks!
Wednesday, 29 August 2012
ADOM gets NotEye support and tiles!
I should have written about this earlier, but now, we know that it is true: ADOM gets NotEye support and tiles!.
There are only 36 hours left, so you can still make ADOM even better!
Maybe I should start a crowdfunding campaign on my own, for NotEye (or for Vapors of Insanity)? Just wondering.
There are only 36 hours left, so you can still make ADOM even better!
Maybe I should start a crowdfunding campaign on my own, for NotEye (or for Vapors of Insanity)? Just wondering.
Thursday, 16 August 2012
NotEye 5.8 and ADOM news (and Hydra Slayer 13.8)
The video above is not yet integrated. Krys has created the most basic parts of the tileset, and I have made NotEye support them. Just in case, other NotEye's graphical modes also work with these new tiles: 32x32 tiles, 64x64 tiles, isometric Terinyo, FPP, and mini-tiles.
Although NotEye 5.8 does not include the work specific for ADOM, it includes several technical improvements which were required for this (or for other reasons):
- Alpha channel is now supported in tiles (and in fonts). This might have broken backwards compatibility ("transparent color" which was 0x008000 can now be 0xFF008000 because it has 0xFF alpha now), so take care.
- Multi-layered tiles. This means that you can say that a part of the tile is on layer 0, and a part is on layer 1, for example. We draw all layers 0 first, then we draw all layers 1. Glowing torches in the ADOM video are done using this (we draw the glowing auras after all the level has been drawn).
- tiletransform is now partially supported in ISO (IItem only) and FPP (walls, items, monsters). Still not a complete support, but at least, stun animation in Hydra Slayer now works in ISO and FPP modes too.
- Added a "spFree" spatial flag which allows more complicated 3D models (together with a new tile transformation). Not very useful for now (as it is not documented and has no practical way of specifying that the surfaces should be drawn in the correct order), but at least there is something. Stairs in Hydra Slayer use the new abilities.
- spWall and spIWall separated into several spatial flags, so you can design each wall separately
- Ability to halt music. Hydra Slayer does this on death (I am thinking about adding some special music, but silence will do for now).
- Some tileXXX functions now have extra parameters. Specifically, tileshade and tilefill are combined into one, which also gives more options (set any alpha value, and it can be different for R/G/B). TileTransform now has extra parameters for 3D (shift in the third dimension, rotate), and recolor can use one of several algorithms now (the old recDefault, recMult which simply multiplies tile's color by the new color, and recPurple which works like the default but affects only shades/desaturations of purple).
- NOAUDIO and AVOID_NET flags work now (i.e., NotEye actually compiles with them)
- Improved generic-tile.noe
- Fixed support for games where the movement is with numbers (used in ADOM)
- Some auxiliary functions for color handling in Lua
- For integrated roguelikes, NotEye now also exports "setfieldString" and "setfieldBool" for more integration options
Sunday, 22 July 2012
NotEye non-QWERTY fix
I have found a bug report that NotEye was not working correctly on non-QWERTY Windows... So I had to fix that. Hope it works now.
Hydra Slayer is not affected (it was already fixed on Linux and in the integrated Hydra Slayer). At least the minor version number agrees in HS and NotEye now :)
Direct download link
Direct download link
Hydra Slayer 13.7 and NotEye 5.6
And yet another joint update. Do not worry, no new versions planned soon, unless something is very wrong :) I will have other things to do...
Direct download link (but better download 5.7)
Hydra Slayer 13.7:
NotEye 5.6:
Direct download link (but better download 5.7)
Hydra Slayer 13.7:
- Fixed bugs with the 'full information' which displayed hydras incorrectly and caused crashes.
- Fixed some graphical bugs with non-animated one-headed hydras (their head disappeared somehow) and 6-headed hydras (they had holes in them).
- Hydra Slayer adds statistics about auto-explore, auto-attacks, and alien killing. Also some special hydras were not counted in "hydras killed", this is fixed.
- You can now quit Hydra-Slayer with Esc. It also handles the close window button (via NotEye).
- You can now break auto-explore by pressing 'o' again. The screen is refreshed during auto-explore (NotEye-curses handles refresh and getch more correctly now). Mushrooms are automatically destroyed during auto-explore if there are no more hydras.
- Auto-attacks now works correctly with ambidexterity.
- Configuration (manual fire, alt-keys, quickmode, simplehydras) is now kept when pressing 'n' for new game.
NotEye 5.6:
- Additional choices of key layouts. You can now choose WASD, QWEADZXC, or pseudo-VI keys.
- Users can also now specify their own key remappings in config.noe.
- Some bugs related to auto-rotation of directional keys were fixed (for example, arrow keys did not work correctly in inventory in Hydra Slayer when in ISO or FPP modes).
- Some keys in the NotEye menu are more natural now.
- Updated the version information in Windows executables.
Friday, 20 July 2012
Hydra Slayer 13.6 (and NotEye 5.5)
Yet another small, but hopefully cool, update.
As you can see on the picture above, hydra pictures now have procedurally generated animations (each hydra you meet will look a bit differently). If you do not like these or prefer the clarity of non-animated pictures, you can also press 'p' for them (they have became even more clear by putting a number of heads on the hydras, if not too small or too big).
You can now also move diagonally in hex mode by pressing left/right while holding the up or down key. And the quick inventory mode is now saved into the savefile. One bug in text has been fixed.
As for NotEye, not many changes here (animated hydras were rather on Hydra Slayer side), but still. Left and right arrows in the FPP mode now rotate instead of strafing. Much more reasonable on laptops. Recolored and ISO versions of tiles were cached, but they were not updated if the underlying tile changed. This is fixed now (so animated hydras work correctly in ISO).
Wednesday, 18 July 2012
NotEye 5.4 and Hydra Slayer 13.5
NotEye + Hydra Slayer updated again!
For NotEye, the focus was on its integration feature. From now, NotEye works as a shared library for creating roguelike displays. Even without using NotEye's special graphical modes and other features, this library has advantages over both Curses (easier handling of arrows, can use 24-bit color, fullscreen in Windows) and libtcod (console output option). See sample.cpp for a sample "roguelike" (a @ moving on screen, actually) for a demo.
For Hydra Slayer there were several minor changes (thanks to kraflab for some of his suggestions):
And some minor changes in NotEye:
For NotEye, the focus was on its integration feature. From now, NotEye works as a shared library for creating roguelike displays. Even without using NotEye's special graphical modes and other features, this library has advantages over both Curses (easier handling of arrows, can use 24-bit color, fullscreen in Windows) and libtcod (console output option). See sample.cpp for a sample "roguelike" (a @ moving on screen, actually) for a demo.
For Hydra Slayer there were several minor changes (thanks to kraflab for some of his suggestions):
- right-click on map now gives information about things
- attacking hydras with missiles now raises their awareness level, so they will hunt you even from afar (it should be harder to do the extremely boring exploit of hitting the hydra with missiles until they die.. even if it was quite hard before)
- the colors change when you are on low health, and change again when you are dead
- improved the texts shown when you try to do something after death (and you no longer can pickup anything)
- you no longer see through corners in the 4-directional mode
- fixed corpse images
- fixed some grammar errors
- fixed some more 64-bit saveformat incompatibilities
- the log file now shows if you have used backups (with numbers) or the auto-attack mode
- if you have enabled the backup cheat, you get "subtle" hints why permadeath is the right way—things that make less sense without permadeath (strongly relying on randomness or incomplete information) behave differently, usually to your disadvantage (the artifact with random effects does not work, shadow hydras defeated do not heal you, bloody hydras do not appear below the first boss)
- fixed sight in the secret geometry (BTW if you want the secret geometry, just try weird key combinations on the race selection screen)
- fixed a bug with bloody hydra placement
- an information about movement added to the tutorial (it explains that you can choose other geometries, but not in tutorial)
- resistances are now also shown on individual hydra description screens
- some debug actions were available not only in the debug mode
And some minor changes in NotEye:
- the exit window button is now handled (it is assumed that you would not want to use it to quit the game because it is risky, but it can quit playback and the main menu)
- no crashes when trying to move in the middle of turning, in the FPP mode
- refresh scripts (F5) works better in NotEye (it no longer hangs Hydra Slayer)
- UI can now work as a separate thread (Lua coroutine), this is used in sample.cpp
Sunday, 15 July 2012
NotEye 5.3 and Hydra Slayer 13.4
And even more changes! A release of
Necklace of the Eye 5.3 and Hydra Slayer 13.4 is hereby announced.
The biggest change is probably support for three more games (nLarn, Rogue, and NetHack), using RLTiles.
Hydra Slayer:
Hydra Slayer:
- Vampires renamed to Vultures, improved the description for the Powder of Decapitation, fixed the Alien hydras description
- Titans are now able to tell the effect of their reforging (and get a confirmation when picking up)
- Daughters of Echidna nerfed a bit (potions of ambidexterity are now required to affect several scrolls at once, instead of healing you)
- Removed the double confirmation when reforging
- Fixed some bugs with Hydra Slayer streaming (and also streaming in general)
- Double mini-tiles option. This option produces tiles of size of two ASCII characters; such map is drawn in the roguelike's usual map area. This means that you can see half of the level. This is a reasonable compromise between the tiny minitiles and large tiles which show just a small portion of the screen.
- Added RLTiles to be used in games.
- Curses mode no longer requires an X server in Linux.
- Fixed some bugs in the interpretation of ANSI console codes, which fixes some problems in Linux (also the bell works now).
- Faster Linux console (was hard to run DoomRL previously)
- Exits more cleanly if unable to set any graphics mode.
- Included music is now played in all games (except DoomRL and PRIME, because they have their own music or do not match). Also users can use their own playlist in config.noe.
- When a sound is not found, simply ignore it
- Fixed a bug with directional keys not working occassionally if we played one game and switched to another
- Fixed F1-F5 keys in Linux
- Fixed Ctrl+ keys in Windows
- Fullscreen (Alt+Enter) works in the main menu.
- Now all three keys (F4, Ctrl+M, Ctrl+]) invoke the NotEye menu, unless disabled by the specific config due to a comflict. Also should work better in non-Qwerty layouts.
- Brogue menu option '.' should now work in other keyboard layouts
- Added support of three new games: Rogue, nLarn, and NetHack. Rogue and nLarn are almost completely covered by RLTiles.
- Improved the directory structure. Generic scripts are in the "common" subdirectory, and game-specific configurations are in the "games" subdirectory.
- Improved the caller scripts. Should be more clear now.
- An option to always call the game manually (config.noe).
- Refactored tile configurations. Some functions were copied (exactly or with minor changes) between DoomRL, ADOM, Drakefire Chasm, and the three new configs. Generic functions have been provided for these things, which makes configs shorter and more legible.
- NotEye menu has some hidden options for tileset developers: reload the script files (F5), explore RLTiles, Vapor tiles and font (F6), and examine coordinates, ASCII codes and colors (F7).
- Improved the way of installing NotEye in Linux. Some things work better now (a special caller script, saves screenshots to current directory, no longer changes directory unless needed)
- More details in readme.txt.
Wednesday, 11 July 2012
NotEye 5.2 and Hydra Slayer 13.3
Necklace of the Eye has been mentioned in the Roguelike Radio, as a potential way of adding tiles to ADOM. On the other hand, I got some useful feedback about Hydra Slayer 13.2 (thanks Ancient!).
These are very good reasons for an update! Since the two projects have essentially been merged into one, I provide a single all-in-one package which includes both Hydra Slayer and NotEye. Moreover, it includes both Windows executables and sources which should compile on Linux.
These changed apply to both NotEye and Hydra Slayer:
These are very good reasons for an update! Since the two projects have essentially been merged into one, I provide a single all-in-one package which includes both Hydra Slayer and NotEye. Moreover, it includes both Windows executables and sources which should compile on Linux.
These changed apply to both NotEye and Hydra Slayer:
- fixed problems with the cursor
- fixed ASCII animations in integrated roguelikes (like Hydra Slayer)
- you can now run "make install" to install Hydra Slayer and NotEye in your Linux system for all users
- (technical) fixed the location of lua5.1 include files
- "-N --ascii" option runs NotEye and Hydra Slayer in ASCII
- redesigned the inventory menu
- fixed some typos
- explained better what Potions of Knowledge do about bloody hydras
- fixed useless targetting signs which appeared outside the map
- fixed the ASCII animation breaking the hex mode
- fixed the delay after trying to reforge an item which is not reforgable
- hydras are now shown as multi-digit numbers in the hex mode, even on the edges of the screen
- special colors for ivy and arch-hydras
- should now be possible to re-run Hydra Slayer in NotEye
- "wounds from shadow hydras" now appear after shadow hydras killed
- removed the ASCII animation for stunned shadow hydras
- (technical) fixed some compilation troubles in other versions of gcc
- provided titles for the window
- added icon and version information for NotEye.exe
- You can have both integrated and external roguelikes; it is possible to integrate console roguelikes with NotEye by making them use NotEye's implementations of curses functions. This alternative to Curses, Libtcod etc. makes them run nicely on modern OSes, and gives access to NotEye's special features, like 24-bit colors, graphics, scriptable interface, and much more. (in progress)
- you can run hydraslayer externally or internally (from config.noe)
- a minor explanation about running Brogue
- improved the caller script for Linux
- fixed some bugs with the Linux console (although some still remain, "ansidebug" to debug them)
- added a very basic config for PRIME (only set the map region, mostly)
- NotEye 5.2 includes some some updates from Hydra Slayer 13.1 and 13.2, namely: music support, a new font, view recording from inside the game, change the sound and music volume, README.txt, mouse in the NotEye menu, activate the NotEye menu via F4
Friday, 6 July 2012
Hydra Slayer 13.2
Thanks to some quick feedback by Darren Grey, Ancient, and Ortoslon, there is already version 13.2 of Hydra Slayer!
- The theme has been changed to be more consistent with Greek mythology. There are still some things from other sources remaining for now, but the most important part is alright. You will no longer see runes, elves, and trolls. Thanks to Darren and Ancient for their ideas!
- In most cases changing the theme affected only texts (and graphics), but Elves have been replaced with Centaurs (a mix of archery and power swipe did not make that much sense anyway). Centaurs start with a bow and are unable to perform power swipes. Maybe a power swipe-oriented race will return the future, but it will need to have more interesting properties.
- Targetting icon is now actually displayed when a bow is selected.
- Hydra Slayer should now work correctly with keyboard layouts other than qwerty.
- The NotEye menu can now be activated with F4 (and also Ctrl+M on qwerty). This key is also displayed in more menus in the game.
- Mouse now works correctly in the NotEye menu.
- README has been renamed to README.txt for Windows users.
- Some typos fixed.
Thursday, 5 July 2012
Hydra Slayer 13.1
The new version of Hydra Slayer is released!
With this version, Hydra Slayer joins the Roguelike Incubator, a project where several roguelike developers aid each other (by giving mutual feedback and other help) with the goal of producing a bundle of polished and accessible roguelikes, in order to promote smaller roguelikes.
We are aiming to have a polished bundle by September, but if you want to try it already, you are welcome to play and give feedback. Have fun!
And here is the full list of changes:
With this version, Hydra Slayer joins the Roguelike Incubator, a project where several roguelike developers aid each other (by giving mutual feedback and other help) with the goal of producing a bundle of polished and accessible roguelikes, in order to promote smaller roguelikes.
We are aiming to have a polished bundle by September, but if you want to try it already, you are welcome to play and give feedback. Have fun!
And here is the full list of changes:
- NotEye is now integrated into Hydra Slayer. You no longer have to download something else to play Hydra Slayer. Also, integration means that it is run as a single project (running Hydra Slayer from NotEye sometimes caused bugs and looked strange on Windows). This integration allows the tile engine to access Hydra Slayer directly, allowing things which was previously impossible, like drawing all things which are present on the given cell.
- Steam-style achievements. They were previously available in the Android version, but now they have also joined the desktop version (although they are local only).
- Added the Tutorial, which explains what the game is about to the new players.
- Cheat modes. From the save/quit menu you can get two cheats: Auto-Attack and Backup. Backup simply eliminates permadeath, and Auto-Attack executes the best attacks automatically (based on the algorithm used by the Potion of Knowledge).
- Added music from Rogue Bard.
- Scroll of Reforging description now shows how it will affect the currently selected weapon, as well as its smaller and larger counterparts
- Three new artifact weapons (two of them are more useful for the early game, so there is a chance of finding them early)
- The default geometry has been changed to 4-directional (most people seem to use laptops nowadays).
- You can now get Help by pressing '/' or F1, and the save/quit menu by pressing F2 or F10.
- Item/weapon/monster descriptions now have better backgrounds
- Added the window title.
- Added an icon (and file description) to the Windows executable.
- Added nice stun animations to the graphical version.
- Changed colors: darkblue is now lighter (it was hard to see), and golden replaces yellow (it represented golden weapons and hydras anyway).
- Added a new font (and set it as a default), so Hydra Slayer starts in 800x600 resolution, and a bit more tiles fit on the screen.
- Using rune of growth on mushrooms no longer causes a crash.
- Fixed mouse clicks in Help.
- Ctrl+M is shown in Help.
- Saves on 64-bit systems were not compatible with 32-bit, that is fixed (without breaking backward compatibility).
- Now can view recordings from inside the game; networking removed from the integrated version
- Configure the default graphical mode via config.noe.
- You can now change the sound and music volume.
- Backgrounds in the mini-tile mode
- Fixed a minor bug with twins' vorpal weapons
Thursday, 28 June 2012
HyperRogue III (version 3.7)
There were some minor issues with HyperRogue III, and they are fixed now.
Not as a big update as the last one, but always something :)
In the desktop version:
Get it here, and have fun!
Not as a big update as the last one, but always something :)
In the desktop version:
- HyperRogue looks better on Windows now, as it has an icon, and version information.
- You can now disable the red axes which show you where directional keys will take you. By default, they disappear automatically if using a mouse, and reappear when using keyboard (they are useful only for keyboard users).
Get it here, and have fun!
Potions
For the next version of Vapors of Insanity, I am considering changing how the potions work. I have a feeling that they do not work well in the most games I know.
Potions (and other similar items, like scrolls and wands) can be roughly divided into two types: permanent and temporary ones. Permanent ones have effects which last for the rest of the game, and temporary ones help in one battle (or another short amount of time). This division is not very exact, it is rather intuitive (if you use a temporary potion to avoid death, then it has a permanent effect, in some sense). But it is mostly temporary potions which cause problems.
Let's see how potions work in several games.
The other thing that bugged me about liquids in VoI is that they are supposed to be not discrete: you can drink half of the potion and get a partial effect. This makes identification work strangely (you can identify potions by just tasting them, so why the need to identify them at all?) Also you are able to create liquids magically via Rune of Creation. But I find it very hard to explain why you can create, say, poison, but only use it immediately, and not fill a bottle with it.
The planned design is as follows. Temporary potions and herbs expire, so you can no longer carry them in your backpack for a long time. If you find a herb, you can either use it immediately (for a powerful effect) or ignore it. Alchemist huts will have cauldrons which magically generate powerful temporary potions; you can drink them, coat your weapons with them, or fill your bottles (but they will stay there for a very short time only). There will be also a portable version: wands which generate liquids with temporary effects when zapped or rubbed. As with other VoI wands, they will need a contact to a living body to work, so you can use only a limited number of them in a given time.
Potions (and other similar items, like scrolls and wands) can be roughly divided into two types: permanent and temporary ones. Permanent ones have effects which last for the rest of the game, and temporary ones help in one battle (or another short amount of time). This division is not very exact, it is rather intuitive (if you use a temporary potion to avoid death, then it has a permanent effect, in some sense). But it is mostly temporary potions which cause problems.
Let's see how potions work in several games.
- Diablo has its health/mana potions which you have an infinite supply of (from the shops). You can win difficult fights by drinking lots of these potions. It seems that most people who consider this think that this is mindless and badly designed.
- Dungeon Crawl has several important permanent potions (cure mutation), and several powerful temporary items (potions of heal wounds, powerful offensive wands). These temporary items are important; I think that most Crawl players run into situations where they need to use a temporary power, but the difference between winners and losers is that for winners the use rate is simply lower than the finding rate. On the other hand, weak wands and potions are mostly useless.
- In ADOM, there are several important permanent potions, and lots of temporary potions and wands. I use the spenseweed for healing (since there is an unlimited supply of it), but other items are simply collected and never used. The only wands I use in ADOM are wishing and cold, for their permanent effects (cold is used for freezing ice).
- Dungeons of Dredmor seems to have some potions and mushrooms which have weak temporary effects. Since the inventory is limited, it is not even worth it to carry them. But even if the inventory was not limited, they would probably end up just like in ADOM.
- Hydra Slayer has four permanent potions and scrolls (Power Juice, Life, Big Stick, Reforging) and several runes/potions/scrolls with temporary effect. I am quite happy with all of them, but the reason is that in some sense, everything is permanent in Hydra Slayer. That is caused by the fact that health does not regenerate (and thus it is a permanent). Even though the visible effect of, say, Potion of Ambidexterity is temporary, it also has a permanent effect of saving you several HP.
- I have heard that ToME gets rid of temporary items in general. A good move, I think.
The other thing that bugged me about liquids in VoI is that they are supposed to be not discrete: you can drink half of the potion and get a partial effect. This makes identification work strangely (you can identify potions by just tasting them, so why the need to identify them at all?) Also you are able to create liquids magically via Rune of Creation. But I find it very hard to explain why you can create, say, poison, but only use it immediately, and not fill a bottle with it.
The planned design is as follows. Temporary potions and herbs expire, so you can no longer carry them in your backpack for a long time. If you find a herb, you can either use it immediately (for a powerful effect) or ignore it. Alchemist huts will have cauldrons which magically generate powerful temporary potions; you can drink them, coat your weapons with them, or fill your bottles (but they will stay there for a very short time only). There will be also a portable version: wands which generate liquids with temporary effects when zapped or rubbed. As with other VoI wands, they will need a contact to a living body to work, so you can use only a limited number of them in a given time.
Wednesday, 27 June 2012
Vapors of Insanity 0.56 (bugfix)
It has been brought to my attention that the current version of Vapors of Insanity crashes quite frequently. I have checked it, and found it out to be true... I don't know how this escaped my attention, and why it did not get reported for three months. Please report problems earlier next time :)
Anyway, hopefully this release fixes this. This is mostly a bugfix release, there are almost no new features (I have been working on HyperRogue and stuff not related to roguelikes recently).
Get Version 0.56 here!
Anyway, hopefully this release fixes this. This is mostly a bugfix release, there are almost no new features (I have been working on HyperRogue and stuff not related to roguelikes recently).
- You now get more helpful lines when trying to move up/down in the hex mode.
- You can now move more conveniently on laptops, by pressing Shift/Ctrl together with Left/Right (but WEADZX is even more convenient).
- Fixed the WASD movement scheme: wear/wield and worldmap are moved from "w" to "W".
- Also fixed some targetting keys in WASD/VI movement schemes.
- Removed the conflict for shift+S (shift+S saves, shift+T takes sector screenshots).
- The executables are no longer UPX'ed, as this apparently caused malware reports.
- Now compiles without warnings in gcc 4.6.3 (warnings were related to buffer overflows, and missing error checking for input routines; these errors have been fixed).
- Fixed some bugs reported by valgrind (spaces in the font files, uninitialized variables, delete/delete[] bug).
- Improved how the ASCII version looks a bit (but I am concentrating my efforts on the graphical version, so I don't care about the ASCII version much).
- Removed some lines shown during startup.
Get Version 0.56 here!
Sunday, 10 June 2012
HyperRogue III (version 3.6)
HyperRogue III version 3.6 released!
Finally I got enough ideas for improvements to release a new version. It has the following changes:
- Ivy plants were supposed to be a prominent feature of Jungle, but they were rather something that you see from time to time, and you should run away from, because there was no reason to fight them. This is changed. Jungle got rebalanced.
- Wandering monsters. It is no longer safe to just stay in one place and wait for monsters. (As a counterbalance there are less "stationary" monsters)
- A high score list. Accessible via ESC-t. You no longer have to remember your best scores :) (it uses the same log file as previous versions, but unfortunately is unable to read their scores)
- The Land of Eternal Motion now has its own Orb (rather than pretending that it has falled through a huge hole). This new Orb is also expected to improve the performance on devices with low memory.
- You no longer get 1000 points for the Orb of Yendor, only 50. The motivation here is that you should be able to play HyperRogue in two ways: as a completionist (aim to get the Orb of Yendor to win the game) or as a perfectionist (get a high score), and the quest for Orb of Yendor should not get into the perfectionist's way.
- You can now switch places with golems (previously it was quite easy to kill them, or to lose because of being blocked by them... I have decided that the game would be better without such problems)
- I have tried to actually play with the wersdzxc keyboard layout and found it very awkward, so switched to qweadzxc; also the quit/restart keys got changed to prevent confusion
- removed the Rangers from crossroads (creatures native to all lands appear on the Crossroads, so there is no need to make it even harder by adding Rangers; the screenshot above still has them...)
- running dogs no longer look as if they appeared from nowhere (I think it got broken in some earlier version)
- you are now allowed to get an Orb of Shielding even if there are monsters nearby
Saturday, 9 June 2012
HyperRogue III video
For those who have not played HyperRogue III yet, I have made a video. It shows all the lands available, but it does not try to win the game (the final message shows what remains... this was intentional as it requires some spoily tactics, I want players to discover them for themselves instead of watching the video). I wanted the video to be relatively short, so it is also a speed run of sort. Moving that fast is risky...
Thursday, 7 June 2012
HyperRogue T-shirts and other items
Following the example of Thomas Biskup, the Creator of ADOM, I have opened a shop with some items related to HyperRogue. I hope you like them.
If you want to see items based on specific areas in HyperRogue, or on one of my other games, comment here.
I don't really expect to sell anything, but why not try?
Of course donating would be a more cost effective way of supporting my work, but you don't get a nice T-shirt (or other item) for this :)
If you want to see items based on specific areas in HyperRogue, or on one of my other games, comment here.
I don't really expect to sell anything, but why not try?
Of course donating would be a more cost effective way of supporting my work, but you don't get a nice T-shirt (or other item) for this :)
Sunday, 13 May 2012
HyperRogue 3.5 and OSX
HyperRogue version 3.5 is out (actually it was already available last week, but I have not yet posted in on the blog). It just fixes a bug with the Cultists' ranged attack in R'Lyeh, which was not working as intended.
Also an OSX binary is available on the website. Thanks to Konstantin Stupnik for providing this!
Also an OSX binary is available on the website. Thanks to Konstantin Stupnik for providing this!
Sunday, 6 May 2012
yet another bugfix: HyperRogue 3.4
Some more minor bugs have been found, so HyperRogue 3.4 is released.
Eagles now can kill your friends only in their first move (it was illogical that they could kill you only in the first move, but your friends in both moves)
You can no longer be possesed by Ghosts, Seeps, Slimes, and Ivies while using an Orb of Shielding (thanks for ortoslon to noticing this bug)
Slimes and Ghosts will now attack your friends
Slime color under items is no longer displayed (it was irrelevant)
You can now drop dead orbs into slime to change its color
Compiling: you can now remove "#define GFX" in graph.cpp if you have no access to SDL_gfx and/or don't want graphics; some fixes to the Mac makefile (but I am still not sure whether it works)
Saturday, 5 May 2012
7DRL reviews and HyperRogue version 3.3
We have finally finished reviewing all the entries in the 7DRL challenge 2012. You can see the results on RogueTemple, and also another version with screenshots, made by Todd Page.
We have one winner (rated 2.72 on average), I rule, you rule, we all rule old-school Hyrule, five tied for second place (2.67), and 7 more with average at least 2.5. I think that these differences are very small: it was often hard to me to decide whether to give a score of 2 or 3 in my review, and also much depends on who reviewed the particular entry. The ones I have tried (as a reviewer or personally) are of a very high quality, and I think every game in the top of the list deserves to be tried. Congratulations to all of them!
HyperRogue II was among the games tied for the second place. It got a perfect score for Aesthetics, Innovation and Roguelikeness, but lower scores for Fun (unfortunately) and Scope (I understand that it is a bit hard to judge scope since a part has been written before the challenge).
Anyway, HyperRogue III raises Aesthetics, Roguelikeness and Fun even higher (and Scope in some sense, although this should be judged for 7DRLs only). And this post announces Version 3.3!
This update is rather minor. Some descriptions are improved; they are now more accurate and detailed. Made it clear that there are actually many Orbs of Yendor. Cultists in the Icy Lands produce more heat now. HyperRogue should now work correctly in a resolutions with height greater than width (not only on Android).
The Android version gets a "share" function, which allows you to share a short description of your character (together with a screenshot). Your characters are be no longer destined to be lost without any trace.
Have fun!
We have one winner (rated 2.72 on average), I rule, you rule, we all rule old-school Hyrule, five tied for second place (2.67), and 7 more with average at least 2.5. I think that these differences are very small: it was often hard to me to decide whether to give a score of 2 or 3 in my review, and also much depends on who reviewed the particular entry. The ones I have tried (as a reviewer or personally) are of a very high quality, and I think every game in the top of the list deserves to be tried. Congratulations to all of them!
HyperRogue II was among the games tied for the second place. It got a perfect score for Aesthetics, Innovation and Roguelikeness, but lower scores for Fun (unfortunately) and Scope (I understand that it is a bit hard to judge scope since a part has been written before the challenge).
Anyway, HyperRogue III raises Aesthetics, Roguelikeness and Fun even higher (and Scope in some sense, although this should be judged for 7DRLs only). And this post announces Version 3.3!
This update is rather minor. Some descriptions are improved; they are now more accurate and detailed. Made it clear that there are actually many Orbs of Yendor. Cultists in the Icy Lands produce more heat now. HyperRogue should now work correctly in a resolutions with height greater than width (not only on Android).
The Android version gets a "share" function, which allows you to share a short description of your character (together with a screenshot). Your characters are be no longer destined to be lost without any trace.
Have fun!
Friday, 4 May 2012
HyperRogue bugfix (3.2)
HyperRogue version 3.2 fixes two minor bugs:
The big white X which appears during the final quest should no longer disappear randomly (thanks to ortoslon for reporting this).
Using the anaglyph mode ("distance between eyes") no longer causes the letters to disappear.
Have fun!
Have fun!
Thursday, 3 May 2012
HyperRogue III (version 3.1)
HyperRogue version 3.1 is released!
This version contains many optimizations, which make the animations much smoother. Mostly due to using compiler's optimizations, but also game mechanics and shape drawing routines are optimized.
These optimizations also make an Android port possible.
There are also some bugfixes and minor features ("dead ivy" shows correctly, necromancy bugfix, restarting after finding the Orb of Yendor no longer crashes the game, help fits better on the screen, you can right click the framerate for hints about improving it.
Here are some screenshots from the Android version. As always, have fun!
This version contains many optimizations, which make the animations much smoother. Mostly due to using compiler's optimizations, but also game mechanics and shape drawing routines are optimized.
These optimizations also make an Android port possible.
There are also some bugfixes and minor features ("dead ivy" shows correctly, necromancy bugfix, restarting after finding the Orb of Yendor no longer crashes the game, help fits better on the screen, you can right click the framerate for hints about improving it.
Here are some screenshots from the Android version. As always, have fun!
Monday, 23 April 2012
HyperRogue III
Crossroads
|
Necromancers of Graveyard
|
Demons of Hell
|
Cultists of Cthulhu
|
The most visible change is the addition of graphics. This will hopefully make it more playable for people who are not hardcore roguelike fans. Of course, the ASCII display from the previous versions is still available (press "v" for configuration, then "w" and "m"), it also seems to run more smoothly on some of the older machines.
The floor graphics are slightly based on the works of M. C. Escher, one of the few artists who did use hyperbolic geometry in the past. You need to press 'v' to activate the new floors, as they are more confusing and slower to draw.
Also, four new lands have been added (the Land of Eternal Motion, Graveyard, R'Lyeh, and Hell).
Another big thing is that you now have a quest, instead of just aiming for high scores. You are no longer able to immediately enter all the lands, some of them will appear only if you have met certain requirements (most of them related to score). Ultimately, you will be able to reach Hell, and find the Orb of Yendor. Of course you can still aim for high scores, too.
This makes the challenges in Hell (which I find quite interesting) a reward for the most careful players, while HyperRogue II allowed everyone to see everything. It has good and bad points, but I think it is worth it to motivate the players.
And some balance improvements. Overall, I think this is enough changes to change the name again, to HyperRogue III (Hyperbolic Rogue was the preliminary concept work, and HyperRogue II was the 7DRL challenge version).
Have fun, and good luck in your quest for the Orb of Yendor!
Friday, 6 April 2012
Necklace of the Eye version 5.1
The 7DRL challenge has created a wave of good roguelikes, some of them using the newest libtcod version. Drakefire Chasm is very good, but I could not get it into fullscreen on my Linux machine. So I have tested it with NotEye, and found some bugs (not very surprising, since Brogue was the only libtcod roguelike I have tested it on in the past). NotEye version 5.1 fixes these bugs, and adds some minor new features. I can play Drakefire Chasm on Linux in fullscreen now. :)
Drakefire Chasm and Top Dog via NotEye
Unfortunately Sword in the Hand is not supported, since it uses libtcod 1.5.0. Porta Lucis uses a Visual Studio version of libtcod (I am not sure which version) and I cannot try it. Download NotEye 5.1 here!
- includes a config for Drakefire Chasm and Top Dog
- libtcod fix: TCOD_sys_wait_for_keypress now stops waiting on a NotEye keypress too (this one broke both games above)
- streaming fix (including libtcod): zipped stream is now flushed correctly (this bug made Top Dog halt in some circumstances)
- NotEye no longer needs to be able to find the font file when running a libtcod game (it uses its own font instead)
- Vapors of Insanity tiles are included (and some of them are used by Drakefire Chasm)
- Some new fonts added to the selection: Fantasy 16x16, double-sized 8x8 terminal font (for square-shaped games such as Top Dog)
- grass icon in Brogue is raised
- a dev mode added to the libtcod.noe config, which can be used to get the RGB colors and positions on mouseover
- an option to make screenshots with F4 (useful for animations)
- the website has been redesigned to provide a more detailed information about each supported game
Breathing fire |
FPP |
Dialog |
ISO |
a Priest casting a spell, in 3D |
ISO |
Unfortunately Sword in the Hand is not supported, since it uses libtcod 1.5.0. Porta Lucis uses a Visual Studio version of libtcod (I am not sure which version) and I cannot try it. Download NotEye 5.1 here!
Sunday, 1 April 2012
HyperRogue II in news and videos
Recently there have been some news and videos featuring HyperRogue.
It has been mentioned on the Roguelike Radio in its 7DRL 2012 episode. I think it was Jeff Lait who has noticed that, due to the special structure of the map, monsters chasing you will usually form a line. Indeed, this is a result of the hyperbolic nature of the world: you cannot have several monsters moving on parallel lines, unless they are on the same line. And I thought that it was just a result of simplifications in my pathfinding algorithm. ;) A nice observation, thanks!
Geek New Wave has a review of HyperRogue II (as well as of the original Hyperbolic Rogue), and also an interview with me. Have fun reading it :)
There are also some guys who post videos featuring recent 7DRLs. Game Hunter is blind running all of them, and here is how he sees HyperRogue:
I see that he has missed some important things in his blind run. You can mouse over the map, which explains what is what. This is most useful while having mirror images, as you can also see their cursors, which shows you where they would go. He did not visit the Desert, only touched the Living Caves, and ignored the Jungle (I think he confused it with Living Caves and thought he had already been there). Quite unfortunate, I think these areas are more fun than Alchemists Lab and the Land of Mirrors that he visited. Of course he did not see most of the magical orbs, but it is understandable in such a short try.
Also, dewaldo is posting videos of 7DRLs after becoming more familiar with them:
This video explains more about the game. I think it is a bit funny how he thought that he cannot do any move, while he actually had one (he could press '.' to wait for the slime beasts to move next to him). The game always informs you when you can no longer move.
Thanks to all the authors, and to you for reading this. :)
Geek New Wave has a review of HyperRogue II (as well as of the original Hyperbolic Rogue), and also an interview with me. Have fun reading it :)
There are also some guys who post videos featuring recent 7DRLs. Game Hunter is blind running all of them, and here is how he sees HyperRogue:
Also, dewaldo is posting videos of 7DRLs after becoming more familiar with them:
Thanks to all the authors, and to you for reading this. :)
Sunday, 18 March 2012
hyperbolic geometry in HyperRogue
NOTE: This post was originally published on March 18, 2012. It has been updated many times:
2015 to reflect some new findings,
Sep 2016 to include the numerous new hyperbolic features,
Oct 2018 with even more features and links.
The main goal of the HyperRogue project is to see how hyperbolic geometry can be used to achieve great game design (and it succeeds in this goal -- see e.g. this review on Rock Paper Shotgun). (This is not the only goal, though -- HyperRogue is probably the most feature-rich engine for non-Euclidean geometry, that can be used for a plethora of visualization, research, and educational purposes; see RogueViz.) The purpose of this article is to explain what's the deal. It is intended for mathematicians interested in hyperbolic geometry who would like a summary of HyperRogue, and for roguelike players who would like to know what hyperbolic geometry is -- some of them think that HyperRogue takes place on a 3D sphere, or that you will return to the same location if you move in a particular direction for a long time, which is not accurate at all, so I explain it here in more detail.
HyperRogue is a roguelike computer game. Roguelikes are a genre of computer games that have evolved separately from the mainstream -- even though they are commonly viewed as a subgenre of RPGs, they are in many senses closer to board games, like Chess where you have just one piece and the "chessboard" is randomly generated by the computer, than to other computer games. (Recently the elements of roguelikes, such as procedural generation and the challenge of permadeath, are added to more and more computer games which do not really have much in common with true roguelikes, causing even more confusion.) In case of HyperRogue, the "chessboard" is an infinite hyperbolic plane. You can read more about it on Wikipedia. This is not a sphere, but rather a hyperboloid (but also not in a normal space). The 3D object you see when you activate the "eye distance" option is this hyperboloid.
Hyperbolic geometry seems to be underused in art. M.C. Escher has been using it in some of his work (like Circle Limit). I have seen Maze, Pool, and Sudoku on a hyperbolic plane, but here the map is looped, and thus IMO less interesting than the real infinite world of HyperRogue. The original concept of Hyperbolic Rogue got quite popular despite being an extremely simple game, so I think this is a great area to explore.
Normally the game presents the world in the so called Poincaré disc model (also used by the art mentioned above). The closer you are to the edge of the disc, the bigger distances are (five pixels close to the edge is a much bigger distance than five pixels in the center). On the Euclidean plane, the boundary of a circle of radius r is linear in r. On the hyperbolic plane it is exponential. This means that it is very hard to return to a place where you have already been in HyperRogue. You would have to return almost the same way.
Triangles in hyperbolic geometry have angles which sum to less than 180 degrees. For example, if you take two hexagons and one heptagons next to each other on the HyperRogue map, and construct a triangle with vertices in centers of these cells, the sum is (360/6) + (360/6) + (360/7) = 171.4 degrees, so there is a "defect" of 60/7 = 8.6 degrees. The defect is proportional to the area of the triangle. (Similar thing happens on a sphere: a triangle with a vertex on a pole and two on the equator has 90+90+90 = 180+90 degrees, which is π/2 more than 180 degrees, and the total area of the sphere is 4π, which corresponds to eight of our triangles.) The visible in-game effect of this is that if you go from A to B, from B to C and from C back to A, the screen will (probably) appear rotated, making it easier to get lost.
This is the map structure I have found most suitable for a roguelike (or other similar grid-based game). Three hexagons would sum up to 180 degrees and we would get a plane. Three heptagons in each corner would be possible, but they would be too big (each of them would take the space of one heptagon in HyperRogue plus 1/3 of each hexagon surrounding it).
Now how does this relate to the actual gameplay? As already mentioned, an important result of using the hyperbolic plane is that you almost never get into a place where you have been before. Some of the areas make other aspects of the hyperbolic geometry important, and some are just for fun.
Land of Eternal Motion::When you are running away from monsters on a straight line in the Land of Eternal Motion, monsters cannot follow you on the same line, they have to use an equidistant curve instead. Since these curves are longer in hyperbolic geometry, it is quite easy to run away.
Hunting Grounds::
In lands other than Land of Eternal Motion, when you are running away from a monster, it will have to chase you on exactly the same path as you, and if there are several monsters, they will have to make a queue. In most roguelikes, the basic strategy is that, when attacked by a group of monsters, you should run into a corridor, and fight them one by one. In HyperRogue, this effect can be achieved in an empty space.
At low treasure counts, Hunting Grounds pits you against several dogs. Use the effect above to queue them up -- that would not be possible in an Euclidean hex grid (where they would pursue you forever), or in a spherical tesselation (where three dogs would eventually get you).
At higher treasure counts you also get ambushed by dogs, apparently from "all" directions. However, in the hyperbolic plane, there are more directions than it appears, so you can still escape!
Crossroads (and walls in general): walls separating different areas are straight lines, and they do not cross. You cannot have that many non-crossing straight lines in a Euclidean world.
Land of Mirrors: mirages would be very nice to play in a Euclidean world (see DROD's mimics for something very similar), my point here was to check how this would work in a hyperbolic plane. The result seems to be that they are mostly annoying (they are supposed to stay parallel to you, but parallel lines diverge too quickly).
In later versions, the Land of Mirrors has been replaced with Hall of Mirrors -- this adds mirrored walls that the Mimics can reflect off; this makes the land interesting in hyperbolic plane too :)
Living Caves: the cave has a tree-like structure: you go into a tunnel, sometimes you find forks, and you can be almost sure that both of the new tunnels do not end, and in fact, they quickly fork again. And loops are extremely unlikely. In an Euclidean world, this would not work. It would be at least a bit different.
Alchemist's Lab: a bit like the Living Caves, the hyperbolic nature of the map means that you can usually get as far as you want in roughly any direction, no matter whether what color you are on. From the game Hex we know that, in Euclidean geometry, if there is a red connection between top and bottom the screen, there is no blue connection between left and right. While this is still true in hyperbolic geometry, it does not feel like that, because we have many more directions there. This has ties to the percolation theory.
Icy Lands: that's a minor difference, but heat disperses more quickly here than it would on a Euclidean plane (actually the model in the original tech demo was a bit wrong).
Camelot: In Camelot, you have to find the Holy Grail, which is in the center of the Round Table. The Round Table is a circle of radius 28. The number of cells in a circle of radius r is roughly 3 to the power of r/2; in particular, there are 31659398 floor tiles inside the table, and 22860754 tiles of the table. Thus, when you start on the table and start moving in a completely random direction, you will run straight into the Holy Grail with probability only 1/31659398 -- if you choose the direction based on the shape of the table, the probability is of course higher, but still, after a small number of steps you will usually end up back at the Table. You need to invent some strategy to precisely take you to the center.
The Hive is an attempt at depicting how a war in hyperbolic plane would look. In our world, an army has a first long row of soldiers, then the second row, and so on. This way, the army moves quickly, and many soldiers can fight in parallel. However, this does not work in the world of HyperRogue: one column of soldiers may move on the straight line between points A and B is the shortest route, but if we have another column, it will have to move on an equidistant curve, which will be much longer. Therefore, if the army wants to move quickly, it will have just a small number of columns.
Horocycles: In the Hive and Camelot, you could see how big circles look in the hyperbolic plane. While in the Euclidean world, big circles resemble straight lines more and more, the situation in the world of HyperRogue is different -- they always look curved. If you are standing on a circle, it is easy to tell that this is not a straight line -- but locally, a fragment of a circle of radius, say, 10 tiles will look almost exactly the same as a fragment of a circle of radius, say, 100 tiles. A horocycle is what we get in the limit -- something like a circle of infinite radius. The Temple of Cthulhu is an infinite sequence of horocycles, where you have to go deeper and deeper to get more points, and Whirlpool is a horocycle which draws you toward its infinitely distant center.
Caribbean is unmarked, and shows that, just as in Camelot, it may be hard to find the direction towards the center of the horocycle -- you have to use compasses to lead you there.
A Great Wall is a straight line, and the coast is an equidistant curve at some distance from this great wall (the distance changes with the tides). As you can see, it is hard to tell the difference between a large circle, horocycle, or a distant equidistant -- so if you are in the Ocean, it is not immediate to tell whether the waves you see are because of the nearby coast, or because of the nearby Whirlpool. See this article by Fulgur14 to read more about circles, horocycles, and equidistant curves.
The Haunted Woods is a land from where there is just one exit -- it is bounded by a single curve. For further confusion, this curve may look like a circle or horocycle, but it is not -- it is an equidistant curve -- while moving randomly inside a horocycle quickly gets you to its edge, in the Haunted Woods, if you cross the straight line and go randomly on the other side, you will likely be lost forever in the Haunted Woods, as you have to return to the location where you have been before, and this is virtually impossible, due to the exponential growth. The Yendor Quest is based on the same principle -- you have to go 100 steps to find the Key, then return. There is a marker which shows your way to the Key, but you have to return on your own, which is virtually impossible based only on luck or memory.
In the Princess Challenge, a mouse asks you to reach the Princess, locked somewhere in the Palace. She is 100 steps away, so you would not find here without help -- luckily, the mouse will lead you. The screenshot above shots the cell where the Princess is locked -- you have to press the green button in bottom left to open the doors; when you first see the princess, you are typically on the other side, and have to go around all these closed doors. This exhibits interesting properties of hyperbolic mazes -- there are obstacles on the way, and sometimes you will have to do significant detours to go around them, but if you know what you are doing, you will eventually reach the Princess with probability of (almost) 1. This is related to branching processes.
The Crossroads III, as well as the Elemental Planes later in the game, show straight lines which cross at straight angles.
The Ivory Tower shows you how gravity could work in the hyperbolic world. Gravity is directed towards a straight line, thus making the horizontal levels into equidistant curves. Interestingly, while in the most of the game it is very hard to return to the location you have been to, in these lands, you simply go with the gravity to exit, and you turn up at almost exactly the same location you started. This is because, as usual, levels grow exponentially: moving 243 cells on the level 20 corresponds to moving just 243/3(20-10)/2 = 1 cell on level 10.
The Yendorian Forest is another land in gravity. We already had straight lines that cross, and that are ultraparallel (diverging). Branches of the same tree in the Yendorian Forest are straight lines that diverge when you go upwards, but get closer and closer when you go towards the base level.
There are regular patterns in Euclidean plane, which generally look like grids. We also have regular patterns in the hyperbolic plane, but they look more like infinite trees. Such regular patterns appear in the Vineyard, Land of Power, Zebra, Windy Plains, Emerald Mine, and Palace. The picture above shows the Vineyard; see the Gallery of Lands for the screenshots of the remaining regular lands.
In the Burial Grounds, you have to fight enemies and excavate treasures, using a magical energy sword. This sword stays at the same relative angle to you when you move. However, after you go in a closed loop, the sword will usually be rotated, because of how angles work in the hyperbolic plane! This land obviously makes no sense in the Euclidean mode.
In Galápagos, each tortoise has 21 binary properties, thus leading to 221 = 2097152 subspecies. Tortoises at the given spot are usually exactly the same, but as you travel, the environmental properties change smoothly, and so do the properties of Tortoises. You have found a (random) baby tortoise, and you have to find a tortoise which exactly matches the baby. This would not be feasible in the Euclidean plane -- even if you exactly knew where the correct tortoise are, you would still have to go 1000 steps to reach it, but since you don't know, you would have to wander blindly. In the hyperbolic plane, the correct tortoise is always actually quite close, because of the exponential growth; furthermore, the simple method of always going towards the direction where more properties agree works. The coloring of tiles in the Galapagos (based on the number of factors which agree), as well as the height function used to generate the Dragon Chasms, is related to a generalization of the Wiener process to the hyperbolic plane domain -- there are similar generalizations to Euclidean plane domains, but for hyperbolic plane this is mathematically much more elegant.
You can also change the geometry in HyperRogue. The first alternate geometry was, of course, the Euclidean mode -- see this old post about it. In 2018 the big part of work on HyperRogue was adding more and more geometries to experiment with. Disable bitruncation for stronger hyperbolic effects; apply the Goldberg-Coxeter construction to weaken them (which may make you lose to dogs in LoEM or Hunting Grounds -- even though the world is globally hyperbolic, there are parts which are flat); play on the sphere; use irregular, or mostly arbitrary Archimedean tilings; and so on. See this article for all the possibilities.
The Poincaré disc model is just one of many possible models ("maps") that can be used to display the hyperbolic plane. HyperRogue also lets the players to play with other models. In the band model, you can see that your route through the game is almost a straight line; in the half-plane model, horocycles are horizontal and branches of Yendorian Forest are (almost) vertical; in the Klein model, straight lines look straight; the Hypersian rug model lets you play on something similar to the hyperbolic crochet, and the paper model creator even lets you to print it. See this article for more details.
The main goal of the HyperRogue project is to see how hyperbolic geometry can be used to achieve great game design (and it succeeds in this goal -- see e.g. this review on Rock Paper Shotgun). (This is not the only goal, though -- HyperRogue is probably the most feature-rich engine for non-Euclidean geometry, that can be used for a plethora of visualization, research, and educational purposes; see RogueViz.) The purpose of this article is to explain what's the deal. It is intended for mathematicians interested in hyperbolic geometry who would like a summary of HyperRogue, and for roguelike players who would like to know what hyperbolic geometry is -- some of them think that HyperRogue takes place on a 3D sphere, or that you will return to the same location if you move in a particular direction for a long time, which is not accurate at all, so I explain it here in more detail.
HyperRogue is a roguelike computer game. Roguelikes are a genre of computer games that have evolved separately from the mainstream -- even though they are commonly viewed as a subgenre of RPGs, they are in many senses closer to board games, like Chess where you have just one piece and the "chessboard" is randomly generated by the computer, than to other computer games. (Recently the elements of roguelikes, such as procedural generation and the challenge of permadeath, are added to more and more computer games which do not really have much in common with true roguelikes, causing even more confusion.) In case of HyperRogue, the "chessboard" is an infinite hyperbolic plane. You can read more about it on Wikipedia. This is not a sphere, but rather a hyperboloid (but also not in a normal space). The 3D object you see when you activate the "eye distance" option is this hyperboloid.
Hyperbolic geometry seems to be underused in art. M.C. Escher has been using it in some of his work (like Circle Limit). I have seen Maze, Pool, and Sudoku on a hyperbolic plane, but here the map is looped, and thus IMO less interesting than the real infinite world of HyperRogue. The original concept of Hyperbolic Rogue got quite popular despite being an extremely simple game, so I think this is a great area to explore.
Normally the game presents the world in the so called Poincaré disc model (also used by the art mentioned above). The closer you are to the edge of the disc, the bigger distances are (five pixels close to the edge is a much bigger distance than five pixels in the center). On the Euclidean plane, the boundary of a circle of radius r is linear in r. On the hyperbolic plane it is exponential. This means that it is very hard to return to a place where you have already been in HyperRogue. You would have to return almost the same way.
Triangles in hyperbolic geometry have angles which sum to less than 180 degrees. For example, if you take two hexagons and one heptagons next to each other on the HyperRogue map, and construct a triangle with vertices in centers of these cells, the sum is (360/6) + (360/6) + (360/7) = 171.4 degrees, so there is a "defect" of 60/7 = 8.6 degrees. The defect is proportional to the area of the triangle. (Similar thing happens on a sphere: a triangle with a vertex on a pole and two on the equator has 90+90+90 = 180+90 degrees, which is π/2 more than 180 degrees, and the total area of the sphere is 4π, which corresponds to eight of our triangles.) The visible in-game effect of this is that if you go from A to B, from B to C and from C back to A, the screen will (probably) appear rotated, making it easier to get lost.
This is the map structure I have found most suitable for a roguelike (or other similar grid-based game). Three hexagons would sum up to 180 degrees and we would get a plane. Three heptagons in each corner would be possible, but they would be too big (each of them would take the space of one heptagon in HyperRogue plus 1/3 of each hexagon surrounding it).
Now how does this relate to the actual gameplay? As already mentioned, an important result of using the hyperbolic plane is that you almost never get into a place where you have been before. Some of the areas make other aspects of the hyperbolic geometry important, and some are just for fun.
At low treasure counts, Hunting Grounds pits you against several dogs. Use the effect above to queue them up -- that would not be possible in an Euclidean hex grid (where they would pursue you forever), or in a spherical tesselation (where three dogs would eventually get you).
At higher treasure counts you also get ambushed by dogs, apparently from "all" directions. However, in the hyperbolic plane, there are more directions than it appears, so you can still escape!
In later versions, the Land of Mirrors has been replaced with Hall of Mirrors -- this adds mirrored walls that the Mimics can reflect off; this makes the land interesting in hyperbolic plane too :)
Friday, 16 March 2012
HyperRogue bugfix
Sorry for those who have found crashes when playing with mouse and mirrors, or Ivy plants not challenging enough. Version 2.1, still in time for the 7DRLC, has the following bugfixes and minor additions:
- The game should no longer crash when moving in certain directions while having mirror images.
- Living Caves now include Seeps and are thus now more challenging.
- You can no longer deactivate an ivy plant by cutting out an active branch next to the root.
- Shield protection from a sandworm is now less weird.
- Slime colors are now named correctly.
- Some sanity checks added just in case.
Monday, 12 March 2012
7DRLC: HyperRogue II
HyperRogue II is complete as a 7DRLC Challenge 2012 entry!
The original Hyperbolic Rogue was an out of challenge 7DRL (in fact a 6DRL, even less). Just a @ moving on a map. For the 7DRLC I have added more polish, and more features, while keeping most of the spirit.
You are still a lone adventurer trapped in a strange world. You still hunt for treasures, while being hunted by monsters yourself. You still have to hit the monsters before they hit you.
However, the world is much richer now. There are seven types of lands for you to travel, each with specific monsters, treasures, and terrain features. You can also find some magical orbs, which give you temporary magical powers.
The game also became more user friendly. You get tooltips and help, and a configuration screen, instead of having to press strange keys.
I still have four days until the 7DRL challenge ends, but I am running out of good ideas. I originally planned to introduce some Economy but I don't see how it could be done without making HyperRogue a worse game. I have tested the game and I think everything works very well, but in case if someone finds some nasty bug, or suggests a new awesome feature, I can still do it on Friday. :)
Download from the website, and have fun!
The original Hyperbolic Rogue was an out of challenge 7DRL (in fact a 6DRL, even less). Just a @ moving on a map. For the 7DRLC I have added more polish, and more features, while keeping most of the spirit.
You are still a lone adventurer trapped in a strange world. You still hunt for treasures, while being hunted by monsters yourself. You still have to hit the monsters before they hit you.
However, the world is much richer now. There are seven types of lands for you to travel, each with specific monsters, treasures, and terrain features. You can also find some magical orbs, which give you temporary magical powers.
The game also became more user friendly. You get tooltips and help, and a configuration screen, instead of having to press strange keys.
I still have four days until the 7DRL challenge ends, but I am running out of good ideas. I originally planned to introduce some Economy but I don't see how it could be done without making HyperRogue a worse game. I have tested the game and I think everything works very well, but in case if someone finds some nasty bug, or suggests a new awesome feature, I can still do it on Friday. :)
Download from the website, and have fun!
Saturday, 3 March 2012
Vapors of Insanity version 0.55
Time for a new release!
The previous release had several incomplete features and bugs. Some mouse movements which had an intuitive interpretation did not work, or worked not intuitively. This release polishes these, and of course contains many new improvements, for example, it has an improved keyboard interface too.
Mouse interface improvements:
Some clicks and draggings which did not work intuitively do now.
A 'pick up' button.
The big map now shows location names, and also can be used to view the World Map.
You can now see the names of objects when scanning the map with the mouse.
Shift/Ctrl-clicking the map for special meanings (shift+LMB for pick up, shift+RMB to automatically travel to a location).
Windows now display XP/Mana as numbers.
Mousewheel can now be used to scroll long texts and menus, and it no longer shows underlying 'windows'.
Keyboard interface improvements:
The biggest change is that when pressing, e.g., 'e' to eat, you get a list of all matching objects nearby (potions and food, in this case); the same works for many other commands. This is faster and more consistent with other roguelikes.
Replaced 'w' to mean wear and 'W' to mean wield; since there are some people who think that these should be the same command, this is configurable as an option.
More convenient firing (for example, 'f'iring an unloaded crossbow results in an option to load it), and the 'L'oad command can now be used to put things into containers, zappers, sheathes etc.
The '?' key no longer shows a huge and hard to browse list of commands, since it has been split into several subcategories.
General interface improvements:
Non-missile offensive spells are now cast on a nearby enemy/door/wall by default.
You can now configure how direction keys work (turn-or-move, turn-and-move, or relative to facing direction).
Action runes (and their auras) now have colors depending on whether they are powered.
Quivers you find will come pre-configured (which also makes you immediately know the contents).
Added some more formulae explaining calculations if requested.
Improved and fixed armor/weapon replacement menus.
Hashing icons for faster graphics.
Gameplay:
Hybrid villages. These are filled by a unique randomly generated race.
Everything can now be used by wielding it (previously you had to wear armor to use its special powers, and now you can also wield it, sacrificing the ability to wield a weapon; I think this increases the depth a bit).
You can now play with the stuff of paralyzed beings.
Fixed the power of some armor enchantments. Weapons of phasing (DAM/2, huge WC bonus). Strengthened some Protective enchantments. Randarts can have these powers now.
Runes of strength/dexterity are now more likely and more powerful on armors.
Amulets of the hand and mounted horses delayed to later levels.
Only humanoids can mount now. Not items made for humanoids.
Other improvements:
Improved the Manual, which is now also available as a file, and online.
As usual, some other texts and icons have been improved too.
VaporGS improvements: a convenient system for creating methods depending on several objects. Improvements in the priority system (we can now write A < B < C).
Fixed lots of bugs (tutorial, menus, useless question when looking at targetting help, memorizing books, mounted, some usages, forget confirmation).
And lots of minor improvements!
Get it here and have fun. Good luck!
The previous release had several incomplete features and bugs. Some mouse movements which had an intuitive interpretation did not work, or worked not intuitively. This release polishes these, and of course contains many new improvements, for example, it has an improved keyboard interface too.
Mouse interface improvements:
Keyboard interface improvements:
General interface improvements:
Gameplay:
Other improvements:
Get it here and have fun. Good luck!
Friday, 10 February 2012
Hydra Slayer Social for Android 13.0b: more social features
Hi, a minor update about Hydra Slayer for Android: it becomes even more social by integrating with HeyZap. Also, there has been an bugfix with one of the achievements, and a new leaderboard added (the simplest one, which counts the wounds until winning). Have fun!
The desktop version of Hydra Slayer is still the same. I think I have a nice idea for a new weapon: a blade which reverses time. The basic idea is as follows: a flaming dagger is not very useful against most opponents in the later levels, as it usually removes one head and gives, say, 7 new ones. But what will a time-reverse flaming dagger do? Well, it will take 7 heads and grow one. I think it could be quite interesting to have it in the first part of the game, which would probably mean a new race which starts with it (like Elves start with the Bow). What about the later game? Well, the dagger described above it is too unreliable to be very useful in the later game, but using the Scroll of Big Stick could give more time-reversal powers, like being healed on an attack, or making the Hydras flee from you instead of going to you. Needs some balancing, but could be fun.
Friday, 3 February 2012
Hydra Slayer for Android 13.0a: bug fixes and social features
A new version of Hydra Slayer for Android is released on the Android Market!
On one hand, this fixes some bugs. You can now show the soft keyboard ("show keyboard" in the menu), and the game should now detect corrupted savefiles, and offer to remove them (instead of silently crashing again and again). It also should no longer create empty savegames (which resulted in a slayer in an empty level). There are some other minor improvements.
I am also experimenting with Swarm, which is a SDK for enhancing Android games with social features such as achievements, leaderboards, and friend lists. So, you will now be able to compare your scores against your friends, and fight for achievements. Since some people might not want it (due to Internet permissions or a slighly larger size) you need to download another version of Hydra Slayer, named Hydra Slayer Swarm.
Since these features are only for Android, there is no new version for desktop.
Good luck Hydra slaying!
On one hand, this fixes some bugs. You can now show the soft keyboard ("show keyboard" in the menu), and the game should now detect corrupted savefiles, and offer to remove them (instead of silently crashing again and again). It also should no longer create empty savegames (which resulted in a slayer in an empty level). There are some other minor improvements.
I am also experimenting with Swarm, which is a SDK for enhancing Android games with social features such as achievements, leaderboards, and friend lists. So, you will now be able to compare your scores against your friends, and fight for achievements. Since some people might not want it (due to Internet permissions or a slighly larger size) you need to download another version of Hydra Slayer, named Hydra Slayer Swarm.
Since these features are only for Android, there is no new version for desktop.
Good luck Hydra slaying!
Tuesday, 17 January 2012
Brogue video
And here is another NotEye video, presenting Brogue.
There are some glitches (Brogue draws some black letters on black background which are supposed to be invisible but are visible in NotEye; windows do not display very nicely and sometimes don't receive mouse clicks correcly) but I hope it shows something.
Have fun watching!
There are some glitches (Brogue draws some black letters on black background which are supposed to be invisible but are visible in NotEye; windows do not display very nicely and sometimes don't receive mouse clicks correcly) but I hope it shows something.
Have fun watching!
Subscribe to:
Posts (Atom)