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.

 
 

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Holey Moley

Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 ... 58
181
Devs / Re: EXIT: 25th Anniversary Project
« on: January 28, 2021, 02:27:22 AM »
I've added a patch (usual URL) that uses the XInput API's buttons report for controllers that are detected as XInput. I hope this solves some troubles people seemed to be having with the button mapping, but I'm pretty skeptical it will. But it will remove one variable.

Background: Windows seems to emulate DirectInput controllers (which SOM uses) for XInput controllers, and I assumed that these virtual controllers always have the same button layout.

Either they do always or they don't always. I can't think of a good reason they wouldn't, so I'm guessing people having this trouble are using a native DirectInput driver for their controller. In that case if it can be detected as an XInput (also) controller, then hopefully it will work with these overridden button mappings. If it's a pure DirectInput controller (like the PS4 controller is) then short of building a database of known controllers (which I'd be fine doing) people just gotta figure out how to use their configuration files.

I'm hopeful this will work for the most part now. When I started writing this the scenario of being able to override it even if it is native DirectInput hadn't occurred to me. I think Sony's PS4 controller is probably an oddball in not having an XInput driver. I think it's trying to not compete against the Xbox on Windows (by using its input system) but still giving developers access to it to use with their workstations (and I imagine many or most games recognize it anyway, but they have to program a DirectInput layer to do so. So smaller games probably don't.)

182
Man I had a pretty bad time with this. The programming went alright, and I thought it would be a good opportunity to experiment with different parameters, but everything I tried essentially is indistinguishable from regular mipmaps.

And to make matters worse I hadn't really considered that I was using an extension that generates a double-wide pixel art texture, so that the first mipmap level was really the real texture.

And actually for the problem I'm trying to solve it mainly just shows the first mipmap. And it wasn't really interesting in this case. I wish I'd realized that from the start. It would've changed my strategy entirely.

At some point I realized what I really wanted was just a point (nearest neighbor) sampled mipmap, and that this new code can't deliver that. But it's actually simple to make a "point" mipmap and it doesn't shimmer like doing point sampling on the GPU does because it's really a mipmap, so it's stable.

Unfortunately it wasn't a eureka moment exactly, since by now I realized the problem wasn't really the mipmap so much as mipmaps/anisotropic filtering may be inadequate... this could even depend on your chipset. I think there is a little bit of the second mipmap blended in... so I switched over to using this point filter strategy, plus it's just as good really (for KF2 at least) and doesn't even require sRGB transformation.

I think it looks slightly better. A box filtered mipmap is naturally duller because it mixes the colors together until likely you get some kind of gray mush. So it helps that problem some to just keep the original colors intact. But it's not by much.

I wish I could think of something clever. I will probably try to increase the relative contrast some on them, I don't know. On the headeater monsters a problem with point-filter showed up, that is it can make stripes. So I added some bare minimum logic to jitter which pixels are chosen so you just get color noise. Not great if you expect more than that.

I will make this an extension at some point, right now I've just made "mipmaps_pixel_art_power_of_two" to use this point filter mode. It may not be a great choice if game depends on very accurate pixel art. But KF is just kind of grainy in this regard, and that's probably what you want anyway. With anisotropic filtering you don't tend to see much of the second level mipmap. Anything lower is going to be viewed at a shear angle.

My problem is it can become a gray film or sheen of mush that's just not attractive. This is mainly limited to the ceilings in the caves. It probably doesn't help they're pretty bright and contrast with the black fog.

P.S. Oh well, maybe this other code will come in handy one day.

183
Today I'm going to finally break ground on that mipmap project. It's hard to find good information on the subject but there does seem to be a general consensus that it's helpful, or can be.

I'm going to adapt this (https://github.com/dwilliamson/GDMagArchive/blob/master/dec01/blow/gdmag_mipmap_1/main.cpp) code that comes from here (http://number-none.com/product/Mipmapping,%20Part%201/index.html) that may be an excerpt from an old magazine called gdmag (maybe it was in physical print, maybe not) (GD stands for game-development but I don't know if the intention was to hear "goddamn" mag or not.) (Edited: https://en.wikipedia.org/wiki/Game_Developer_(magazine))

EDITED: Specifically the build_mipmaps_wide routine with the Kaiser filter.

I worry about the "rings" problem it describes, but this looks like still the state of the art approach. Luckily I've done the bulk of the work already when adding the do_srgb extension a little while back.

Making these mipmaps is pretty compute intensive, so I don't think it's going to be advised to do this at runtime for a normal game, however KF2's textures are pretty small, so I see it as a way to do a test to see if it helps (I hope it helps) with the foggy mipmaps problem, which I'm not necessarily sure that it will. Most mipmaps probably look okay, so if successful, in the future I think what will be called for is a combination of singling out problem textures and computing the mipmaps offline (technically TXR files can store mipmaps, but do_mipmaps ignores them if present and I think even though SOM doesn't directly support full alpha channels that using TXR to store mipmaps wouldn't work well because the alpha channel needs to be full alpha in the mipmaps.)

I think I want to switch to using any image format for textures, and building a cache for mipmaps and alpha masks. The only thing standing in the way of that is time and the hundred or so other projects to prioritize.

EDITED: I should note that this effort to achieve high fidelity isn't for its own sake, it's to try to approximate what the PlayStation looks like completely unfiltered. Ironically it takes extreme high fidelity to replicate extreme low fidelity with high fidelity.

184
If you do hang around you can help a lot by being the first to assist others and if you can write some guides from the beginner's perspective. (I really have difficulty seeing things from a regular user's perspective because my view of SOM is so close up. You'd expect me to know everything about it but the truth is I only see it very piecemeal and every week or even every day is a new project for me, it's always out with the old in with the new and I never retain information, plus I have memory issues I think caused by aphantasia.)

