Online Script

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
I was wondering if there was a script that let's you do online. No, I'm not stupid. I know how many threads there are on the forum asking for just a plug and play script. But that's not what I'm asking for. I've set up a server and I want a script that will let me connect it to my game allowing online multiplayer. Is there such a thing? It was possible in VX and XP, so why not VX Ace?
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
15,354
Reaction score
8,533
First Language
English
Primarily Uses
RMMV
No. And if you search and read the many threads that have been posted about this very same subject in the last month or so, you will see that at this time, it's not possible. Some developers have achieved some online capability but nothing anywhere near multiplayer.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
It was possible in VX and XP, so why not VX Ace?
Because the immense workload needed for creating an online function is not yet completely done - some people are working on it, but unless someone sinks several thousand dollars in it to hire a programmer full-time, it'll still need one or two years of work before something like that might be finished.
And that is exactly what is said and discussed in the newer topics about online features (the older ended with nothing available, because even the basic work was missing a year ago)
 

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
But I've seen scripts that let you connect to servers and let your games have online capability. I mean, one script I've seen let's players trade, chat, create guilds, and more. Is it really so far away? (And plus, the majority of these threads just ask for scripts where you paste the script and suddenly, multiplayer. I know that's impossible, but what I'm asking for isn't impossible and is not asked for much.)
 
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
Your bigger issue would be making it multiplayer, not online.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
I mean, one script I've seen let's players trade, chat, create guilds, and more. Is it really so far away?
yes - because of the data amount and the server part, even when completely ignoring the multiplayer part.
trade, chat, highscores - those require only a tiny amount of data transfer, and in the one game that has online capacity even that creates noticable lag while waiting for the server's answer. Any online RPG would have to be able to send and transfer the entire map data, even if there is no interaction with the player.


That alone requires a server program and server capacity that simply doesn't exist yet.


If you want multiplayer, this data would have to be synchronised among a lot of computers, AND the RM-Engine would have to be given the option to display, manage and control several players on a map - and to allow interaction between them to top it.


Just check the existing Ace-Games: In any game at any time, only ONE map exists, and whenever the player transfers to a new map the old one is discarded and the new one loaded from read-only files on the hard drive - events are reset to their original position because the last position is not stored by default. If you have any idea of programming at all, that will tell you that you have to effectively reprogram most of the engine to allow changes to unloaded maps (where other players might be walking) to be consistant between several computers.


That's what Shaz meant by making the engine multiplayer, even without the problems of a server and online connection.


Add both problems together - one or two years of work are likely to be the minimum before anything like online multiplayer (even with only half a dozen players per server) is possible.
 
Last edited by a moderator:

JoePro

None Newb
Veteran
Joined
May 29, 2014
Messages
78
Reaction score
17
First Language
English
Primarily Uses
"allow changes to unloaded maps (where other players might be walking) to be consistant between several computers."

Is there a way to make ruby read scripts from an external source (i.e. a raw pastebin) and edit that as a master script source. I know more would have to be done, but is it an option.

I have been looking to make one and dont really know to much about ruby on on the website side of it. I know you can call websites fairly easy. It is something that I am looking into.
 
Last edited by a moderator:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
But I've seen scripts that let you connect to servers and let your games have online capability. I mean, one script I've seen let's players trade, chat, create guilds, and more. Is it really so far away? (And plus, the majority of these threads just ask for scripts where you paste the script and suddenly, multiplayer. I know that's impossible, but what I'm asking for isn't impossible and is not asked for much.)
Which script?


It's not a matter of whether it's far away or not.


It's whether someone's willing to doing it or not.


Naturally, if someone is presented with thousands of dollars they might be more interested, but no one's going to pay for it.


Crowd-sourcing is another option though, as we can just get 200 people in the community to all chip $5 for someone to make a comprehensive online framework.
 
