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.

Thursday 16 August 2012

NotEye 5.8 and ADOM news (and Hydra Slayer 13.8)

Recently, I have been involved in the ADOM crowdfunding campaign. As a stretch goal, NotEye integration is considered. Integration means that ADOM will be able to communicate with NotEye directly instead of just reading the output, avoiding problems where very different things are represented by the same character (arrows and open doors, for example). As a further stretch goal, a full tileset is going to be created.

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
Documentation is still heavily lacking, but Ancient (Michał Bieliński) is working on NotEye integration in PRIME, and he says that the progress is satisfying. So at least I am not the only one able to use this :) Have fun!