simple machines forum

Please login or register.

Login with username, password and session length
 

News:

Remember to make your own backup of posts before submitting.

 
 
Pages: 1 2 3 4 5 6 7 8 [9] 10
 81 
 on: March 04, 2022, 10:42:41 PM 
Started by Holey Moley - Last post by Holey Moley
Note, the official release location for x2mdl is now found at http://csv.swordofmoonlight.net/x2mdl.dll/ (find the newest ZIP file and unzip.) I've added this to the large font download linklinks. I'll still update the other from time to time, but for downloading x2mdl.exe the official is best. Plus x2mdl.exe is now updated in the TOOL folder when updating x2mdl.dll. If you're looking to do custom model work I recommend downloading both (at least for the notes) and ask for help.

Edited: While I'm here... yesterday I found a mistake I made with scaling animations. They need to be remade, unless perhaps if a model only has one animation in it (which all of SOM's scaling animations do.) I've also been making lots of improvements to it lately since I've been doing modeling work on my KF2 project. (I've also been working a lot on MM3D. It's even come to dominate my work lately.)

 82 
 on: March 02, 2022, 08:49:17 PM 
Started by Holey Moley - Last post by Holey Moley
off-topic

Quote
(I also had a good idea to make A and S and E set elevation values in SOM_MAP. A for add, S for subtract, and E for equal/elevation. That way you can do it left handed! Unfortunately I still have to work on this...)

Sorry this really isn't on-topic, but just as a note... I worked on this this morning, which will be in the next patch, whenever that is.

I first looked at SOM_MAP's hotkeys. They're a little unusual, but they all work. I've never learned them I guess because they're not intuitive. I remember seeing them in the manual. Here are some of the more odd ones...

Ctrl+1 through Ctrl+3 choose between the 3 different views or tabs. This also works in SOM_PRM.

Ctrl+I opens the events menu. This one seems odd, so does putting hotkeys on the right side of the keyboard. I wonder why I of all letters? Maybe I should add a Ctrl+E option come to think of it. Maybe I is for Japanese something?

Ctrl+T opens a game (a test).

Ctrl+W opens the MPX compiler menu, but doesn't compile it.

Ctrl+P is the same as Ctrl+Click used to be, which copies the tile into the current "pen" and syncs the palette viewer.

Ctrl+Left (and Right) does horizontal paging. Up/Down don't, but I think PageUp/Down does. I guess I should add those come to think of it.

new SOM_MAP hotkeys

New ones I've added (mainly oriented to using a mouse with left hand on keyboard) are A to add 0.5 to elevation, S to subtract. E to assign elevation. Note, these 3 don't currently work with Undo, but I will probably fix that if it ever starts to annoy me...

C does same as Ctrl+P. V does same as Enter/Space but doesn't depend on the Ctrl key or CtrlLock button. I recommend using V now, but I also made Ctrl+Enter/Space work with CtrlLock off, which it hadn't previously.

Ctrl+D now deletes tiles. F and G flip the tile, equivalent to 2 turns. They're the same actually, except you can press Shift to make them do 1 turn, like Z and X. Useful to avoid moving your finger between them. Plus F and G are closer to V.


 83 
 on: March 02, 2022, 02:19:13 AM 
Started by Holey Moley - Last post by Holey Moley
EDITED: For 1hr the following patch was bad (I hate when this happens) because I forgot I disabled the fix to try to test it before realizing it wouldn't work with the art system absent.

Patch Part 2

http://csv.swordofmoonlight.net/x2mdl.dll/1.0.0.2.zip
http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip (see EDITED in bold)

The SomEx.dll link is because I botched the earlier patch, and I'm merging the warning I posted into this post.

As for x2mdl, I noticed a problem with my wall writing decals in my KF2 project and was convinced x2mdl was outputting bad colors in the textures somehow, and so I finally did something I've been meaning to do to optimize how x2mdl outputs textures from back in the day when they needed to be downscaled to 256x256 in 16-bit color for MDL files. (Originally it was actually using D3D to do this color conversion, but it failed once on a GPU or device that didn't support it.)