Last edited by a moderator:

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
The thing is though, I've seen a thread on how to do it, although it doesn't go in to much detail. It said connect a server to Ace and then it may be a bit buggy and stuff but it'd work. It's the connecting the server I can't do. I've made a server, I just need to know how to connect it. (By the way that thread is here - http://www.rpgmakervxace.net/topic/3623-online-or-mmorpg-scripts/ and it's post #13.)
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
SebazWorld, please avoid double posting, as it is against the forum rules. You can review our forum rules here. Thank you.


I think I understand where your misunderstanding comes from.


There are different types of servers, with different functions and purposes.


The script you linked allows RM to access a MySQL Database server - that is NOT the same as a Game Server. And it also does not setup the Database on that server.


You need to setup the SQL tables yourself, and decide what data you want to store there - and that data will NOT be maps or event positions or the like. At current state, you can only use that online system as a kind of blackboard/message board. For example, if you want an online trade your Game needs a function to remove an item to be sold from the player's inventory (effectively deleting it) while posting a message "item XY available for X gold" on the database, and then another function to call the current offer-list from the server and display it, and when the player decides to purchase an item your engine/script reduces the gold, adds the item and removes the line from the database.


This online-system will NOT allow you to upload mapfiles to it or download them from there - and most important, an SQL-Database is always passive and waits for input - it will not compare map contents or update player positions on the same map or something like that. And if you try to make a multiplayer by exchanging data over an SQL database, that will cause a lot of lag because the player computers have to synchronise themselves.


For a real online-multiplayer, you'll need an active game server that handles and processes the game data, sending only the resulting data to the player clients. That is needed because a passive synchronisation over a database server needs ten or twenty times as much traffic (even if all maps and base data is locally stored) compared to an active game server handling the data directly.


And such a server program does not yet exists, it needs to be programmed.
 
Last edited by a moderator:

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
What if I was to have multiple servers capable of running it though, would it be possible then? Of course, providing there was a script. (Sorry for the double post, I forgot :headshake: )
 
Last edited by a moderator:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
What if I was to have multiple servers capable of running it though, would it be possible then? Of course, providing there was a script. (Sorry for the double post, I forgot :headshake: )
Doesn't change the fact that any SQL server is passively waiting for the player input - spreading it among several servers only increases the synchronisation problems while doing nothing to provide the clients and the connection with more capacity.
Spreading a database over several servers only increases capacity as long as the database requests are independent of each other - and it's the data synchronisation with the clients that's the problem and bottleneck here, not the simple data access.


For online multiplayer, you need a game server, not an SQL server - and that does not yet exist.


The SQL-Server is one step into that direction because even the game server needs a database, but it's only one of a lot of steps that are needed before a game server can function.


If you're interested in the technical side - go look up what a "semaphore" is (I hope the name is the same in english). That is what you need for a decentral synchronisation, and protecting each data change (like the position of the player when moving) with a semaphore will multiply the data traffic by (3 plus number of players plus number of sql database servers used) as a simple estimate. The more players you want, the more your traffic will increase with decentral synchronisation.


Even if a good programmer finds a way to reduce the number of semaphores needed, the traffic will still go up with each player online - that's why you need a game sever programmed to handle the data and sending only the results (without the need for semaphores) to the player.


Just imagine: two player on the same map standing one tile apart both want to move to each other - who will get to that position first? With two different computers over an internet connection, no one can know who moves faster unless there is an active server controlling the map. Without that active server, both need to check the SQL-Database if the position is free, then send their request to move there to it, and only after getting the confirmation "you're first" one of them can move to that position while the other gets back a "sorry, blocked" and needs to update its display of the other player's event placeholder.


And that is a simple move command, nothing complex...
 

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
No I meant if you had a server that was capable of running on games, wouldn't that decrease lag if you were to have multiple servers not have everyone on one server? And in most MMORPGs anyway players can stand in the same spot anyway so that wouldn't matter if there were to players going to the same spot. The second person would basically be on top of the first one. That's what happens in most multiplayer games I've seen.
 
Last edited by a moderator:

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
Yes, multiple game servers would reduce server load - but that would only reduce lag if that was the cause for that specific lag.


Consider everything from the player's computer (including RAM and drivespeed) over it's modem and internet connection speed through the internet provider's hardware to your game server one long pipeline. The game speed (and its lag) will depend on the part of that pipeline that is the smallest.


Using multiple game servers will make the pipeline larger at the game server part - that will help if that was the smallest part, but it will not help if the smallest part was for example the internet connection speed.


And standing on the same spot was only one example - there are a lot more:


- currently the default engine pauses the map when you're in the battlescreen. Do you really want all other players to be unable to move on map when one player goes in the battlescreen? If not, then you need to rewrite the battlesystem in addition to all else. And using one of the on-map-battlescripts will cause a lot more problems due to enemy interaction.


- if you don't have a game server, who moves the enemy events? who decides which player interacts with them? They can't move through the player because they are supposed to interact with all players, so they need the handling I described for two players above.


Besides - standing on the same spot only works in modern multiplayer because you can see the other players through each other's 3D-Model. In a 2D-Map the top sprite would cover everything below and make it invisible.


And it's the game server that is the problem - writing an engine that can handle and process that data is not trivial, because Ruby is slow and would be a bad choice for a game server, so the entire engine would have to be rewritten from scratch for the game server.


Believe me, everyone would like to get RM in online multiplayer - why do you think people are working on those scripts in their free time?


But there are too many unsolved problems that still need a lot of work.


One year ago nothing was possible with online features - now we have scripts that allow data exchange and message boards.


But to get a game server there still is a lot of work to be done - that's why I estimated one or two more years of work above. And thinking about it again - if some people are not a lot farther into the work without telling anyone, 1-2 years might be a low estimate.
 

SebazWorld

Veteran
Veteran
Joined
Oct 29, 2014
Messages
123
Reaction score
36
First Language
English
Primarily Uses
RMMV
There is an answer to the whole battles thing, using an ABS. Wouldn't that fix it?
 

♥SOURCE♥

Too sexy for your party.
Veteran
Joined
Mar 14, 2012
Messages
693
Reaction score
411
Primarily Uses
There is an answer to the whole battles thing, using an ABS. Wouldn't that fix it?
Not just using an action battle system, but creating one to work accordingly to the needs of that environment.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,365
Reaction score
7,675
First Language
German
Primarily Uses
RMMV
There is an answer to the whole battles thing, using an ABS. Wouldn't that fix it?
No, it wouldn't - that's what I meant with and included in the more general "on-map-battles" in my previous post.
 

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,203
First Language
Binary
Primarily Uses
RMMZ
There are many issues with realtime online games atm - at least for RM.

Yes, there are folk working on such things. I have managed to get a full game download and patching system working (some of which will be released shortly), but as Andar has mentioned, small patches and auction houses and trade like features are nothing in comparison to what actually needs done for a full scale mmo.

For a start, almost everything from the default engine would need to be optimized and likely written in a faster language. Everything would have to be as efficient as possible and then your going to need a fairly powerful server before you can even think about doing any features that require real time interaction.

Realistically, for say 2-4 computers to interact simultaneously, thats not too tricky (depending on the interaction in question - something 'easy' would be an instant chat feature). When you start going into battle systems and juggling a constantly changing quantity of everything (events, items, players, whatever..) using Sql servers along is just not effective enough.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,867
Messages
1,017,061
Members
137,575
Latest member
akekaphol101
Top