Messing around with some multiplayer ideas

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
Hi all,


I have been playing around with web-based multiplayer gaming for years. Now that RPG Maker MV is javascript based I have attempted to blend an RPG Maker project with some of my javascript/php multiplayer back-end code to create a Proof of Concept allowing for 'shared environment' play in RMMV and provide some basic social features.


What do you think of this mechanic? Would it interest anyone to have multiplayer/mmo support in your RPGMaker projects?


To try out the Proof of Concept Multiplayer/MMO, please go to: http://deltamango.com/rpggame/


Once you enter the multiplayer map, any actors you see are other Human players that are in the game at the same time as you.


Revision 1;

  • Added PVE Battle with an NPC. The NPC's actions are driven by random server-based choices.  Started working on PVP mechanics.



Some Caveats with the POC;

  • Player movements are not real-time but near-real-time (the multiplayer aspect polls the server so there is delay between a remote player's movement and the end user). Alternatively as this is all HTML5 a websocket implementation should be possible to create a real-time experience with compatible servers.
  • Nameplates for players don't show (only fixed server NPC's) - I think this is an issue with the Event spawning for remote players using OrangeCustomEventCreator and the Yanfly mini label plugin - need to investigate when I have time.
  • This multiplayer POC is file-system based on magnetic disk. It wouldn't tolerate huge numbers of players well. The idea works though so it isn't a long leap to switch to better storage mechanisms like a NoSQL/Lucene/ElasticSearch style index for rapid queries, or even plain old relational sql. :)
  • No combat with this POC at all. I'll have a look at the battle system yet to see if I can override AI turns with remote player turns, then PVP will be an option. Also will see about co-op turn based actions. Revision 1; PVE combat available with a single server-driven NPC in the centre of the map. PVP combat is in progress.
  • You don't see your own Player listed in the 'Players in Map' info panel, or your own chat messages. However other players will see you and your messages.
  • The Player listing and chat system is very simplistic. This is just a proof of concept to prove what can be done.



RMMV Plugins in use:

  • OrangeCustomEventCreator.js - slightly modified to add a parallel actor event creator.
        Depending on; OrangeCustomEvents.js, MVCommons.js
  • YEP_CoreEngine.js - for Yanfly plugin support.
  • YEP_EventMiniLabel.js - for Name plates.
  • YEP_MessageCore.js - slightly modified to add a text command \IV[n] (for variable-based icon rendering for nameplates; eg: \IV[2] to show the icon index defined by variable 2).
  • YEP_X_ExtMesPack1.js - for all the extra message fanciness.
  • YEP_GabWindow.js - to provide uninterruptible in-game chat message display.
  • YEP_BattleEngineCore.js - prettier battle system.



With Javascript now powering RPG Maker we have the ability to create some incredible features on top of this excellent product. :)
 
Last edited by a moderator:

Mako Star

Ex-Crisis Avenger
Veteran
Joined
Jul 21, 2014
Messages
98
Reaction score
81
First Language
English
Primarily Uses
So cool to see an RM game embedded into a webpage like that. MV is really changing so much. I checked it out, walked around a little. Got locked up when I tried to go into the church. I couldn't get the chatting to work, either. Anyhow. I'm pretty excited to see how far this develops. God speed, and have fun!
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
It's not clear to me exactly what discussion of general principles of game making you are proposing.  I can see an invitation to examine a particular game and give feed back on it, but that's all.


Could you please clarify if you are looking for specific feedback.


Thanks
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
It's not clear to me exactly what discussion of general principles of game making you are proposing.  I can see an invitation to examine a particular game and give feed back on it, but that's all.


Could you please clarify if you are looking for specific feedback.


Thanks


Hopefully I have revised the topic sufficiently for a little more clarity @ksjp17; I have built a conceptual multiplayer/mmo project. My aim is to see if there is any particular demand for multiplayer/mmo support in RPG Maker - if there is I'll continue to work on this and build suitable components for others to utilise.


I'm fairly new to the RM forums and wasn't sure of the best place to stick this topic as it is novel functionality that doesn't seem to have a suitable dedicated forum. If you feel this is more suited to a different board please feel free to relocate as appropriate!
 

Vis_Mage

Novice Magician
Veteran
Joined
Jul 28, 2013
Messages
574
Reaction score
196
First Language
English
Primarily Uses
RMMV
You certainly have my support! :)


I've toyed around with multiplayer back in VX, and am working on a event-based co-op system for my Ace game, but having the ability to have a multiplayer game browser based along with all the new possibilities of MV would be amazing to see! (especially since Ace never really saw this level of connectivity during it's lifespan)
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
Although I've demoed it as a web page the multiplayer aspect should work for pc and mobile deployments too with RMMV, given its all HTML5.


I used VX Ace a bit in the past and looked at prototyping a multiplayer project in it, but the hoops you had to jump through to add remote data retrieval was a pain and I gave up in the end.
 
Last edited by a moderator:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,299
Reaction score
11,712
First Language
English
Primarily Uses
RMVXA
On reflection I think this belongs in JS Plugins In Development, as there are a few threads there already on this general topic.  So,


I've moved this thread to JS Plugins In Development. 
 

myew

Villager
Member
Joined
Feb 28, 2016
Messages
7
Reaction score
1
First Language
english
Primarily Uses
Nice job ProperDave.


I was inside waiting for ppl to join in... but then decide to use my another pc to log in. it work,,, i can see both my player. Cool Job!!


I did use the chat... dont know wat i did wrong... no msg appear.


Im actually thinking of pvp. not those 'live' pvp


Player A click a Event. when click Player A party member name or unique ID will be recorded


Player B click the same event. Player B party member name or unique will be recorded.


