simple machines forum

Please login or register.

Login with username, password and session length


Remember to make your own backup of posts before submitting.

Pages: [1] 2 3 4 5 6 7 8 9 10
 on: April 15, 2019, 07:14:15 AM 
Started by Holy Diver - Last post by Holy Diver

This fixes resolution problems when the height is equal to the monitor but the width is less than. Details:

This had been considered "full screen" and was using an old, unsupported path that just happened to work out when the width was the same.

I think I also got the icon to stay put, since Microsoft broke switching in-and-out of framed/unframed windows sometime last year. I thought I fixed it, but they may have further broken it since then.

 on: April 13, 2019, 10:45:02 PM 
Started by Holy Diver - Last post by Holy Diver
You can now see this for yourself with the latest release. Below is code taken from my KFII project. ii1161280 is the water TXR file name. If volume_sides is 2 then the reverse side of the water sheet is rendered to the depth-buffer, invisibly. (This probably isn't required, since the performance overhead for rendering the backward facing polygons is negligible, because you can never see both sides at the same time. In other cases it might be more useful. But it illustrates that it's not in use I suppose.)

Code: [Select]

;testing new feature
0_ii1161280 = Veld seawater
volume_depth = 8
volume_power = 1/3
volume_sides = 1

BTW: Something I think I neglected to explain before is the "0_ii1161280" part can have wildcard characters where underscores (_) appear. It's not possible to write a space ( ) in a file name, and so, spaces must use the wildcard. Wildcards can match more than one texture's file name.

 on: April 13, 2019, 10:29:13 AM 
