• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H05-Aug-2021-235206

devmods/H05-Aug-2021-3,9132,988

dll/H03-May-2022-

generators/H05-Aug-2021-951628

hyperroid/H05-Aug-2021-4,2923,430

music/H03-May-2022-

rogueviz/H05-Aug-2021-24,23319,263

sounds/H03-May-2022-

tessellations/H03-May-2022-407331

.gitignoreH A D05-Aug-20217 21

.travis.ymlH A D05-Aug-20215.3 KiB193190

3d-models.cppH A D05-Aug-202139.1 KiB1,2831,063

COPYINGH A D05-Aug-202117.6 KiB341281

DoxyfileH A D05-Aug-20218.1 KiB284283

FUNDING.ymlH A D05-Aug-202188 43

MakefileH A D03-May-20224.8 KiB165106

Makefile.rvH A D05-Aug-202110 KiB313194

README.mdH A D05-Aug-20216 KiB8353

achievement.cppH A D05-Aug-202133.1 KiB1,027832

arbitrile.cppH A D05-Aug-202138.5 KiB1,3551,126

archimedean.cppH A D05-Aug-202146.4 KiB1,5241,239

asonov.cppH A D05-Aug-20217.4 KiB269196

attack.cppH A D05-Aug-202144.9 KiB1,3241,139

barriers.cppH A D05-Aug-202132.8 KiB1,134900

basegraph.cppH A D05-Aug-202138.6 KiB1,5481,255

bigstuff.cppH A D05-Aug-202162.5 KiB2,0151,698

binary-tiling.cppH A D05-Aug-202138.4 KiB1,2001,043

blizzard.cppH A D05-Aug-20217.6 KiB270221

cell.cppH A D05-Aug-202142.3 KiB1,4811,239

celldrawer.cppH A D05-Aug-202194.1 KiB2,9522,454

checkmove.cppH A D05-Aug-202110.4 KiB360276

classes.cppH A D05-Aug-202152.6 KiB1,076888

colors.cppH A D05-Aug-20217.7 KiB274205

commandline.cppH A D05-Aug-202113.6 KiB438378

complex.cppH A D05-Aug-2021208.4 KiB4,2643,591

complex2.cppH A D05-Aug-202144 KiB1,4481,232

config.cppH A D05-Aug-2021105.3 KiB3,2612,787

content.cppH A D05-Aug-2021114.4 KiB1,7741,618

control.cppH A D05-Aug-202142.2 KiB1,5031,198

crystal.cppH A D05-Aug-202152.2 KiB1,8201,491

debug.cppH A D05-Aug-202127.7 KiB938854

dialogs.cppH A D05-Aug-202140.2 KiB1,3991,189

direntx.hH A D05-Aug-202126.8 KiB1,159663

dpgen.cppH A D05-Aug-20216.9 KiB267223

drawing.cppH A D05-Aug-202179.5 KiB2,7652,257

earcut.hppH A D05-Aug-202124.5 KiB800576

embuild.shH A D05-Aug-2021147 41

environment.cppH A D05-Aug-202127.8 KiB869717

euclid.cppH A D05-Aug-202142.9 KiB1,3741,176

expansion.cppH A D05-Aug-202131.7 KiB1,073900

fake-mobile.cppH A D05-Aug-20216.1 KiB273177

fake.cppH A D05-Aug-202121.3 KiB764595

fieldpattern.cppH A D05-Aug-202144.1 KiB1,5851,267

flags.cppH A D05-Aug-202113.3 KiB396320

floorshapes.cppH A D05-Aug-202141.7 KiB1,3261,106

game.cppH A D05-Aug-202114 KiB517423

geom-exp.cppH A D05-Aug-202139.8 KiB1,3181,152

geometry.cppH A D05-Aug-202136.4 KiB1,231951

geometry2.cppH A D05-Aug-202128.6 KiB1,018878