Well, it turned out at some point when I had lost the original texture, and only the TXR file was correct. After I started using the new art system that TXR was no longer used. So IOW my scramble to fix x2mdl was for nought there. However, I also realized it was still downscaling to 256x256 and MDO files actually support much larger textures than this. I'm not sure how many mipmap levels som_db allocates, but with do_mipmaps it doesn't even matter. Moratheia has 2048x2048 textures that I know of, so at least that big (which is too big) probably works without SomEx.dll.

So I've fixed that problem. The only textures in SOM's larger than this is 3 of its 4 sky textures I enlarged to 512x512 in the original release for this release. I didn't realize they were getting hacked back down to 256x256. To see that benefit it's necessary to clear out the shortcut/lnk files in the map/model folder for sky files (called sky) or delete that folder from the temporary cache.

I've also updated these files in the TOOL folder. I meant to do that earlier, but I'm glad I forgot to now.

I think x2mdl should run a little faster now when converting models. It actually was pretty optimal already when updating textures by themselves, and didn't have this 256x256 problem then (actually that's probably why I missed the sky kneecapping come to think of it) however, in practice it still generates the textures when converting the models, and usually that comes first unless the model's texture(s) already exist with shortcuts. Anyway, now it's almost as good, but still allocates a texture in video memory in case it needs to be downscaled for the MDL file... although I can fix that too come to think of it (next patch.)

 84 
 on: March 01, 2022, 09:55:34 PM 
Started by Holey Moley - Last post by Holey Moley
Important Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip
http://csv.swordofmoonlight.net/x2mdl.dll/1.0.0.2.zip

This patches a serious SOM_MAP bug that might be in the current build/patch which will fail to save your MAP file if encountered. It's down to random chance, so you want to update this to not lose work.

I'm not 100% certain this needs patching, but I can't test it because my map that encountered the bug depends on the new art system, which isn't available in the current build/patch. (The bug happens when the buffer happens to end at the last tile in a string of blank tiles at just the right spot... probably because of a sanity check I recently added.)

Another thing I happened to notice today is bugs in a few places around the vertical limits I added to event triggers/activation a while ago. (I really messed up in multiple places here: 1) was a rounding mistake with negative values; 2) monsters were checking an NPC parameter to determine if they're alive or not; 3) square triggers were using the round trigger's parameters.)

enhancements

Everything seems pretty stable right now, so also in this patch is support for the last two model formats under the new art system, which I've been using lately and it's really a vast improvement for building maps with custom art.

I haven't yet added some new advanced features to these formats, but they're as good (better) than the existing x2msm/x2mhm option. One thing to look out for is untextured models are still treated as wall-to-wall CPs, except for when converting to MM3D, which I've added some code to its path to tease them apart in order to be able to convert MHM files. If you put x2mdl into MHM mode it won't do this, but the art system doesn't do that, so models either need to be textured, or make the MHM geometry slightly transparent to defeat the CP detectors. (I don't know if I can fix this really, the best that can be done is to only treat lone triangles as CPs, but sometimes low-poly art might have long triangles too... luckily MSM files should be texture mapped because they don't have materials even if you wanted to do something more like the original KF.)

Another thing it doesn't do (yet) is split models up into MSM and MHM parts. IOW the art system will just output both an MSM and an MHM file, so you don't just use one of them if you just need it for MSM or MHM for time being.

Edited: Another secret I added today (I guess SOM can hold secrets if KF does) is holding the Alt key when clicking in the workshop tools (PrtsEdit, ItemEdit, etc.) will open up the model in your 3D editing software associated with your art file's file format. I intend to make this available from outside the workshop tools too. (I also had a good idea to make A and S and E set elevation values in SOM_MAP. A for add, S for subtract, and E for equal/elevation. That way you can do it left handed! Unfortunately I still have to work on this...)

 85 
 on: February 28, 2022, 11:57:32 PM 
Started by Holey Moley - Last post by Holey Moley
status update