Started by Holy Diver - Last post by Holy Diver
A new release ( is up. A direct link to the DLL can be found at the top of this topic/thread.

A centerpiece of this release is a new depth-based opacity effect that is ideal for water, but has many potential applications. It's described more here ( but remains semi-incomplete because there needs to be an event-based system for determining when the scene moves underwater. I'm doing it in phases. That will have to wait. That problem has two parts: one being the clipping problem ("collision detection") which is a little bit different from normal clipping; and two being that underwater rendering will require a full screen effect to fill everything in where there is otherwise no onscreen geometry. The second problem seems like a project to extend the full screen particle effects system. I've seen some of that in the code for what it's worth.

This week I fixed some bugs. One was the Delete button did not light up in the script editor for the menu text that is built-in Japanese text. Another is I somehow managed to omit/delete some code that was supposed to make it possible to hide magic spells from the menus in the game. The inventory screen worked, but the magic spells didn't go away like they were supposed to.

Earlier today I changed the F7 overlay to show item/magic numbers. The item numbers can be used with player_character_radius3 to customize the viewing distance for items on a per item basis.

There are numerous upgrades I developed for the King's Field II. I'm just going to post about them here whenever I remember them. I may well not remember a lot of it.

The attack buttons on the controllers can now be used like Ctrl and Shift keys on the keyboard. Recall that those are the actual keys used for attacks using the keyboard. The new system waits until the keys/buttons are released to initiate the attack. If another key or button that works with Ctrl and/or Shift modifiers is pressed, this now suppresses the attack.

This doesn't actually delay the attacks because there was already a 100ms delay or more, that is now manually under your control, so that you can attack faster than was previously possible. This also makes it easier to hold down all three buttons, since you don't have to time them to be pressed at the same time. I think it's a really clever development. You can use it to attack more efficiently too, because you can hold down the button, so that all that is required to "unleash" your attack is to let go. (Letting go is faster than pressing a button, because finger movement is one way.)

EDITED: Holding down Ctrl+Shift is now equivalent to the Alt+Alt combination. I think that's true for the keyboard too, although it may be only so for the controller. It cannot enable emulation mode, which is what Alt+Alt by itself does, but I think that probably needs to change. Speaking of Alt+Alt I also worked on a crash bug that would happen when changing the display device settings with the new real-time map overlay system. That and the volume-texture (depth-based opacity) system was enough motivation to really dig into SOM's texture loading/unloading routines and data objects. I intend to do more with that in the future, but nothing immediately. (The aging/almost obsolete "keygen" system needs to be switched over to using file names and I think something like directly supporting DDS or other formats would be helpful for some things.)

 on: April 13, 2019, 01:02:34 AM 
Started by Holy Diver - Last post by Holy Diver

Cool: I'm going to be uploading a new release very soon. I've mainly tried to fix a list of little bugs I've noticed since the last release, which happens to have been quite a long time ago...

But first, I want to announce that I just added a hot-plugging fix for controllers.

I want to say so before I forget, because it was a very simple last minute fix, that I did just now. I noticed the other day some memory that must have been the controller database, and realized it should be simple to figure out something. This is good for me because I'm regularly unplugging my controllers. Especially since nowadays controllers are wireless they are very often being unplugged...

The fix is so simple it's a wonder SOM didn't implement it. Maybe the only tricky part is knowing how to capture the device plugged/unplugged events. Maybe SOM's developers didn't know, or maybe the need was unconsidered.

The new release is a mishmash of things I worked on for my King's Field II demo. A lot of the work doesn't have anything recognizable as a feature, so much as I did a lot of good work tweaking movement and analog controls. This has been available since the demo as a demonstration build. But I want to get it out as a release.

There are good enhancements for menus too. I just have to wrack my brain for the relevant extensions, or hunt down the old source code file and compare it to the new one to make a list. I should do that to be thorough. I need to document them too.

I added documentation for a fix I did yesterday ( that adds a way to control the distance in the item preview screens. I mainly did it because I've changed the default to match King's Field II; but games can tweak this too to make some items appear closer or further away. KFII puts small items closer, so you can see them better. It uses separate models for this, however SOM does not have this luxury. I think I will use this to make the Star Key items larger.

Those are actually quite small. I don't know if you ever see them in the game in their true size. They are the same size as the ornament that matches them on the pedestals. I wonder if I should call them Star Compact or something, because they are about the same size as a compact, but probably I should stick with the more prosaic language since they work like keys.

 on: April 12, 2019, 10:59:23 AM 
Started by Holy Diver - Last post by Holy Diver

Update: I've completed work on this, up to the coming release, in the next few days, however, I never intended for this release to include everything described in the opening post...

Mainly, there won't be an event tie in feature, and no full-screen effect. On the upside, it turns out the effect generalizes to any kind of geometry, and so I've enabled it for pretty much everything, with some limitations:

1) The transparent polygons have to have either an opaque polygon behind them, or they require a volume-texture polygon behind them, ideally their own.

2) When the volume-texture is serving as its own backing polygon it likely needs to be self-contained, because they are currently drawing their inside-out faces first, and then their front facing faces after. To be able to build a multi-tile or multi-object version of this it would be necessary to (somehow) draw all of the participant's inside-out faces before swicthing to their front facing faces. That would be less efficient for SOM because it streams its polygons. Currently I have it so it can do multi-pass with one stream. If the problem was just batching the rendering it would not be difficult to do, but there is also a z-sorting problem, meaning clusters would have to be batched separately/intelligently to make it work.

3) Regular (transparency) z-sorting limits apply. Namely: overlapping and concave objects can sometimes have blending glitches or incorrect z-order. This problem will not go away without more fine-grain z-sorting. That's not inconceivable. But it's not a big priority either.

I don't actually know how to approach the event problem. The obvious way is to add a new clipping code to the MHM format. The only hurdle there is x2mhm cannot be used. I have at least one other MHM tools, but it doesn't subdivide like x2mhm. I've long wanted to develop a replacement for it.

Currently the extensions are as described. A volume_sides extension is used to request to not do the inside-out pass, but it has no effect other than to reduce the workload.

 on: April 08, 2019, 09:58:22 PM 
