Monday, 17 December 2018

Progress update

Man, this whole month is just flying in, isn't it?

This week:
>Added panning and volume tweaks depending on sound source proximity to player.
This was fun, and pretty slimline, wasn't as hard as I thought it might be and doesn't seem to impact performance at all. If it does on my weaker device, I'll make a toggle switch for it.
I made footsteps and combat sounds pan and change volume depending on their position to the player.
Enemies far away to the right will bias toward the right speaker, and their footsteps will be quiet, getting gradually louder as they approach the player. Doesn't change a whole lot, but it was a really fun way to spend an hour and it makes the rooms feel like a real space occupied by real things.

I'd like to do occasional breakdowns of js work, because I like talking about this stuff (since i'm self-taught it feels like magic and I won't get jaded until I'm competent) and it helps show that I actually do a lot of work, which isn't immediately obvious when I've no titties to show.
Also, just as an aside, if anybody reading this is working on their own RMMV game, I dunno, maybe it'll convince you to start with js to get more out of the engine.
I'm a bit of a dummy and I just started learning a few months ago by myself so if I can learn it, you absolutely can, anon.

Takes the object and makes sure it's an object with a defined x coord, asks if the map is 15 squares wide or less (small enough to fit on one screen without scrolling), if so it'll pan the sound relative to the object position on screen.
Otherwise, it'll pan based on position relative to the player.
The first method is preferable, because I also pan player footsteps, so he instinctively feels like a real thing in that room (you can follow his walking around with your ears) but would potentially sound weird in really wide rooms where he's in the center of the screen, but technically on the far left of the map itself, so the sound would be panned left.
Both calculate so that it'll output a figure between -50 and +50, which is the RMMV panning offset range. (The second can go higher, but anything outside these values is accepted as valid, too, only affecting volume at the extremes.)

I've explained it already in the notes I left myself, but this specifies an initial (Max) volume and the object making the sound.
As long as that object is one with a defined x coord, output the max volume value minus a percentage based on the objects proximity to the player.
Essentially, every square an NPC is away from the player drops the volume of sounds it emits by 10%.

Initial check at the beginning of each says if the object in question is the player, just return the max volume, because there's no benefit to calculating how far away from the player the player is, unless he's doing some college-level soul searching.

Okay, so I've spent almost as long writing up on this as I did writing it in the first place, what else have I done?

>Added way for inventory items to be passed between NPCs or from NPC to player through dialogue or cutscene.
If you convince somebody via dialogue to give you a key and they later die, you shouldn't find another copy of the key on their body.

>Added Terminal system
Built a small framework for computers to be built in the same way as other objects, with logs, any doors etc governed by the computer, ability to load complete disk sets or eject disks to inventory. Idea there is to optionally collect disks to make up a complete program, which can then be loaded at any computer. Playing games within a game wtf I hate the matrix now?
Also added terminal sound effects from the old game because they're comfy and sometimes ideas you had a year ago are pretty okay.

>Added simple 'chat' ticker for future idea.
Came up with a really quick, simple way to handle the illusion of a ticker feed, which should come in handy for a planned hidden game I've had in mind for a while.
I want to capture the magic of getting whispered by that plain, quiet guildie girl from across the country who you gathered herbs with and talked about growing pains all night instead of studying for those unimportant finals.
>Fixed object discovery in battle.

Discovery was tied to a host of other player-turn-initialization actions that were impractical to re-run if the player was changing direction rapidly. Now separated it, so discovery works independently.
>New tiles and room.
Expanded the tileset for the current level to replace some placeholders and added a new room as part of a minor puzzle.

The coming week:
>Continuing story scripting
At the end of a neat branching dialogue right now with a few gameplay outcomes changing as a result, so just testing it wraps up like it's meant to before moving on.
>More art
I've got some podcasts and audiobooks to catch up on, so I'd like to spend a while on tilesets and sex anims.
Landed two in-person appointments this week, one of the two I would really like to work at; not an obviously exciting place or field, but it'd pay me well enough to live, give me a little development budget and ample, daily opportunities to get gud at js on the job.
I dunno, wish me luck I guess!
I'm on my last month's savings and I don't know what I'm gonna do ahaha

Alright, I oughta wrap this up,
Have a good one, anon.


  1. That last sneaky comment... Can't wait to see what else you've got planned for Star Knave and it'd be a real shame to see if dip so soon. I've got my fingers crossed for you man! I hope you get that job!

  2. Don't worry, Oko! All shall be well, and all manner of thing shall be well.

  3. Merry Christmas, Oko!

  4. happy holidays man