Modding on a Sunday night: Part 1

Yesterday I talked about how I added some additional resources into the game.  Today I’m going to talk about modding the tech tree.

But first, I want to answer some questions I got from yesterday’s article.

First, the age old issue of multiplayer came up. If I mod what is on my machine, how does that affect multiplayer? The answer is, it doesn’t.  Our solution to this age old issue is, in hindsight, so obvious that I feel shame for our industry (and myself in particular but that’s just my default stance anyway…) for not having done this sooner: When you play multiplayer,the data all sides use is server-side – the data you have locally is irrelevant. So you can mod your game all you want without worrying about multiplayer.

Second, there is, at this stage, a significant issue with hard coding still that will need to get zapped as we go along.  Kingdom, Fallen, etc. should not be hard coded into the game.

image Third, gameplay itself will slowly migrate to Python 2.x  But it will be a gradual process. Early on, our modding will focus on adding and modifying Elemental. Later, I’ll walk you guys through how someone could use Elemental with Python to make a new game.  My goal (and this isn’t a promise because it depends on how long it takes to do) is to make a Temple of Apshai mod (a classic RPG) using Elemental and give out to people complete with source so people could see what I did.

Next…

The tech tree…

72,651 views 25 replies
Reply #1 Top

Any reason why Python 2.x as opposed to 3?

Reply #2 Top

I wanted to use Python 3 but its integration with Visual Studio C++ is not mature yet.

Reply #3 Top

Wow I thought I was the only person in the whole world who knew what Temple of Apshai was!

Long live Brian Hammerhand! I look forward to seeing the mod for that!

Reply #4 Top

How will multiplayer modding work? Will I be able to upload a certain mod to that server and it will then be usable in a multiplayer game?

So I assume that server also works as the mod distributing platform then?

Reply #5 Top

So Brad, are you said that if I wanted to, I could completely remake MoM inside Elemental?

Reply #6 Top

Later, I’ll walk you guys through how someone could use Elemental with Python to make a new game.  My goal (and this isn’t a promise because it depends on how long it takes to do) is to make a Temple of Apshai mod (a classic RPG) using Elemental and give out to people complete with source so people could see what I did.

That is Awesome news, Brad. You're the man :)

Question. Is that small pic on the side from the original "Temple of Apshai"?.

Reply #7 Top

You are just making my weekend, Brad! My plan is also to try out making different games. I think that my first one will try to imitate the Dungeons and Dragons 4.0 battle system (since so much of it is purely tactical and rulebook-based.) This modding system sounds like it is going to be a huge hit with both new and old modders, so I am totally ecstatic over this! I can't wait to hear more!

Reply #8 Top

So instead of asking what we will be able to mod .. 

What won't we be able to mod ? (The list should be shorter :D )

Reply #9 Top

When you play multiplayer,the data all sides use is server-side – the data you have locally is irrelevant. So you can mod your game all you want without worrying about multiplayer.
I know this has been covered before, but just to make sure the answer hasn't changed: where does the server-side data come from?  The host's PC? Stardock servers (i.e. vanilla data)?  I'm certain you don't intend to exclude mods from (non-ranked) multiplayer, but I just want to hear you explain how that doesn't conflict with what you just said :)

 

Anyhow, I'm excited to see how your pilot modding project goes along, let me know if I can be of any assistance.

 