Started by Holy Diver - Last post by Holy Diver
Attachments * West Shore 7.png 
Here is the first screen of a new volume-texture feature I'm developing that fits perfectly into the existing do_alphafog extension.

In this screen it's designed to fade out Melanat's shoreline underwater. The water needs to be darkened to better match the game, since it's being shown at full opacity, which normally would get 50% blended into the black background.

 on: April 08, 2019, 12:40:12 AM 
Started by Holy Diver - Last post by Holy Diver
Over the last few days I've been able to use a Nolo ( kit to add a VR tracking feature using it. Right now it's the money based tracking solution (throw money at it) but I lucked into a spare kit that Nolo gave to a company as a sample, that was stuffed in a closet until now.

I haven't been working on it for 3 days. I spent some time trying to use SteamVR, but it did not work at all. And I was not impressed to be honest. It made me more impressed that SOM can do VR on a system that SteamVR can't touch. That's a shame too of course. But it shows there is a niche for people who would like to do VR but aren't being served.

Just now was the first time I've tried VR with position based tracking. It was much more subtle than I expected. And to be honest, you're pretty limited by the weight of the headset, since as soon as you move your neck in any way that isn't upright it tends to yank your head around and be uncomfortable. Honestly, I can't see how you'd manage to do anything with it by jumping around in a playroom! I wonder why that is the way VR is being marketed???