On the second map, all of the tiles are now texture mapped, including palette swaps (there are a more than just the first map's Harvine room, which I also finally finished yesterday.)

It's pretty short work, but it's a mountain of work. It's definitely going much faster than before, but I'm not sure the quality of the texture mapping is as good. I intend to go back and tweak the maps after most everything is finished, some along the way. There's probably no perfect mapping because the PlayStation address model is so different, and the tiles have a like a cm of extra space that overlaps, that makes it hard to say what's correct.

(Edited: FWIW, for the most part, especially for tiles, I'm not having to make any adjustments to the UVs this time around. I added some simple shortcuts to my MM3D software, but I realized after a few tiles I was doing the same thing, and so I should just put that in the TMD conversion code as my starting point.)

There are some "objects" that need to be converted to tiles. I actually thought the game had a sophisticated system here it would plug in static tile models until things like secrets (and traps) are engaged, and only then replace them with the animated models, in order to hide their internals from the PlayStation's no depth-buffer approach... except yesterday I was in the Harvine castle area and every single secret there was obvious because the walls would glitch around them. I'm starting to wonder if the false walls in this area were just not given the full treatment. I don't remember the secrets being so obvious as these. I suppose secret panels are somewhat different on the PlayStation if they give multiple tells through various glitches. All it takes is a keen eye then.

I haven't noticed that many new items on this map. Hopefully I won't have to work on any more weapon animations.

 86 
 on: February 26, 2022, 03:43:25 PM 
Started by Holey Moley - Last post by Holey Moley
random

I've spent a lot of time the past two days working on MapComp diagnostics. Somehow the error code forwarding (to SOM_MAP) seems to have broken down, which I've fixed, but I also found myself in a weird situation where somehow the DELETE character (127) was injected into the MHM field of one of my PRT files, by Microsoft's text box.

The MHM field was supposed to be blank. So MapComp was trying to open up an MHM file called character-code 127 .MHM. Of course that didn't go well. What it did do however is reveal how brittle MapComp/SOM_MAP are in this regard, since all MapComp generates in this case is a single error code... and (IOW) it's up to you to figure out (assuming you know what it means) which PRT file is the offending one... and of course that's a literal software "hell" since there are thousands of such files to comb through.

Another fun quirk is there is no error code if a PRT file itself doesn't open. In theory that might leave a hole in the MPX file, but in practice MapComp seems to not be able to abide by this and will crash. I guess if running it via SOM_MAP then SOM_MAP would have likely reported the missing PRT file, but I'm not sure these days since I've relaxed that some so that you can at least open and repair a MAP file with missing PRT references (it does raise a box.)

So I've invented a PRT error code (which hopefully isn't already taken) and have added a pop-up box to give a hint about which PRT the MHM or MSM error codes refer. Oh yeah, another point of failure is the do_missing_file_dialog_ok extension wasn't working. Otherwise it would tell you the missing file's name. In practice an MHM or MSM file may have a very similar file name to a PRT file, but this isn't a certainty (so maybe you could reason backward to it.) One reason it was failing is Microsoft's PathFileExistsA was lying about the file's existence. This was because (I think) it was being given a fake path with a > in it that I use to fake SOM into supporting Unicode folders. I fixed some code that was allowing that to happen. A second problem is do_missing_file_dialog_ok can be disabled (that's what it does) and maybe it shouldn't be so for tools, but for MapComp I changed the code to ignore it since MapComp will fail to make the MPX file, so it needs to give a reason. I opted to ignore missing objects (it reads every object MDO file so it can use their CPs for lamp flames, but this is a bit extravagant since it really ought to just read the lamp MDO files when the maps actually use lamps!! I should fix that sometime as an optimization.)

I have a database inside the site here of all of the files and their references (and back references) which was essential at one point, butt less vital these days now that the DLC tools like PrtsEdit are built into SOM proper. Unfortunately the new art system is going to outmode this database since it largely dispenses with all of these file formats (by making them transient files) so it's very likely to remain a time capsule going forward until I disconnect it or something happens. It's a shame because it has a cool WebGL based 3D model viewing system (largely an experiment at the time) that I'm not sure I want to try to salvage with the new extra level of indirection required. It gives me a head ache to think about it. But anyway, the only way to rectify it would be to build x2mdl into this website to convert art files into runtime files, and then redirect the WebGL system to a second cache level to convert those to its format. I think it's probably too tall an order to do anything with.

 87 
 on: February 22, 2022, 10:20:39 AM 
