Welcome Guest ( Log In | Register )

[ Big| Medium| Small] -



Post new topic Reply to topic  [ 15 posts ] 
    Amy
  Sat Dec 23, 2017 2:30 pm
User avatar
Staff

Big Dumb Guy
Image




Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 2:45 pm
User avatar
Staff

Big Dumb Guy
Blurb as posted on RPGMaker Web:

Quote:
Hello! I realise it has nearly been fully two years since issue 6.

Since progress has stalled on Afar and I don't seem to be able to deliver an MMORPG, I wanted to try and pass my knowledge on to somebody else in the hopes they can continue my work in their own project.

I didn't know the best way to deliver that. I didn't want to make a plugin because I need people to understand what they're doing rather than pick it up like Netplay of old. So what I've done is made an eZine Special, explaining what I did and how I did it.

I'm not sure how useful this will be!

But presenting, Advanced RPG Maker Issue 7.


Top Top
Profile      
 

    ZenVirZan
  Sat Dec 23, 2017 2:59 pm
very undead
User avatar
Sponsor

Inept Evil Stooge

Location: snags 'n tracky-dacks
i hate to be a stick in the mud amy
but i dont think telling other people to use php for an mmo is a good idea

like for a web interface, sure, but not for actual game integration

i dont think you should be advocating that approach considering how janky it is when you could just use straight sockets and get all the features of live systems rather than purely request/response and requiring an embedded browser is kinda bad design


Last edited by ZenVirZan on Sat Dec 23, 2017 3:15 pm, edited 1 time in total.

Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 3:10 pm
User avatar
Staff

Big Dumb Guy
I know that you're right, however I don't think anybody realistically can make an indie MMO using such a server. From a security point of view creating a server from scratch isn't a good idea. That's just my opinion, mind. I may be wrong, but I've never seen it done for a sustained period of time; from trying to do so I came to the conclusion that it's a never ending spiral of complications that nobody will get past.

Using PHP/Ajax on the other hand is proven in games such as whatever that Pokemon game was we all played, and for the most part it seemed to work in Afar.

But then I'm also blinded by having used this system for so long.


Edit:

That is to say, it can be done, but letting a newbie go in and start creating a server like that and upload it to the net is asking for calamity; and maintenance of a preexisting system is a lot easier as there are established support communities and whatnot.


Top Top
Profile      
 

    Xilef
  Sat Dec 23, 2017 3:25 pm
User avatar
Staff

Big Dumb Guy

Location: UK
I think PHP still has its place in the world, and hobbyist online projects would be one I think it is still okay for. Firebase is what I'd personally use for such an MV project, but I'm not going to pretend it's easier than PHP, it's a lot harder to get started and get a production flow going. The security, high performance and scalability wins are what you'd get, rather than fast turn around and excellent control of your backend game logic.


Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 3:36 pm
User avatar
Staff

Big Dumb Guy
Aye. I just mostly think sending a newbie in blind to create a server from scratch is asking for trouble, as we saw in one of the Netplay projects which didn't sanitise anything sent to the database.

Plus there is something satisfying about installing a forum, attaching it to the game, and having most MMO functionality set up within the day. Creating in game forums, messaging systems, chat, etc would take a lifetime otherwise.


Top Top
Profile      
 

    Xilef
  Sat Dec 23, 2017 4:01 pm
User avatar
Staff

Big Dumb Guy

Location: UK
You should look into Firebase as it's not creating a server from scratch (it's not socket programming a Node instance), but I'd never describe it as suitable for a newbie.

Server side logic is handled by events called Firebase Functions, so it's like PHP in the sense that an explicit request is sent, executed on the server, rather than a server is running a game loop in the background (Netplay style).

I'd expect an MMORPG framework kit for MV to use Firebase as it takes care of so much.

Edit: do want to say though the fact that you can run MV in a browser and have it use PHP us fucking amazing. Would never have dreamt of that kind of thing for RMXP, although that is now possible these days.


Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 4:03 pm
User avatar
Staff

Big Dumb Guy
Cheers, I'll look into it.


Top Top
Profile      
 

    ZenVirZan
  Sat Dec 23, 2017 4:08 pm
very undead
User avatar
Sponsor

Inept Evil Stooge

Location: snags 'n tracky-dacks
you're right, i was forgetting that many people who want to make an mmo dont know how to do those basic things, and in those cases your approach is very useful

i guess my biggest issue with using web-based interfaces is how awfully they behave on low bandwidth and high latency systems, having always been plagued with those issues myself (this is obviously directed towards iframing in the browser)


Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 4:15 pm
User avatar
Staff

Big Dumb Guy
Well, yeah, true, I don't like my use of iFrames. With more time invested everything could be rendered properly in game instead. My main concern though was how bad the input interfaces in RS, Guild Wars, and most other games I've played are; the ability to put actual DOM elements in excited me.


