minor update (SVN Update)
This update (1.2.4.4) adds a pretty good do_alphasort Option to Ex.ini and preloads the BGM when using the new seamless map transfer feature to help ensure no hiccups occur. (You have to use a supported WAV file to be sure this works fast.)
http://csv.swordofmoonlight.net/SomEx.dll/1.2.4.4.zip
The default Ex.ini file (http://www.swordofmoonlight.net/text/English/Default.zip for the English translation) now has do_alphasort added to its [Option] section.
What this does is turn all the transparent polygons into a soup and draw them back-to-front. I've been working on this for a while, but it's proved the most challenging little project I've ever taken on, and it took some tricks to enhance the performance since it wants to tank performance pretty hard. It can still use more optimization.
simple machines forum
- November 23, 2024, 07:58:26 AM
- Welcome, Guest
News:
Remember to make your own backup of posts before submitting.
31
on: April 24, 2023, 11:54:24 PM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
32
on: April 21, 2023, 03:36:59 PM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
To anybody visiting or returning to here, I’ve not dropped the ball on Sword of Moonlight and everything else, but I’ve been going through a lot in the past months that’s been spurred on by a “supernatural” string of daily events pushing and pulling me in different directions. I want to say it’s all in my head and I need some kind of medical attention, but the truth is there’s not really a medical solution and it’s not medical seeming at all. I’ve had a day job for less than 2.5 months, that I had to quit because the work environment was surprisingly bad, even though the job itself was a really good fit for me. I’m also trying to fit work on projects into my life. But I’m being regularly encouraged to find friends, and even make a family. But something about the “path” I’m walking is showing me how difficult or impossible that can be in our world today under my circumstances. I think I’m not alone in this. So, I just want everyone to know, that I really need to make friends somehow okay. I know that not everyone has a platform like a website, like this, and a game dev project/system to be able to reach out like I’m doing now. And right now this site has problems, including that email notifications aren’t working, so people (you) can’t even register with it until I can figure out what’s stopped working in the past few months. FYI I'm planning to be adding new release information to this topic/thread going forward. Right now I'm debugging some things. I have every indication I should be sticking with Sword of Moonlight and King's Field, but my life it tumultuous now, and eventually I'm going to have to start looking for a new job to have some spending money. I'm continuing to get less sleep to try to make up the difference. I wish everyone well. |
33
on: March 11, 2023, 03:35:41 AM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
I apologize, it's taken me a long time to crank this out. I ran into a couple bugs that were hard to hunt down with my diminished schedule.
You should use SVN Update to get SomEx.csv to apply this kind of update. Direct download: http://csv.swordofmoonlight.net/SomEx.dll/1.2.4.2.zip (advanced) |
34
on: March 08, 2023, 03:24:39 AM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
I'm trying to cleanup my act. This board is the new main board. I hope everyone will feel free to use it as much as possible
|
35
on: February 20, 2023, 05:47:10 AM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
return of the king
I have a new release ready for tomorrow, already uploaded. It just adds this feature, which doesn't always work right for some complicated (concave) geometry, like the Crystal Flask in KFII for instance. But I'm keeping it as is for now. I've also rewritten/reorganized the main site's pages and added a ZIP download for Sword of Moonlight. I don't have full days to work on SOM stuff anymore so I'm trying to do odd spring cleaning things here and there; things I've put off. I'm hoping I can make things seem more legit around here before I ever get around to finishing my KFII project. I probably shouldn't say so, but programming wise I feel like I should go back to working on the swimming and flying monsters in my KF2 project because I left them unfinished. I think that's what I'm going to do next. I'm going to try to add text and other features everyone expects too. It would be nice to add wave sound effects to the beach. EDITED: I'm going to try to remember to increase the sneaking speed some. |
36
on: February 12, 2023, 04:11:38 AM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
I'm excited to announce, I got a job, I don't got a paycheck, but one should be around the corner. Anyway, I am trying to pick up the pieces of my work here. I'm going to be focusing on my King's Field II project in my off hours, whenever I can. My life has been in upheaval for a while, and this post is just to set the record straight. Those who've followed me the past few months know things have been crazy, crazy, crazy. Okay, okay. I don't know if I can hit that 2025 deadline, but my plans are to work until 2025 at a minimum. I'm working 30hrs a week. I think I can keep my medicaid this way, since the restaurant I'm working at doesn't have health insurance. And that's about all I can say. BTW, I figured out (on my own) a solution for the transparency problem. It took some trial and error, but pretty much I've made it to use the closet vertex, and all triangles using that vertex are BSP sorted (without cutting) (using the code I'd already set up for this) and it just kind of works, good enough. I've not seen any problems yet. But I need to do a lot of cleanup and fix a few things that need work. After that (hopefully in a few days) I'm going to try to make a plain ZIP[1] download for SOM. It's not the recommended way, but a lot of people have begged me to do this for a while. It will have a TortoiseSVN database built into it, but you'll still have to install that if you want to update. I won't be keeping it up-to-date. [1] Because ZIP isn't good for small files, I may look into other ZIP formats. This may not be easier than just using TortoiseSVN, or I might just use ZIP anyway. |
37
on: October 23, 2022, 10:11:56 PM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
break (it turns out)
I kind of expected this to not pan out. It happened that combinatorial explosion ramped up very fast for even simple models, but I also couldn't quite get it working to see a visual because of something wrong in the computer memory I couldn't figure out last night. I have a sense it's a dead end, but part of me wants to get to the bottom of that to be certain I got the formulation right. I'd like to keep the code I worked on around in case it might be viable in some other formulation. Now I guess I'm left to what I probably should've done in the first place, which is to just sort the triangles according to plane-distance to the screen. I think it may work alright if it goes by the closest vertex to the screen, but I'm not sure. It's not technically correct like partitioning is. But it seems there's no commonsense way to do partitioning without abandoning the novel antialiasing scheme I've worked so hard on over the years. (I'm afraid this other approach will work in general but is going to have the occasional glitch. I just hope it's a charming flaw and not a blight if so. I'm worried there will be no solution and I'll feel like destiny is not on SOM's side. I wonder if games will ever really switch to ray-tracing since it would make this difficult problem just go away pretty much.) There may yet be some exceedingly clever and complicated way to do it, but that's not a priority now. It's not often that I actually fail at my projects. I rarely go back to the drawing board. I can't even remember the last time, but I'm sure I've had some failures in the past. Anyway, this has been a pretty bad experience so far. I'd like to move beyond it, but I'm not giving up. |
38
on: October 22, 2022, 03:24:47 AM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
make or break
It only took 2 solid days to write some parametric splitting code to see if this will even work. I'll probably debugging and testing it tomorrow. My hope is KF2's crystal flasks will look alright since they're pretty complicated and are unacceptable without this additional work. I'm pretty nervous because if this doesn't work I've written a lot of code and I don't know what if anything is left to try. It will take some soul searching, that I'd rather not have to. I don't know if there's anything else left at the bottom of my bag of tricks this time |
39
on: October 17, 2022, 09:24:55 PM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
more details
I think how this can work is to precompute some parametric data for splitting triangles because the unsplit triangles have to be "transformed" into world space and it would just be extra work to split the models in advance because then any such split points have to be transformed as well, and it's pretty costly to do that math on the CPU. Plus it's not possible to split animated models in advance because they change in real-time. And it's impossible to add the split points to the animation, and if they were built-in they'd have to be animated too. But the splits will not change to match the animation frame, so they won't be a perfect match, and that will just be in keeping with the "good enough" approach. the existing drawing code uses a data structure that includes a 32-bit field for depth-sorting. Luckily because of that a 32-bit pointer can fill that memory to transport this new splits data. Model splits will be stored in the MDO format's new extension system. Level geometry will have to be stored somewhere in the MPX/MPY files if not just computed at runtime. Precomputing should have the benefit of being able to match up vertices to be able to reuse them. I'm trying to do this now. These days I'm not working on SOM everyday. I can't say I'm working on it full-time. Not on programming at least. Unfortunately. I'm still trying to hit my goals for the end of the year, but this project itself is proving to be a lot. I'm definitely not working on anything that isn't directly visible in my KF2 demo on itch.io until next year. |
40
on: October 15, 2022, 06:01:50 PM
|
||
Started by Holey Moley - Last post by Holey Moley | ||
update
This is proving difficult to solve with do_aa. It pretty much requires every triangle to be split along the plane of every other triangle, and that seems to be too much to do on the CPU. I had to ignore the fade in (spawn) effect for purposes of transparency sorting or else the system is overloaded when everything fades in at once, or even just when new areas are entered. (Edited: This means that spawning monsters will be blended in first, which might be the wrong order if they spawn right in front of you somehow, but usually they spawn on the furthest edge or inside fog. It might be worth spot fixing close up spawns later.) I hit on a bit of luck by accident today because I tried to micro-optimize some simple logic and left out some parentheses (in code) that resulted in triangles to not being split at all. That actually turned out to be a possible path forward, because it still kind of works (good enough) but obviously it has glitches where the triangles ought to be split to implement BSP algorithm correctly. What I'm thinking is to do the all-against-all at the level of individual objects and same textures parts of the map, and hope that's just "good enough" for do_aa. I don't know to be honest. I'm a little afraid I'm either heading down a dead end hallway or somehow this will work out to net good. Either way it looks like the beginning of a project to overhaul (and cleanup/simplify/modernize) player's rendering code, that could be good just to have that out of the way. I'm hoping I can do a proof of concept, and then look at doing the splitting in x2mdl and MapComp respectively if so, so that it doesn't have to be done every time things are sent to the GPU. So far I haven't noticed artifacts caused by inserting vertices. I think they will appear though with point light sources. This proposal to make the cuts in advance would be stable in that regard. So I think this is the path forward. I think another benefit of this is if I do implement automatic crack-healing (do_aa) in MapComp maybe it can fill in any cracks caused by splitting too. (Edited: In case anyone is wondering, with MapComp it would be worth trying to separate parts of the map that don't touch each other for this purpose. Just in terms of the 2D grid if so most likely.) |