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

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

Previous topic - Next topic

Blizzard

June 20, 2009, 11:52:23 am Last Edit: October 07, 2021, 10:26:45 am by Blizzard
RPG Maker XP Online System
Authors: Blizzard
Version: 2.06
Type: Multiplayer Online System
Key Term: Misc System

Introduction

This system features a set of scripts that are used in RPG Maker XP (client scripts) and another set that require Ruby itself (server scripts). Using this system allows to create multiplayer online games with RPG Maker XP.
Note that this is merely a very powerful tool. It is up to you to make your game awesome using this tool.

This work is licensed under BSD License 2.0:
QuoteCopyright (c) Boris "Blizzard" Mikić
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1.  Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer.

2.  Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

3.  Neither the name of the copyright holder nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

You may use this script for both non-commercial and commercial products without limitations as long as you fulfill the conditions presented by the above license. The "complete" way to give credit is to include the license somewhere in your product (e.g. in the credits screen), but a "simple" way is also acceptable. The "simple" way to give credit is as follows:
QuoteRPG Maker XP Online System licensed under BSD License 2.0, Copyright (c) Boris "Blizzard" Mikić

Alternatively, if your font doesn't support diacritic characters, you may use this variant:
QuoteRPG Maker XP Online System licensed under BSD License 2.0, Copyright (c) Boris "Blizzard" Mikic

In general other similar variants are allowed as long as it is clear who the creator is (e.g. "RMX-OS created by Blizzard" is acceptable). But if possible, prefer to use one of the two variants listed above.

If you fail to give credit and/or claim that this work was created by you, this may result in legal action and/or payment of damages even though this work is free of charge to use normally.


Features

The features are listed in the Manual chapter 1.1. for convenience.

Screenshots

N/A


Demo

RMX-OS

Script

Included in the demo.


Instructions

The instructions can be found in the User Manual.


Compatibility

It is recommended not to use RMX-OS with SDK. Generally RMX-OS is over 95% compatible with SDK 1.x and over 90% compatible with SDK 2.x, but due to unexpected behavior you are running risk of bugs and save data corruption. Carefully decide if you want to use SDK in your project.
Incompatible with the RGSS100J.dll. RMX-OS was coded to be compatible and extensible so most scripts should work normally with RMX-OS. Scripts that require a server extension (i.e. an ABS) might need additional extensions for any script specific (i.e. battle related) enhancements (i.e. special skill processings from Tons of Add-ons). Using a generic Anti-Lag system with RMX-OS might conceptually not be a good idea, because of online interaction between characters. Make sure your Anti-Lag system can work with RMX-OS properly without causing problems.


Credits and Thanks

  • Boris "Blizzard" Mikić

Author's Notes

If you have problems opening the .chm manual file, please read this article: http://blogs.technet.com/seanearp/archive/2007/05/28/can-t-read-chm-compiled-help-on-vista-xp-2003.aspx
The solution is at the bottom, you don't need to read the whole article.

If you find any bugs, please report them here:
http://forum.chaos-project.com

That's it! N-Joy! =D
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.

Starrodkirby86

Quote
It is recommended not to use RMX-OS with SDK. Generally RMX-OS is over 95% compatible with SDK 1.x and over 90% compatible with SDK 2.x, but due to unexpected behavior you are running risk of bugs and save data corruption. Carefully decide if you want to use SDK in your project.


:rofl: You just had to say that nicely.

Wow, this is going to be the replacer for Netbattle, yeah?

I am very proud of you for finishing it and I'm glad that a new script created by you would be something this massive.

(First :3)

What's osu!? It's a rhythm game. Thought I should have a signature with a working rank. ;P It's now clickable!
Still Aqua's biggest fan (Or am I?).




Hellfire Dragon

Cool! 8)

*goes to try it out*

Blizzard

June 20, 2009, 12:02:56 pm #3 Last Edit: June 20, 2009, 12:04:35 pm by Blizzard
Remember to read the manual. :P

Quote from: Starrodkirby86 on June 20, 2009, 11:54:43 am
Quote
It is recommended not to use RMX-OS with SDK. Generally RMX-OS is over 95% compatible with SDK 1.x and over 90% compatible with SDK 2.x, but due to unexpected behavior you are running risk of bugs and save data corruption. Carefully decide if you want to use SDK in your project.


:rofl: You just had to say that nicely.


:3 Worst thing, I was actually serious. xD

Quote from: Starrodkirby86 on June 20, 2009, 11:54:43 am
Wow, this is going to be the replacer for Netbattle, yeah?


Yes. But it's not done yet. For v1.0 I want to add chat (probably also a buddy list) and maybe some other minor things (probably guilds), I'll see.

Quote from: Starrodkirby86 on June 20, 2009, 11:54:43 am
I am very proud of you for finishing it and I'm glad that a new script created by you would be something this massive.

(First :3)


<3 It has almost 3000 lines of code and comments. I didn't know it was that long until I put all scripts into one file, lol!
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.

Ryex

so... dose JC know that this is out yet?/ have you finished his version?
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Calintz

Sounds intriguing, but I prefer original games rather than OMMRPGs.

Aqua

Congratz on releasing this new and big project.

