New account registration is temporarily disabled.

[RMVX ACE] CAN SOMONE HELP ME REVERSE ENGINEER THIS?

Posts

Pages: 1
ok so I've been playing some really polished rpg maker games lately and there's a few things I really really want to emulate, but have no idea how to. The biggest one is the 2d format of the game Lisa. Here's a video of it in action.


the game is amazing you should definitely play it. not for childrens tho. it's on steam.

anyway, I wanted to reverse engineer how dingaling did the 2d format present in the game. I'm not certain how rude this is? if I should just pm him?
I know it'll involve scripting but as I dont really have any ruby experience I'd like to wrap my head around it as much as possible before trying to dive into learning how to script.

here's a list of what I can see as features of the 2d presentation.

-tile based movement. The player goes over objects and interacts with them by pressing up or down and then the interact button. (so pretty much all events are above or below player unless they're specifically blocking your way.)

-the player cannot jump per se, they can only change elevation by climbing ladders and going up and down vertically adjacent surfaces. In game you do this by pressing spacebar and up or down when an acceptable space is near. The ladder functionality seems unchanged from vanilla rpg maker but I dont have any ideas about how to do the up/down thing that doesnt involve a billion copy-pasted events. (maybe a common event? that autoruns every map?)

-When you fall, you go straight down with no horizontal movement. falling damage is applied if the distance is great enough. (the fact that you fall when there's nothing beneath you is the most important part here. that and the fact that it calculates a fall damage based on tiles traversed)

-you can jump one square gaps if you are using a vehicle item (a bike) There's a sequence later in the game where you can go off ramps on a motorcycle but I think that's definitely outside the scope of what I'm asking. (the only thing that comes ot mind is a bunch of copy pasted events.)

-encounters happen on contact with npc (which I think is the easiest thing to implement. Theres areas with random encounters too, i think that was just an encounter area tile thingy that doesnt even require any scripting.)

-I personally enjoy how the text boxes hover over the speaker's heads, but that's not integral to the 2d format.

The rest as far as I can tell is just custom sprites and custom animations. the battle system uses Yanfly's combo skills script, and as far as I can tell there's just a ton of different skills and a ton of custom animations. I think that the overworld sprites are just scaled down versions of the sprites he used for the combat animations.

I want to understand how to do this so I can mess around with different perspectives in my games. The top down perspective standard to rpg maker often comes across as too impersonal and zoomed out for my tastes, so I want to explore other options if they exist.

also lisa was made in RPGmager XP, as far as I remember. Again, go play it. its on steam, its great.

Edit: I realize this is a huge thing to ask. But the only thing that comes to mind is either an auto run or parallel process that moves the player when it's possible to move Them down. bit I don't think a move player event is the best idea. That leaves scripting, as far as I can tell, and I have no idea how to approach that. Any ideas?
If you are not a scripter, a common event is the easiest way to do this, you just have to get creative with your tile passibilies. I'll do my best to explain;


Here is our example map, notice I used a dark grey for air 'for show' you can easily use an invisible tile for this. These tiles block the player from walking, so they cannot walk up into the air.



The player can walk through both the ladder, and the platform tile because we want movement to occur on those surfaces.



We use special terrain tags, so we can tell what we are walking on in common events.



Every frame we check if the player is NOT on a platform (terrain tag 0 is the default). If they aren't on a platform, we set the 'fall code' to run every frame instead.


Every frame, we fall down one tile, wait for the movement to finish (an important step!), and then increment a 'tiles fallen' counter. Since we waited for movement to finish, the player is now one tile lower than previous. So we check if they are on a platform again. If they are, they take damage if it was a large fall and then things return to normal.

Hoped this helped. Feel free to ask questions.
oh my goodness, this is amazing! thank you so much! I'm using vx ace, but it should translate pretty easily.

so if I have a passable tile arranged vertically, I'll simply be able to press up and move up like normal, right? how would I go about making it so that you can't just walk up, you have to push a button (say up and z at the same time) to change elevations between vertically adjacent floors? I could set passability to just left and right, and in order to do anything vertical it needs an event. I'm thinking i'd run another common event that would check and grant passability provided the adjacent tile is tagged as a floor. Would the moving up and voluntarily moving down parts require differently tagged tiles? Or can I check what direction the player is interacting with the event in order to determine which code it uses in conditional branch?

I have a lot of little questions like this, but I'm super super grateful that you took the time to help me with what you've done. This is an amazing help. Thank you!

Edit: I think I solved the going up/down problem. First i need to make the platform tiles only left/right passable. (also the air tiles, so you can fall into them, but i might just do what you do and have a transparent fall trigger tile as well. so you have solid air, platform, and passable air as three different tiles.) Then what I need to do is put in another common event that is activated by pushing both up and enter. then the program checks the terrain tag at the player's position but up one tile (so (x, y+1)), and if it's a platform tag it does the through on/move code that you have up there. The same thing (though probably a separate event) for decending to the lower tiles, only it's (x, y-1) and you gotta press down at the same time.

For ease's sake, i should put the platform/air tagged transparent tiles on tab b. So long as the tile tags present on a higher layer supercede those on a lower one, I should be fine. And then I have tab C for foreground things, but all of them are marked passable or just events with graphics. The treasure chests are pretty much as normal, only they activate with button and theyre also on a layer below or above the player.

Thanks for helping me get started with this!
Yep, the best way to answer little questions is to try it and see. And THEN if you get stumped, that is the time to ask.
Pages: 1