Fugue Devlog 15: Divine Demons, In-Game Game, and Seamless Textures

· 06.21.2022 · projects/fugue

Modeling demonic divinities

Growing up I was very fond of Buddhist art and I would make an effort to visit various Buddhist temples whenever my family would go to China to see my grandparents. I found the paintings and sculptures of terrifying figures to be strangely calming, and only later did I learn that these fearsome beings are in fact benevolent, wrathful "protectors".

Demonic Divine, Rob Linrothe, Jeff Watt

While visiting Kira's parents last week I had the opportunity to read through the catalogue for one of the Rubin Museum's opening exhibitions, "Demonic Divine" which was exactly on this topic. I've wanted to find some way to draw from this tradition of "divine demons" for Fugue and reading through the catalogue helped me figure out how I could do that.

Without going into too much detail, one fundamental Fugue world-element is the phenomenon of "hauntings", which are mental blocks and fears that characters experience. The character progression system is based around confronting and resolving these hauntings (perhaps in addition to a simpler experience-based system, not really sure yet). The way I've pictured this is that progression happens along a path (the character's "道"/"way" in a sense) and these hauntings are literal roadblocks, represented by these demons, along this path. So a key question is how exactly does this process of resolving hauntings1 work?

One other feature I want to include is an in-game game (tentatively called "Gem"), sort of like Triple Triad in Final Fantasy VIII. Including something like that lets you do a lot of interesting things: explore its cultural significance, show how different places and people interpret the game (perhaps with different house rules and variations), explore all the infrastructure that comes up around a relatively simple game once it becomes a major phenomenon (rules committees, judges, player associations, its role in national conflict, etc), and in general be a means of showing different value systems, thought processes, philosophies, etc, like Azad in Iain M. Banks' The Player of Games. I'm still working out Gem's design, but so far it's like some combination of chess, checkers, and Chinese checkers, with the variability of a card game—i.e. many different pieces with different abilities, and players can build a "deck" of pieces to play with like they might build a deck in Magic: The Gathering.

My current thinking is that to get through a demonic roadblock you challenge the demon to a game of Gem, in a "chess with death" style. The demon itself is represented as a piece on the game board that you need to remove, sort of like the king in chess. However the goal of the game is not necessarily to "defeat" the demon. Each demon represents a mental block/fear that has a complementary virtue; the point is not to excise the demon from your mind but to recognize its value as an ally. In the context of Gem, this means capturing the demon instead of destroying it. If I design Gem right, then capturing the demon will be comparatively difficult to destroying it. If you're able to capture it (maybe "convert" is a better term) then you have access to that piece for future games of Gem and perhaps some kind of bonus "blessing" for the character outside of Gem.

I've been working on modeling the first demon, based on Chitipati. Chitipati is two skeletons depicted with a frame of flames which acts as a memento mori and more generally represent endless change:

Chitipati, from Himalayan Art Resources

The first part I tried to model is the flame halo. Similar features are common in wrathful diety iconography so this model would be useful for other demons too. I made several attempts at modeling these flames using only Blender's geometry nodes with the hope of generating them procedurally, but they never came out well (maybe because of my inexperience with geometry nodes). In the end I hand-modeled five flames and use geometry nodes to distribute them in an arch, which I'm happy with:

Flame arch

When I moved on to modeling Chitipati I started with a fair amount of detail. It did not look very good, so I gave it another shot from scratch using a rougher approach, and it looked a lot better (though the hands look TERRIBLE...I'll give them more attention later maybe, to organize them as particular mudras). Relying on textures for detail rather than capturing it in the mesh makes a lot more sense for this game, especially if I'm using photo-textures. And because I'm rendering out at a lower resolution, finer mesh detail won't really show up anyways.

A side note: I'm modeling this demon as only one skeleton, rather than Chitipati's two.

Test render

This test render's resolution is high enough where the lack of mesh detail is apparent (pretty boxy looking in some parts). When rendered in-game the low detail looks more appropriate:


Infilling and seamless tiling with GIMP

One idea for the flame halo was to use content-aware fill or a similar infilling algorithm to generate a full image of the flame background and then some how turn that into a 3d model. That route didn't really work—I couldn't make it look good; it just looked flat and janky—but I did find an infilling plugin for GIMP called Resynthesizer that is really promising. It didn't work very well for the flame frame (perhaps because it's an illustration or because there isn't a lot of content to reference for the infilling) but it works much better with texture photography. Here's an example using an image of some overgrowth:

The original image

After applying the Resynthesis plugin (using Filters > Map > Resynthesize) and checking "Make horizontally tileable" and "Make vertically tileable":

The filled-in/resynthesized image

That result looks great, but it wasn't actually seamlessly tileable. Fortunately there is another filter, Filters > Map > Tile Seamless, that handles that:

The seamless tiling image

It looks really good tiled:

The seamless tile in use (2x2)

This texture has a lot going on so it may be an easier example. If you look closely at the seamless tile version you can see some ghost leaves overlapping other leaves, which might be more noticeable in a sparser texture.

It's more apparent in these textures:

You can see some mushiness/blurriness/choppiness in the patterns from the overlapping areas. It's not terrible, especially for textures you won't look closely at and in the context of the game's downsampled resolution. Again, part of the game's aesthetic is about giving a big margin of error for quick-and-dirty assets, whether through low poly modeling or iffy automated tools.

When I have more time I want to see about integrating this directly into the Texture Editor from the last post; it would be nice to not have to open up GIMP every time to process images this way.

As a side note, it's been awhile since I've used GIMP and I'm impressed by this latest version! Feels like it had a big glow up like Blender did.

  1. "Exorcisms", sort of line with how they work in Buddhism, though I don't know that I will call them that in-game.