Started by Holey Moley - Last post by Holey Moley
update

BTW, from my previous post (image of the fountain room) if you like a little piece of trivia, the little white cut in the channel on the left is actually a piece of the small mine, a room where you collect an Earth Crystal from a treasure chest. It's really crazy how compact the layouts are on the vertical plane. Luckily it's not generally a huge problem, but I suppose it could have been very worse. Usually the lower ceiling is only inches below the higher floor. In this case I will have to replace some flat tunnels with descending tunnels so that the small mine won't abut up into the fountain room. In the PlayStation version the separate levels are usually not loaded into memory simultaneously in order to meet the PlayStation's limited requirements. I don't think SOM will have any way to express this level of control, although I could add something in the form of an advanced extension to hide layers via events. (Which is how it would've been done most likely in the original.) Still I think that the overlap is undesirable, even in the level editor. I don't think it would be a good idea to do more than disable drawing on the other layer, so most likely sound effects would bleed in, which may or may not happen in KF2. Reproducing its sound landscape is something that concerns me, especially because it's largely an X factor that's opaque to my knowledge so far.

progress

As of a couple days ago I've begun to really hit my stride with much better development process at my disposal that allows me to work at a fast pace without any encumbrances. It's beginning to feel very exhilarating. I can set up tiles often in seconds. Everything is very streamlined and accurate. I will probably have to redo the first zone at some point.

SOM is at the beginning of feeling like an optimized development experience. It wasn't designed for building whole games from scratch with original art work, so it had not had facilities to integrate art development into its workflow... until now.

Since I've been using my own 3D modeling software to do this, I've been more inclined to work on improving its experience lately, since that pays dividends. I don't know how much I will spend time working on it now, it will depend on what feels like good tradeoffs. It certainly needs some work in areas. One thing I know I need to work on is nonlinear animation key frames. I think it's impossible to make high quality animations with linear interpolation, and if I'd had another option I think when I worked on adding animations for the shield and other things I probably wouldn't have struggled so much since I probably would've been happier with the results if they were more fluid. I'm surprised 3D graphics software often only deals with linear animation, since I think nonlinear is essential for good results, and allows for fewer key frames, less fuss.

I've had a very long journey to get this far. But it's starting to pay off. Finally.

 88 
 on: February 05, 2022, 10:03:44 AM 
Started by Holey Moley - Last post by Holey Moley
Attachments * Seath.png 
2022

I've got my work cut out for me :goodnight:

 89 
 on: February 01, 2022, 12:10:08 AM 
Started by Holey Moley - Last post by Holey Moley
An important milestone has (finally) been reached by Sword of Moonlight by realizing the original King’s Field single environment experience of no “loading screens” after hopping into the game. This is something King’s Field fans always gloat about since it was pretty novel back in the day, and even to this day lately I’ve played a little bit of some PlayStation 4 games and am finding myself shocked how much of the time is really just spent on minutes long loading screens. In my opinion I would happily remove the high fidelity visuals in these games for practical seconds long loading screens. Of course, no load screens would be ideal.

I believe From Software published Sword of Moonlight so that it would be carried away by its public. This is a crucial facility no King’s Field Making Tool is complete without. I believe Sword of Moonlight would not have been published in this form except as a challenge to take it up. We should not forget that Sword of Moonlight is modeled on a sword after all.

I wasn't sure whether to make this a release or a demo because I still need to battle test it by building out a full 2 map system using my KF2 project (it's long over due for another map to be added to its demo on itch.io and I've been postponing that until it could properly replicate KF2's no hiccups experience.) Both because I was thinking of making it a demo and I kept shooting myself in the foot with patches to the current release, all the way up to today, I've decided to just write this blog post and refer it to the current patch, which I hope is finally stable. Below are links to the patch files. I'm also going to be posting any future patches to this topic/thread to mark a point of departure.

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip
http://www.swordofmoonlight.net/text/日本語/最新.zip (Japanese)
http://www.swordofmoonlight.net/text/English/Neutral.zip

