[XP] RPG Maker XP Online System (RMX-OS)

Started by Blizzard, June 20, 2009, 11:52:23 am

Previous topic - Next topic

Lobo

RMX-OS is a well done system, however it is focused on MMO games (with login etc).

I wonder if it is planned to make a version that has a focus towards traditional multiplayer where you just set up a game and have 1-3 friends join it, for example for co-op like in Four Swords Online. I'm pretty sure this type of online system is applicable on a lot of projects ;)

exile360

Quote from: Lobo on June 01, 2013, 09:09:49 am
RMX-OS is a well done system, however it is focused on MMO games (with login etc).

I wonder if it is planned to make a version that has a focus towards traditional multiplayer where you just set up a game and have 1-3 friends join it, for example for co-op like in Four Swords Online. I'm pretty sure this type of online system is applicable on a lot of projects ;)


Well... to get what you want specifically, you'd need an entirely different system. But you could just set the max login amount to 3 and play over a closed hamachi/LAN server or something. xD

G_G

While that is possible, that's not what RMX-OS and it won't ever be that. While the two systems would have similarities with setup and data transfer, you'd need to setup the client as the server, and with as slow as Ruby 1.8 is, it'll run slow trying to act as the server and a client, so you'd still need a separate server setup like this one if you wanted maximum speed. Though your best bet would be to strip down RMX-OS (both client and server). But RMX-OS definitely had never planned to be that.

Xolitude

Hey,

I'm like 95% sure I already asked this in a private, but...

Is it possible to make some sort of aCi(anti-Cheat)? I realize that a client/the person will always be able to get around it but I just wanna know if it is possible to create some sort of cheat-protection. Thanks!

Blizzard

June 04, 2013, 05:17:44 pm #1544 Last Edit: June 04, 2013, 05:19:34 pm by Blizzard
An Anti-Cheat system is a very, very broad definition, because there are many different things that can be done to cheat and there is no universal solution to prevent all types of cheating. There isn't even a solution that prevents "most" types of cheating. For every type of cheating you basically one specific counter-system to prevent it. RMX-OS already prevents the basic types like save-data hacking or attempting to fake being a mod or admin (basically trying to do stuff on the server/other players that they don't have permissions to do), but anything extended such as memory hacking or client imitation/hacking can't really be prevented.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

exile360

June 04, 2013, 05:22:51 pm #1545 Last Edit: June 04, 2013, 05:29:09 pm by exile360
Not to mention one very simple way to cheat is simply to force-close your client. Let's say you have a quest or something in your game, and the NPC gives you an item or gold, one can simply close their client during dialogue, reopen the game and receive the item or gold again, and keep repeating it for an endless supply. This can be avoided with smart eventing of course, but anything with autorun is quite tricky overall. If someone crashes during a cutscene, they might get their character stuck lol.

Doubt you can do much about this anyway, just another rmxp limitation I guess.

Xolitude

Hm, okay ;o

Thanks guys for the quick replies!

Blizzard

Quote from: exile360 on June 04, 2013, 05:22:51 pm
Not to mention one very simple way to cheat is simply to force-close your client. Let's say you have a quest or something in your game, and the NPC gives you an item or gold, one can simply close their client during dialogue, reopen the game and receive the item or gold again, and keep repeating it for an endless supply. This can be avoided with smart eventing of course, but anything with autorun is quite tricky overall. If someone crashes during a cutscene, they might get their character stuck lol.

Doubt you can do much about this anyway, just another rmxp limitation I guess.


It can be done if you disable saving at the beginning of the event and enable it again when finished.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

exile360

Quote from: Blizzard on June 04, 2013, 06:05:12 pm
Quote from: exile360 on June 04, 2013, 05:22:51 pm
Not to mention one very simple way to cheat is simply to force-close your client. Let's say you have a quest or something in your game, and the NPC gives you an item or gold, one can simply close their client during dialogue, reopen the game and receive the item or gold again, and keep repeating it for an endless supply. This can be avoided with smart eventing of course, but anything with autorun is quite tricky overall. If someone crashes during a cutscene, they might get their character stuck lol.

