@ Necklace of the Eye
Current version: 5.0
Necklace of the Eye (NotEye in short) is an frontend to modify the
output of console and libtcod roguelikes. (That is, roguelikes which use one
of two most popular methods to draw the stuff: system console (aka terminal or
curses) or libtcod. Does not work with those which create their own ASCII displays.)
It currently has, among others, the following features:
- Tested under MS Windows and Linux
- Show the game using ASCII, tile, isometric perspective, mini-tile,
or First Person Perspective (FPP) display; fullscreen or windowed; and
with a choice of font
- Display the roguelike just like it would be displayed in DOS,
using the correct font, colors, and full screen (note: if you need only this
feature, you might also use the simpler utility cons2tcod)
- Move your character using mouse
- A menu from which you can choose one of several games to play
- Take screenshots in several formats: BMP (image), HTML (for webpages),
and phpBB (used by many kinds of online forums)
- Streaming: you can make a recording of your game and then play it (recordings can
be annotated with messages and you can control speed), you can also host a server
where clients can connect to and watch your game, share comments about it (with
you and other clients) and even control your character if you wish
- Sound effects based on messages from the game
- Change the control scheme, for example you can make it easier to
play a 8-directional roguelike on a laptop by using Shift/Ctrl+Left/Right
arrows for diagonal movements, allow VI keys, or allow arrow movement
for roguelikes which support only VI keys by default
- Lua scripting, allowing lots of flexibility in adapting NotEye to new roguelikes
(see this for a short and yet incomplete guide about
NotEye scripting), giving additional features to the game (e.g., automatic creation
of characters), or even creating new roguelikes in NotEye
Hydra Slayer is included to show the capabilities of
NotEye (there is a complete tileset, you can see the game using square or hex tile graphics,
first person or isometric perspective, and plain ASCII, you can control using mouse,
select a font, and get very simple sound effects).
Also very basic configurations are provided for ADOM, Crawl, DoomRL, Frozen Depths, and Brogue.
These include most ground and wall tiles, other things are shown with ASCII. You are invited to
provide more complete tilesets for these or other roguelikes!
Videos
Screenshots below probably don't say much, you need to see in it action.
Currently videos are available for the following roguelikes:
Screenshots
Download NotEye: Windows binary, source package
(tested under Linux)
Released under
GNU General Public License, version 2.
As such, it comes with without any warranty.
Disclaimer: I hope there are no crash bugs, but... Better not to test
Necklace of the Eye on your important characters :)
Note: some games don't recognize the resolution correctly when started
in fullscreen mode (probably because going fullscreen resizes the console
and they think that it is too small). Run them in windowed mode and
switch to full screen later. In some locales (e.g. Japanese) NotEye
does not interpret the screen correctly, switch your locale e.g. to US
in this case.
Streaming
I think some information might be useful about streaming. So here it is.
- If you want to view a recording, you have to press "P" in the main menu to switch into the view mode.
Then, you won't start a game process on your computer, instead you will get an option to connect to a server
or view a recording (remember to press Ctrl+M whenever you want the menu).
- Only messages, information about ASCII screen contents, cursor position, facing direction (for use of FPP), and
plain ASCII/tiles/FPP mode is shared (mode is shared only if the respective option is selected in the menu).
Note that the viewer is not forced to use the same mode as server or author of recording.
Keypresses are shared from clients to server if you have selected this option.
- Although viewing recordings, connecting to servers, and playing games are mutually exclusive, they are
not exclusive with recording and/or hosting. Combining recording and viewing is useful — this allows for simple
editing of recordings: changing speed, changing ASCII/tiles/FPP mode or disabling mode changes, adding messages, and
splitting and merging.
- NotEye menu (obtained by pressing Ctrl+M) is never recorded or shared with clients, so you can safely use it
to add messages, change speeds, pause viewing/recording, change ASCII/tiles/FPP mode, and so on.
- You can change recording and viewing speed. If the value of "recording speed" set at recording time
equals the value of "viewing speed" set at viewing time, then the video will go in real time. If video recorded at
speed 1000 is viewed at speed 2000, it will be twice as fast, and so on. You can increase the recording/viewing speed
value in menu by pressing "2" or "5"; holding Shift reduces the value, and holding Ctrl allows you to enter an
arbitrary number.
- You can change default options in config.noe.
- WARNING! There is only very basic sanity checking of network streams, so a client over
a laggy connection could potentially hang your game (and thus possibly kill your character), and a client that works
not according to the protocol could have strange effects. For example, if you are running "Generic roguelike (shell)"
and allowing input from clients, then they could execute arbitrary console commands on your computer, hopefully this
does not work if you are just running the game and not giving shell access, but, well, I cannot guarantee that
you are safe. Better not to use streaming if you don't trust the clients.
- Technical information: Although only ASCII screen content is shared, technically NotEye protocol allows
transporting any NotEye screens (that is, rectangular arrays of tiles).
Compression is simply the one offered by zlib (thus, if the screen has changed in just one position, both screens
will be transferred, but zlib will notice this fact and use it, so the size of file won't be very different from
a file containing just one screen).
- Watch an example recording here. This is three dungeon levels of Hydra Slayer,
filesize is 229 kB.
How to use with libtcod
NotEye can work with libtcod games too. You need to substitute libtcod with a version which acts as a NotEye
server, and then connect NotEye to it. Don't be afraid, this is quite simple (server is started automatically,
and NotEye connects when you press M and L). I have compiled a NotEye version of libtcod 1.5.1, and tested
it with Brogue (versions 1.5.1 and 1.6). It plays quite well (although might be a bit slow), and as usual you
get some simple sound effects, an ability to change font and go fullscreen, and NotEye's special graphical
modes. Unfortunately mouse does not work except for Brogue 1.5.1 for Linux (this is due to the way Brogue is
written, not due to NotEye).
You can download NotEye version of the libtcod 1.5.1 library (compiled for Linux 64-bit and Windows,
and sources) here.
History and Future
For versions before 3.0, see the old version's page.
For version history after 3.0, see the blog.
The following features are planned for the future versions of NotEye:
- Finally document everything, so that other people can actually create configurations.
- Make it work faster (using better algorithms, updating only the parts of
screen which have been changed, or hardware acceleration)
- Correctly transfer all keys (both in Linux and Windows versions)
- More utility functions to allow easier Lua scripting
- Support all ANSI codes (to make the Linux version always work correctly)
- Improve color selection when playing true color roguelikes on console
- Communicate with other popular tools, like telnet/ssh servers and clients, and ttyrec recordings
(note: ssh servers are not as important since you can run ssh through NotEye already, but could be
a convenience)
- Support Unicode roguelikes
- Support more sophisticated fonts
- Support 3D models in the FPP mode
- Hydra Slayer config: allow hex FPP
- Support more games, and more completely...
Tilesets and configuration files for more roguelikes and other contributions are very welcome :)
If you would like to thank me for NotEye, or would like me to continue the development,
donations are welcome.
Updates about Necklace of the Eye are published on
my blog.
You can discuss NotEye at the
RogueTemple forum thread,
or by e-mailing me (zeno@attnam.com).
See my roguelikes and other things
Thanks to Slashie for hosting this at RogueTemple!