I've been working on this since the last weeks of December, last year. Although in that month I mainly did preliminary work (some studying/planning) by adding layer elements to events that take map coordinates. Technically I think it was possible to just refer to the base layer and set its elevation setting to coincide with a desired layer's elevation. I've tried to cover layers fully in the event system in this patch/quasi-release/project/task. This also includes new elevation limits and a rotation option for action based events and trip zone events. Note, I think in terms of activating things everything is now covered so that activation doesn't span "infinitely" above and below. IOW the default range is now limited to the object or character model bound to the event. (Also there's a "breaking-change" for the circle trip zone which had added its radius to said object's radius, which is no longer done. I've added an option to re-enable this, however I have a feeling the restriction to the object's base/height is more likely to break old games. I had a thought today to roll all of that together.)

One new event "module" (I think I'm calling these modules now, even though I have another plan for literal C# modules for SOM, but that will offer a plugin system for events too, so they will technically be modules too) was added, filling out the last remaining slot in the list (before it requires a scroll-bar) as if fated to fill in this slot (why was a slot left unfilled?) much like the layer system filled in the spaces left by the layer system From Software ripped out prior to publishing. Anyway, this event module/command/operation/instruction (call it what you want) sets a secondary map to start loading in the background. This requires a multi-core CPU. They've been standard for many years now and current Windows systems require them to function, so unless there is demand it will just be a minimum requirement from now on to use this. I did some timing tests and I think that a single-core CPU just won't be practical given how slow Windows is to access files (I'm a little surprised it can stream the BGM file, and this may be a bottleneck) at 60+ frames per second, so if demand arises the only likely thing I can do is add a way to disable this so that loading screens come back.

As a starting point this system functions just like the King's Field games would have functioned (I think all of them do so this way anyway) by connecting two maps at a time. Technically more than two "maps" (i.e. levels) will stay in memory for a few minutes, but two maps will remain in memory. Memory just means they're not on your disk drive. I'm pretty sure from what I've seen online that KF2 duplicates parts of its maps that intersect on the threshold. Currently this duplication is required with this existing system. I am interested in pushing it further down the road to actually display the other map against the current map. Logistically there is only one active map. Things like events only run on one map's events at a time. Under the current system the maps switch out instantaneously. If a more literal stitching system combined their images however, there would still just be one set of events. I do plan to try to carryover monsters, however presently, any monsters visible on map change will just blink out. This version isn't fully complete. To avoid that you can set up doorways (gates) like you will find in most KF games' inter-map corridors.

Edited: To get this new style transition working the new "relative" setting has to be checked on the map change event module. Technically this makes it so the "event" can cover every tile inside its trip zone, but it's also doubling as a "new mode" switch, since the old mode is limited to a single tile, almost like a teleportation booth. (I've thought about upgrading the old mode but it's not clear-cut that the new semantics can work with it without losing something in the process.) One other small thing is you need to rebuild the MPX file (compile/prepare it) since MapComp needs  to add some new information to it. (What tile/layer things belong too. This is information it used to emit but was disabled.) Note, it now defaults to "relative" mode.

The fog and sky and BGM is smoothly transitioned, however there's a larger flaw in this version than monsters blinking out, that is there's no provision for transitioning lighting. I have a plan for this, but it's going to have to wait until later this year, and will be a big project. In the meantime there are some creative workarounds for this if someone is really keen on using this in the next few months. What can be done is map geometry can have its diffuse lighting component overpowered either by maximizing the "emissive" component or using the new per-tile ambient system my KF2 demo is using to overpower the ambient component. At that point you will be stuck with having to fake lights by baking any lighting into your textures. But this approach can create a liminal corridor which both maps (with different global lighting) can agree on.

