The Inner Workings machine secret!


hope I’m not stealing your thunder here since you like talking about this, but I think this bit is worth stressing some more when talking about how inefficient and difficult making the game do calculations is. an object only being able to make 5 checks per second in a system where the calculator has to make so many different checks in order to convert from decimal to binary (O(N^3) is mega yikes) slows things down tremendously on top of having to work with rotmg objects instead of a proper programming language. that tick rate has been screwing up a ton of stuff for so long and I think this calculator is a very good example of how horribly awful and bad a 0.2s tick rate is.


Put beekeeper sounds after hes dead throught spectogram. Those are new sounds


would be cool if that calculator could calculate drop chanses of items in realm


Thank you for taking the time to explain the developmental mechanics.

I can understand from a design perspective why XML was used ten years ago. Decompiling the flash client, I knew that such file types were used alongside the actionscript, but until you explained it to me, it was greek to me. I am extremely grateful for hybrid object oriented languages in this day and age, and I think I’m going to stick with classes instead of using database files.

It is a revelation to me that C++ is not involved on the server side of things. I had always assumed that:

I understand if you cannot divulge the answer to my next questions due to legal reasons, but as a game developer I’m struggling with replicating terrain akin to realm. I know that the game is a 2d orthological projection of 3d space. In the flash client, if you were to make the window fullscreen, you would be able to see the rendering of each tile as you moved about. I understand, that as I program, I will use completely different methods due to the difference in language and approach, however understanding the following would be useful from a conceptual viewpoint.

I know that the server must handle the generation of dungeon layouts and world generations, and passes that data to each client depending on their location. I understand how the worlds and dungeons are generated using algorithms, but how are they stored post generation? In arrays? The data that the client receives, how is it rendered?

Regardless of your ability to answer that, thank you again for the insight into the previous topic.


Minor correction i’d like to make with that. The servers are indeed c++, it’s just that enemies aren’t directly programmed into the server. The behaviors/states/transitions etc you use in XML interface with various functions in c++, passing the parameter(s) the designer supplied in the XML tag. These functions then manipulate the GameObject that activated the behavior in whatever way they were set up to do.

As for dungeon gen, I’m afraid I don’t know too much on it either. It seems to me that any instance of the game, dungeon or realm, is just given as a collection of tiles that the client interprets. It’s why static.drips (data taken from the game client) holds ground.xml data as well.

My guess would be only the ‘type’ value of the ground tile is passed, and the client does the rest of the work by filling in the data it has itself on the tiles.

That really is a “hasn’t-even-graduated-yet computer science student” guess, though, not something I can claim I know about as “professionalTM game designer”. Because I haven’t put in the hours to figure it out at all yet. Technically not my job :stuck_out_tongue_winking_eye:


Oh I’m so blind, I’ve never bothered to notice the ground.xml, this makes more sense.

Alright… I just have to figure out how to integrate this into Unreal Engine. Several weeks into development hell, no end in sight. Just a lot of confusion and eureka moments.


Uhhhhh guys?




This thread was fun to read


*cries in .5 second delayed attacks stacking*
And also weapons dealing damage with less than .2s between hits not calculating the dealt damage instantly, leaving enemies at like 1 hp, requiring another hit to finish them off, thereby indirectly nerfing items such as tiered Staves and TShot even more


brain can not comprehend. shutting down…


so i’ve been in inner workings for 20 minutes to try 666, and it isn’t that. Rip



wow this was fun to read, wish i was here for this


666 doesn’t works too

also, we knew about 420 but nice help


what time was it? 4:25?


Umm… it’s already solved… you know ?


@Demonseye have you tried 42?


i’ll try that the next time i can go in inner workings


Nah it doesn’t works