[WIP] Multiplayer Galactic War Campaign

Discussion in 'Work-In-Progress Mods' started by johnjoemcbob, May 12, 2016.

  1. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Aims to extend the current Galactic War campaign mode and allow for multiple human players to compete against each other. This project consists of two parts; the PA Mod and the supporting Campaign Application.


    Planetary Annihilation Mod
    Players compete in the normal skirmish matches within Planetary Annihilation; with this mod changing the statistics of each player based on the current state of their campaign.

    It should also be pretty easy to allow this campaign mod to load and use pre-existing mod packs containing new units.

    Development Progress: 90% (working, minor bugs)


    Campaign Application
    A standalone application to support the in-game mod, this aspect is responsible for allowing players to progress through the overarching campaign. Allowing players to take turns moving through the galaxy map and perform campaign actions. The final campaign design is in no way set in stone, but the current idea is to allow for some battles which only contain some of the full number of campaign players (i.e. if two factions were fighting on the border of one faction's area of influence, only those two players would be in the match)

    My background is in C++/C# game development so I'm creating the standalone application in the Otter2D (SFML based) game framework. The application will be networked to allow each player to input their turn actions before launching Planetary Annihilation. When they choose to fight for control of a system, the application describes what type of system to load, & outputs the current state of each player - i.e. what cards they have unlocked & applied - to the mod.

    Development Progress: 75% (working, few features left to implement)


    Latest Video


    I'll try to update this whenever I make progress
    Please reply with any suggestions/criticisms, cheers!

    The mod is open source on Github.
    Last edited: June 3, 2016
    Nicb1, stuart98, elodea and 6 others like this.
  2. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    Sounds impressive.

    I am wondering about that standalone application however. My first idea would be to build a server based application that handles the campaign data, but put all the UI into PA via a UI mod. The UI can talk to the campaign server via json webservices.
    stuart98 and mwreynolds like this.
  3. mikeyh

    mikeyh Post Master General

    Messages:
    1,882
    Likes Received:
    1,535
    Can you please add some details about how the multiplayer aspect would work. eg
    • 1v1, 2v2, etc
    • same players for each map in the campaign?
    • or match making where different players per map
    stuart98 likes this.
  4. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Thanks for the feedback

    cola_colin:
    My background is in C++/C# game development so I'm creating the standalone application in the Otter2D (SFML based) game framework. You are pretty spot on there, the app outputs the changes to each player's unit listings and stats as .json files whenever a battle starts. Due to me having little experience with anything web-based, my current idea is to simply have the app required by all players & have this be networked. This should mean that each player's app instance will output the correct clientside UI information, while the host outputs the major unit statistic changes.

    mikeyh:
    If I'm understanding you correctly, you mean; will every player in the campaign be involved in every skirmish, or will there be allowances for only some players fighting in some battles (i.e. if two factions were fighting on the border of one faction's area of influence)?

    The short answer to this is; I'm not sure. At this stage the campaign doesn't have much logic, mostly just foundation for moving units & adding cards (similar to those unlocks in Galactic War) to players. My main idea is to allow for battles with only some players involved because it makes more sense for a typical territorial control campaign. However because I'm personally developing this for myself & my friends, and we are not very hardcore players, I think it could be better for us if all were involved in each battle. I have a few ideas about how to make this balanced but I won't really know until I get there. I'm open to feedback on this aspect especially.

    I imagine I'll also need help balancing the research card upgrades when I get to that stage. My idea at the moment is to copy those from the original Galactic War to begin with, but I'm not sure how appropriate these will be for player vs. player.

    Hope this clears things up!
    stuart98 and cola_colin like this.
  5. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    A more PA-UI-like apporach would work the same way as PA Stats basically:
    - You have one game master server whereever you want. It offers webservices that talk json
    - The UI in the game uses jquery ajax to talk those webservices.

    Advantages are:
    - The server can be anywhere
    - Webservices on port 80 are really firewall friendly
    - You can put 100% of this onto PAMM and run a server somewhere that handles the communication for the mod.
    - Platform independent out of the box

    That architecture is actually the same I used when I made the 1v1 matchmaking mod. I had a simple webservice that allowed the UIs of the players to talk to each other.

    I don't want to push any technology onto you, but this would be sort of more the "PA UI modding way" of doing things, using coherent to the fullest, so just explaining that. If you want to get more into Web-Development PA modding is a fun way for sure^^

    If not I am sure you are well versed with that 2D game framework as well, no doubt you'll make a great mod with that as well.

    EDIT:
    Random probably crazy idea: Use ubers chat server to communicate between the clients via hidden PMs or the like. That way you theoretically could make a mod that is UI only with no server at all. At least no server except ubers xmpp server that is there already. Obviously the xmpp would only be for communication, one of the clients (or all of them) would manage the campaign data.
    Last edited: May 12, 2016
    stuart98 and cptconundrum like this.
  6. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    That does sound like it would be a much better idea! Easier for players to interact with definitely

    Unfortunately I don't really have much time to work on this, I'm giving myself the next two weeks to get it in a working state. Web development does seem like the way to go, but it would take much longer for me personally to learn it & finish the mod

    My goal with this is really just to satisfy my curiosity & have sometime fun to play, but I'm happy for others to continue with it in the future

    The whole thing is opensource on GitHub, though I can't post a link here (github/johnjoemcbob/PA_MultiplayerGalacticWar)

    Thanks for the advice!
  7. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    I'll be curious what you'll do either way.
    Also edited in the link to Github in the OP
    stuart98 likes this.
  8. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Cheers!
    stuart98 likes this.
  9. lokiCML

    lokiCML Post Master General

    Messages:
    1,973
    Likes Received:
    953
    Impressive, I'll be interested in seeing the result.:)

    What licenses it under? Because I see no license file.
    stuart98 likes this.
  10. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Cheers!

    Added it to the repository now

    "
    The MIT License (MIT)
    Copyright (c) 2016 johnjoemcbob
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    "
    stuart98 and lokiCML like this.
  11. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    New video, networked campaign clients:



    Done:
    I have made good progress with networking the standalone campaign application clients, who can now take turns at moving around the map and declaring war (i.e. starting battles). As I mentioned before; once a battle is started the upgrades will be output back in to Planetary Annihilation with some instructions on which system to load.


    Still To Do:
    • I still have to make a few minor changes to the card rewards within the campaign app, which will be given to the victor at the end of battles.

    • I need to add some more functionality to dynamically disable units per player until they are unlocked, as for the moment these are just hard-coded for testing purposes.

    • I have some bugs within the game with the new units not having proper strategic icons (among other things), which I may need the help of someone more experienced with PA to help fix.

    (These are just the very basics to get the whole thing working coherently, I have some other plans if I continue after that)


    Apologies for the lack of updates, I was in interview mode for a while there
    Feedback is welcome :)
    Last edited: June 3, 2016
    Nicb1, tunsel11, mwreynolds and 6 others like this.
  12. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    Best thing I ever expected to eventually be a thing. You have my blessings.

    Also, please will Coop be a thing? Team versus would be nice, but I would very much specifically just like 2 of us vs the AI in multiple progressive tech matches.
  13. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Cheers!

    Oh good idea, no idea why I didn't consider this before. I'll certainly have a look at doing that if I have time!
  14. Heizmeister

    Heizmeister Member

    Messages:
    73
    Likes Received:
    24
    I really like your modding idea and look forward to seeing your progress :)
    Last edited: June 5, 2016
  15. ordinarypi

    ordinarypi Member

    Messages:
    37
    Likes Received:
    25
    inb4 everyone goes BACON commander
  16. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    To be fair, that is a balance issue. There can be a separate balance overhaul for that. Or, alternatively, an agreement not to. Or, an agreement to use it, just so everyone knows.
  17. ordinarypi

    ordinarypi Member

    Messages:
    37
    Likes Received:
    25
    Any updates on this?
  18. johnjoemcbob

    johnjoemcbob Member

    Messages:
    9
    Likes Received:
    28
    Progress is slow at the moment sadly because I'm looking for a job, but I haven't abandoned this

    Should have more to show soon :)
    FSN1977 likes this.
  19. ordinarypi

    ordinarypi Member

    Messages:
    37
    Likes Received:
    25
    ah ok, good to here it's not gone.
    johnjoemcbob likes this.
  20. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    Is there any more progress reports on this, or can I cannibalize this to make a separate Coop-based one? P.S. Happy New Year, should you read this.

Share This Page