Anyone make their game mod-able?

0 favourites
From the Asset Store
Easily generate many levels from a set of pre-built scenes (Construct 3 template)
  • hey just wondering if anyone has attempted to make their game mod-able (by players/community)...

    I suppose you could have a way to swap out sprites and sound effects... not sure about logic though.. maybe have the game read some sort of textfile? then you'd have to do parsing... maybe there's a simpler way..?

  • I have a plan to add a level-creation feature to my current multiplayer project. It's rather 'embryonic' and exists as more of a concept than something substantial at present....

    Edit: I'll be using JSON files to store the level data. Everything from the terrain layout to the placement of traps etc will be stored for transfer so a multiplayer game can be played on a unique layout. If it was easier to transfer images between nw.js exports then I would look into doing that as well for greater customisation.

  • I created some kind of banner/ad app which loads external images and URLs from a Textfile and I plan to add modding support to some extent for my next project.

    The manual mentions to use .AsJSON for dictionary or other objects to download/share a level or data with other players and let them import the JSON string or download it from a SQL database with a PHP file (AJAX GET/Post).

  • I've made a game with an online level creator, need some more tweaking, but works great.

    http://headbangames.com/swipey

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • If it was easier to transfer images between nw.js exports then I would look into doing that as well for greater customisation.

    what do you mean by transfer between exports? do you mean between multiple copies of the game...online multiplayer?

    The manual mentions to use .AsJSON for dictionary or other objects to download/share a level or data with other players and let them import the JSON string or download it from a SQL database with a PHP file (AJAX GET/Post).

    yeah, I was thinking along the lines of players creating their own kinds of units (top-down game) and giving them custom attributes, speed, sprite, sfx, attacks etc... they'd have to use an AI behavior I already have setup in the game (or a combo of such). Loading sprites would require editing the collision boxes... I wonder if there's a way to programmatically 'guess polygon shape'.

  • http://headbangames.com/swipey

    cool! have you done anything with player custom sprites or sprite sheets?

  • I was creating a C2 version of the open source game Relic Hunter Zero which read from JSON files character attributes which could be changed or added to. Reading from a file will be your best bet for sure, pair it with something like Firebase so there are hosted files that other players can load from and you are golden.

  • I had made 2 plugins rex_scenariojeditor and rex_scenariojengine. The editor plugin could export commands(script) as a JSON string, then executes it on engine plugin.

    So logic could be loaded at run-time in this case.

  • what do you mean by transfer between exports? do you mean between multiple copies of the game...online multiplayer?

    I'm aiming for a stand alone Steam export. I would like to be able to save or transmit an image (that the player loads into a game object) automatically from one game to another (both players on multiplayer, no server use). Unless I've missed something I don't think it's possible to save an image from nw.js or export an image as a data file using multiplayer. So to customise a game object the player would be required to place assets in a folder that nw.js can reference and upload from automatically (I think this is easily possible, load image from url) but sharing one of those assets between games is not - that's what I would like to do as well. Then a player could transmit the assets they created as well as the layout positional data. A bit of a ramble but I hope it makes sense....

  • >

    > http://headbangames.com/swipey

    >

    cool! have you done anything with player custom sprites or sprite sheets?

    I thought about maybe letting the player upload a custom sprite as one of the obstacles/pick-able bonus, but not sure I will, I did do it before though mostly for drawing apps.

    In Swipey I am taking a scale-to-fit screenshot of the layout for the level preview and sending it with the game when you post it, that sort of the same.

    My only advice is to use something like canvas or paster to show and store imported/runtime generated images, because firstly, you can have as many instances as you want, each with a different image (cached separately), if you use a sprite object you will need to add a bunch of empty frames up front and use different frames for different images, it would be better if you could add frames at runtime, but you can't

    Secondly canvas/paster is also better because you can redraw the image at a lower resolution and crop it if necessary before saving it, users don't really know what they're doing, they can import a 22 megapixel image, it might load up on the sprite ok, but getting this extremely large dataurl and storing it wouldn't be easy and would probably crash the user's browsers.

    If you need sprite sheeting for animations, I still recommend getting each frame with canvas/paster rescale it to a maximum reasonable size and then import each frame to a pre-made sprite objects with enough frames to cover your basics.

  • users don't really know what they're doing, they can import a 22 megapixel image, it might load up on the sprite ok, but getting this extremely large dataurl and storing it wouldn't be easy and would probably crash the user's browsers..

    good point! didn't even think of that.. I have not used Paster/Canvas before so I will have to look into it.. thanks!

  • So to customise a game object the player would be required to place assets in a folder that nw.js can reference and upload from automatically (I think this is easily possible, load image from url)

    could you also have an XML file that the player could modify read by NW?

    <NewEnemy1>

    <Health>400</Health>

    <Movement>raid</Movement>

    <Weapon>torpedo</Weapon>

    </NewEnemy1>

    also, I'm not talking about making the game moddable by beginners... they'd have to understand modding...

  • what about mod sharing? i.e. user X made a Star Wars mod out of my game (all units and sfx are from Star Wars) and shares it... so other players could try it.

  • Yes of course, once you save a file it doesn't really matter what you put in it, store xml, csv, or even export an array or a dictionary to a json string.

    You got all the tools you need to do it, some official some 3rd party.

  • could you also have an XML file that the player could modify read by NW?

    <NewEnemy1>

    <Health>400</Health>

    <Movement>raid</Movement>

    <Weapon>torpedo</Weapon>

    </NewEnemy1>

    also, I'm not talking about making the game moddable by beginners... they'd have to understand modding...

    I had always thought that I would want to secure the parameter data somehow, probably by saving a hash string along or inside the json file (I'm a fan of json at the moment), so I hadn't really considered granting people easy access to the package.nw files. By limiting what the player can change it prevents a player from creating impossibly immortal enemies etc. So mod-ing would be limited to graphics (sprite and tilemap images) and to the configuration of the layout tilemap as well, all supported from within the game.

    I'll have to think about other sorts of mod-ing (opening the package.nw and changing assets directly) - I don't think I would mind but I wouldn't try to make it easier than it is already.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)