RMMV [Online] RPG Battle Royal - 0.5 Beta

Discussion in 'Games In Development' started by peq42_, Feb 24, 2019.

  1. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    RPG Battle Royal
    Synopsis:
    This is basically what the title says: a battle royal game made using the basics of a RPG game. Built using websockets, to make the communications between server and client, it has good connectivity, performance, stability, etc. In it, everyone can make servers, each able to host up to 100 players at a time(A single machine can host multiple servers, see more bellow) and join whatever server they want, be it in the server list or not(You can buid your own server list through the favorites menu). As alpha, the gameplay and overall design of map, players, items,etc is still simple, but will improve as feedback be given.


    Images:
    [​IMG]


    [​IMG]

    Creating a server:
    To create a server, go to my github page for this project and download the file "server.js". Then, run it on either node.js(You will have to install "nodejs-websocket" using "npm install nodejs-websocket" first) or use another project of mine and just execute the file using "cd" command to move to the folder you saved "server.js" and then "jit ./server.js".

    Once executing, the server should control itself without problems, but if you wish, you can send commands(if running the code in my other project) to control it, for example:
    "begin" - starts the match
    "close" - closes all connections
    "kick <ID>" - kicks a player of a certain ID (Feature still in development)
    "help" - shows a list of commands

    A single machine can host multiple servers, as long as each one has its own port(see the server.js file, in the line with a comment "port the server is listening to" which port is that server listening to). By default, the server will listen to the port 80, but if you wish to run one or more servers besides that, you can change this number and run the file again.

    To add your server to the server list, send me a message anywhere(since for now, the game has no official website/blog/forum) with your server IP:ThePort and I will add it.


    Making a custom Map to your server:
    To make a custom map and add it to your server, all you'll need to have is RPG Maker MV(you may use the demo version, should work the as well).

    First, open RM MV and create a new project. MV should make a map automatically, which we will use as our custom map. Edit it as much as you want, adding whatever events, custom tilesets, sounds, etc to it(just remember, your server can only have one map). Once done, open your project folder, select all files and folders and zip them together as "map.zip" then copy it.

    Now open JIT.js' folder and paste your map.zip file inside it. Open the server.js file, locate the line "else if(str==="map?"){", comment the line following that one "connection.send("default") " and uncomment the few lines that come after it. Those lines make sure that your server will read the custom map file and upload it to each client when they connect.

    And thats basically it! If you're using node.js, or wish to save your map.zip file in another folder, you might need to change the line "data = fs.readFileSync("./map.zip");" to specify which folder you saved said file.
    Remember also to NOT change the map's file name, as the client expects a Map001.json file.

    Joining a server:
    To join a server it is quite simple. Start the game, click "Servers", wait a few seconds for the game to check which servers from the server list are working and then finally click the server you want to enter.

    If you want to enter a server not listed, click "add favorites", type a server(see format example bellow) and then "ok". After it, go to "favorites" menu and select the server.
    Template example:

    Name - ws://IP : PORT

    Once in the server, you won't be able to move until the match starts.

    Controls:

    Keyboard:
    A - Shoots.
    S - Uses healing potion.
    D - Equips the shield.


    Z-Drops weapon.
    X-Drops Healing potion.
    C-Drops shield(before equipping).

    Arrows - Move the character/Menu.
    E - Interacts with chests and menus.
    Y - Opens chat.
    Enter - Sends message in chat and closes chat.
    Esc - Closes chat.

    Gamepad/controllers:
    A - Ok/select/interact
    B - Cancel
    X - Run
    Y - Open Menu

    LB + A = Drop Weapon
    LB + Y = Drop Shield
    LB + B = Drop Potion

    RB + A = Shoot
    RB + Y = Equip Shield
    RB + B = Consume Potion

    D-Pad = Move the character.


    (It is better to avoid using mouse for now, as it is not optimized for the type of game it is)

    Download:
    Other links:
    -Github page(For those who want to help the project): https://github.com/elpeleq42/rpgbattleroyal
    -Editable project: https://www.dropbox.com/s/48oskj0qb6p48gn/RPG Battle Royal.zip?dl=0
    (If you use any of the code given above, that was made by me, please remember to credit)

    External code credits:
    HUDELL - OrangeMoveCharacterTo
    HUDELL - Mapscreenshot
    Mog - Footsteps
    Biud436 - RS_InputDialog
    HIME - CommonEventQueue
    Yanfly - YEP_EventSpawner(modified)
    Yanfly - YEP_ItemCore
    Yanfly - YEP_PictureCommonEvents
    Yanfly - YEP_StopMapMovement
    Yanfly - YEP_OptionsCore(modified)
    Yanfly - YEP_FpsSynchOption
    Yanfly - YEP_AnimateTilesOption
    Yanfly - KeyboardConfig(modified)
    Yanfly - GamepadConfig
    Yami - Skip Title
    Nelderson - MV Online (Chat plugin, modified)
    Chaucer - Game Scene Stabilizer
    Irina - PerformanceUpgrade


    Notes:

    It is a Beta, so many things are simple and/or limited. There are only 3 types of items(bow, healing potion and shield), there's only one, quite simple, map,etc so don't hype it too much. I also not only will allow, but also encourage you to try using "hacks" in it(don't forget to report how you made/used it, and the ideas to fix if you have) so I can improve the servers default safety.

    Later on there may be a website for it, with registration and stuff, thus allowing for a ban(and other kinds of) system(s) in the servers.
     
    Last edited: Jul 16, 2019 at 5:53 AM
    #1
  2. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    Took a little while BUT(t) alpha 0.2 is out! Here's what changed:

    Note:
    This time, I'm sure my server is working, thus I'm going to leave it online all the time i'm online(this should be from from 12:00 to 00:00 BRST). The server is hosted in Brazil, with a small "redirect" in the U.S. . It should be playable for everyone in the americas, but even if you're from another continent, feel free to try joining it and testing, as there it doesn't kick players no matter the lag, and the game is, as said before, in test stage).

    -Client-

    New stuff:
    -New menu to change your name ingame.
    -Your name shows above your head(on others' games).
    -Day-night and weather system.
    -Gramps' shop.
    -New staff weapon(area damage).
    -New gold system(Kill a player, wins a random amount of gold).
    -New exit button in the top-right of the screen when you enter a server(for well... exiting it).


    Changed stuff:
    -Performance improved in menus and maps(Thanks do Irina's performance upgrade plugin, and a few changes I made to the game).
    -Moving makes footsteps sound(Moving in water makes it louder). Players under a certain distance will hear it.
    -Server list now shows ping.
    -Server list won't wait 5 seconds to display servers(It will ping each one and then display, waiting a max of 5 seconds).
    -Arrow has a better sprite.
    -When you're in a server, pressing F2 twice will display your ping to the server.
    -Changed even more stuff in YEP_eventspawned plugin(to fix problems with spawns).
    -Changed a few lines in YEP_Stop.


    Fixed stuff:
    -Player spawn problems should no longer happen.
    -Chests should no longer have sync problems when one player exits, reseting the match, then another enters starting it again.


    -Server-

    New stuff:
    -If you're using my other project(JIT.js), there is a new command called "list" that displays every player ID and name.

    Changed stuff:
    -If you're using jitjs, the server should be able to handle far more people than if you use nodejs. That's thanks to NW.js 0.36.4 which brings V8 7.2 which has far faster async performance(Node.js uses V8 7.1).
    -Now it only requires 2 players for a match to start.

    Fixed stuff:
    -There should be no more sync problems between arrows of people with lag and without lag anymore(Now the server spawns it for everyone at the same time).


    -Soon ™-

    For the next update, I plan on adding more RPG elements(afterall it's RPG battle royal), and implement damage formulas. I also want to make the Gramps' store move at random in the map, with a name above his head, but in a sync way across all clients. After that, I want to allow shift(which makes you move slower) to reduce or cut out all stepping sound from a certain player.

    Then, I may change the controls, so moving in the map feels less robotic, but only if it doesn't break "OrangeMoveCharacterTo" plugin(or if I do manage to change it, allowing for the events that represent players to follow the same route as the player). Finally, I'll start working on an anti-cheat system.
     
    Last edited: Mar 11, 2019
    #2
    Stapleton and Biestmann like this.
  3. Val

    Val Veteran Veteran

    Messages:
    275
    Likes Received:
    161
    First Language:
    Français
    this is really impressive I hope you will continue your progress and see if you can have the whole gameplay loop. maybe adding somr kind of ai in the game if you cant find all the players . continue your great work rpg maker will never end.
     
    #3
    peq42_ likes this.
  4. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    Eyy that's actually a really good idea, thank you!
    I think I'll add a command in the server to add bots to it in a later update. It'll probably be quite hard, but could open doors for some interesting new things
     
    #4
  5. Val

    Val Veteran Veteran

    Messages:
    275
    Likes Received:
    161
    First Language:
    Français
    I was wondering is it possible with your tool of Multiplayer to just do some kind of PVP turn base battle with RPG Maker MV? Something I think that could be really cool is to make a game that at some point you have the chance to go fight the team of someone else ? Do you think it's possible? Like we can go even greater with a battle royal where everyone move around but when you touch the other guys you go into a classic side view rpg battle turn by turn. What do you think?
     
    #5
  6. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    Well, possible it is, just not practical nor easy. Something like that would require a complex battle system where player hits NPC (with same stats as the other player) giving it some damage, then sends that info to the server, and server makes that other player take the damage(healing would also need to be sent). And could also greatly increase the match total time, making it boring for some players(for example, a group or a single player battles another, and those who want to battle them will have to wait until it finishes, quickly getting bored).

    On top of that, later on when I move everything I can to the server side(positioning, moving, info about items, health, if a certain player was hit or not,etc so it is harder to "hack") it would double the difficulty.
     
    #6
    Val likes this.
  7. Val

    Val Veteran Veteran

    Messages:
    275
    Likes Received:
    161
    First Language:
    Français
    question ? is it possible for you to just make lobby where player fight each other one team againts another and then return a result of who win and you get some kind of loot table againts your rank in some kind of ladder? I'm sure some people would be interest to just fight in a rpg style of battle where you have like 5 seconds or least to take a action or if its a ATB battle system you have to react fast to defeat your opponent. What do you think ?
     
    #7
  8. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    Once again, possible, but too hard and wouldn't fit the kind of game i'm making
     
    #8
  9. potatopoofer

    potatopoofer Villager Member

    Messages:
    18
    Likes Received:
    15
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMMV
    The game sounds interesting!
     
    #9
  10. definite_lee

    definite_lee Veteran Veteran

    Messages:
    107
    Likes Received:
    102
    First Language:
    English
    Looks interesting. I hope you will post some video showing how everything works :)
     
    #10
    peq42_ likes this.
  11. HentaiPie

    HentaiPie Villager Member

    Messages:
    18
    Likes Received:
    11
    First Language:
    English
    Primarily Uses:
    RMMV
    I've been looking into how to make something online and it's awesome to see you've succeeded. A great idea, and I can't wait to see how it picks up :D

    as @definite_lee said, adding some more videos on how everything works would be great
     
    #11
    peq42_ likes this.
  12. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    Well it took some time but update 0.3 is finally here(I'll start calling it beta, until it reaches 1.0)! I'm sorry for taking so long to release it, but lately I've been really busy with things such as college and stuff.

    There wasn't as many changes in this version as there were in previous ones, but the changes made were big! With this new update, servers can now have custom maps(with up to 100 events), players can talk in chat (thanks to @Nelderson and his great in-game chat system), the server list shows the amount of players there are in the server and messages sent between client and server are now encrypted(Which brings a lot more safety)!

    I'll add to the topic info about how to make a map and config your server to use it(although its a really simple thing to do).


    About future updates:
    As said, I will try working on the max-event limitation to get rid of it, and obviously will work on fixing bugs, but besides that I don't have many other ideas. So feel free to suggest new things!

    Edit:
    Forgot to say that this time, I won't leave my servers on like I did before, as I'm having some problems with my PC

    Edit2:
    And I fixed a few small bugs that were left behind in this last update. I'm sorry for those, I haven't worked in that project for quite some time, and I forgot about some stuff I had to fix before releasing.
     
    Last edited: Jun 6, 2019
    #12
    Biestmann likes this.
  13. Biestmann

    Biestmann Heaven's Height Veteran

    Messages:
    286
    Likes Received:
    382
    First Language:
    German
    Primarily Uses:
    RMMV
    While I will wait until the project is further along to dive in myself, I just want to say that this is among the most interesting projects to me on here. Keep up the good work!
     
    #13
    peq42_ likes this.
  14. douggang

    douggang Warper Member

    Messages:
    4
    Likes Received:
    1
    First Language:
    portuguese
    Primarily Uses:
    RMMV
    @peq42_
    sorry but I'm a layman in language cd, I do not understand English very well, because I'm from Brazil and my english so bad,
    where exactly I saved the file server.js ? I created a folder for Jit, I save inside her? then open the jit and put which command? thank you!!!
     

    Attached Files:

    #14
    peq42_ likes this.
  15. eluukkanen

    eluukkanen Composer Veteran

    Messages:
    259
    Likes Received:
    166
    Location:
    Finland
    First Language:
    Finnish
    Primarily Uses:
    N/A
    Cool to see multiplayer games for RPG Maker MV.
     
    #15
    peq42_ likes this.
  16. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    You can put the server.js file in whatever folder you desire. All you will need to do after is use CD command to go to that folder then JIT command to execute it.
    For example, lets say you save it on your desktop. You then open JIT.js, type "cd desktop" and finally run "jit ./server.js". When you open JIT.js it shows your current workin directory on the left:
    [​IMG]
     
    #16
  17. douggang

    douggang Warper Member

    Messages:
    4
    Likes Received:
    1
    First Language:
    portuguese
    Primarily Uses:
    RMMV
    @peq42_ thank you bro, more one question, why I not can move my character in map?
     
    Last edited: Jun 10, 2019
    #17
  18. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    By default, the game won't start until there's at least 2 players in the server, therefore you can't move until at least 2 people are connected, but you can work around it by making a custom map and calling the plugin command "AllowPlayerMovement".

    But good thing you asked that because I didn't notice that the "begin" command wasn't really forcing the round to start(Well.. it was but it would end right after, as there would be only 1 player left alive and the server see that as the end of a match). I'll deploy a new version soon, bringing a fix to that and a few new things.
     
    Last edited: Jun 10, 2019
    #18
  19. douggang

    douggang Warper Member

    Messages:
    4
    Likes Received:
    1
    First Language:
    portuguese
    Primarily Uses:
    RMMV
    @peq42_ bro realy realy thank you for atention... the last question,
    where I add the IP ??
    to share with my friends the server!!!
     
    #19
  20. peq42_

    peq42_ Yeet Veteran

    Messages:
    446
    Likes Received:
    266
    Location:
    Brazil
    First Language:
    Portuguese(BR)
    Primarily Uses:
    RMMV
    You mean how to connect to a server that not listed? They can add to the favorites then connect to it through favorites. Just remember to use the correct format:
    "ServerName - ws://ServerIP : ServerPort"
    In case you didn't change anything in server.js, your server port should be 1000


    Or you can send me your IP, port and a server name through DMs and I can add to the public list
     
    #20

Share This Page