glhr.cppH A D05-Aug-202125.6 KiB951787

goldberg.cppH A D05-Aug-202140.3 KiB1,3701,186

graph.cppH A D05-Aug-2021187.2 KiB5,7394,796

help.cppH A D05-Aug-202139.9 KiB1,198984

heptagon.cppH A D05-Aug-202110.2 KiB334291

history.cppH A D05-Aug-202120.1 KiB743569

hprint.cppH A D05-Aug-202116.4 KiB513396

hud.cppH A D05-Aug-202122.5 KiB709609

hyper-main.cppH A D05-Aug-20211.4 KiB7560

hyper.cppH A D05-Aug-20213.6 KiB140112

hyper.hH A D05-Aug-202126.7 KiB937695

hyper.rcH A D05-Aug-2021620 2724

hyper_function.hH A D05-Aug-20211.9 KiB7156

hyperpoint.cppH A D05-Aug-202145.5 KiB1,6861,292

hyperweb.cppH A D05-Aug-20217.7 KiB313264

hypgraph.cppH A D05-Aug-202184.8 KiB2,9922,385

inforder.cppH A D05-Aug-20211.2 KiB5530

inventory.cppH A D05-Aug-202121.3 KiB712591

irregular.cppH A D05-Aug-202130.7 KiB1,088878

items.cppH A D05-Aug-202124.6 KiB719635

kite.cppH A D05-Aug-202116.2 KiB430339

landgen.cppH A D05-Aug-2021105 KiB3,0862,749

landlock.cppH A D05-Aug-202144.5 KiB1,260935

langen.cppH A D05-Aug-202111.2 KiB447380

language-cz.cppH A D05-Aug-2021475.9 KiB9,6956,803

language-de.cppH A D05-Aug-2021206.7 KiB4,0062,816

language-pl.cppH A D05-Aug-2021461.3 KiB9,4136,806

language-ptbr.cppH A D05-Aug-2021276.8 KiB5,9884,314

language-ru.cppH A D05-Aug-2021468.7 KiB7,4395,058

language-tr.cppH A D05-Aug-2021164.4 KiB3,0062,076

language.cppH A D05-Aug-202111.2 KiB406356

legacy.cppH A D05-Aug-20219.9 KiB280224

locations.cppH A D05-Aug-202117.8 KiB511301

makeh.cppH A D05-Aug-20213.2 KiB128111

mapeditor.cppH A D05-Aug-202187.6 KiB2,9852,532

mapeffects.cppH A D05-Aug-202129.8 KiB1,039939

menus.cppH A D05-Aug-202136 KiB1,2861,088

mingw.condition_variable.hH A D05-Aug-202119.5 KiB565469

mingw.invoke.hH A D05-Aug-20213.4 KiB11086

mingw.mutex.hH A D05-Aug-202115.8 KiB492417

mingw.shared_mutex.hH A D05-Aug-202115.3 KiB504381

mingw.thread.hH A D05-Aug-202111.9 KiB361288

mobile.cppH A D05-Aug-20219.9 KiB404313

models.cppH A D05-Aug-202143.1 KiB1,087940

monstergen.cppH A D05-Aug-202125.4 KiB815670

monstermove.cppH A D05-Aug-202167.6 KiB2,2201,785

multi.cppH A D05-Aug-202130.3 KiB1,036848

multigame.cppH A D05-Aug-202112.1 KiB465397

mymake.cppH A D05-Aug-202111.2 KiB379331

netgen.cppH A D05-Aug-202119.4 KiB752560

nofont.cppH A D05-Aug-202175.1 KiB180164

nonisotropic.cppH A D05-Aug-202195.3 KiB2,9592,378

orbgen.cppH A D05-Aug-202123.2 KiB633523

orbs.cppH A D05-Aug-202150.4 KiB1,7081,466

passable.cppH A D05-Aug-202123.7 KiB692580

pattern2.cppH A D05-Aug-2021102.2 KiB3,1612,762