Top Top
Profile      
 

    aphadeon
  Sat Dec 23, 2017 5:29 pm
1987-2023
User avatar
Staff

Generic Townsperson
I feel like I should chime in here. I used websockets, which are extremely easy to interface with from a browser via Javascript. For a server, I coded it in C# (which is also fairly easy to hook up to websockets). I built the connection header by hand to make sure it explicitly only supports SSL (but that's specific to my setup). For authentication, however, I did use AJAX to actually grab a token from the site. I added a headless $_POST login php script, which used the site's authentication lib (a popular and secure-ish option which I won't name just in case) and printed a token if it succeeded, which the client could use with the server until the website invalidates it (the server would check it for validation every hour, or on every connection).

For packets I used simple string arrays, joined by ":". e.g. 'mov:8' to request a move up, or 'atk:2:23' to request attacking target 2 with skill 23. And of course, all requests had to be approved by the server before the action is performed - requesting an attack from the map scene, or trying to attack a nonexistant target results in a kick (because I'd rather deal with a mountain of bug reports than compromise the integrity of the game, in the case of a mistake). For packets that contain actual text strings, I supported a custom escape character: "\:" to allow preserving those (and to prevent easy packet data injection).

For data, I used SQLite3 and a cache layer. The cache would load stuff from database, and if it's not queried for 2 minutes then it is flushed (and if changed, the changes are written back).

A bit more work than your setup, I suppose. And it also would require a VPS or such (I'm using a headless Linux server using Mono to run my .NET server software) as opposed to a simple web host. But it gives me a bit more control, and fits my particular needs better. Of course, things like scalability are entirely on my head with this - for example, I don't create new threads per player, just in case. I have a pool of worker threads who share the load. A potential headache that doesn't exist in a web API approach. So to each their own.

Edit: For perspective, this was for a pokemon-ish MMO.

Edit 2: That said, your forum integration is almost cool enough to make me reconsider my approach.

_________________
Image ImageImage


Top Top
Profile      
 

    Amy
  Sat Dec 23, 2017 5:41 pm
User avatar
Staff

Big Dumb Guy
^^ could probably still integrate the forums with a socket based system, bit more work but worthwhile I think.

Cool thing is that the current phpBB Prosilver skin has a different look for small versus large windows so out of the box you can visit the same web pages outside of your game and they'll look different. Pop them in a small iframe and they'll trim down to fit your game, visit it outside and you have a full forum like here.


Top Top
Profile      
 

    Amy
  Sun Dec 31, 2017 11:19 pm
User avatar
Staff

Big Dumb Guy
I think I might do an eZine article on setting up and using QSprite, as I really think this is a game changer for RPG Maker that nobody seems to have stumbled upon.


Top Top
Profile      
 

    Xilef
  Mon Jan 01, 2018 12:58 am
User avatar
Staff

Big Dumb Guy

Location: UK
Amy wrote:
I think I might do an eZine article on setting up and using QSprite, as I really think this is a game changer for RPG Maker that nobody seems to have stumbled upon.

I don't see what's so special about QSprite. Is it just extra frames, 8 directions and state animations? My movement Plugin has these features due to it being heavily requested.

With my movement Plugin you can have any kind of sprite sheet you want and you define the frames, states and directions in an XML file: https://github.com/AltimitSystems/mv-pl ... -348990865

Still a work in progress. There's some states I need to add and support for custom states is something I want to do. I'm also considering extracting it out of my movement Plugin and making it its own Plugin for vanilla MV.

EDIT: GIF image of the extra frames being used https://i.imgur.com/vdQOQrD.gifv

I think the MV community are well aware of this kind of Plugin, but it's not a community that enjoys hard work towards custom assets and sprites that deserve this kind of quality. RTP is good enough for vast majority of MV users.


Top Top
Profile      
 

    Amy
  Mon Jan 01, 2018 1:11 am
User avatar
Staff

Big Dumb Guy
Quote:
I don't see what's so special about QSprite. Is it just extra frames, 8 directions and state animations? My movement Plugin has these features due to it being heavily requested.

You get a program to build your animations in based on your sprite sheet. So you give your character one sprite sheet and then can build animations like this:

Image

The program plays a preview of your animation while you build it.

This just generates the JSON file of course. But I'm finding it very useful.


Top Top
Profile      
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ] 


Who is online

Users browsing this forum: No users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

We are an independent, not-for-profit game making community.
Homepage
Board Index
About Us
Downloadable Games
Free Browser Games
Games in Development
RPG Maker Support
Game Maker Support
Construct 2 Support
HBGames the eZine
Advanced RPG Maker
Site Announcements
Powered by phpBB © phpBB Group