The solution I have planned involves more per-tile settings for most of SOM_MAP's settings. Even ones you wouldn't expect like the fog and names and music. This system should allow for little pocket regions within the maps themselves. (Edited: There will be an option to set the sky model on a per-tile basis, but it will most likely only apply to the current tile/layer and so anytime the sky is swapped out will have to be obscured from view somehow. The sky transition system blends two skies, and if it were possible to blend per-tile skies there would be a "combinatorial explosion" and tiles are square, so it would be tricky to smooth out jagged diagonals between tiles. That said I won't completely rule out tackling this one day.)

Oh, one more small limitation is you should stick to WAV files for music. The transcoding system I set up a while back isn't super efficient, but it will no doubt incur a hiccup if you try to mix it with a new nonstop map transfer. I need to roll that into the new art system cache x2mdl.dll is using so that the conversion to WAV is done one time and saved until the cache is emptied. I will do that when I add sound effects to the art system.

Another little something worth mentioning is I've tweaked the opening movies to load the first map in the background so that the game will load faster, even if players just try to cancel it ASAP... it only needs a second or two, which it can take to do the fade out effect. I'm also going to add this to the Continue screen, but I haven't yet. It will need to start loading while its Yes/No menu is shown. Also if you use do_start/start_mode=1 ("KF1" style) it will load the first map as soon as the title screens begin. Ideally SOM can be a no loading experience like the old 16-bit consoles which used ROM cartridges :713:

Edited: For the record, I want to take some time off to work on art for my KF2 project. So I'm not going to be working on SOM features for a while, and when I return to it I plan to focus on a few things that will make a new KF2 demo shine. One other odd thing that made it into this patch is a new way to turn off the menu system on the item pickup screen. This is how most of From Software's games actually work. SOM works differently IOW. But this new system still feels a little bit unfinished. Obviously it needs animation, but I wonder if it needs something else. (A sound perhaps?) Anyway, you can try it by setting it to Off in the Options menu, or pressing one of the auxiliary face buttons on the pickup screen. Even in an unfinished state it's actually good to get rid of the old Options setting, since it was totally nonsensical (and implemented completely wrong I found out) and so would otherwise be interpreted as the mark of unprofessional product.

https://www.youtube.com/watch?v=TgQUZcwd-JQ

 90 
 on: January 31, 2022, 07:04:41 PM 
Started by Holey Moley - Last post by Holey Moley
Last patch? Demo patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip
http://www.swordofmoonlight.net/text/日本語/最新.zip (Japanese)
http://www.swordofmoonlight.net/text/English/Neutral.zip

Aye yai yai, I don't know how it happened but the fog got messed up by the last patch. This was because it thought it was to be applying the blending effect. What I don't understand is why my test project wasn't exhibiting that behavior. I thought about putting it under the microscope but decided it wasn't worth the time and effort.

I'm really sick of all the patches in this release. I mean I'm disgusted with myself to a large extent. I'm hoping it's just a cursed release.

This patch is actually the final patch of what I thought might be the next release, but actually I've recalled I'd considered just releasing a patch as a demo since I've still not built out a full scale scenario with two real maps of significant scale.

Since this patch is identical to what would be a demo I'm not going to make an odd numbered demo patch for it. I'm just going to write a blog post up and start a new discussion thread. Also even though there's enough here to do what KFII requires, I feel that lighting being missing from this feature set makes it a little bit incomplete.

I also kept getting stuck in Moratheia's opening titles. I thought I covered them in terms of multi-thread locks but I went back and looked and it seemed like not. So I hope they're covered now. I'm not sure what happened in that case.

After a little more testing to see if the code has stabilized I'm going to see about updating the TOOL folder.

The language packs have new UI things for SOM_MAP's events. For English it may just be new trip zone and action based activation features compared to that quick/dirty demo I shared a while back. For Japanese it's all new to be up-to-speed with the English version.

When I write a blog I will share some potential ways to workaround the missing lighting feature in case anyone wants to do early tests before I can work on it.

Anyway, this is technically a patch to fix things I broke. I will reshare this patch in the new topic/thread I should make sometime later today. I did work on some last minute things before posting this fix, even after I noticed the problem.

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