Thread: [Discussion] Multiplayer features in Essentials
View Single Post
Old February 26th, 2013 (3:34 PM). Edited February 26th, 2013 by Luka S.J..
Luka S.J.'s Avatar
Luka S.J. Luka S.J. is offline
Jealous Croatian
Join Date: Dec 2008
Location: Croatia
Age: 23
Gender: Male
Nature: Adamant
Posts: 1,056
It's a very big "suggestion". I think the main issue here is "how do we make the games communicate on separate machines". This can be divided into other problems where people either don't want to have their machine as a dedicated server (or can't have them), or don't own an online server, or don't want to buy a dedicated server. I've actually considered this multiple times, and I have an idea on how to do such things (theoretically). I tested out various scripts I wrote, which allowed for the transfer of data, but these things require your own host. There are free ones out there though.

Ok, now onto my ideas:
1. The early skeletal designs involved the use of online FTP folders. This way the game could upload and download certain files. My files were always in .rxdata format, as those were very easy to read and write to. Problem with that is, it's slow, and not very efficient in real-time situations (like the battle system). My workaround for that was, in creating a downloading method which worked in the background. This way I was able to continue and update scenes, while also constantly fetching new online files. I did it by indexing files with trainer IDs, and constantly deleting, uploading and downloading files. In the end, that proved not to be very efficient, as two separate machines wouldn't access the same files if they are constantly replacing them with what's on their machine. So that pretty much makes my initial idea obsolete.

2. However, unlike Pokemon Essentials: Online, which uses NetPlay and a custom made server application which is run on the machine alongside the game, I think the best option we have now is using SQL databases. This doesn't require the creator of the game to have their machine on 24/7 to be able to provide online services. All we need to make these online systems is a way of sharing information. SQL does that...efficiently. Any alteration made on a local machine, gets made immediately to the main online database, so we wouldn't need to worry about the info not syncing. Berka made an SQL module, but I don't really understand it much. I know the basic principles of SQL, how to handle and lay out data, but calling and manipulating it from Essentials still gives me trouble. But I think if there is a way to do it, it will be through the use of SQL databases.

Once we have a way of communicating within the games, implementing that in already existing system should not be a problem. I don't think I'd have any problem with that in particular.

Finally, my argument to why it shouldn't be done for Essentials is the ignorance of the general community here. Something like setting up and managing your databases and servers for your Pokemon game, can get quite complicated here. And with the general majority of the members here, who can't even read simple error messages from Essentials, I would think it would be more of a hassle than anything else. I mean, people after people, come again and again with the same old crap because they couldn't be bothered to read the Wiki, or read the error message, or research it a little. How disrespectful is it to those who make those resources available, and put effort into articulating the information correctly, if it is going to be disregarded anyway. There are just too many users of this particular engine who do not want to inform and educate themselves on the basic principles of making a game with it.

Originally Posted by Ben. View Post
I don't actually think it should be added because it'll create a lot size that wont be needed if people don't want their games to have online play.
Ben, it wouldn't create a noticeable change in size, as these would only be code additions. The data itself is handled through the online servers, which can be done using a web host.
Reply With Quote