patterns.cppH A D05-Aug-202144.7 KiB1,1511,093

pcmove.cppH A D05-Aug-202151.7 KiB1,6861,384

polygons.cppH A D05-Aug-2021185.3 KiB2,2661,623

quit.cppH A D05-Aug-202117.4 KiB634573

quotient.cppH A D05-Aug-202112.7 KiB413342

racing.cppH A D05-Aug-202142.8 KiB1,5091,220

radar.cppH A D05-Aug-20216.4 KiB201169

raycaster.cppH A D05-Aug-202180.4 KiB2,3491,989

reg3.cppH A D05-Aug-202182.9 KiB2,5842,119

renderbuffer.cppH A D05-Aug-20217.3 KiB270227

rug.cppH A D05-Aug-202149.4 KiB1,9491,538

rulegen.cppH A D05-Aug-202150 KiB1,8701,562

savemem.cppH A D05-Aug-20218.5 KiB307244

savepng.cppH A D05-Aug-20214.4 KiB172137

savepng.hH A D05-Aug-20211.2 KiB4613

scores.cppH A D05-Aug-202110.4 KiB355286

screenshot.cppH A D05-Aug-202160.9 KiB2,0711,812

shaders.cppH A D05-Aug-202126.3 KiB808691

shmup.cppH A D05-Aug-202190.1 KiB3,1312,559

sky.cppH A D05-Aug-202118.5 KiB600501

sound.cppH A D05-Aug-20218.7 KiB306263

source-doc.mdH A D05-Aug-202112 KiB189144

sphere.cppH A D05-Aug-20216.4 KiB192160

surface.cppH A D05-Aug-202124 KiB868678

sysconfig.hH A D05-Aug-202111.5 KiB653514

system.cppH A D05-Aug-202147.8 KiB1,7121,393

textures.cppH A D05-Aug-202152 KiB1,7731,455

tour.cppH A D05-Aug-202135 KiB1,037922

usershapes.cppH A D05-Aug-20213 KiB11383

util.cppH A D05-Aug-202120.4 KiB751657

vr.cppH A D05-Aug-202146.1 KiB1,5441,233

wfcgen.cppH A D05-Aug-202112 KiB296244

yendor.cppH A D05-Aug-202138.4 KiB1,3081,097

README.md