It really brings me grief that people aren't using SOM and talking about it.

PS: Again, this one was entirely on me, I'm not sure what happened. I'm pretty clumsy, fair warning. I'm not careless, I have blind spots you can drive a mack truck through.

185
EDITED: Hey, please check your %TEMP%/Swordofmoonlight.net folder for DMP crash files. Next time I recommend starting by just explaining what happens and attach the DMP file, unless there isn't one. Although this time I think we're in the clear.

I can generally get an idea from that if any part of the stack trace is inside of the EXE. That tells me where the program is and I can either identify something in the EXE or think about what might be broken in the DLL relative to that part of the program. (I'm still getting used to it, I only added it before publishing my itch.io demo sense I thought it might come in handy. Plus at the time I crashed a couple times without the debugger and the crashes were pretty mysterious so I couldn't reproduce them.)

I really wish SOM had a vibrant community of artists and tech savvy people, I keep hoping if I can make it good enough it will pique more and more people's interest :confused:

186
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 26, 2021, 12:08:43 AM »
Well, I will get to the problem, but in case you don't know it, you had left the do_log option on, and with the extensive settings in the [Output] section. Just in case you're leaving these on as you work normally, you definitely shouldn't do that, and it's a wonder if you can even get better than 1 fps with those on.

As for the problem, it seems somehow when I thought I uploaded that repaired patch, I either ****ed up, or it didn't make it, or maybe it got corrupted. Not only don't I have time to do proper release/patches, now I guess I have to double check everything I upload in the future :evil: j/k I wish I could manage it and get any work done. I owe you one though, please grin and bear it.

