Wednesday, September 26, 2018

Train problems =(  It took me 3 hours to get home...this is definitely the part of my job that I will miss least.

Hoo boy...let's catch up again.



Samurai Shaver Latency Calibration

It took way longer than it should have, but after hearing several (more) complaints about audio synchronization issues, I've finally finished implementing a nice audio calibration screen for Samurai Shaver, as well as changed the default to use predictive audio instead of dynamic audio for the slash sounds.  Latency calibration is always a tricky thing, and ideally I would have a more fully-featured system that also allows calibration of =input= latency...

There are basically 3 separate things you have to consider: input latency (time between your input and when the game processes it, usually low but notably higher for many touchscreen APIs), display latency (time between the game updating graphcs and when you actually see it), and audio latency (time between the game playing a sound and when you actually hear it).  You can't actually measure all three, but you don't actually need to either -- you just need two relative measurements of display latency vs input latency and audio latency vs input latency.

So if you show a pulse and time the user's tap in response to it, you're measuring visual + input latency.  Hopefully this is low enough that you don't have to worry about it in most cases, but that's not really a guarantee.  If you have 100ms of combined visual + input latency, then you need to show your visuals 100ms before the corresponding event processing.

If you also play a beat and time the user's tap in response to it, you're measuring audio + input latency.  This is usually higher (especially for android devices), and tells you how much to shift your audio track earlier.  If this is too high then any dynamic audio you play in direct response to user input will (necessarily) be delayed significantly, which can really throw off timing.

Anyhow, for Samurai Shaver I only took the latter measurement and act as though there is 0 visual and input latency.  In reality there is a noticable amount of input latency (and/or display latency, you can't really tell the difference), which means that the visual indicators will lag behind by that amount, which is a bit unfortunate.  Fortunately it seems to work out well enough anyways, and it's probably not worth the extra effort to add in more logic for.  Maybe for Rhythm Quest...except Rhythm Quest doesn't really have that much of a good way of compensating for input + display latency in the first place because of the nature of the game...

Annnnyways, that's probably more than you wanted to know.  Suffice to say that even though it's long overdue, I've finally got it working more or less as it should be.  Hopefully my fans in Asia will appreciate that work (not sure if people are even still playing?).



Tactics Ogre

I've made a heaping ton of progress in Tactics Ogre: Let Us Cling Together!  I finished my first playthrough (doing the Neutral route), beating the final boss and everything.  The last fight was a bit interesting -- it's a two-phase fight where in the first phase you fight both the boss's first form alongside with exact dopplegangers of the team that you send in, which is pretty interesting.  I definitely had to experiment with some different strategies for that fight, as just going at it head on was not working at all.  My units were...well, evenly matched, obviously, and then the boss's first form can basically just one-shot anybody in range.  After a couple of attempts at bumrushing the boss (didn't work at all) I eventually had better luck by removing all of my counterattack skills to reduce the amount of damage going around (on both sides), and then playing a longer game where I slowly picked off units one by one and retreated + healed as necessary, always making sure to stay out of range of the boss's main attack.  That paid off and I made it into the second stage of the fight, where your remaining units just have to fight against the boss's final form (a singular unit).  The second form didn't really involve a ton of strategy, more of just a test to see how well you got out of the first stage, but I eventually managed to just squeak out a victory.  Hooray!

After that you unlock the "World" feature, which allows you to jump back and forth along the story timeline and take other branches, unlock other characters, etc., while keeping your current army and inventory and all.  I went through the first sidequest dungeon again, but this time picked up all of the crafting recipe drops...unfortunate that Tactics Ogre has all of these hidden drops and quests and such that you basically have to read a FAQ to get info about.  They're not even guaranteed drops, either...sometimes the map doesn't even spawn the right enemy to drop them...

Anyhow, I finished that off, and afterwards I warped back all the way to Chapter 1 so I can start going through the Law route (my first playthrough was the Neutral route) and recruiting some of the exclusive characters from that route.  Because Denam (the main character) has to be in every story battle, the enemies levels always scale to his, but fortunately, these earlier chapter battles are easy enough that I've been taking the opportunity to use all of my lower-leveled classes that I got later on, like hoplite, juggernaut, matriarch, fusilier, bucaneer, etc.  Leveling has slowed down for those since they are now catching up and are around level 16-17, but anyways, it's good to see that they are finally getting to be on par (level-wise) to my primary units.  Some of them still seem a bit underwhelming, but 5 levels can probably make a significant difference, so I'll reserve judgment for now.  My gryphon is still having a bit of trouble, as it can't seem to take all that much punishment (gets hit easily, especially by magic), and on the flipside can't really dish out damage that effectively either as it has accuracy problems, even with a ring of agility.  Maybe I just need to keep leveling it...perhaps at some point I'll also see what the other monster classes have to offer.

I had this grand plan to have my Familiar learn the various "kiss"-type debuff skills and then transition to being a rogue, so she could use a crossbow or something to shoot from afar to accumulate TP and then use those debuff skills, but that really didn't end up panning out too well, so she's back to just being a mage.  Right now she fills the same role as Catiua in her priest class -- namely, a healer that can also cast offensive divine magic (though the familiar can't use the AoE damage spells).  That seems to at least work decently.



Cooking

I don't really know how, but after the Nth time of trying, something must have clicked or something because somehow I feel like I "get" how to make pan sauces now.  Was trying to practice braising chicken thighs in preparation for cooking some more of those quails that my best friend is planning to cull, and ended up reducing the braising liquid into a decent sauce...amazing.  I cooked a cod fillet I had in the freezer on Monday -- coated it in corn starch first, and unfortunately ended up sticking to the pan a bit, but fortunately that wasn't a huge deal as I ended up just scraping up the stuck bits later and adding sherry to make a sauce for that.  Feels like I've unlocked a small little world to play around with, which is pretty interesting as I'm not always sure how the end result will end up tasting.



Life and Work

For those who haven't already heard, this week is my last week at my current job!  It's been a good run, but it's time for me to (finally) put a close to that chapter of life and wipe the dust off of the proverbial slate.  I plan to just not think about employment at all for a good bit, as I definitely need time to myself to just focus on my own personal life.  It's pretty exciting!  Anyways, for now I'm basically just scrambling to get everything done in the last few remaining days I have...then I'll be home free!



Return to OHC

I don't have a ton of concrete plans about what I'll do with my time once work has ended, but one thing I do plan on doing is starting up with One Hour Compo again!  Pretty excited about that, as I feel like I've lost a bit of the confidence that I used to have when I was doing it every week.  One thing I still haven't quite figured out is how to resume doing my Monthlies releases along with my other music as well as how to handle that on Patreon, etc.  I don't want to just start charging 5x per month to my patrons, so I'll have to think of a good option to deal with that...maybe make one paid post per month for the entire monthlies release.  I could also switch my campaign to being a monthly one...it really depends.  Patreon is weird, haha.



Tuesday, September 11, 2018

*Nothing* is as exhilarating and exciting as making music.

Things have been pretty okay!  I think the past few weeks have been some steps in the right direction, which feels nice.



General Stuff

I saw Kiki in a dream the other day.  I really wonder, what they think of me, how they are doing, and if I really will ever see them again.  Haha, well, not like that's anything new, anyways.  Only time will tell.

It's better to prove yourself by following through, rather than offer promises.

I've been thinking a lot about regaining more of a sense of my old self, and I think I've really started to get in touch with some things and made some realizations.  Perhaps most importantly, I have remembered that feeling of calm and peace that I carried in myself.  Not all the time, for there were also many periods of uncertainty, but those times when I would be content to just be.  I think that feeling is perhaps a large part of what I have been missing in recent times.  That mode where you are conscientious about everything you do, carefully placing your movements and actions as if you were performing tea ceremony.  I tried on Friday to return back to a time of quiet in my dance as well, and I think it taught me a lot.  It amused me a bit because it went against quite a few things that I have been preaching generally when I work with others on their dancing, yet I understood so clearly that this was also an essential duality of my nature, not something to be left behind entirely.

Hoping to maybe mark the return of OHC and Monthlies next month =O



Tactics Ogre Stuff

Tactics Ogre (specifically, the One Vision mod) is proving to really be something that I have been sinking myself into...it's been pretty great.  Despite the fact that there are no sort of "cross-job skill combos" as there are in FFT (one of the funnest parts of FFT, IMHO), there is a LOT of opportunity for customization and flexibility in how you build out your squad and characters.  I've recently been exploring a bunch of these options to see what makes sense, and have learned quite a number of things along the way.

One of the main customization options is equipment.  First off, there different =types= of armor, and you can only pick two at a time to wear: Body armor which offers the best defense but is heavier, Helms which are a bit lighter but still offer good defense, Legguards which focus more on evasion, and Gauntlets/gloves which forego defense in favor of upgrading your offensive stats.  But past that, there are different classes of each, with some jobs being limited to what they can wear.  The Ninja class, for example, only has access to light armor and caster robes, so he can't go in wearing heavy tank armor.  You could focus instead on boosting evasion, but that would still probably leave you soft to magic damage.  Knights, on the other hand, can wear heavy armor, and they can't use 2-handed swords, so they also have a shield to help with their defense.

But wait -- there's more!  There are "sidegrades" (not upgrades) for both armor and weapons that let you make specific tradeoffs.  For example, you can craft gloves that sacrifice some of their strength bonus and give you a bonus to magic stats instead, for mage knights.  You can take a 2-handed sword and make it deal more damage, but at the expense of speed and accuracy.  You can take the avoidance bonus from legguards and replace it with a magic resistance bonus.  There's all sorts of flexibility!

It's pretty interesting because in general when thinking about equipment, you want to maximize the unit's strengths, but also want to cover its weaknesses.  Previously I was taking a bit too much of a min-maxing approach and as a result many of my units were a bit too frail.  I tried to forego defense in favor of speed (allowing my units to act faster) and all-out offense (everyone had gloves!), but I've since had to scale back on that to avoid my units dropping like flies.

Recently I've changed up a few of my builds significantly.  My two Valkyries/Spellblades (Rune Fencers), for example.  Valks are sort of a tricky unit to deal with since they can be front-line units but also can cast a limited selection of magic.  Previously I had them equipped with a one-handed sword or spear, and had them basically casting support buffs, as well as throwing items around -- basically full-on support units.  That worked out sort of ok, but the problem is that they were never super great at any of their roles -- if I wanted melee damage, my warriors and knights did better, and if I wanted healing, my priest can just sit in the back and heal from afar.  The support buffs were useful for a while, but nowadays the Sword dancer can actually apply them in a huge area (and I have him do that at the beginning of most battles to cover my team).  So right now I've changed things up so now my valks both have staves, as well as mage gloves and rings which boost their magic, so they are essentially mages, but a bit tankier so they don't have as many problems being in the front line.  This works pretty well because my lineup was actually fairly low on magic damage output, so this balances that out a bit.

My priest (actually called a monk) sits in the back and pretty much just does healing.  Healing doesn't really scale with stats (confusingly enough) which means I'm actually optimizing her for speed, so she has no weapon!  That said, sometimes she also casts a speed buff on herself or someone else (very nice), or casts sleep on an opposing unit (also very useful).

One unit I really haven't figured out how to work with is the Familiar, which is a faerie-exclusive unit.  This unit had problems in the original game as well, apparently.  It can cast healing magic, which lead me to basically use it as another cleric...though it can also cast a bit of offensive magic.  It also has a bunch of neat TP-requiring abilities, such as some nice debuffs and a large area heal...but the problem is that in order to gain TP you need to either deal or receive *physical* damage.  Unfortunately the Familiar is also really squishy and often dies if you put it in the front lines.  So it's sort of a weird conflict that I haven't figured out.  Right now I've tried giving it a dagger and shield, and an evasion cloak to boost its survivability.  It's still a bit awkward though, as if I need a heal, it's probably more important for it to heal.  And if it's attacking with its dagger, it's not doing a ton of damage or anything.  I could give it a one-handed bow, but again, that wouldn't really do a ton of damage.  It's a weird unit.
Update: I've actually had a short discussion with the creator of the mod regarding the Familiar!  He says he hasn't gotten around to a full proper rework of the class and so right now it's a support-type unit with some mediocre stats, but also neat abilities, haha, which is sort of in line with what I figured out already.  I also discovered that besides faeries, you can also have gremlins (didn't realize for some reason they are a different race altogether) and pumpkinheads (!) become familiars, so perhaps I just have the wrong stats for the unit to be effective.  I'll have to try and recruit some more faeries/gremlins to see.

I've changed up my winged human Canopus, which uses the "Vartan" class, as well.  Canopus has a pretty great mobility advantage in that he can fly, which makes a huge difference in many maps.  Previously I just gave him a two-handed axe and called it a day, but unfortunately as I got further on into the campaign, that led to him flying into the enemy, getting a great attack in, and then dropping dead soon after since he was super exposed and didn't have much protection -- Vartan can't equip heavy armor!  I also realized that it didn't make quite the most sense (?) to equip him with a melee weapon as he can't equip heavy gauntlets, so he can only wear the armguards that boost dex.  It's a bit confusing because dex DOES still increase melee damage as well, just not as much (well, it depends on the weapon, really).  It would be great if he could use a 2-handed bow or crossbow, but that option ended up being overpowered so it's actually not allowed in the mod (good reasoning).  Instead of a 1-handed bow I've actually just gone ahead and given him a throwing weapon -- so still a dex weapon, and still 1-handed so he can have a shield, but does more damage than a bow at the expense of having less range...which works out because he can easily fly behind enemy lines and get up close to the squishy units at the back anyways.

Anyhow, I'm actually near the end of chapter 4 (on the "neutral" route) at the moment, ready to go into the hanging gardens and deal with the dark knights.  Not sure how long until the end of the game, but that's where things really start to get crazy as you can essentially newgame+ back to the other storylines and finish other sidequests and such.  There is like infinity hours worth of postgame content so...yeah, we'll see!



Melee Stuff

I've realized that I need to be a little more dilligent in what I am focusing on when I am playing, lest I just keep on doing the same silly bad things over and over.  My current biggest thing is working in empty jump -> grab into my game for all characters, but here's some other notes for things that I need to work on.

All characters:
- Stay shielding on a platform when they are below you, angle shield down, WAIT, don't just drop through asap
(I really suck at this situation right now, every time I prep for a shield drop and either get shieldpoked or fall into a waiting uptilt because I did a braindead timing)

Marth:
- Empty jump grab
- Backthrow on platform to shield->shield drop uair
- Look for fsmash out of uthrow
- Uthrow to reverse fair
- Fsmash on tech away when under a platform
- Upair strings out of upthrow on FD
- Some random edgeguarding things

Fox:
- Empty jump grab
- Upthrow -> use up on control stick to fulljump ff upair
- Upthrow -> drill reset

Falco:
- Shinegrab
- More uptilt in neutral, and in combos

Falcon:
- Dthrow at edge -> REACT, either turnaround sh ff knee if close, or run out dj uair if far
(we'll see if i can get the actual timing right on the dj uair, if it keeps on clanking and they're too far to hit before starting, then maybe sh out is better than run off)
- Fastfall timing for sh knee to cover missed tech
(I miss this like every time right now and it sucks)
- WAIT before back sh knee to cover tech roll in

Sheik:
- Mixup between sh nair and run off dj nair to edgeguard
- Empty jump grab

Peach:
- Waveland on platforms to catch techrolls
- Upthrow -> dash attack instead of trying to regrab
- A lot of float stuff




Other Stuff

Been itching to play Space Alert again at some point, haha.

Tried Baldur's Gate 2 multiplayer a bit...the BG2 interface definitely takes a bit of getting used to and...I feel like this is definitely a game that needs to be played singleplayer, really.  I feel like it also requires a lot of knowledge going in already, like if you don't know what all of these gajillion spells do, good luck trying to figure out how to use them.