Jump to content
  • Advertisement
Sign in to follow this  
ywatanabe

Unity [web] ideas for multiplayer web-based game framework/platform

This topic is 3420 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I am currently working on a game but once I get some free time, maybe I like to start a small project which is to provide a community web-based game development platform. I am at the initial "conception" stage and tyring to see if it is worthwhile to pusue this and any feedbacks would be appreciated. The thing I want is a web site that provides a central location for users to sign up using SSO mechanism (such as Windows Live ID, Yahoo BBAuth, OpenID, etc) and - provide *game developers* basic API for getting user identity for his/her game - provide *game developers* ability to register their games (such that it will show up in the list of free games) - provide *game users (gamers)" with list of free games - the games can be sigle-player, but encourages multi-player by providing basic match making features imagine, today, to build a simplest multi-player web-based games, you have to manage user accounts/password etc. My service will take care of that part so you can focus on writing game logic. For example, you have a HTML based game (hosted somewhere of your choice). When certain things like a user winning, it makes HTTP forms submition to my service to write to the score board. There are security issues, which I am thining using time-spamped encrypted token passed around (via query string, forms field, etc.) so that game developers can validate it. (and maybe setting up a common secret key between game develper and my site, for symetric encryption, etc.) I have started mental exercise to see if its feasible, and I think it is. I just need to learn more about requirements. Thanks for reading up to this. Apprecaite any feedback, if any. -yoshi

Share this post


Link to post
Share on other sites
Advertisement
It is a cool idea in theory but there are two major issues that would keep me from wanting to use such a service:

Trust.
If your login capability is down, users can't make full use of my game.

There are enough OpenID libraries out now (and Windows Live ID is planning to provide an OpenID 'alias' service sometime in '09) that I might as well just implement OpenID directly rather than using your service.

After all, if I'm competent, one implementation of OpenID could be copied into each new web game of mine until the protocol changes.

I also need to be confident your system being compromised won't cause me any significant problems.

Traffic.
A new service wouldn't have a significant flow of traffic into my game. I'd be more interested in integrating a web-game with an existing portal's login (most of which don't use a SSO except internally) than yours. Especially for games that are essentially stand-alone. (e.g. A flash game I could upload to Kongregate or sell a sponsorship to them)

Neither of them is something time and money can't fix, but it would take more effort than a small project is worth in most people's eyes. In addition, some portals offer paid sponsorships for some of the better flash games.

On the plus side...
Your idea would be more flexible than existing portals (e.g. you could do virtually any web-based game rather than just flash and maybe silverlight) and could 'drag' traffic to the developers site instead of leaving it at the portal. If you were willing to put the time and effort to build up a decent level of traffic (and have no major downtime) you may be able to convince developers to use your service.

________________________________________________________________________________

Beyond that:
The API would need to be usable in Flash, Silverlight, and PHP (as a minimum).

A matchmaking service with lobbies to chat in as well actual matchmaking features.

A good looking portal with enough general 'game portal stuff' (e.g. rating games, reviewing games, voting for your favorite game) for users to be able to treat it like a normal game portal.

_________
Just my 2 cents.

Share this post


Link to post
Share on other sites
Kenneth,

Thanks for your great input.

Your point about handling OpenID by yourself is valid and that it self won't add much value to my service. I haven't done OpenID yet, but Windows Live ID and Yahoo BBAuth were so easy that it takes a day or two to set it up... by anybody. Clearly, I would need to add more than that.

As for trust and reliability, I would almost have to commit to data center and promis some sort of written mimimum guarantee, I suppose. That would be one hurdle to go over. Your feedback reinforces that point - and that might be too high for me to go over, at least in the initial stage. Anyhow, point taken.

Traffic. You are saying that develpers would tend to go to "established" portal rather than a new service that nobody knows about yet. This tendency is stronger for a single player simpler games. Point taken. My feeling after your input is that perhaps I should completely focus on "multi player games" that and forget about "single player games" - a quick googling tells me that there thousands of free game portals already established.

Kenneth, right now I am struggling to understand how "multi-player web-based games" are architected. I am a professional ASP.NET developer so I understand the basic web-based applications. Whether you use HTML, javascript, Flash, Sliverlight (and PHP, ASP.NET, etc. for server side), you have to solve the "stateless" nature of web application. In particular, one of the online users performs an action, which causes some state change on the server side, the only way to get that user's action reflected on other users views is by having a polling mechanism from user agents... correct? Sorry, if this is a dumb quesion - I just want to establish a solid fact here.

If that is the typical web-based multi-player game architecture, then my API has to be designed around that architecture.

Your other inputs: basic match making + some sort of user-to-user communication palform (chat), and attractive UI, seem essential to me to. Thanks for affirmation.


by the way, the game I am developing right now is a client-server app using TCP based on Socket (it used to use DirectPlay but I pulled it out as MS dropped it from the DirectX package). I was thinking I would add support for TCP with binary formatted protocol for future, but do you think there might be more people interested in?

Sorry for a huge message (should chuck it up, I suppose)

thanks.


Share this post


Link to post
Share on other sites
Quote:
Original post by ywatanabe
....

Traffic. You are saying that develpers would tend to go to "established" portal rather than a new service that nobody knows about yet. This tendency is stronger for a single player simpler games. Point taken. My feeling after your input is that perhaps I should completely focus on "multi player games" that and forget about "single player games" - a quick googling tells me that there thousands of free game portals already established.

Quite a few of those portals offer multiplayer games as well, just fyi.
(e.g. http://www.gamedozer.com/battalion/, http://www.flash-game.net/free-games/multiplayer-games.php)

Pretty much every segment of the web game market is serviced by some kind of portal. From the PBBGs to the single player Flash and Silverlight games.
(e.g. http://www.pbbg-portal.com/, http://apexwebgaming.com/)

So, avoiding a section of the market that isn't already serviced by an established portal won't really be possible imo. But no one to my knowledge offers SSO which would allow developers to leech some traffic to their websites instead of letting portals take it all. Just internal login and/or listing for reviews, directory, etc.

Quote:

Kenneth, right now I am struggling to understand how "multi-player web-based games" are architected. I am a professional ASP.NET developer so I understand the basic web-based applications. Whether you use HTML, javascript, Flash, Sliverlight (and PHP, ASP.NET, etc. for server side), you have to solve the "stateless" nature of web application. In particular, one of the online users performs an action, which causes some state change on the server side, the only way to get that user's action reflected on other users views is by having a polling mechanism from user agents... correct? Sorry, if this is a dumb quesion - I just want to establish a solid fact here.

I'm pretty sure no one is using a polling mechanism since there are better alternatives. However, I mostly write PBBGs (in php) for fun so I can't be certain no one is using such a method to get around paying for a 'professional-grade' flash socket server.

Flash
Flash has various socket server offerings.
(e.g. http://www.smartfoxserver.com/, http://code.google.com/p/gfs-server/)

For games that use such an offering, it would just be like a regular client/server game as far as architecture goes. The client would be the flash file displayed on the server which in turn communicates with the server-side code.

(e.g. http://www.tacticsarena.com/)

PBBGs
For PBBGs, you don't really need polling since your really behaving like a normal website (AJAX or otherwise). (e.g. You have your login session, You post the 'build units' form, the database updates with your orders, You navigate to the 'build buildings' page.)

(e.g. http://www.blacknova.net/ source: http://sourceforge.net/projects/blacknova)

As a hobbyist, I'm probably not in a position to say definitively that 'this is typical' but it probably is correct.

Quote:

...

by the way, the game I am developing right now is a client-server app using TCP based on Socket (it used to use DirectPlay but I pulled it out as MS dropped it from the DirectX package). I was thinking I would add support for TCP with binary formatted protocol for future, but do you think there might be more people interested in?

I honestly don't know one way or the other since the games I create never anything more than the basics (e.g. http, whatever protocol an AJAX library I may use uses) for communication.

Quote:

Sorry for a huge message (should chuck it up, I suppose)

NP.

Quote:

thanks.

Your welcome.

Share this post


Link to post
Share on other sites
Kenneth,

Thanks again for detailed reply to my queries.

I never knew the term PBBG, but now I do. You pointed me to several useful links and basic concepts/technologies. I will be busy reading these articles for a while.

I am also going to play some of the PBBG out there to get a feel for requirments, and I probably should write one.

I am still not quite sure how a user who is looking at a page (static) gets the updated world when another modified it... without some sort of polling. Maybe I just don't understand the types of games written in PBBGs. Say, if I were to write a chess game, unless I refresh the browser (to make a HTTP request), I am staring at the stale world data.

Anyway, I have lots of readings/researches. Hopefully, it will come clear gradually.

Thanks,
-y

Share this post


Link to post
Share on other sites
Quote:
Original post by ywatanabe
Kenneth,

Thanks again for detailed reply to my queries.

Your welcome.

Quote:

...

I am also going to play some of the PBBG out there to get a feel for requirments, and I probably should write one.


One of the links I gave you was the source to an open source PBBG. Just in case you missed it:
http://sourceforge.net/projects/blacknova

Quote:

I am still not quite sure how a user who is looking at a page (static) gets the updated world when another modified it... without some sort of polling. Maybe I just don't understand the types of games written in PBBGs. Say, if I were to write a chess game, unless I refresh the browser (to make a HTTP request), I am staring at the stale world data.

Most PBBGs do require you to refresh the browser to get updated data. ;)

They aren't usually games like chess where you'd care about rapid updates of information. They are normally games with hour long 'ticks' which update all the game information periodically. So the user tends to do the following:
log in
use some forms to issue orders (e.g. build, send messages, join an alliance, send armies to steal land)
log out
Repeat in 8-24 hours.


Those that don't, use AJAX or Reverse AJAX.

AJAX could result in polling for information. I don't know why I didn't make that clear in the other post. I'm stupid like that sometimes.

But, Reverse AJAX would not (except at a very low level e.g. OS level). And Reverse AJAX makes more sense for a web-game where information needs regular updating.

Quote:

Anyway, I have lots of readings/researches. Hopefully, it will come clear gradually.

Thanks,
-y


Best of luck finding what your looking for!

Share this post


Link to post
Share on other sites
HI everyone,

I'm very interested in what you are discussing about, I think your idea to build a framework for webgame online is really GREAT!!

I've created a multiplayer web-game on my own and it run quite well but there're so many problems to be dealt with to fully develop this.

You're welcome to take a look and please give me some advice.

Here is the link: http://yugiohnetwork.com

Share this post


Link to post
Share on other sites
Hi thethanghn,

I just looked at your site quickly and looks like you have build a ton of features there. All by yourself? Cool! I don't plya Yugio (what a shame, I am Japanese and grew up there and it was on Shonen Jump magazine... I was just leaving Japan when Yugio started so never got into..)

Anyway...

Yeah, I've been continueing my research on this. I learned what Reverse AJAX is and especially Comet (slow loading) technique that web-game devs can use to build more real-time game.

But my main focus is to build a tool that help build games... not game itself. Here is what I see so far

A web-based games can be broken down to these components:

a. User account management service
b. User scoreboard service
c. Match making service (for multiplayer)
d. Data storage service "P" part of PBBGs
e. Business logic service (the actual game rules and logics)
f. Presentation layer (views, shapes, pages, animations, sounds etc.)

What game developer want to spend most of time is in 'e' and 'f', I think.
'a' is boring but hard and users may have more registance (the feeling you have when you have to provide your name, password, etc to just use a service)

'b' and 'c' might be specific to games, but I think it can be abstracted. Like your Duel system, its 1-on-1, right? For some games, its 2x2 (say, veritual tennis). Some are "free-for-all" up upper limit. And multiplayer team based ones. I think we can support most of these.

'd' is also boring. I just want to "save" data and move on.

So, what if a framework takes care of all of these...?

[Framework]
a. User account management service
b. User scoreboard service
c. Match making service (for multiplayer)
d. Data storage service "P" part of PBBGs

[Your Game]
And you can implement the following at your web site anyway you want.
e. Business logic service (the actual game rules and logics)
f. Presentation layer (views, shapes, pages, animations, sounds etc.)

Obviuosly, there has to be a communication between [Framework] and [Your Game]. If we restrict the communication between these two to HTTP, then many poeple will be able to write games. (I wouid also like to have TCP protocol but that's for later)

That's what I got in my head so far.


Share this post


Link to post
Share on other sites
A framework that takes care of all of that would be good. :)

Although, I think d. may not be possible. To build an efficient database requires too much 'game specific' information...but if you could do it, it would rock.

Share this post


Link to post
Share on other sites
Kenneth,

Yeah, I just did a quick design write up to discover what it would take to build a simple 2-player tic-tac-toe game (sort of mental exercise to handle signing up, match making, game setup, game start, game update, game ending, recording result, etc. using a simple web-based game with ajax/comet).

It is becoming clear to me that abstracting "storage" layer (and above) is just not going to be feasible. Maybe I can serve certain type of games, but creating a virtual database using physical database (while keeping performance reasonable, as you pointed out) is not trivial.

I am gradually shifting from concepts to design/implementation, and hitting lots of issues.

Scoreboard service, which already have lots of variations, is probably where I can realistically stop. I still think SSO, user account management, matchmaking are doabine.

thanks for keeping an eye on this thread!

-y

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Aryndon
      Project Redemption is an semi-fantasy RPG with a linear story and an elaborate combat system.
      We are building in Unity and are currently looking animators and artists.
      What we are looking for
      -Someone who is okay with split revenue/profits when finished
      -Collaborate with others in the team. Do you have an idea/thought on what should be included? Tell us!
      -Someone who wants to work with people that are passionate about this project
      If you are interested. Please message me and I will get back to you as soon as possible! Or add me on Discord AJ#6664
    • By Aggrojag
      Hello!
      I'm working on a game that is a narrative driven dark comedy with some small aspects of platforming and puzzle solving. The project is rather small as well. It touches on topics such as suicide, mental illness, family, corruption, free-will, and redemption.
      This project is exercise in polish, this means some experimentation will be needed along with some reworking of assets as they're provided.
      This will be a revshare model.
      First, I'm looking for a 2D sprite artist, not pixelated, that can compliment the style of the attached images, and be similar to the temporary character.
      We are looking to bring on a SFX designer at this time. Full list of required SFX will be available upon request, as well as a build with all elements related to sound implemented in some form (many SFXs pulled from the web for now). Will likely require some field recording, and some pretty strange SFX for when things get weird. I imagine a good portion of these will be quite fun to create.
      Lastly, I'm looking for a male voice actor, English should be your primary language. There will be at minimum two characters that will need to be brought to life through vocals. The first voice is similar to Marvin from Hitchhiker's Guide to the Galaxy. A reference for the second voice would be a mix of Ren (Ren & Stimpy), and Android 21 (DragonBallFighterZ). Due to formatting, I'm not including YouTube links in the post, sorry.
       
      WIP Scene with our custom shaders attached (platforms are lazily placed, as this was an asset test):

      A scene with dynamic lighting and temp character:

       
      Unshaded asset:

      If you made it to the bottom, thank you, and I look forward to hearing from you.
    • By SickTwistGames
      Ok, firstly, Hi.
       
      This is my first post on this forum. I am an Indie Dev making my first game so bear with me when I say dumb stuff, I'm on a huge learning curve.
       
      My first question is about inventory systems for unity. I am trying to make a survival type game with crafting. I have purchased Inventory manager pro by devdog from the unity asset store and it seems like a pretty powerful assett but for an intermediate coder its a little tough to use.  I'm beginning to wonder if it was the right purchase.
      So my question is.... does anyone have any experience of inventory plugins / systems for unity and can anyone reccomend a system to me?
      It needs to have the following: Loot system, crafting system, character sheet, blueprint system,  character stats system. Ideally with as little coding as possible.
       
      Thanks
    • By ethancodes
      I've got a bug with my brick breaker style game. The bricks move down one line at a time ever 1.5 seconds. What appears to be happening is occasionally the ball will be just about to hit the brick when the brick moves down a line, and now the ball is behind it. I'm not sure how to fix this. I have two ideas but I'm not sure of implementation. 1 solution would be to check where they were and where they are going to be before rendering the frame. Then if they crossed paths, then register the brick as hit. Solution 2 would be change how the bricks move. I could maybe slide them down line by line, instead of a jump down. I'm not sure of this will fix the issue or not. Any ideas?
    • By Pixeye
      I wrote an extension for unity inspector that allows to group/fold variables. 
      Available on github  , cheers!

       
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!