So if I wanted, theoretically, to modify the mechanics of the game, how would I do that with "assets"? For example, if I wanted to add "magic" or something (like mana from diablo 2), and perhaps change the way "score" is calculated, is that part of an asset as well?
Do engines provide a DSL for making games? I guess that's my question. It seems like media assets only allow you to reskin Doom instead of making a new kind of game.
In iD games, there's a clean division between game-specific logic (which is usually in a separate DLL, haven't looked too closely at Doom3 yet), and framework/engine code.
On Quake 2, you could replace the DLL to switch between the regular game and capture the flag. An expansion with new mecanics could, theoretically, be done with only DLL code and new assets. You'd need to change the engine code only to add new kind of effects that it didn't support yet.
So yes, if you don't change any code, you'll only reskin Doom by creating new assets (it's usually called Total Conversion). If you want to add new game mechanics, you have to write some code.
The scripts are written a C++-like DSL, and are part of the assets. There's map scripts, weapon scripts, AI scripts etc. They process high-level triggers and events to handle the storyline, different behaviours, and so on.
So you could make a magical weapon writing just scripts, for example. But yes there is a limit in the flexibility, if you want to make a completely different kind of game you probably have to change the C++ classes as well...
ID has released the source code to idtech1-3 and it has done wonderful things for the open source company. Take a look at warsow, which is based on the idtech2 engine (engine used for quake II): http://www.warsow.net/
I'm not sure idtech4 is as suited for fast multiplayer gaming like the idtech2/3 engines were, but who knows what the open source community will come up with.
So if I wanted, theoretically, to modify the mechanics of the game, how would I do that with "assets"? For example, if I wanted to add "magic" or something (like mana from diablo 2), and perhaps change the way "score" is calculated, is that part of an asset as well?
Do engines provide a DSL for making games? I guess that's my question. It seems like media assets only allow you to reskin Doom instead of making a new kind of game.