I hate it when I stop receiving notifications on the threads I'm watching and only find out when I check the "watched threads" page to post something of my own. Anyway, probably should post my bit first since it's somewhat long. Physics problem; feel free to ignore unless you enjoy these. EDIT: Plus I solved it anyway, so read it only if curious.
I have an actor, let's say a character C, riding a platform P. P in turn moves both horizontally and vertically. I let Unity's physics handle vertical movement of C, and I use my own system to make C move horizontally ("hitch a ride") with P (as to do that via physics I would need to give both C's feet and P's surface a high friction coefficient, messing any other interaction with these surfaces). This has worked perfectly so far.
This gets a bit more complicated with the addition of hitstop. The way I implement hitstop is that I freeze the attacker (and target, but that's irrelevant for the purposes of this problem) in place during .2 seconds (but not anything else). In technical terms, I store its velocity, make it zero, make the character ingravid, then restore both velocity and gravity after those .2 seconds. This feels great when hitting enemies both on the ground and in midair.
The issue, of course, is the interaction of both. When a character rides a platform that is moving down, attacks, and hits something, it will freeze while the platform goes its merry way, so the character becomes airborne. If the platform was moving up, the character would actually fall through it, but I don't have anything that moves up at any significant speed. Being suddenly airborne for no good reason is bad enough, but it also cancels the grounded attack (my attacks have different animations depending on whether the character is grounded or not, and are canceled when transitioning, like in Smash).
There are multiple solutions I've successively thought of and implemented, most of which remained unsuccessful:
1) Adding the same "ride" movement vertically (that is, programmatically moving my character vertically with the platform, like I already do horizontally). This royally messes with Unity's physics, and results in "double" movement (both from physics and from my own meddling) that causes the character to fall through the platform, among other issues.
2) I tried a variant of the above, also making the character's vertical speed 0 each frame, as long as they rode a platform. This resulted in a plethora of other problems that this margin is too narrow to contain, including a catch-22 that prevented jumping at all.
3) I also tried replacing the character's Y position with one calculated from the platform's position and its position relative to the platform in the previous frame (basically, to maintain this distance). This yielded the best results (alleviated some of the instances of becoming airborne, with no visible side effects) but is still not perfect and feels a bit too "hacky" for my tastes.
4) I'm thinking of making hitstop not stop the character vertically if it's grounded, which among others, also means making the character conditionally ingravid or not depending on whether if it was airborne when its attack connected. This also feels somewhat hacky, but if nothing else comes up I'll have to go with it.
Thoughts? Possible solutions?
EDIT: I ended up implemented solution 4, and it worked fantastically well. So much so that it triggered that well-known "this works
too perfectly; I must have broken some
other thing, preventing the problem from actually triggering". But no, hitstop works, vertical movement works... I'll do some more testing until I can shake the "too good to be true" feeling.
Yes this is also my issue, I have some enemies that are not at the same level as the rest and completely redo them would probably set me back a few months.
It is a really hard choice to know when the difference in quality is too apparent. Since it usually takes years to make a game our artistic knowledge will obviously improve during that time.
It really and truly is, and I've noticed the biggest blind spot is that both you and your own longtime testers are used to what the game looked like at the start, so older, worse visuals aren't jarring for them. It's not at all an intuitive thing to do (and probably doesn't feel good) to say "you know, you've improved this and this so much that now this is jarringly unpolished".
The only solution is to show your game with new, "uncontaminated" people. If anyone here wants me to be their fresh eyes, I'll be glad to oblige, and likewise, I expect you guys to help me there too when I put up my videos.
Man, talking about redoing sprites in here is giving me conniptions, especially since I'm planning on quadrupling AJRF's pixel-art resolution (if it succeeds at crowdfunding) so that the game is Native 1080p across the board and I'm stuck thinking about what kind of budget that would demand compared to what I've been budgeting for 540p-scale pixel-art.
Anyway, updated AJRF's website with more up to date information, removed the (un)subtle "FucKonami" joke for the sake of professionalism, and added a Characters section
https://azurejaegers.com
I'm personally strongly opposed to increasing resolution for the sake of increasing resolution, and manually uprezzing sprites is both harrowing work and one that doesn't usually lead to good results in my experience (there's plenty of remasters out there that serve as cautionary tales, even among large companies with deep pockets). Many people including myself actually find lower resolution sprites more pleasing. You're going to have a market at your current resolution and you will also have a market at an increased resolution: there's a large overlap between both markets but don't make the mistake of assuming the former is a strict subset of the latter.
With all seriousness, I never saw why the Steam cards are so appealing to the major audience.
it would be more helpful if the cards was for a Major game of Valve. like a Trumps game for example.
How cool it could had been?
Having your own knight or any kind of character your game [A Bastard's Tale] have and play with other players with different cards because they played Shovel Knight and Joylancer.
This is a fucking amazing idea and now I'm mad at Valve for not implementing this. Like,
holy shit. Obviously this would mean thousands upon thousands of cards and a lot of overlap, but they could make some hard rules about how good cards can be (casting cost must be higher than atk + health, etc. etc.) and let developers come up with theirs.
I want this, both as a player and as a dev!
I really should record and share new stuff more often. It's something I hold myself back on for no good reason.
Exactly the same here. I guess my reason is that I develop until I have no mental energy left, typically not even to play games, let alone to visually chronicle what I just did.