Modding Requests from SupCom Modders

Discussion in 'Planetary Annihilation General Discussion' started by KNight, August 19, 2012.

  1. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Yup, the blocky and simplistic TA units -- which it seems that PA is trying to aim for more than the complicated ones from SupCom. (That said, TA units also would often omit hidden surfaces)

    If textures are not included (or rather, not needed) in each unit, I think that should also slim down both bounds, since from what I recall for TA, each unit would store its own textures, but someone else can clarify for me.

    If we're including hosting PA games on dedicated servers, I think that removes a lot of questions/problems with in-game mod loading... and in general, if players want to try out a handful of new units, I think this can be done without any significant delay for connecting in the general case.

    I think with a proper cache system (e.g., some use of SHA256 checksums) players who play on modded servers would have less and less to download as the played on different servers, presuming that popular units would be present across different games.

    And again, none of this removes the option (and sometimes, necessity) of downloading a mod through a website or otherwise obtaining it through alternate out-of-game channels.
  2. KNight

    KNight Post Master General

    Messages:
    7,681
    Likes Received:
    3,268
    Don't get caught up in the style, it's simplistic overall, but don't confused that with the models being nothing more than 5-6 cubes mashed together.

    Mike
  3. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Hey man, no need for the swipe against TA, there are plenty of TA units that are way more complicated than 5-6 cubes mashed together. :!:

    That said, I agree that the general complexity of models is going to be higher than TA but [possibly/probably] lower than SupCom.

    Beyond this, I would be interested in an estimate of BlackOps compressed assets minus textures.
  4. DeadMG

    DeadMG Member

    Messages:
    217
    Likes Received:
    8
    What I would say more than the geometry complexity is the solid-colour textures, which sure would save a lot of space when compressed appropriately.
  5. KNight

    KNight Post Master General

    Messages:
    7,681
    Likes Received:
    3,268
    Based on what we've seen so far they aren't quite solid colors, they highlighted all the edges and there is a bit of "granulation noise" to give the models a bit of texture.

    Mike
  6. Raevn

    Raevn Moderator Alumni

    Messages:
    4,226
    Likes Received:
    4,324
    SC:TA was around 230 units (+projectiles, sounds and a bunch of other things), and that was only 30MB uncompressed.
  7. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Nice!

    What about unit details? Were they the same meshes as from TA, or were they "upgraded" ?
  8. Raevn

    Raevn Moderator Alumni

    Messages:
    4,226
    Likes Received:
    4,324
    They started with the same meshes, but there were a lot of missing faces on them that had to be added back, so they ended up being about 1.5-2x the amount of faces of the original units.
  9. renrutal

    renrutal Member

    Messages:
    45
    Likes Received:
    6
    About modding, I'm envisioning the following structure:

    The player would execute a game manager/launcher app, like what we have in League of Legends and Blizzard recent games.

    The launcher would first update itself. On default settings, the launcher would then update its default game, its engine and assets, to the latest version. The default game is Planetary Annihilation.

    Notice that I refer to anything installed over the game engine as a game, I don't make any distinctions between PA and other Total Conversion Mods(this is a terms used in TA to refer to mods that change the game with completely new game assets, and barely makes any use of the original, if at all). Both games are First Class Citizens.

    Now lets say we have two games installed in the game manager/launcher:
    -Planetary Annihilation, always compatible with the latest version of the game engine.
    -"Really Cool Wargame", compatible with game engine v1.09.

    Yesterday we played both PA and RCW games, version v1.09. Today 1.10 was released.

    The launcher would update PA to v1.10. RCW is incompatible with v1.10. Should the players be blocked from playing RCW? No.

    My proposal is to keep multiple versions of the engine installed, something that Starcraft also does. Another reason for multiple engines are replays. You would be able to always watch a game replay independently of when it was recorded, be it in v1.0, or in v4.0.

    Another scenario, I have PA 1.10, and I want to install RCW. The launcher/game manager would download the game engine v1.09 and RCW.

    So the game manager can do many things, download game engines, games, game mods/mutators, maps/scenarios/game modes, units/unit packs, replays, AIs, UIs, scripts, anything from UberNet, third party or local repositories. It would be useful to be able to turn on/off these assets, if conflicts arraise.
  10. Raevn

    Raevn Moderator Alumni

    Messages:
    4,226
    Likes Received:
    4,324
    I see what you did there :)
  11. KNight

    KNight Post Master General

    Messages:
    7,681
    Likes Received:
    3,268
    Okay I got something new to add, Support for Melee Weapons.

    Now this doesn't mean I expect you guys to include Melee units into PA(unless you already planned to, then cool!)

    Bascially support for Melee Weapons would be a great boon to really help diversify the kinds of things modders could do. You could kinda do a workaround in the Moho Engine, but it wasn't very good.

    Mike
  12. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Yeah I never used melee units in TA, but TA had some modded 'melee' units too... however that worked. (I'm assuming low range weapons w/o SFX)
  13. neutrino

    neutrino low mass particle Uber Employee

    Messages:
    3,123
    Likes Received:
    2,687
    Someone here pointed out file i/o as being important. Unfortunately part of the design is going to have to be security. If we do auto distribution of mods from the server (for example not a promise) then the mods absolutely have to be sandboxed in a way that doesn't allow real file i/o.
  14. Raevn

    Raevn Moderator Alumni

    Messages:
    4,226
    Likes Received:
    4,324
    Definitely not full system I/O, but if there was a specific folder that mods could read/write to, (and maybe limit mods to their own sub-folder to prevent them messing with each other) that could be sufficient for many purposes.
  15. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Awesome! (Mostly -- I think the BlackOps people were looking for a native C/C++ API as well..)

    I'm glad to hear you guys are thinking of adopting a sandboxing (and hopefully, permissions-based) mechanism for managing mods.

    You could have some form of 'local-storage' as well (e.g. Google Chrome), rather than direct file-system I/O. That way mods could store some data locally etc..
  16. KNight

    KNight Post Master General

    Messages:
    7,681
    Likes Received:
    3,268
    I'm the only BlackOps Team Member here......

    Mike
  17. mrwonko

    mrwonko Member

    Messages:
    39
    Likes Received:
    0
    Ah, modding. Reason enough for me to register. So far I don't really see myself modding for this game, but if I were to, here's what I'd appreciate:

    I'm a little sad you're not using Lua anymore - I just love that language. Well, as long as there's some other script language I'll be happy, I suppose. As far as coding goes, anyway. While compiled languages like C++ may give modders some additional freedoms, they make having multiple mods at once much harder, more risky for users and need to be recompiled (and possibly partially recoded) for Linux and Mac. Why no love for Lua anyway?

    It would be nice if you could get a list of the active mods, for example to check if dependencies are satisfied or known incompatibilities exist. A mod could contain a file with some metadata, most importantly for this some unique ID and a version number, maybe a description and some author info for the users as well.

    As for modelling, we at least need specs of the formats. I won't pirate a commercial modelling tool, and I certainly won't spend hundreds of dollars on it, when I have the great Blender available for free. I can write an exporter myself if need be, but that at least requires knowledge of the formats.

    Also think about the future. What if someday the masterservers get shut down? There's LAN multiplayer, so that'll still work (and it might allow for direct IP connections), but ideally the protocols would be open and the game could be modded to allow for community servers.

    Well, that's all I can think of right now. Good luck with your Kickstarter and, given its almost inevitable success, with the game! :)
  18. coldboot

    coldboot Active Member

    Messages:
    447
    Likes Received:
    112
    This is absolutely critical. If it doesn't get done, barely anyone will actually play any but the most popular mods. It's what we've seen time and time again since Total Annihilation.

    If players can't do this easily, and know that other players are also not likely to go to the trouble, they won't bother themselves.
  19. coldboot

    coldboot Active Member

    Messages:
    447
    Likes Received:
    112
    Are you specifically worried about mods being able to write executable virus files to the hard drive that the user may come across later and curiously execute?

    Would you be able to avoid this problem by sandboxing any mod data inside of its own file that is not executable and has file headers that would prevent it from being interpreted as executable data by the OS or any program?
  20. ghargoil

    ghargoil New Member

    Messages:
    312
    Likes Received:
    8
    Sorry :oops: ... I thought there were more of you :oops:

    I don't know what they are going to pick, but if they are using a scripting language for modding, I hope it'll be either a subset of Python or a JavaScript-like language... both enjoy wide support, and I know from personal experience that Python is really easy to embed (something that Lua is known for having)... though I haven't worked with any JavaScript-like language embedding myself.

    Also, Python has a range of support for sandboxing... some built in, and others through third-party work.

    I don't know if IDs should be assigned by the author in this way.. I can see there being problems when people pick the 'same random number' for their ID.

    Honestly, it's probably going to be a tricky problem to fix... though, one I hope is addressed.

    I think with some creative work, it should be possible to employ cryptographic ideas to allow for a mod updating and authorship system as well.

    I would hope that they pick a common format for importing models/animations... either that, or, maybe as a stretch goal, incorporate a full modding IDE within the game. Okay, now I'm just fantasizing..

    Agreed... though, I'm assuming you can just connect to a dedicated server (or 'realm'?) directly.


    Limiting file operations to a specific folder is a good start, though any direct access can still lead to other issues... it doesn't have to be a virus, it can be buggy code... it can suck up all your available hard-drive space, etc..etc..

    I wouldn't mind some kinda virtual filesystem... or some kinda SQLite-ish localstorage database of some kind. I think that would be useful and nice.

    ---------

    In PA Options > Mods

    Players can configure some global defaults, e.g.: "Reserve X megabytes of space for all mods" (like 1024), or "Auto-Download and Enable Mods that comply with default permissions below" etc..

    And for default permissions, it could be something like:
    "New Units", "Memory Footprint < X megabytes" (e.g., 2) and so on ...

    I mean, this is just a sketch, but assuming there's a robust API, there's going to be a wide variety of different types of mods... ranging from new units to new factions to new commands to AI to game-wide features etc... and a well-thought-out permissions system is probably a good way to capture this. (Think of Android and installing apps)

    Also, unlike Android, you should be able to install a mod that asks for something like "Internet Access", and then choose to block it. Similar to Google Chrome, it would also be nice to specify which sites, if any, are accessible to a mod -- with the default of none. For instance, "None, Server Host (if any), community.steampowered.com, *.google.com. ..."

    Just some ideas.

    Sorry for the long post :(

Share This Page