Hopefully it'll become like... super mega awesome D:

Blizzard

Quote from: Ryexander on June 20, 2009, 12:30:00 pm
so... dose JC know that this is out yet?/ have you finished his version?


No, because he can't use it with the new client. I am going to implement and edit it for him when I'm done with RMX-OS.
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.

G_G

I've been waiting for this forever!!! Now to test it out and give feedback

fugibo

Blizz, I may be wrong, but aren't Regular Expressions, like, brutally slow? Like, hash-lookup-level-times-ten slow? 0_o It might not be such a problem with simple ones, and it might not matter since the engine might be waiting on the server anyway, but that's not the sort of thing I'd think would be very reliable in such a time-sensitive environment >_<

Ryex

Quote from: Longfellow on June 20, 2009, 01:26:02 pm
Blizz, I may be wrong, but aren't Regular Expressions, like, brutally slow? Like, hash-lookup-level-times-ten slow? 0_o It might not be such a problem with simple ones, and it might not matter since the engine might be waiting on the server anyway, but that's not the sort of thing I'd think would be very reliable in such a time-sensitive environment >_<

well how else is the server going to interpret messages from the client and the client from the server?
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

fugibo

Quote from: Ryexander on June 20, 2009, 01:42:57 pm
Quote from: Longfellow on June 20, 2009, 01:26:02 pm
Blizz, I may be wrong, but aren't Regular Expressions, like, brutally slow? Like, hash-lookup-level-times-ten slow? 0_o It might not be such a problem with simple ones, and it might not matter since the engine might be waiting on the server anyway, but that's not the sort of thing I'd think would be very reliable in such a time-sensitive environment >_<

well how else is the server going to interpret messages from the client and the client from the server?


You don't have to use regular expressions to compare strings >_<

bradhawk

whoa, awesome Blizz, i'll try this, i belive if you make this, it will lagless ^^

thanks before...

G_G

Hey blizz or someone could someone help me with a step by step tutorial on how to go setting this whole thing up right?
It'll help me and I'm sure others.

Thanks in advance! ^_^

Hellfire Dragon

Only thing I'm having trouble with is the MySQL database... after I make the daabase it just says that it couldn't connect to the database whenever I try to actually do anything with it :(

Reygekan

Why is it that it takes me 8000+ lines of code to do a working Hearts game in Java, whereas you can pull this kind of magic in 3000?

Sounds like the sex. And the sex always sounds good.

Blizzard

June 21, 2009, 07:00:09 am #16 Last Edit: June 21, 2009, 07:04:33 am by Blizzard
Quote from: Longfellow on June 20, 2009, 01:26:02 pm
Blizz, I may be wrong, but aren't Regular Expressions, like, brutally slow? Like, hash-lookup-level-times-ten slow? 0_o It might not be such a problem with simple ones, and it might not matter since the engine might be waiting on the server anyway, but that's not the sort of thing I'd think would be very reliable in such a time-sensitive environment >_<


Depends on how the parser was implemented. But I agree, it might be a good idea to test that on speed. It's true, I don't need regular expressions to compare strings.

'abc' == 'abc'


But regular expressions aren't meant to compare strings. They are meant to find string patterns. As I said, I can change my system in such a way so I don't use string expressions. But the question is whether

if message =~ /SAV(.+)\t(.+)/
 type = $1
 value = $2
 # stuff
end


is REALLY slower than

string = message[0, 3]
if string == 'SAV'
 data = message[3, message.size - 3]
 type, value = data.split("\t")
 # stuff
end


because regular expressions don't only find string patterns, no, they also find matched substrings after matching a string to a pattern.

As I said, it depends on how the parser was implemented and what kind of regular expression you use. I've had a class that was almost only based on grammars, finite state machines and regular expressions (and I had an A, yay). What I'm trying to say is that I know what I'm talking about.

Quote from: Reygekan on June 21, 2009, 03:10:45 am
Why is it that it takes me 8000+ lines of code to do a working Hearts game in Java, whereas you can pull this kind of magic in 3000?


Why does Netplay+ 1.7 have like 3 times more code (I haven't counted, honestly) and the chat system is the only thing that RMX-OS doesn't have (yet)? I honestly don't know. Maybe the way of coding or experience. It's said that a good programmer is up to 20 times faster than a bad programmer (and of course a good programmer produces better code). Maybe it is also related to the number of coded lines. I don't know. I didn't do any research on productivity of programmers.

Quote from: Reygekan on June 21, 2009, 03:10:45 am
Sounds like the sex. And the sex always sounds good.


Like Munkey said, Remexos = anagram for "more sex". xD
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.

Hellfire Dragon

I keep getting this error no matter I use,
Quote
Can't cannot to MySQL server on 'localhost' (10061)

Blizzard

June 21, 2009, 08:11:56 am #18 Last Edit: June 21, 2009, 08:13:19 am by Blizzard
Did you install MySQL properly? Did you set the username and password for MySQL in cfg.rb properly? Is MySQL even running? Control Panel -> Administrative Tools -> Services and find MySQL. The service should be anything else but disabled and started.
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.

Hellfire Dragon

I think I installed it right and of course it's running, I'm not stupid :P And yeah the username and password are set up properly too...