Since it seems like this is a clerical error (we're learning things) I will delete this thread after a little while, if I don't forget to. Ostensibly this entire board is subject to pruning, which is why it's separate. Some will take offense at "Beginner and other Nonsense" but don't take it personally, it's meant in a good way, we'll need both if SOM has a future. Sorry :redface: anyway. The only reason that bug happened is it was something I was working on that I didn't think would be an issue.

P.S. You can associate the SOM file extension with SOM_EX.exe to open your project with the SOM file, and you can make shortcuts directly to each tool, there's actually many things you can do by making shortcuts to SOM_EX.exe. (It can technically open PRT and PRF files too, but it's a little fuzzy which Ex.ini file to use in that case. I think it will generally use the TOOL/SOM_EX.INI file, which I'm a little unsure about future-wise. You can assign it a SOM file or just set the shortcut's directory to your project. There's more advanced stuff, but I don't know if there's a full write-up of everything anywhere.)

I thought I had another tip, but anyway you can also now open save files that way since they're SOM files.

187
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 25, 2021, 09:19:57 PM »
I might be able to look at this later before bed, but before I forget, you can use a MP3 file now for your BGM (maybe other formats) that should be smaller than 100MB. But it's decompressed into a temporary file at runtime and if the game crashes Windows isn't smart enough to clean up after itself. That file may be 100MB. (Technically the temporary file may be a memory file, but I always find them in my TEMP folder from when I manually terminate in the debugger.)

EDITED: That gives me an idea to add some code where the crash generates a dump (DMP) file, maybe it can also delete temporary files too.

188
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 25, 2021, 11:36:03 AM »
Today I still don't have access to your Google Drive, but 100mb sounds very odd to me. A new project on my system is 1.2MB unzipped. Find out what files are big and remove them, since they can't be essential.

EDITED: I made this into its on topic since it's 8 posts long and seems likely to grow, and we're not getting anywhere. I hope you didn't have trouble finding it.

P.S. I'm going into town today, including a dentist appointment, so I won't be back until 24hrs. It's pretty rare I get out of the house :crying:

189
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 24, 2021, 09:32:31 PM »
Okay, I tried to access your Google drive with an old Gmail account, it's pending your approval. How big would your project be zipped? Usually a ZIP is very small if you're using public files.

It doesn't sound like you've neglected to set your start position in SOM_MAP. I'm assuming you downloaded the patch again last night after I replied about the problem I spotted? So I will just wait for your Google drive approval.

P.S. Please don't be dismayed. Kinks will get ironed out. Please when you copy over a "patch" backup your existing SomEx.dll file in case it doesn't work. I can't tell in this case if your project is the problem or the patch. (I will know after I get your files.)

EDITED: About your logs.zip attachment yesterday (http://www.swordofmoonlight.net/bbs2/index.php?action=dlattach;topic=316.0;attach=1418) for me when I open it there's nothing inside. I was wondering myself if your getting the Shader Model 3 mode or Shader Model 2. It's probably 3, and I don't think it's related to this problem, but I was just curious and the logs would've told me which. (2 is substandard, some effects can't be implemented.)

190
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 24, 2021, 11:44:13 AM »
Please don't do a "clean install" for Christ's sake. If you have a problem that's not a way to solve it (and it won't) but we need to figure out what your problem is, to improve SOM, so please make a new thread/topic if we can't fix it in one or two posts here :eek:

EDITED: If you're using SOM at this time you're going to have to think of yourself as a beta tester and follow through with anything you can turn up. You're not allowed to be a passive, griping user. You should make a topic/thread and upload a copy of your project. It will behave the same on my machine, then I can quickly address any problem you have. (Also in case you didn't my reply to your PM please make use of this http://www.swordofmoonlight.net/bbs2/index.php?topic=179.0 topic/thread if you prefer.)

191
Beginner and other Nonsense / Re: Unspecified bug, deliberation
« on: January 23, 2021, 11:02:06 PM »
Sorry, please try again, I just got a problem too, because empty monster placeholders on maps return a positive result in the loader even though their data is blank, so some new code crashes when it tries to access the model instance and nothing is there :frown:

I was about to edit in a notice, you got here before I could but at least I noticed before heading to bed :redface:

192
Three monsters down so far. Tomorrow I think I'm going to try to find a new mipmap generation filter. The cave texture still turns into a kind of white fog in the distance, which runs counter to the black fog. It doesn't look sufficiently like the emulator.

The filters in general turn everything to mush. I think in the early 2000s when everyone said games looked like brown mush, that mostly to blame for this is mipmaps and filtering. I don't know that SOM is capable of going beyond that phase in general. I think the only thing that changed that perception was games switching over to very high fidelity techniques and maybe some post-processing.

Once I get the monsters in an acceptable state for early demos (I'm going to be polishing this forever I'm afraid) the next task is a huge overhaul of clipping code for NPCs. They're mostly in the same state as vanilla SOM left them. It will be a pretty big project. I'm going to try to give them all the same benefits the PC model currently enjoys and try to put that code under the same roof to the degree I can. So it's a big reorganization project. (The NPCs--monsters included--have lots of issues, it really feels like SOM was left in an unfinished state.)

I'm also going to fix the problem where you can fall between the slats in the bridge (the bridge isn't the problem) I've put that off too long. And the "checkpoint" system needs work, especially for layers, and I want to try to keep monsters from trying to attack the PC from different layers (you can hear them trying to bite you from above or below the ceiling or floor.) And everything else can be interacted with from the wrong level, irrespective of vertical distance. I have my work cut out for me. At some point I hope I can squeeze in time to work on the art side of it again.

