NotEye invites the 7DRL participants to create roguelikes using the NotEye library!
What is NotEye?NotEye is a library which provides graphics (traditional console look and feel, tiles, or modern third person view modes), as well as other features (accessibility functions for playing on laptops, recording, phpBB screenshots etc.). NotEye is used by the newest versions of
ADOM,
PRIME, and
Hydra Slayer. See ADOM or Hydra Slayer to see what NotEye can do (PRIME uses an older version of NotEye).
Are there any special rewards for accepting the invitation?I am planning to support all the 7DRL participants using NotEye. This means, answering questions (about NotEye, general programming, or design), testing, whatever. If what you want is of general use, this might create quick new releases of NotEye. Use this RogueTemple thread, or e-mail (zeno@attnam.com). Also, your 7DRL will be included with the future versions of NotEye, which means that more people will play your game. This assumes the game is free software (open source), is not too bulky, has better quality than the samples currently included with NotEye (which are a @ moving on screen with more or less interesting one-hit-point monsters, depending on the language), and of course that you actually want it. (Bulky and non-free games might still be included in the NotEye bundle.)
Can I use NotEye for free?NotEye is currently under GPL, which means that you can use it freely in your own GPL projects. This means that you have to release the source, and allow other people to modify your game -- thus, for example, you probably cannot use NotEye freely together with commercially licensed tilesets, such as the
Oryx roguelike tilesets. If you do not like this, contact me, and we can make a deal (that is, a licensing exception, as it is done in ADOM).
But I do not know how to program...You could try learning Python. See
the Python course at Codecademy, or
the official Python tutorial. Then, see the
Python roguelike tutorial at RogueBasin (it is for libtcod, but many things should work with NotEye, too).
What languages can I use?NotEye 7.5 includes samples written in
C,
C++,
Java,
Python, and
Free Pascal. To access more powerful features of NotEye, you also need to write a
game script in
Lua. (Otherwise the only graphics you get are ASCII characters in a boring ASCII dungeon. Not much, but I play DCSS myself in this mode, rather than pure ASCII or the official Tiles version.) See
the NotEye development docs for more information about NotEye development. (I am still working on the docs.)
I am planning to write a pure ASCII roguelike. Why should I use NotEye instead of Curses (or another terminal library)?If you want your game to run only on Linux, then Curses is fine. But there are many problems with Curses in Windows: it is impossible to go full screen, colors are weird, and so on. For this reason, most new roguelike projects use a more modern roguelike library (such as NotEye or Libtcod, aka the Doryen Library) rather than Curses. Also they provide a more portable keyboard handling than Curses. And note that NotEye has more features than just the funky graphical modes.
And why should I use NotEye instead of Libtcod?NotEye is developed more actively than Libtcod. Also, NotEye has many more features than Libtcod (tile/3D graphical modes, streaming, laptop accessibility, etc.) Also, contrary to Libtcod, NotEye can output to a system terminal, which makes NotEye roguelikes playable online (using an SSH client) or by blind players (at least in theory).
Okay, but why not simple write it in Libtcod or Curses? Apparently NotEye works with Libtcod and Curses games.Yes, NotEye works with Libtcod and Curses games, but more advanced features (such as the smooth sprite movement or HP bars) work only for games using the NotEye library (which allows NotEye to access the game's functions, instead of just reading its screen). Also, this is quite slow and inconvenient -- especially with Libtcod, which is done by substituting the Libtcod library and breaks if the game uses a wrong version of libtcod (like
Jeff Lait's great 7DRLs), and uses a TCP/IP connection between the two processes).
Are there any reasons to use Libtcod instead of NotEye?Libtcod is a single file (plus the font file), while NotEye is much more bulky. Also, Libtcod provides several algorithms useful in programming of roguelike logic, such as field-of-vision or pathfinding. Although these tasks may seem daunting to newbies, in some cases using someone else's code is harder and less fun than writing your own, and there are simple solutions, too: pathfinding can be done with
breadth-first search, and field-of-vision can be done simply by tracing a line from the player to each cell on the boundary of the map (not very efficient, but it should not matter in most cases). See the sources of Hydra Slayer where both of these approaches are used (functions
seeall() and
bfs(...)).
How NotEye compares to T-Engine?NotEye is just a frontend, while T-Engine is a full engine to write roguelike games -- basically, everything that is used in ToME can be used in a T-Engine game. On the other hand, T-Engine is very bulky, its games often look too much like ToME (which I don't like personally), and it seems hard to find documentation how to use it. And with T-Engine, you have to program the whole game in Lua, while NotEye uses Lua only for the "game script" part, and gives more choices for the game itself.
How NotEye compares to Unity?I do not know much about Unity, but from my experiences, it aims to be a tool to create 3D games, not roguelikes, and roguelikes written in it look quite strange in my opinion. It restricts your choice of programming languages, but extends your choice of systems where your game runs (although I had problems running it on Linux IIRC). Also Unity is commercial, while NotEye is GPL.
What if I want to create browser or mobile games?Unfortunately, NotEye currently does not work on mobile OSes. I am planning to add support for mobile games in the future, but this is not done yet. No idea about browser games, too.