"just add multiplayer"


i've been deep in the refactoring dungeon for the last few months. i've only really done about a week's worth of dev in that time cos of, y'know, life. but i noticed yesterday that my frothing desire to work on the game overflows on a pretty regular schedule:


^that's all of my git commits from this year. 
one of my housemates joked that it lines up fairly well with the lunar calendar and i hope that's true; i like the idea of being driven by the tides.

anyway, what have i actually done during this time?
well, skimming through my commit logs, it looks like it's mostly multiplayer work; lots of invisible changes that increase flexibility and stability of various systems. 
i've completely changed the way audio works: i no longer use unity's built-in 3D falloff because that only works with one audio listener (absolutely wild limitation) so it instead my system looks for where the cameras are in the scene, works out which is closest to each audiosource, and then lowers or raises the volume of that source using a faked logarithmic curve (i literally just messed around with an animation curve until it looked kinda-sorta like a log curve and it turned out to be pretty much perfect).  i'm really happy with this solution cos there are a bunch of "multiple audio listener" assets in the store but they're all over-engineered to hell and a nightmare to integrate. my system isn't quite finished yet (i still need a way to store base volume because i'm overriding it at runtime; i'll probably do something sneaky and store it in the audiosource's priority value or something stupid lmao) but it works with absolutely no oversight which is more than i could've hoped for.
another thing i'm particularly proud of is my new menu system -- i have this syndrome you see, which forces me to program things myself rather than learn the "perfectly good" tools that the engine comes with, so i've built (and rebuilt) my own menu paradigm, which allows me to do all my menu construction and adjustments in the inspector (rather than hard-coding them like i had been doing up until now):


^this is my new interface for building menus. i just type the name of the method in and point it at the relevant arguments and way we go.

this means that disparate menus are now all instances of the same class rather than needlessly split into their own, subtly different classes. it's still not really taking full advantage of OOP but it feels a lot more like "real" programming (i learnt how to convert strings to method instances for this! because unity still doesn't have a way to expose delegates to the inspector! fuck you, unity!).

i've also been working on legibility, a big part of which is that new triplanar shader i mentioned in the last post, but the real next step there is to work out what my level editing tools are going to be (i've been slapping things together with what essentially amounts to lego pieces up until now, and i'm really feeling the limitations of that atm, especially in the texturing department). it's international games week in melbourne next week and i'm going to take time to experiment with sabre and realtime csg during my break (and maybe probuilder again if i don't like either of those) but i have a feeling that nothing is going to capture me in quite the same way that trenchbroom did :{ oh well.
for context, here's what i mean when i talk about legibility


^this is one of my levels with no special texturing. it's hard to tell that you're moving when walking across it (even though that's kind of the idea in this level).

^here's the same level but with some subtle normal variation. it adds interesting texture to lights, and makes it easier to tell that you're moving, without causing too much visual interference at a base level.

^and finally here's the same level but with some albedo variation. it completely changes the texture of everything and is much easier to navigate. maybe appropriate in some areas (like this one perhaps) but definitely not a generic solution. but i am working towards a general-use solution that can be applied to basically everything:

^the effect is very subtle, but those tiny little pockmarks at the player's feet really help to make otherwise uniform surfaces much more legible, in the same way that ambient particles do. i'm still not sure if i want to make it a bit more obvious or combine it with the above normal and albedo variations, cos i kinda like having big flat colours and it feels like an important part of nth's visual identity.

speaking of visual identity: you may or may not have noticed in the above images that the ghost character is slightly transparent! it's just something i'm trying out. i kinda like it personally, but it's definitely in conflict with nth's established look! do i care?... honestly i don't know. probably not. i might make it a slider or something in the future. i've always liked the idea of giving players control over the colour and transparency of their ghost so why not.

anyway that's where i'm at right now. gonna keep focusing on the multiplayer work until it's stable enough that i can put it down and get back into production proper. next step is setting up automatic controller assignment so that it's easy to switch to and from single and multiplayer modes at runtime. 

wish me luck!

bye~

Get Nth Dimension[al] Hiking

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

very cool ZC keep it up :D

dopeness