Overworld Movement and Text
This is a simple overview of how Josh interacts with objects in the overworld and our text boxes, even though they seem like simple aspects to a game, Josh's basic stuff has been tweaked a lot this past year to get him feeling nice to move around the world, which I think should always feel good. Even now there are still things I want to go back into a clean up, and there's it's possible RK-d (animator, story, characters) will want to go back and make these walk and run cycles feel better.
Walking is simple enough, but stopping once a collision happens makes Josh feel more like he exists in the world. This was originally done to solve the problem of Josh’s run animation having a big stride to it which meant his animation clipped through the walls a bit and it looked tacky, I was thinking we’d have to go with an animation that always stays in his hitbox, but RK-d suggested stopping him when he gets to a wall instead and it works wonders, and we didn’t even need to throw good assets away.
Right now running requires holding a button down for a bit, similar to how a real run starts up. But I might get rid of that since it's kind of stupid since it would be a bit of a pain getting around tight areas where you have to start it up again every time you hit a wall.
(Sorry about the layering with the desk chair, it was implemented wrong on purpose so I could show something to RK-d, will make right soon)
Every RPG needs a good text box! Holy shit I could spend awhile talking about these since it was the first thing I started working on in the game and we made the box so feature rich. It can do all kinds of goofy crap like sine waves and colors for special words, variable speeds, boxes can be interrupted with other boxes or cancelled prematurely for more dynamic dialogue/cutscenes, all kinds of stuff, but instead we’d like to show off those features when they’re appropriate. The style of the box is very minimalistic and fits with one of the themes of the game. The box is used on top too and acts as a letterbox to make things more "cinematic". It's inspired by the way Mother 3 did its text boxes. The only thing left to implement would be automatic pauses for punctuation with the ability to specialize the pauses in dialogue files.
You can also speed up the text crawl by holding one of the action buttons
We also have pretty slick animation for portraits, which slide in all nice like.
(Josh needs a new portrait! This one is very off model from how he looks now)
One last thing! we want to have some objects at a bit of an angle in the overworld so things don't look so flat. The real challenge with that is the layering, which requires a mix of algorithmic sorting based on Josh's position on the Y-axis of the world, manual chopping of sprites depending on if we want Josh (and other moving objects/characters) being in front or behind it, as well as smart positioning of the objects. This couch chair is layered correctly through the y-sort algorithm and it's positioning against the wall.
However, collision on angled objects is pretty trivial since modern engines have custom polygons for collision built into them. I always try to make the polygon fairly simple though so the computer doesn't have to check for too many points, and I find it makes sliding at an angle along them a lot smoother. These angled objects can also be interacted with just as easily as any other object for text dialogues.
This is basically the crux of what you need for an RPG overworld, but there's one more feature that will be added which will make things very unique, that being the interaction with an enemy before a fight. This will exist to help transition from these overworld scenes into the 2D fighting system and make it feel seamless, and like the battle system is simply a zoomed in version of what was happening on the overworld. This will require some extra strafing animations for Josh, as well as a punch and block animation, and will need to be done for all 8 directions.
We'll be going more into this feature on the next update, where we'll show off the dynamic camera of the game as well as a lock-on feature which will allow josh to strafe and keep him facing the enemy.