Doubt you can do much about this anyway, just another rmxp limitation I guess.


It can be done if you disable saving at the beginning of the event and enable it again when finished.


What do you mean exactly? Is there a script call that I could use to stop the client from sending savedata to the server? I have manual saving disabled all the time anyway. :P

Blizzard

I thought I implemented that manual saving also prevents RMX-OS from auto-saving. O_o I'll have to check on that.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Blizzard

Since I am getting no more bug reports, I assume that everything is fine. I have officially released RMX-OS 2.0.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

exile360

Awesome work Blizz! I've been waiting for this for a long time. :3

I just upgraded my project, and I do have a few issues. First, some RMX-OS scripts that I used are now obviously incompatible since they're not updated. These scripts are:
- Message of the Day
- Player Reports
- Login Messages
- Online List
All by Wizered67. Should I try to contact him to upgrade his scripts to be 2.0 compatible, or is it a simple & quick fix? The error I have is always something about 'mutex'.


Everything else seems to work fine, except for one major issue/dilemma I have. I was previously using ATES 0.4 but because of the G-DNS 2.0 compatibility update, I had to upgrade my ATES to 1.01 (I never did because I don't want certain features of it). Once I upgraded, my game is lagging MASSIVELY. I'm down to ~9 fps no matter the map. Plus, the script messes with a lot of my other atmosphere stuff, like fogs (using clouds & unlimited fog scripts). Is there any chance you could provide ATES 0.4 support for me please? :( Well, actually, it's probably about the G-DNS so I need that updated to 2.0 without it requiring ATES 1.01. I simply can't use ATES 1.01 in my project, sadly. I can give you the G-DNS script and extension I need updated.

Thanks in advance!

Wizered67

@exile360 I haven't taken a look at RMX-OS 2.0 yet, but I don't think it should be too hard for me to update those. You're probably better off skipping Login Messages and Online List though, as Blizzard has his own script for it that is better and is updated.

exile360

Ah, right. Forgot about that one again. I'll be sure to switch. :) I hope you can update the rest, would definitely be awesome. Cheers!

Blizzard

Making an extension RMX-OS 2.0 compatible is not much of a problem.

1. Take a look at the updated ExtensionSkeleton file and you will notice that a few small changes have been made. The changes just include creation and access of data with a mutex to ensure thread-safe data handling.

2. The second change is that if you are using custom messages from the server and vicer versa, you will have to update your script and server extension as RMX-OS because the format isn't "MSG [paramater [\t parameter]...]" anymore, but "MSG [\t paramater [\t parameter]...]". I other words, now a tab character is required after the message identifier and the first parameter. This allows for message identifiers that are not 3 characters long.

3. "$clients" is now used as "RMXOS.clients.get".

4. There are a few other API changes, but I don't think many scripts are actually using them. If you need assistance, feel free to ask me.

@exile360: I'm not sure what could be causing this. Can you check if the server load also increases? This was the only extension that I didn't test thoroughly. Also keep in mind that only time is synced, weather is controlled locally only.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Wizered67

@Blizzard
When I looked through some of your updated extensions, it seemed like you were using commas to separate parameters. Example line from Blizz-ABS controller:
client.send('ABSMEE', id, @battlers[client.player.map_id][id].get_exchange_variables)

Is that the new way to do it?

exile360

Thanks Blizz, I got my older version of ATES & G-DNS to work with 2.0. Simply needed to add the mutex lines to the extension and voila, no issues this far.

Blizzard

@exile: <3 Though, I did updated G-DNS to work with 2.0.

@Wizerd: No, I use commas only for exchange variables. Basically I am using Hash#inspect and then send that string as a single parameter. Message parameters are always send with \t as separator. If you take a look at the definition of Client#send, you will notice that it uses *args as arguments which I then simply join with \t.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

exile360

Quote@exile: <3 Though, I did updated G-DNS to work with 2.0.

Yup, but as I mentioned earlier, G-DNS 2.0 requires ATES 1.01, but I want to use the old ATES 0.4. :P

Blizzard

Oh, I see. I misread that. Yeah, that quick update with the mutex is basically all you need then.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.