As for tech trees, well you've got TechTree records and TechDef records.  Next. ... actually there's a lot of interesting stuff, like how it handles the TechBonus under TechDef (with and without the infinite flag), how multiple Prereq records under a TechDef work (looks like an OR right now, but what's Value?),  how the Veteren Troops tech actually allows the different training level (is it just hardcoded to the name for now?), etc.

Reply #10 Top

how the Veteren Troops tech actually allows the different training level (is it just hardcoded to the name for now?), etc.
Look in the CoreUnitQualityTypes file. All the trainings are there, and have a tech prereq listed.

Reply #11 Top

One thing that really determines how much you see custom maps and mods is how easy players can automatically get the files. I look at games like Warcraft 3 and Starcraft where custom maps are automatically downloaded on joining the server and see that they have a plethora of custom maps and people playing them. Most other games don't have this feature and even if the maps are readily available in some official archive it still means that no one plays them. Automatic downloading of mods is very important to how often mods actually get used!

Let's say I have tons of mods and I'm hosting a game. I've got lots of little gameplay mods that are simple XML files. I've got new custom dungeons, quests, and items, as well as the more expensive new units with new 3d models. I host a game.

Here's what I think would be the best option here when people join the game:

-People can join the game regardless of if they have any mods.

-A list of every mod activated can be seen with a single click. Clicking their description gives more information on the mod, author, homepage, etc.

-Elemental automatically checks the official mod database for these mods and downloads any with required client files (probably just art).

-Elemental then looks for any remaining mods at the address the host (me) decided to specify (i.e. ftp.personal-storage.com/elementalmods). This allows for way faster downloads than the host themselves could offer.

-Any necessary remaining mods ,maps or other content that aren't found elsewhere are uploaded from the host to players. Ideally p2p could be used with all the players in the game who currently have that file or part of it.

-Once everyone has all the required mods downloaded, the game can begin. Players can view the download progess with easy simple bars or %'s.

 

On another note, is the directory structure for these mods going to include them actually having their own directory? After playing a month or so I'm sure I'd have tons of random XML files all over the place from various mods if there weren't some sort of structure. Being able to delete a mod with a simple delete of the mod directory would be ideal.

Reply #12 Top

Scoutdog, thanks, I should have checked the other end of the association.

Reply #13 Top

Quoting Tourresh, reply 11
One thing that really determines how much you see custom maps and mods is how easy players can automatically get the files. I look at games like Warcraft 3 and Starcraft where custom maps are automatically downloaded on joining the server and see that they have a plethora of custom maps and people playing them. Most other games don't have this feature and even if the maps are readily available in some official archive it still means that no one plays them. Automatic downloading of mods is very important to how often mods actually get used!

This is a really good point.  At the very least, "approved" mods could be auto-downloaded.  The option to auto-download could be made just that--an option--and you could configure "what to download" parameters as well (i.e. white list/black list of certain modders, size, tags, etc.).  For example, on my netbook maybe I'll only want mods that just tweak the XML files: I don't want graphics-heavy mods.  On my main rig tied into my household SAN, I want everything available.  You get the idea.

Reply #14 Top

My 0.02$: It should be an option to download the mod, or not. Lets say, here is the option item:
"Download game modifications from host?
o Always
o Only when it's signed by Stardock*
o Ask
o Never"

* I understand that passing the whole responsibility of mod quality on Stardock's shoulders would be too extreme, so I propose that there could be some community based ranking system (CBRS) which would be connected to the Elemental system. In this CBRS people could rank and comment Elemental's mods. When particular mod is stable and reliable, system's admins would approve this mod. Of course, player should be informed that the CBRS's owners are not responsible for any damage caused by mods, and their approval is merely a guidance.

Reply #15 Top

I guess I'm not really clear on how this will work for gameplay mods.

Mods that change art are one thing, and don't really matter a lot. If my Sovereign looks normal and yours looks like Hello Kitty, the game plays the same way. But if I start a multiplayer game and I'm using a mod that adds things to the tech tree, and I want that mod to be active in the game I started up, is that going to be possible?

If so, I'm assuming it will just grab the needed data from me when you join the game.

Reply #16 Top

Quoting red1939, reply 14
My 0.02$: It should be an option to download the mod, or not.

Just a note..It's working like that in many FPS games. [Call of Duty games for example...]

Reply #17 Top

If the Temple of Apshai mod works out I'm curious as to whether anyone would try to do a Tomb of Horrors mod.

Reply #18 Top


  My goal (and this isn’t a promise because it depends on how long it takes to do) is to make a Temple of Apshai mod (a classic RPG) using Elemental and give out to people complete with source so people could see what I did.
Next…
The tech tree…

 

So, Brad - How about that Temple of Apshai... any chance? ;-)

Reply #19 Top

Have you been drawing power from my death shard!

>:(

Reply #20 Top

The necromantic powers in that one are strong.

Reply #21 Top

In regards to modding and MP, I'd suggest the following

 

The community will come up with house rules sooner or later, they do with every MP game: my suggestion is to allow for MP mod, and maybe even have a standard mod at some point- maybe after 6 months have the community pick a mod to be standard, and then mod the engine for the needs of that mod.

 

And yes, kingdom/fallen needs to not be hard coded.  At the very least, that hurts Krax being unable to choose between life/death shards (this needs to change)

 

 

Reply #22 Top

Is this thread even relevant any more?  I haven't actually looked at it, but it's clearly very, very necro'd.  It's a zombie apocalypse thread.

Reply #23 Top

Still looking forward to that pet project froggy boy
.

Reply #24 Top


  Later, I’ll walk you guys through how someone could use Elemental with Python to make a new game.

 

WAIT, WHAT?

Seriously? Holy...

Reply #25 Top

Quoting Lord, reply 23
Is this thread even relevant any more?  I haven't actually looked at it, but it's clearly very, very necro'd.  It's a zombie apocalypse thread.

 

Oh...

*walks away dejectedly*