Rebuilding Ragnarok Online in unity/C# for fun, making an RO-like playground for solo/friends. Not a proper pserver. Unaffiliated w/gravity. Unlikely to finish.
It's finally out! My feature length(!) visual tour of the maps, areas, and music of early (pre-Juno) Ragnarok Online. Sit back and relax as you fly through the world of Ragnarok and revisit the place you may once have called home.
I was going through the custom animations that the international RO client doesn't play correctly due to an issue with one of the config files, and I feel an obligation to highlight this is a unique animation that is supposed to play when a Yoyo uses provoke.
Gravity did always want to make this work, there are screenshots from around the time of the beta when they showed off a work in progress day/night cycle but eventually had to abandon those plans. Unity does make it easy to make something presentable.
I'm testing the WebGL build of my project for a little bit so for a (very) limited period of time you can mess around with it if you want. It downloads sprites and map data on the fly so be patient for things to load in the first time.
Since I've made it this far I feel like I needed to clean up the presentation a bit. I'm making pretty good use of my job experience porting games I feel.
Ok, finished setting up login and account creation stuff. Now instead of automatically loading your character from a local cookie like how I did before, characters are now properly tied to accounts. No character creator yet, but it's getting there.
Found some more of my old woe videos. Kinda nutty how many players were involved in some of these fights, the servers really didn't stand a chance huh.
So I was checking the clocktower high orcs map and wanted to see why it made a whole bunch of light probes as I didn't remember any animated elements on the map, and it turns out there's these weird ducks on all the walls that move? What?
I suppose that's character creation, all that's left is to get the server save the results. I'm not 100% sold on the how stats are done, you make interesting choices between stats as a physical job but as a caster atm being able to max vit/int/dex feels like a non-decision.
Character select more or less works now, I guess next up is character creation. You can actually see the temporary stats I'm giving characters until I make a proper stat UI too.
I don't have a before video but I fixed the pickaxe animation on the alberta tool store to actually have them pivot correctly. It was impressive just how weirdly broken it was originally.
In RO all sprites have 8 directions, but monsters and player battle poses only have unique sprites for 4 of those directions, the rest are copies. In order for sprites to appear to be facing the right way then, you need to shift the angle on 8 direction sprites by 22.5 degrees.
I have mixed feelings on hyper-rare items in RO, but the one time we got an MVP card while in competition against several other players and groups for each spawn was such an insane rush that I'm not sure if I can hate it. Also damn, 2005...
Since I needed to loop through all the maps to bake occlusion culling, I figured I may as well record the process. So here's all 306 maps I've currently imported, most (but not all) from pre-trans zones. How many do you recognize?
Today's map highlight is the Juno Blacksmith Shop, where the map designer has expertly crafted a forge out of a raised cube of ground, an arch from the pirate ship map, and a static 2d image of a fire.
I accidentally made a change that turned out really cool... normally when you click off into an invalid part of the map you'll path to the closest spot to that point, but now it actually shows you where it's picked for you to go.
I was able to test with a real RO client, adding a non-broken version of monsterskillinfo.xml results in monsters using their unique animations in game. In theory this should work in any version of RO.
Looking at the map data it strikes me as incredibly likely they had intended to animate the Juperos elevator to look like it was moving, the pieces are all on the map for it to work, they just didn't set it up.
Fun fact about Mammonite that I just learned, the sound that plays isn't actually a single sound file. When you hit a target with the skill, it actually spawns 5 coins that fly out in 3d space and trigger a random tinkling sound when they bounce on the ground.
Digging through my old videos, I have almost no raw war of emperium clips, especially those with voice coms, so it's fun to have stumbled onto this one.
I've mentioned this before but my favorite bit of texture weirdness is this building in Juno which for some reason retains part of a sign reading "Robert B Schambach Attorney & Law Notary", a real practicing lawyer in LA in 1999.
I fixed up the mouse movement stuff, now if your mouse cursor isn't over any walkable ground it'll use the scene geometry to pick a spot. Also fixed it so that your cursor will correctly select walkable tiles even if they're obscured by non-walkable ones (like the tops of walls).
I need to properly fix up the UI sprite renderer to properly handle headgear and to position heads correctly but it still looks decent with a quick and dirty setup.
When breaking down what makes RO compelling I have a real hard time telling if something was an intentional and clever design decision, or actually some incredible oversight or series of mistakes and bugs that culminate in something that is completely broken, but in a fun way.
Experimenting with color adjustments for parts of sprites. I reproduced the algorithm used by GRF Editor to create a gradient from a single color but I don't understand the algorithm, no idea what it's called and google is beyond useless for finding out. Looks good though.
The more I tighten up the character movement and timing the more I realize that the sins of the RO client are actually thought out compromises for the sake of visual cohesiveness and the technical limits at the time. Just constant "ooh, that's why it's like that" moments.
With the assistance of some helpful comments on my youtube video, I have tracked down an old 2003 client that has the missing old payon models. Also a minor but interesting fact, the 2003 version of Prontera doesn't have the arch in the north square, I forget when it was added.
This emblem is actually from a real guild on jRO Baldur probably in the 2003~2005 range called "Helm of Gemstone", their leader was a knight who socketed a mistress card into a helm. Or so the story goes, I've only seen screenshots of the legendary item myself.
Just a random fun thing, because the animation of the plants starts when they come on screen you can create waves when walking in a specific direction.
I have a bunch of old RO bgm remixes, but one I was never able to properly source was this ridiculous login screen remix. I'm think I got it from a forum post discussing a jro april fools event where they replaced the login theme with a different rock remix, but I have no clue.
Alright, here's the deal. I'm testing multiplayer connectivity to my RO client/server so anyone who wants (for a very limited time) can join us to see how it runs. I can't guarantee it doesn't break immediately, but if you're willing to give it a shot:
Multiplayer networking is crazy because you lie through your teeth on where the player and everyone is so it feels responsive, then you make interactions between the lies of different players feel natural usually by lying about the result of those interactions.
I'm going to have to be more careful, the further along I go the more people are starting to mistake my posts for a real RO client. I guess that's a good sign in it's own way though...
I haven't mentioned it yet but I really appreciate all the kind words I got in the comments on the World of Ragnarok Online video. I can say that little has made me as happy recently as seeing everyone get so emotional over revisiting the game world. So thanks everyone.
The recent changes to the pathfinding was to enable the ability to reverse an existing move in progress. The pathfinder correctly weighs the cost of returning back to the cell you started on and if it's worth it your character will turn on a dime. It's easy to see in slow motion.
My brain keeps telling me I shouldn't use Arial, it's a default system font and just because RO used it doesn't make it good... but I'm forced to admit with proper text rendering it's actually not bad.
Well it was a gigantic pain and took almost 12 hours, most of that time fighting with unity's asset import system, but we finally have working hair colors.
I put together a video showcasing my work with Ragnarok Online as well as explaining what went into making my World of Ragnarok video. This video kind of got away from me and bounces a lot between random things, but I still think it's worth checking out~
Is there a way to see if cards would drop at 1x rates on my server? Is there a way to stress test item drops? The answer to both of these things is murder. Many porings died to bring us the answer (about 8000!) taking entirely too long even cheating to make more monsters.