Either after Player B submit his Party or after 1 hr.. the battle begin..


Eagerly waiting want new feature u going to add it..


Cheers
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
My day job is keeping me busy but I have managed to get a basic server-driven NPC battler added to the POC project.


http://deltamango.com/rpggame


There is a 'Server Battler' actor standing at the central statue that can be interacted with to start a PVE battle.


I have also added two crystal events for PVP battling, although I haven't finished the logic yet. I have hit a roadblock where I don't fully know how to retrieve the player's action taken to send to the server to relay to the opponent.
 

Nelderson

Coding *****
Veteran
Joined
Mar 17, 2012
Messages
165
Reaction score
168
First Language
English
Primarily Uses
RMMV
Nice one @ProperDave!


I'm just finishing up my new revised version of Scoket.io and MV.  I used a mashup of what Vince made in the other thread and what I originally did.  My plan is to release a video and full project to help people pick up ideas from it.


BTW couple of things I noticed while playing: I love the aesthetic of the chat window  but I'm not sold on the functionality if there's a lot of people in the room.  And maybe put other players on the map transparent....so no one can block doors and such :p   I love the overall embedded game in the browser as well :)
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
I'm just finishing up my new revised version of Scoket.io and MV.  I used a mashup of what Vince made in the other thread and what I originally did.  My plan is to release a video and full project to help people pick up ideas from it.


BTW couple of things I noticed while playing: I love the aesthetic of the chat window  but I'm not sold on the functionality if there's a lot of people in the room.  And maybe put other players on the map transparent....so no one can block doors and such :p   I love the overall embedded game in the browser as well :)
Once I'd got the basics working in this POC I was going to look at setting up a nodejs host next - but I think you'll beat me to it. ;)


Also; did you work out what to do about scaling with the web sockets? Trying to load balance sockets is a pain... although AWS GameLift looks like it can help handle that.


The chat mechanic is really just an illustration of what could be done - I have been focusing more on getting the multiplayer mechanics working than the aesthetics of the chat. 


And I do need to enable the non-collision option on player events. I'll try and sort that out when I next publish an update.
 
Last edited by a moderator:

Localdose

Warper
Member
Joined
Aug 23, 2016
Messages
2
Reaction score
0
First Language
English
Primarily Uses
Hey guys. I'm wondering if this project is still being worked on. Would love to see this hosted on GitHub so that I can contribute in any way possible.
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
Hey - I'm still going to be working on my efforts. Although for the past month all my time has been committed to my day job, leaving little spare brain power to spend on RPG Maker. After the last update I had PVE server-based battling working, and was about 90% done with PVP based battling (hardest part has been trying to set up the battle negotiation to start a fight). I'll progress this as and when I can.


I believe @Nelderson was also progressing with server based efforts.


We'll get there. It just may take a few more weeks yet :)
 

RksLord

Villager
Member
Joined
Aug 9, 2016
Messages
6
Reaction score
1
First Language
English
Primarily Uses
How did you manage to make the pve battles server-side ? i guess when a player starts the fight, the server sends informations about the enemy and wait for player to choose an action ?


this seems very hard XD


Anyway good job i tested the website and it's great ^^
 

ProperDave

Mad Scientist Extraordinaire
Member
Joined
Jun 22, 2016
Messages
20
Reaction score
18
First Language
English
Primarily Uses
@RksLord Before the start of each player turn, the RPG Maker project queries the server for the Enemy action. The server responds with a random skill ID. 


Although there's no need for the PVE battles to be server-based, it does mean the same concept can work for PVP battling. :)
 

Black Mamba

Veteran
Veteran
Joined
Mar 6, 2014
Messages
266
Reaction score
88
First Language
pt-br
Primarily Uses
* is possible to make loob room to find players like Grandchase, Conter Strike, etc.


or make it like zelda triforce heroes?


Coz if i want only 2-3 pLayer in map, but more players enter the map they can form new parties












* is compatilble with ABS?





http://quasixi.com/quasi-abs-documentation/
 
Last edited by a moderator:

RksLord

Villager
Member
Joined
Aug 9, 2016
Messages
6
Reaction score
1
First Language
English
Primarily Uses
@RksLord Before the start of each player turn, the RPG Maker project queries the server for the Enemy action. The server responds with a random skill ID. 


Although there's no need for the PVE battles to be server-based, it does mean the same concept can work for PVP battling. :)
Oh that does seem hard to implement, amazing work man ^^


Oh and i got a question, is it hard to make an instance system ? Where if you join a map the server makes an instance of it and only players in that instance are shown ? :o
 

Nelderson

Coding *****
Veteran
Joined
Mar 17, 2012
Messages
165
Reaction score
168
First Language
English
Primarily Uses
RMMV
@BlackBarba Zelda Triforce heroes is probably the best to model.  Rpgmaker is best utilized for it's smaller sized maps.  A solid tactics oriented ABS multiplayer experience is reasonable to pull off without writing a bunch of code to change what the engine was designed for.


The problems I see come in terms of time and effort into the little details with such a system.  Socket.io is very handy when separating data into 'rooms' to exchange information.  So @RksLord you could certainly have a separate instance of a level per group.  However....the problem comes in getting that group together.  Usernames, passwords, selection screens, timers to select, etc.....all these things need to be added to make a full experience....


I also need to test streaming a map over a socket connection for loadable maps from json.....time to get back to work :p
 

RksLord

Villager
Member
Joined
Aug 9, 2016
Messages
6
Reaction score
1
First Language
English
Primarily Uses
Humm i think i understand what you mean, it seems a lot of work, good luck man i will definetly keep an eye on your progress ^^
 

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,860
Messages
1,017,040
Members
137,569
Latest member
Shtelsky
Top