I also have handsets now, and so can imagine/implement alternative control schemes based on them. If I write much in this thread/topic it will likely be on that subject. I have different ideas, but my original idea was to use body language largely to control the game, since you don't really have direction-inputs at your disposal. But now that I've tried tracking, I'm a little less keen on that. It's just too heavy to move around a lot. I may even be leaning more to face-tracking (but that's a little weird too, because the monitor is so far away.)

 on: April 06, 2019, 06:07:26 PM 
Started by Holy Diver - Last post by Holy Diver
I thought I already logged a post about this :confused: but it seems not.

Long story short is I arose with an idea earlier this week that I'm pretty excited about: that is to add depth to transparent textures to simulate bodies of water mainly, since the effect is going to need the geometry in question to behave like a liquid filled basin.

This is going to give way to swimming features I'm sure. In due course.

The idea is pretty simple, and it builds on the depth-buffer that's used to blend the sky and shadows naturally/beautifully into the level geometry.

I think I may have had the idea before, but it was not practical until I very recently added the ability to put transparent materials inside of the MSM tile models. Before this, the only way to make bodies of water was to use "objects" and that is not enough to work with to build water effects around.

This will be a natural extension of the depth-buffer effect, which is something I appreciate, because I feel like software that is effortless is intrinsically more elegant and beautiful.

I'm pressed for time today, I have to go out, so I must be brief. Below is some new supporting extensions I've staked out to begin.

Code: [Select]

;testing new feature
0_meerawater = Meera water
volume_depth = 1
volume_power = 2

I'm using the opening zone of Moratheia as a test-bed for the basic effect. I'm not sure what is appropriate to modeling water. So I've kept it basic. I think basic suits SOM.

In this configuration file code, "Meera water" is human readable text for the event editor. The other two are functions that receive parameters. "0_meerawater" assigns the texture to slot 0 in the event editor. And 0 is a parameter to the formula. It's possible to assign more textures to 0, to make a group. But I haven't made it possible to use a different parameter within the same group.

Depth means that more distance between the pixel on the transparent surface and the opaque pixel that is behind it makes the volume-texture appear more opaque, as if there is more of it in that space, as if it's a column from one pixel to the next.

The "depth" formula just says how far can you see into the material. And "power" is if there needs to be a curve in terms of the amount of transparency at shallower depths being nonlinear.

I don't know if this models light. I would rather keep it simple, and I don't try to model physical reality with graphics anyway. Generally I like graphics that appear static. Optical effects like specular reflection can be distracting, and hard to do correct in real-time. If they don't look precisely correct there is an "uncanny valley" effect that can be hideous. I think that's why contemporary video games are ugly in my estimation.

Things get more complicated when you go underwater. The problem turns inside out, and that's where the event editor comes into play, since events need to respond to the change in the world's dynamics. It's also necessary to orchestrate a full-screen effect since the polygons that form the surface of the water won't cover everything as seen from the inside out.

Transparent elements embedded in the volume texture's "imaginary basin" also compound the situation. I think they can be managed by blending their depths into the depth-buffer. But there's another problem, in that the transparent elements are typically z-sorted, and this is by model section, and not pixels, and I haven't gamed out what the impact of that might be. But I expect if it is subtly glitchy it's just going to be a fact of life. Transparency is already like that. It's more evident when things like particle effects fly through a field of z-sorted transparent elements. When elements are static maybe artists can work out ideal placements. But z-sorting effects can be different depending on vantage.

I'm planning to use this on KF2's Melanat zone to tail off the underwater causeway like geometry. I got the idea thinking about Moratheia. I recently heard from its author. I don't know if I should be sharing that here, but there you are.

 on: April 01, 2019, 01:03:47 AM 
Started by Holy Diver - Last post by Holy Diver
Update: This is going well. I've sanitized/refactored the GLUI library and am about to go into testing.

P.S. Today (my birthday) a VR controller (and tracking) kit fell into my lap. Part of a string of crazy luck so far this year. It's the first time I've held twin single hand controllers. It feels very different to have them in hand. I already have a notion of how to translate them into SOM. I think possibly this is the future of SOM, even better than controllers.

I'm still not crazy about wearing the headgear. It's not uncomfortable. It's just a barrier to engagement. I don't know how to put it, other than if I had to suit up to watch television, since it's a pastime, I probably would just watch less television. It's weird. I wonder if the VR controllers can work with face-tracking (no head set) or if the scheme I have in mind would work with a SIXAXIS controller if it also used its motion tracking feature, or the lightbar on the DualShock4; which is actually the easiest one to use with Windows.

I'm just announcing my first foray into this. I'm not going to describe the controls I've in mind here. Not in this thread, and not yet. If you're a developer/colleague write me.

 on: March 27, 2019, 04:53:53 AM 
Started by Holy Diver - Last post by Holy Diver
Here ( is more.

In Parzival, Wolfram von Eschenbach, citing the authority of a certain (probably fictional) Kyot the Provençal, claimed the Grail was a Stone (called Lapsit exillis[24] which in alchemy is the name of the Philosopher's stone), the sanctuary of the neutral angels who took neither side during Lucifer's rebellion.[24]

Joseph Campbell considered Parzival the greatest of the Grail stories, told from a heroic view, where Parzival, is a married man and a self-motivated figure.[2] There are alchemical and Gnostic themes running through Wolfram's Parzival. Campbell sees the Grail as, "...a stone vessel, which was brought down from heaven. Now what he (Wolfram) is doing is imitating the Muslim Kaaba, the stone at Mecca that was brought down from heaven".[25] At the end of the story, writing appears on the stone which reads: "...any Templar whom God should bestow on a distant people for their lord must forbid them to ask his name of lineage, but must help them gain their rights."[26] Campbell explains that for the first time in the history of civilization: "Here is the idea of the king ruling, not in his name, but in the name of the people."[27]

It's funny because I've been (slowly) watching the Bill Moyers interview series with Joseph Campbell on Netflix these days. This says Campbell regards Parzival most highly, which is the text I'm using to develop King's Field 9.

The first paragraph (I'm not sure I realized) links the grail to the the Philosopher stone of alchemic fame, which is interesting, because the dark crystal of KF is a stone (and the grail) and since working on KF2 I'm pretty sure the fountain is designed around the philosopher stone, as I've explained elsewhere I Think. If not here ( is a refresher. KF2 even has "rubedo" as an unattainable item.

Here ( is two more interesting sections relating to the twin swords.

The bleeding lance

The bleeding lance has taken numerous forms throughout the Arthurian literature chronology. In the earlier appearances of the lance, it is not represented as a Christian symbol, but morphs into one over time. In Perceval and Parzival, the lance is described as having "barbaric properties" which are difficult to associate with Christian influence.[9] Chretien describes his lance with "marvelous destructive powers", which holds a closer connection to the malignant weapons of the Celtic origin.[10] In Chretien's Perceval, the lance takes on a dark and almost evil persona[10] and also seems to overshadow the Grail, which if this was a Christian story would be rather odd.[11] Wolfram's tale also treated the lance in a similar dark manner. In Parzival, the lance is "poisonous" which contrasts sharply with the general trend of healing Christian themes. This lance is plunged into the Fisher King's wound at different times to continue his pain, for having sought forbidden love.[9] This lance is considered significant because it is most often associated directly with the wound of the Fisher King, which is demonstrated both in Chretien's and Eschenbach's versions of the tale.[12]

The more recent writings have the lance presented in the Fisher King's castle with Christian theology. More specifically, it is supposed to be the lance that pierced Jesus Christ while on the cross. This is seen in Malory's Le Morte d'Arthur. In Malory's version the Fisher King is healed with the blood from the lance, signifying it as a good, holy, Christian object. In Corbenic we see the precession at the Fisher King's feast, featuring heavily on the Holy Grail, which is a strong Christian artifact. It can be extrapolated that in the same precession, the accompanying lance is the lance that pierced Jesus Christ.
The sword is commonly thought to be a gift from the Fisher King to Perceval. This is then followed by Perceval's cousin's prophecy that the sword will break at a crucial moment. In two cases, the writers tell us that Perceval broke the sword: in Eschenbach, it fails him in his battle against his half-brother at the end of Parzival; and Gerbert de Montreuil describes how he shatters it on the gates of the "Earthly Paradise".[13] The adventure of the broken sword is a theme originally introduced by Chretien, who intended it as a symbol of Perceval's imperfections as a knight.[14] The major example for his imperfection is that Perceval refused to ask about the Grail. This concept of punishment is also seen in Eschenbach's tale where Perceval is told: "your uncle gave you a sword, too, by which you have been granted since your eloquent mouth unfortunately voiced no question there."[15] The sword remains as a plot device to both remind Perceval of how he failed to ask the healing question and as a physical reminder of the existence of "Munsalvaesche" (Eschenbach's name for Corbenic).

My goal with King's Field is to collapse all of this stuff down into a story that is easy to process and internalize for a general audience. I ended up with the  first link because I was trying find how the so-called keeper of the grail is referred to. Other than the Fisher King. But didn't find much on the page. But found that link instead. Which is better. Aleph collapses the keeper of the grail, Percival, and now the "Wandering Jew" and father-time stories all into one character. A first man (Adam) and so on; all for example.

EDITED: I almost neglected to comment on "the sanctuary of the neutral angels who took neither side during Lucifer's rebellion" which is actually directly in line with my origin story for the Moonlight Sword and Dark Slayer. The latter is the grail, and here philosopher-stone. It's fashioned from the dark-crystal, which is also the grail/stone. The weapons are St. Michael's tossed into the world that is the result of the angelic-rebellion. And so it makes sense if there is a tradition of saying there are 3 camps of angels (one neutral) that the neutrals would be the stuff of these weapons, since they are implements, and so neutral in character. The rebel angels are the stuff of the world. These weapons are the stuff of its undoing, and the most powerful artifacts (being of heaven) that exist within it. Ultimately they are key to the phases of the world. The Moonlight Sword heralds the phase of the world that ends with magic, and the Dark Slayer acts as a vessel for magic to remain in the world that follows, in reduced function, and ultimately it ends that phase, beginning the process of the world's undoing.

Pages: [1] 2 3 4 5 6 7 8 9 10