Saturday, 22 February 2014

NotEye 7.5: TPP, samples, 7DRL invitation, and more!

After more than four months, a new version of NotEye is ready!

hydra-tpp.png brogue-tpp.png
nlarn-tpp.png adom-tpp.png
NotEye 7.5 has a new graphical mode (TPP). Since you can configure the camera angle, facing direction, and zoom, this is in fact several modes in one! Also, NotEye's fullscreen mode behaves in a more pleasant way (it keeps the current resolution, instead of changing it to the window resolution -- it can be configured to use the old behavior, too). Also, a new font was added (Wouter van Oortmerssen's Square font for roguelikes).

Moreover, NotEye is now friendly to developers using many different languages. Not only the support for C++ (namespaces) and C (NotEye header correctly compiles under a C comiler) has been improved, but also NotEye now includes samples in Free Pascal, Python, Java, and Lua. All of these examples (except Lua) show many basic features: PC, monsters, smooth animation, error handling (just reload the Lua files on Lua errors). All of the five sample games are very simple, but at least they are at least a bit different :)

Since the 7DRL challenge is coming, I invite the participants to use NotEye for their 7DRL this year. See here for more details.

Direct download link: NotEye 7.5+Hydra Slayer 15.5, Roguelike Bundle 1.3

Some more changes:
  • Several options were added: Projectile speed, Backgrounds, Detail/violence levels (for disabling drawing of CPU-intensive details or blood). These options work for games which support them.
  • Arrow keys can be used to change music/sound and detail/violence levels. Instant feedback when changing music/sound volume.
  • All configs, recordings, screenshots etc. are now stored in the 'user' subdirectory; default config is included (in 'common') and copied there.
  • 'copy error message to a file' in the crash menu.
  • Auto-recording now can be selected from the menu (not only from the config file).
  • Auto-logging. If you wanted to know how much time you spend playing roguelikes for some reason, now you can.
  • Menus are now more colorful.
  • Removed ADOM and PRIME from the menu - these games use NotEye, just download and run them.
  • The NotEye Menu has been rearranged a bit. Fixed the message to 'press ENTER to resume playing' while in a game.
  • Fixed the system terminal mode (it did not work in NotEye 7.3 due to changes).
  • Gamescript files now provide their NotEye version (for backward compatibility in the future).
  • In Hydra Slayer source, BFS is called bfs() instead of dfs().
  • The palette display now works with all fonts (uses filled blocks instead of characters).
  • Added some utility functions in the Lua scripts (sendvector, keyname).
  • Renamed some functions in the NotEye header to make it clear that they belong to NotEye; also, for colors, the type 'noteyecolor' is used instead of 'int'. Added some new utility functions (noteye_lastkeyevent_* for examining the details of keypresses which do not resolve to characters, Lua-callable functions now can return nested arrays and Lua tables).
  • Bounding boxes are calculated for tiles, which should make the pictures draw faster.
  • A minor fix in backward compatibility.


  1. I haven't seen a changelog for Hydra Slayer since version 15.0. Were the changes so minor that they weren't worthy of mentioning? Can You name at least a few noticable ones?
    Thanks in advance.

  2. If there are any changes to Hydra Slayer itself, they are mentioned in the blog post. There were several minor changes in HS 15.2: , but usually there are no changes to Hydra Slayer itself -- it has everything I want, of course if you have any new ideas, I would be interested in them :) Brett Cornwall is working on new sounds, but this would not affect the gameplay. Since new features of NotEye automatically improve Hydra Slayer, and I want the version numbers to be synchronized, HS version number gets changed even if it was not changed itself.

  3. Any progress on this wonderfull game is always appreciated so first of all thank You for taking Your time to develop it. While I don't have any insightful ideas at the moment I'll be sure to post any on the forum once I have them. Also the blog post You linked to somehow slipped past me so thank's again for pointing that out. Cheers!

  4. This looks really cool, and I'm thinking about using it for my 7DRL. I wanted to let you know of a compile error I had (running Arch Linux):

    $ make
    g++ -fpic -I/usr/include/lua5.1 libnoteye.cpp -c -o libnoteye.o -O9 -Wall -DHYDRA -DLINUX -DOPENGL
    g++ -fpic -I. noteye-jni.cpp -c -o noteye-jni.o -O9 -Wall -DHYDRA -DLINUX -DOPENGL
    g++ -shared -Wl,-soname, -o ../ libnoteye.o noteye-jni.o -lSDL -lSDL_image -llua5.1 -lutil -lSDL_mixer -lSDL_net -lGL -lGLU
    g++ ../hydra/hydra.cpp -c -o hydra.o -DNOTEYE -O9 -Wall
    g++ -DHYDRA -DLINUX -DOPENGL -Wl,-rpath,. -Wl,-rpath,/usr/share/noteye hydra.o noteye-main.cpp -o ../noteye ../ -lGL -lGLU
    ../ undefined reference to `deflateInit_'
    ../ undefined reference to `curs_set'
    ../ undefined reference to `deflate'
    ../ undefined reference to `wgetch'
    ../ undefined reference to `deflateEnd'
    ../ undefined reference to `noecho'
    ../ undefined reference to `inflate'
    ../ undefined reference to `initscr'
    ../ undefined reference to `inflateInit_'
    ../ undefined reference to `nodelay'
    ../ undefined reference to `refresh'
    ../ undefined reference to `inflateEnd'
    ../ undefined reference to `move'
    ../ undefined reference to `keypad'
    ../ undefined reference to `stdscr'
    ../ undefined reference to `endwin'
    ../ undefined reference to `waddch'
    ../ undefined reference to `start_color'
    ../ undefined reference to `init_pair'
    ../ undefined reference to `use_default_colors'
    collect2: error: ld returned 1 exit status
    Makefile:30: recipe for target '../noteye' failed
    make: *** [../noteye] Error 1

    I fixed it by adding -lz -lcurses to the related line in the makefile:
    g++ $(DEF) -Wl,-rpath,. -Wl,-rpath,/usr/share/noteye hydra.o noteye-main.cpp -o ../noteye ../ -lGL -lGLU -lz -lcurses $(TGT)

    This seems to be the same problem people had at

    It would be helpful to include this in the next release for better compatibility with all Linux distros (later versions of gcc?). It should still build correctly in Ubuntu with this fix; I tested it on my Linux Mint 13 install.

    Thank you!

    1. Thanks for the comment, and for planning to use NotEye! Actually I ran into the same problem myself on my laptop, but forgot to push the changes (and one other minor thing) to my main repository. I think I will release a fix indeed...

    2. Adding -lz -lcurses to the line as well allowed the python sample to run correctly, so I'm ready to roll for the challenge. I particularly like the minimap. A fix would be great. Thanks for everything!