Making games that are moddable

Posted by mazimadu on Jan. 28, 2016, 8:35 p.m.

After watching Super Bunny Hops article on modding and watching MXR's Fallout (Previously Skyrim) Mod collection, I couldn't help but think about the possibilities modular games bring to the table. I recall playing games like Cortex command, which had interesting albeit flawed gameplay improved significantly after I added Star Wars and Metal Slug weapons. I Even remembered the Mario Cart and Metroid Levels found in Team Fortress 2 and Terraria respectively. With the new version of GMS available I actually thought of toying around with the idea of making a platformer game with customizable characters, stats and levels. Then realized just how hard it would be.

I really liked the idea for mods mainly because I like to see what people make with the game. But making those assets/objects accessible is something I just cant wrap my head around. I know on the PC you have to soft code game assets into files and then load them at run time. But what if you are making a game for android? I know that for android game files are stored in a directory, But that would mean that the player would have to have a convenient means of accessing those files and changing them as they fit.

I would love to make a simple modable game that allows for loading custom levels and to change the skins of the players, but since I am now using Spine files as my sprites I am not so sure. Spine allows me to compile all the sprites I need for a character into a single object, allowing me to manage the states of the object and match them to the corresponding animation. Having better control over my game assets leads to better coding and just makes my life easier.

As for levels, I would like to know what level editors GMS supports. It would be cool if it would allow for XML based levels that load custom tilesets and can determine corresponding object placement. I recall back in the day tiled was the best choice for this, but GM has changed and I don't want to have to handle too much string parsing.

I will keep trying to figure this out, but till then I will be watching the MXR mods for inspiration. I like seeing what people do to the games they play. It can be fun.

Comments

Treebasher 8 years, 3 months ago

I agree. Plus, the modding communities behind games are basically what keeps them alive for so long in many cases.

There use to be a major push for "security", especially in Game Maker games (because it was honestly so easy to mess with them). Granted, this was coupled with a desire for speed, and with a flood of kids trying to make knockoff online fan games. But still, what if instead of obsofocating code and resources, we ran the opposite direction and opened up our games like so many major enterprises nowadays do?

I can't speak to the specific systems that you are using in your games right now. But on mobile (at least on Android, as I have looked into it and know that Apple has much stricter requirements/rules on this sort of stuff), I would say that one option would be to go as far as to build in the mod platform and community into the actual app. In other words, literally provide a portal to download and install mods from the menu.

DesertFox 8 years, 3 months ago

I've used Tiled before, wrote a parser for an OpenGL engine for iOS I made while Cocos2D was still terrible :3

mazimadu 8 years, 3 months ago

Quote: Treebasher
But still, what if instead of obsofocating code and resources, we ran the opposite direction and opened up our games like so many major enterprises nowadays do

I can tell you as a fact that most enterprises would rather not open up their games to the the community for various reasons. Games that rely on cheap DLC and yearly releases would rather lockdown the code in order to prevent this form happening. I recall that COD4 removing custom servers for the PC stirred up a lot of trouble since they wanted to control who played their game and how.

Quote: SpectreNectar
If you're serious about this though, why don't you make your own? You could start a modding trend in indie games and everyone would use your editor.
Unless you know what you are doing level editors can be a lot of work. I do recommend using QT to create a cross platform UI bit the hard part is figuring out how to load/unload the assets without breaking the game. I also found out that GameMaker cannot dynamically load Spine/json skeleton files. What a bummer

mazimadu 8 years, 3 months ago

I guess the next best option is using the extension system of gamemaker. Parsing XML is a pretty simple thing to do and I can easily find C++/Java libraries to do that. I am doing C++ development with QT right now so I might as well explore that option. That is what the extension system is there for anyway.

Treebasher 8 years, 3 months ago

Quote: mazimadu
I can tell you as a fact that most enterprises would rather not open up their games to the the community for various reasons. Games that rely on cheap DLC and yearly releases would rather lockdown the code in order to prevent this form happening. I recall that COD4 removing custom servers for the PC stirred up a lot of trouble since they wanted to control who played their game and how.
This is true for many triple-A games, but think about the likes of Minecraft or Terraria. I realize that the nature of those games promotes modding in their essence, but it is an interesting concept to completely open up the game's platform and allow that community to synthesize.

I also know for a fact that the games which try to lock up their content tightly only end up promoting underground "black-modder/hacker" communities. That, if anything, ends up pushing away "legal" players in the long run.

Just because a platform is open does not mean that official expansions and DLC cannot be offered, possibly even for a price if money is the final word for the developer, through the same system that allows for other players to express their creativity and love for the game. If anything, I would hope that the developer's mods would be the best mods available for the game.