As discussed previously, I’m going to attempt to use SVG based tiles for my map output. Which means I’ll need a library Java library. Enter Apache Batik. https://xmlgraphics.apache.org/batik/
I may need to switch to something else later, but this seems like a pretty reasonable starting point.
One of the never ending issues with roguelikes is tiles vs characters (ASCII for example, but many use more extended character sets.
Currently I’m exploring the feasibility of making a graphical tile based interface where the default tiles are SVG defined character graphics. For local play, this should give most of the benefits of both. For online play, there are different issues (ans some additional benefits if I go with a browser based interface), but I’m focusing on local play at this point.
I hope this approach will give me:
- A system where pretty graphical tiles are possible but where I can quickly define character based ones. For me, character based is preferred, but an SVG tile is an SVG tile whatever it’s contents, so if someone with the desire and talent wished to do so, icons would be inherently supported
- Scaling. This should allow the “graphical” part of the game to scale more gracefully across a range of screen/windows sizes and resolutions.
- Templating. I’m just learning to work with SVG, but I hope that I can template-ify the icons so that variations (tin things like color) can be done more easily. This is the equivalent of color coding your orcs (‘o’) in a character based system.
For now, I’m going to work towards using the SVG data directly, but I suspect that for performance reasons some sort of tile generator/smarter caching/whatever will be required.
Since I know next to nothing about working with SVGs, I picked up a few books. No review/recommendation on these as I have not read them yet.
A while back, I was kicking around a few roguelike game ideas. YARG is a relaunch.
I haven’t worked in Java in a while, so that will be the language for now. Once I get underway a bit farther I’ll get code repositories and Project management up and shared.
The first phase is going to be working out the display system. I’m currently thinking of using SVG based tiles. This will allow me to create alphanumeric tiles programmatically, but also allow for future expansion into other tiles. The downside is that even the “ASCII” tiles won’t play too nicely with terminal based play. I’ll try to leave the GUI abstract enough that a terminal replacement is at least possible (even if I don’t make it myself).
Working on the visual interface will give me time to decide which of the roguelike ideas I want to pursue.. Plus I can try to package it up as an independent library.