Reviving Iso-Angband, an isometric view addon for Angband
Collapse
X
-
I found a way to shuffle several tile variants for floors and walls, so that the place doesn't look so uniform. It's a bit hackish, since it needs to find out the real map coordinates of the shown tiles (the view only knows the view coordinates, usually) but it works:
Artwork is still subject to change. There is much room for improvement, I'm still experimenting a lot. A nice touch is that I got the yellow for torch lit squares in conjunction with a graphical display working
Leave a comment:
-
This new main-sdl.c is quite nice, I must say! Kudos to the developers who made it
I've been experimenting a bit and moved the control buttons to the right, so that the map window can take the full screen height. Also I put up two extra terms as examples to the right of the map window. With a smaller font they should be quite useful.
Leave a comment:
-
Thanks
I hope I can work more steadily on it this time. So far progress is good, and I'll be able to reuse much of the former graphics work. Just the code is new.
It seems meanwhile there have been made a lot of graphical frontends, each with its very own style, and benefits. I think though I'm mostly done with the code now, I've been trying to use the simplemost approach that came to my mind.
24x12 seemed to be very small as tile raster, and I changed to 30x15, which seems to work well (aka "shows enough of the map") with the "center view on player" option.
The doors might change, but those were quick to make for a test. Granite walls, quarz and magma veins are in place now, but all still subject to changes. Potions and scrolls are also configured to show properly as graphics.Leave a comment:
-
Nice to see that you work on ISO-Angband again!
I tried to implement some iso view for my variant some time ago, but couldn't come with something so advanced. So I implemented a simple pseudo-3D view that works with the SDL port. You can check it here:
Also did you check Necklace of the Eye? The isometric and 3D views you can get are quite nice. You just need to fill a little configuration file, and there you go:
Leave a comment:
-
I feel a bit hesitant to change the Angband codebase itself. Meanwhile I have reverted my changes in the command files, and just added a few key mappings to my pref file. This seemed safer, in order not to break things, since all the game internals are unchanged, and only user input and map display output is being rotated.
Game menus have different keybindings than the game commands, so the rotated keys are not affecting game menus, which is just what I needed.
At least until I know more about the games code, this seems to be the safest way to work.
The next while I'll be busy adapting my old graphics and editing the pref files for the graphics
Leave a comment:
-
I think what Derakon says is the way to do this. You could maybe do it by altering the keymaps, but I wouldn't vouch for that working completely. There are likely to be some hidden assumptions about up always being up.Right, I get that the orientation looks nicer, but why not just rotate the town? And the dungeon, of course. That way you can display things exactly as they are and still get the orientation you like. Have the in-memory representation of the world match the displayed representation and you'll have a lot fewer headaches.Leave a comment:
-
Right, I get that the orientation looks nicer, but why not just rotate the town? And the dungeon, of course. That way you can display things exactly as they are and still get the orientation you like. Have the in-memory representation of the world match the displayed representation and you'll have a lot fewer headaches.Leave a comment:
-
Well if you press the "down" key and your character moves "right" on the screen you feel confused :P
I've turned the map display to make better use of the screen space. To give illusion of depth, the smybols in front overlap the symbols in the back, and map display space along the screen y axis becomes smaller.
To show 60x20 tiles horizontally with 24x12 raster means an area of 1440x240 pixels being used, which seemed very awkward to me. Displaying 60x20 tiles vertically in this raster uses 480x720 pixels, which seemed to be much better. And there is extra space besides the map now to show inventory, message or other additional windows (terms). Rotating the map requires to translate all input to the right map directions, but I'm somewhat confident that Angband internally has solved this problem already and it's just for me to find the right place to make this translation.Leave a comment:
-
Is there any particular reason why navigation input needed to be rotated 90°? I mean, the grid is still axis-aligned so why should it matter?Leave a comment:
-
It's mostly a modified main-sdl.c and a few files with support code (PNG image loading, and drawing color-adjusted bitmaps onto SDL surfaces). So it should work with all variants which use the standard term system and the main-xxx.c files.
But turning the map screwed the direction input. Menus still want cursor up/down keys to be up/down, but the map's x-axis now runs downwards and the y-axis now runs to the right. I have changed two places in cmd1.c and cmd3.c to make movement work "as expected", but I don't think it was correct to fix the problem this way. I need to find a distinction if input will control a menu or means a direction on the map. If there is a good solution for this problem, it should become a fairly clean graphical frontend.Leave a comment:
-
This is looking great. Am I right in thinking it's going to be essentially a graphical front end that can be put on any variant? Just, you know, asking
Leave a comment:
-
I think I have most things in place now. The code can draw fonts/characters and graphical symbols. Now I 'just' need to tune everything so that it runs well and looks good.
A first screenshot that might give an idea where this is heading:
It's very likely that a lot of details will change, but a start has been made. I might adjust the raster from 24x11 to something a little larger, but even 24x12 already is too tall for my notebook screen - and if I turn the map, it is too wide
But with time there come ideas
Leave a comment:
-
@Takkaria: Ok, thanks. I'll not need this function often, just to create an inital set of pref files for my graphics. It's been a bit a stumbling block though, since I was pretty puzzled that reading the newly created file failed and I had to dig into the parser code to find out why.
@Nick: Cool, I didn't know that the code is still available on the web. Good job there!
I'm not sure if I want to move to github yet though, but I'll think about it. It will also mean to learn a new version management tool for me, something I'm a bit hesitant about.
Also, I think I must drop the name "Iso-Angband" since I've changed my mind and think that a simple rectangular view fits better to the Angband display and needs less hacks.
At the moment I have removed the dependencies to SDL_ttf and SDL_image from main-sdl.c since those required a lot more libraries to be installed. I have added selfmade font drawing routines which can load glyphs from PNG files, so there are still dependencies to libPNG and libz.
It doesn't look like much at the moment, and I believe that I even have broken some features of main-sdl.c in my attempts to lift the dependencies, but I hope I can restore everything which went broken:
The project goals are still the same which I had before, just without the requirement of using an isometric display:
- World representation by shape+color combinations
- Depth illusion by stacked graphics
Basically the idea is like the traditional text mode, where colored ASCII symbols are used to display the game's world, just that I want to replace the ASCII symbols by shapes which resemble the shape of the represented objects. This will still be very abstract, and "realistic" graphics are not a goal.
To give the illusion of depth, these shapes will partially ovelap. This also allows to condense the map display in one direction, offering more information in the same space. I hope it won't hurt readability, and a good choice of shapes and colors can help there. Interesting to see that Angband nowadays has 28 differnet colors, while I had been thinking that even 16 are hard to distinguish at times, and pondered to use only 12.
I'm unsure though about a good size of the shapes and the display raster. The former Iso-Angband incarnations used 64x64 pixel tiles arranged in a isometric raster of 64x32 pixels.
Now the raster is no more isometric, but rectangular. In the example screen above I used a display raster of 24x11 pixels. I don't have configured any graphics yet, so I just placed colored characters on the raster, overlapping as the graphics will do too.
There is a whole lot to adjust, including the colors and display brightness. First I must get a feeling what will work well, and what doesn't. With the used raster, there is space to the left or right of the main term for additional term windows, which might be useful.Last edited by Hajo; May 2, 2013, 15:59.Leave a comment:
-
The latest dev version has fixed this in a slightly different way but I think your fix looks correct too.PS: Angband 3.4.1 can't read it's own pref-file dumps for objects, since it expects object names in a slightly different format than the one that it writes.
I have no idea if my fix was right, I changed the dump routine to produce the same object name format which the parsing routine uses when it compares object names with the names read from the pref file.Leave a comment:
Leave a comment: