/    Sign up×
Community /Pin to ProfileBookmark

New Massively Multiplayer Browser Game; Technical Advice Needed

Dear Game Developers,

My friend and I are about to launch a new “Massively Multiplayer Browser Game” to be released in June/July 2009. It will be a fantasy-style turn-based military strategy game akin to Warhammer or Heroes of Might and Magic.
Right now, we are writing the business plan and are stuck with the technical requirements of the game. My friend has a background in business studies and I in media technology. Unfortunately, I do not know much about programming, in particular not about web development.
From our research we learnt that PHP + MySQL is a powerful combination for browser games, yet we do not know exactly what the limitations are. This is where you guys hopefully come into play.

In the course of the next days we have to agree on a programming/scripting language in which our game will be coded. Here is a list of the core requirements for the game play and other features:

[B]Game play:[/B]

  • The game is turn-based and game play is, in its fundamentals, similar to the award winning browser game “Weewar” ([url]www.weewar.com[/url])

  • Each turn lasts a maximum of 3 minutes, featuring a timer next to the battle field

  • Every match is played on a 960×720 pixel battle field that is made up of 24 (width) x 18 (height) quadrants

  • Every game starts with the formation phase in which the players place their units one after another in a limited zone of the battle field

  • The formation phase must support dragging and dropping of units onto the quadrants of the battle field

  • The military units should have some minimalistic animation when they attack, are attacked and when they are idle

  • Moving the military units across the battle field does not involve animation, i.e. a unit is moved/”beamed” directly to the target location and does not walk there

  • There have to be various Mouse-Over effects like:
    o highlighting the quadrants of a battle field where the mouse cursor is currently placed
    o Switching the mouse cursor symbol depending on where it is placed (e.g. switching it to a sword symbol when it is placed above an enemy unit within the attack range)

  • The action radius of a selected unit must be displayed by coloring the quadrants within reach and shadowing all others

  • The prototype features 1v1 and 2v2 games

  • There will be a ladder system for the 1v1 games

  • The ladder games are initiated very similar to Battle.net games, i.e. players can not choose their opponents freely, but rather are assigned to a ladder game automatically. More precisely, a player only has to click on the link “Play Ladder Game” on the website and is then automatically forwarded to a game lobby with a opponent that the system has searched previously based on some –as of now unknown- criteria
  • [B]The “Army Composer”:[/B]

  • Players have to create an army before entering a game. Therefore, we need to implement an “Army Composer” which lets players assemble an army for various sizes, like 1000, 2000 or 3000 points (each military unit has a point value).

  • The “Army Composer” is an online module accessible via a link on the website and not an offline software module for download

  • The “Army Composer” must support dragging and dropping of military units

  • The “Army Composer” must provide the opportunity for automatically creating an army. This is especially helpful for beginners who quickly want to get started, but do not know how a good and balanced army should look like

    You’d probably want to download the demo version of the Armybuilder 3.1 at Wolflair.com ([url]http://www.wolflair.com/rightframe.php?context=army_builder&page=downloads[/url]) to get a better idea of what we want to implement in our website.
  • I believe these are the core requirements which primarily determine what programming language is most appropriate for the game.

    Do you think PHP + MySQL is sufficient for our purposes?

    If not, what do you consider the best programming/scripting language for our game?

    Please note that we try to avoid the need for a plugin, like Flash or Java. We would only reconsider our standpoint if you tell us that there is no way around using one.

    If you post technical advice in this thread, please ensure that you make qualified statements. It would be best if you had some experience with programming browser-based games.
    We might also be interested in recruiting a technical advisor for the development of our game since this project will become very huge.

    We are excited to read your suggestions. Your help is much appreciated!

    Best regards,

    Amir & Julian

    to post a comment
    PHP

    10 Comments(s)

    Copy linkTweet thisAlerts:
    @MindzaiApr 14.2009 — PHP + MySQL (or another DBMS such as PostgreSQL) would be a good choice, however you would probably also benefit from using a good javascript library such as jQuery (unless you have the skills to write your own custom library). I would guess alot of the client server transactions could be done asynchronously via AJAX which would enhance the user experience no end compared to constant browser refreshes, and jQuery (and other libraries like it) make this sort of thing easy, as well as manipulating the DOM which is likely something else you will want to do.

    Just be aware with PHP that it is an easy language. This is good and bad. It's easy to write code, but it's also very easy to write [B]bad[/B] code, and bad code in a web application like this can be very dangerous. If you are planning to write this yourself as a beginner I would not imagine your deadline is realistic.
    Copy linkTweet thisAlerts:
    @JulianTauthorApr 14.2009 — PHP + MySQL (or another DBMS such as PostgreSQL) would be a good choice, however you would probably also benefit from using a good javascript library such as jQuery (unless you have the skills to write your own custom library). I would guess alot of the client server transactions could be done asynchronously via AJAX which would enhance the user experience no end compared to constant browser refreshes, and jQuery (and other libraries like it) make this sort of thing easy, as well as manipulating the DOM which is likely something else you will want to do.

    Just be aware with PHP that it is an easy language. This is good and bad. It's easy to write code, but it's also very easy to write [B]bad[/B] code, and bad code in a web application like this can be very dangerous. If you are planning to write this yourself as a beginner I would not imagine your deadline is realistic.[/QUOTE]


    Hi Mindzai!

    Thanks for your fast response. We won't have anything to do with the actual programming. This will be outsourced to experts who know PHP, MYSQL and whatever else is needed inside out. Bad code would be the last thing we want to struggle with.

    So you are saying that PHP + MySQL always requires the whole page to reload whenever the user makes an action? Only Ajax is able to reload subsets of the current page?

    Why exactely would you want to add JavaScript? For better interactivity (Mouse-Over effects, animation etc.)?

    We are reluctant to do this, because not everybody has it enabled in his browser and the JavaScript code might have compatibility issues with different browsers. But if absolutely necessary, JavaScript would be ok.
    Copy linkTweet thisAlerts:
    @QuidamApr 15.2009 — Btw, AJAX = Asynchronous [B]JavaScript[/B] and XML.

    So if you plan on not using javascript, you cannot use AJAX either.

    That leaves you with a server-side language such as PHP and you must reload the pages when you make a change.
    Copy linkTweet thisAlerts:
    @JulianTauthorApr 15.2009 — Btw, AJAX = Asynchronous [B]JavaScript[/B] and XML.

    So if you plan on not using javascript, you cannot use AJAX either.

    That leaves you with a server-side language such as PHP and you must reload the pages when you make a change.[/QUOTE]


    Hi Quidam,

    makes sense what you write.

    Anyway, I read about Server-Side JavaScript. Would that be an option? Does this require the user to have JavaScript enabled in their browser?

    Thanks!
    Copy linkTweet thisAlerts:
    @MindzaiApr 15.2009 — AJAX requires the user to have javascript enabled their end.

    There are a couple of points about javascript which may help you.

    Firstly any decent programmer will be able to make the application degradeable, ie if a user has javascript enabled they get all the fancy AJAX features, if they don't they still get a working app, albeit less 'fancy' and with more page reloading.

    Secondly, these days expecting javascript to be enabled is not necessarily the big deal it once was, especially on a site such as yours will be where interactivity is paramount. So much of the web these days utilises javascript that it has moved (and is still moving) from a slightly frowned upon outsider to a core component of the modern web. Because of this, you will find more and more people have javascript support enabled anyway, and lots of the ones that dont only have it disabled because they are on an old mobile device or a work network for example, and are presumably not going to be playing your game anyway.
    Copy linkTweet thisAlerts:
    @JulianTauthorApr 16.2009 — AJAX requires the user to have javascript enabled their end.

    There are a couple of points about javascript which may help you.

    Firstly any decent programmer will be able to make the application degradeable, ie if a user has javascript enabled they get all the fancy AJAX features, if they don't they still get a working app, albeit less 'fancy' and with more page reloading.

    Secondly, these days expecting javascript to be enabled is not necessarily the big deal it once was, especially on a site such as yours will be where interactivity is paramount. So much of the web these days utilises javascript that it has moved (and is still moving) from a slightly frowned upon outsider to a core component of the modern web. Because of this, you will find more and more people have javascript support enabled anyway, and lots of the ones that dont only have it disabled because they are on an old mobile device or a work network for example, and are presumably not going to be playing your game anyway.[/QUOTE]


    I guess you are right. Most of our target audience probably has JavaScript enabled anyway, so using JavaScript would be the first compromise I am willing to make.

    Again, PHP + MySQL + AJAX with a good JavaScript framework would be a good way to go?
    Copy linkTweet thisAlerts:
    @JulianTauthorApr 20.2009 — Hi again!

    I have a question left:

    Assume we want to put more animation into the game as previously intended.

    Example: An archer shooting an arrow across the battlefield to hit an enemy unit. Is it possible to animate the whole path of the arrow in fluent motion with AJAX? Or is that a domain of Flash games?

    Best,

    JulianT
    Copy linkTweet thisAlerts:
    @MindzaiApr 20.2009 — No ajax would be required for that, just javascript, and yes it would be possible, but if you are going down the road of animating the game to any great extent you might be better thinking about flash. Javascript is pretty slow as languages go, and when you get into the realm of animating with it beyone the point of simple transitions you might be putting more strain than necessary on your user's computers, with the result that some may not cope well. Actionscript (the language currently employed by flash) is very good these days, and can easily be used to communicate with a language such as PHP in order to manage databases etc.
    Copy linkTweet thisAlerts:
    @JulianTauthorApr 20.2009 — Thank Mindzai, that's exactly what I wanted to know! :-)
    Copy linkTweet thisAlerts:
    @SyCoApr 20.2009 — If it's a simple as you describe, you [I]could [/I]use ajax to swap a static image for an animated GIF.

    If you do use javascript please consider using accessible javascript so visually impaired internet users can also enjoy your game.
    ×

    Success!

    Help @JulianT spread the word by sharing this article on Twitter...

    Tweet This
    Sign in
    Forgot password?
    Sign in with TwitchSign in with GithubCreate Account
    about: ({
    version: 0.1.9 BETA 5.5,
    whats_new: community page,
    up_next: more Davinci•003 tasks,
    coming_soon: events calendar,
    social: @webDeveloperHQ
    });

    legal: ({
    terms: of use,
    privacy: policy
    });
    changelog: (
    version: 0.1.9,
    notes: added community page

    version: 0.1.8,
    notes: added Davinci•003

    version: 0.1.7,
    notes: upvote answers to bounties

    version: 0.1.6,
    notes: article editor refresh
    )...
    recent_tips: (
    tipper: @Yussuf4331,
    tipped: article
    amount: 1000 SATS,

    tipper: @darkwebsites540,
    tipped: article
    amount: 10 SATS,

    tipper: @Samric24,
    tipped: article
    amount: 1000 SATS,
    )...