I'm going to upload a new demo with mobile monsters, and I want to include better mipmaps in it, assuming they can be improved... I'm hopeful they can.

For some reasons the monster sound effects seem too quiet. I'm not sure what to do about it. I've turned the volume up to max and reduced the volume of everything to compensate. The only other option is to edit their waveforms in their files. That would make them impure, so I'm trying to avoid it. I wonder if the PlayStation amplifies them. Or it seems likely too that 3D attenuation is to blame. I may have to set something up for the giant kraken to make sure its cries carry far enough to be heard beyond its grasp.

So far only the slimes seem to have an idling sound effect. I can hear the occasional cries from other animals and I wonder if those are ambient or are actually monsters. I really thought attaching the idling sound to the slimes would make them play incessantly in SOM but for whatever reason they're not overwhelming. They're probably less frequent than in the original, so far.

I've set up a trick system for slimes so they can move without rotating. To do it I let them move normally but don't assign their rotation to their model data structure. Right now I'm using the #3 slot in the new turn table system for this, but I feel like it's probably not a long term way to mark the behavior, but I don't know yet. #3 shares the #1 slot since it's fused together for diagonal movement, so it doesn't need its own. I just feel like it's too obscure to be used for this purpose.

193
Devs / Re: EXIT: 25th Anniversary Project
« on: January 23, 2021, 08:54:57 PM »
Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.4.zip

Fair warning I just uploaded a patch in response to FlameScion getting stuck on how project preview behaves when SOM_SYS doesn't nominate a starting map. I guess it makes sense to try to find a map in that case since you have to choose the New Game option to get to this point.

Also I found fairly recent problems with do_start and the default behavior without a [Window] section (or an Ex.ini file?) while looking at basic starting projects.

Finally, following up on Reply #10 (previous post) there was a glitch with crouch activation introduced because the new path I described wasn't set up to include unanimated container objects.

I'm crossing my fingers I'm not introducing new problems by patching in live code I'm in the middle of working on.

EDITED: SOMETHING ELSE I wanted to post about recently: I noticed in SOM_PRM the setting that determines how likely a monster is to become aggressive unprovoked (or "recognize" you) is not implemented  in a meaningful way because it's evaluated every single frame. So I've changed the behavior to be evaluated when animations cycle or change instead.

Why it didn't make sense? Consider a setting like 50%, if you do that every frame about say 33 ms that's 100%, or two frames at 60 fps. And if you use 1% instead, well, in one second that's 60%. So, this isn't really helpful or intelligible. Anyway, this change is included in this patch as well.

194
Today I added headeaters sounds that vary pitch based on their size (which KF2 does) and recently have added lateral movement. I actually can't tell if KF2 really has lateral movement or if monsters are just rubbing against invisible barriers. It's really hard to reason about how KF2 behaves. It seems random.

I think I want to add the rest of the sounds ASAP.

195
You've still not turned off do_stipple in your screenshots!! :Nemo_death:

(Games shouldn't turn on do_stipple. I should've disabled it a long time ago. It can help with aliasing and filter biasing, and alpha blending on things like grass, but it looks awful on displays with large pixels and televisions. If you can see pixels with your naked eye it looks worse than it helps.)

Edited: Also, in case you haven't noticed, the shadows now fit to irregular surfaces (like the grass mounds or ledges) in case you have past memories of having to turn them off.

Flying monsters tend to have their shadows permanently disabled, but I'm going to edit their PRF files to change that at some point. It does make sense to force off the wall monster's shadow (stoneface) I suppose.

Edited: BTW in your earlier screenshot, you can use the layer system to build a seamless transition from the exterior/castle set into an interior set. Just put them on different layers, and use the ramparts, etc. to build a canopy over the entrance.

Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 ... 58