1# HyperRogue
2<p align="right">
3<a href="https://travis-ci.org/zenorogue/hyperrogue/builds">
4<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=Makefile&label=make" alt="TravisCI badge">
5<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=mymake&label=mymake" alt="TravisCI badge">
6<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=emscripten&label=web" alt="TravisCI badge">
7</a>
8</p>
9<p align="left">
10<b>Current version: 11.3f</b>
11</p>
12
13A puzzle roguelike in the hyperbolic plane. See the [HyperRogue website](http://roguetemple.com/z/hyper.php) for detailed and most up-to-date information.
14Compiled executables can be downloaded from [itch.io](https://zenorogue.itch.io/hyperrogue) and from the [HyperRogue website](http://www.roguetemple.com/z/hyper/download.php).
15
16Released under [GNU General Public License, version 2](http://www.gnu.org/licenses/gpl-2.0.html). As such, it comes without any warranty.
17
18If you would like to thank me for HyperRogue, you can support the development by buying paid versions (with more up-to-date content and some social and competitive features), or [in other ways](http://www.roguetemple.com/z/donate.php?id=hyper).
19You can contact me at zeno@attnam.com, or at [my blog](http://zenorogue.blogspot.com/), or via [Twitter](https://twitter.com/ZenoRogue).
20
21## The game ##
22You are a lone outsider in a strange, non-Euclidean world. You can move with the numpad, vi keys (hjklyubn), or mouse. You can also skip turns by pressing ".".
23
24As a Rogue, your goal is to collect as many treasures as possible. However, collecting treasures attracts dangerous monsters (on the other hand, killing the monsters allows more treasures to be generated).
25
26You can kill most monsters by moving into them. Similarly, if the monster was next to you at the end of your turn, it would kill you. The game protects you from getting yourself killed accidentally by ignoring moves which lead to instant death (similar to the check rule from Chess).
27
28Ultimately, you will probably run into a situation where monsters surround you. That means that your adventure is over, and you will have to teleport back to the Euclidean world to survive by pressing Escape (quit).
29
30Collecting enough treasure also allows you to find rare magical orbs, which grant you one-time or time-limited special abilities.
31
32The world is a combination of over 60 types of lands. Each land type has specific style (monsters, treasure, magical orbs, terrain features). Collecting treasures only attracts more monsters in lands of the same type, so you can try to collect lots of treasure in several different lands!
33
34Some of these lands are available from the beginning, others can be found only if you have proven yourself (press ESC to know what you should do to access more lands). Ultimately, you will be able to access Hell, and look for the fabulous Orbs of Yendor which are hidden there. Get at least one of them to prove that you are a true winner! Only the best players will be able to face the challenges of Hell, but both the monsters and the challenges associated with the Orbs of Yendor are different than in the rest of the game, so it should be worth it.
35
36You can see tooltips by placing the mouse over stuff. You can also right click to get more information about game objects.
37
38Press v to configure the game. You can also rotate the world by pressing arrow keys, PageUp and PageDn (not numpad). You can center on the PC by pressing Home.
39
40Your scores and other stats about your games are recorded to file hyperrogue.log (in Linux, *~/.hyperrogue.log*). You can save your configuration to file hyperrogue.ini (in Linux, *~/.hyperrogue.ini*).
41
42The surface the game is played on is called a hyperbolic plane. It seems there is just a very small amount of games and other works of art which use hyperbolic geometry (the most well known are some works of M.C.  Escher).
43
44The game dynamically generates new parts of the world as you move. Due to nature of the hyperbolic plane, the chances that you get back to a place where you have been before are very low (unless you go back exactly the same way). See more information about the geometry used [on the blog](http://zenorogue.blogspot.com/2012/03/hyperbolic-geometry-in-hyperbolic-rogue.html).
45
46You can aim for the Orb of Yendor, or you can simply aim for as high score as possible.
47
48## Modifications
49
50OK, now lots of the above can be changed. You can change the geometry and topology (to Euclidean, spherical, or even to nonisotropic 3D geometries). You can play challenges based on
51various in-game quests, and even try some other game genres in non-Euclidean spaces (roguelite aka shmup, racing, peaceful puzzles). Or use the engine for non-Euclidean computations
52and visualizations (see [RogueViz](http://roguetemple.com/z/hyper/rogueviz.php)). Have fun!
53
54## Development ##
55
56### Build prerequisites ###
57
58On Linux with apt-get:
59
60```sudo apt-get install make g++ libsdl1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libglew-dev```
61
62On macOS with Homebrew:
63
64```brew install sdl sdl_ttf sdl_gfx sdl_mixer glew```
65
66macOS users might also have to edit /usr/local/include/SDL/SDL_gfxPrimitives.h at line 38 to use quote include.
67
68### Building HyperRogue from source ###
69```
70git clone https://github.com/zenorogue/hyperrogue.git hyperrogue
71cd hyperrogue
72make
73```
74
75The `mymake` program builds HyperRogue in parts. It takes longer than the method shown above, but it uses significantly less memory during compilation, and when you change something, `mymake` will only recompile the changed file.
76Additionally, it can be easily configured, e.g., to produce an optimized build, or to include addons (see `mymake.cpp` for some example invocations, and `devmods` for some example addons).
77
78```
79make mymake && ./mymake
80```
81
82The source code is not documented very well. You can see the current state of the documentation, as generated by Doxygen, [here](https://zenorogue.github.io/hyperrogue-doc/).
83