Doom3world

The world is yours! Doom 3 - Quake 4 - ET:QW - Prey - Rage
It is currently Wed May 22, 2013 2:01 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Doom 3 mod creation workflow
PostPosted: Sun Jun 17, 2012 2:02 am 
Offline
did just hit his 750th monster

Joined: Mon Jan 01, 2007 5:13 am
Posts: 850
Location: TX, US
What's the typical workflow for any mod for Doom 3 ?

Let's say I want to make a new menu (New game and Exit), have player spawning on a new map with 1 weapon (new, not existing one) upon starting new game, increase movement speed of the player.

What's need to be written in C++ and what can be done using scripts (I wonder if most things can be simply based on existing C++ code, like pistol that shoots plasma instead of bullets). I am simply trying to identify complexity of the modding compare to DarkPlaces engine (I've heard Doom 3 requires a ton of scripting just to get simple things done). Thanks.


Top
 Profile  
 
 Post subject: Re: Doom 3 mod creation workflow
PostPosted: Sun Jun 17, 2012 2:32 am 
Offline
Very Senior Forum Poster
User avatar

Joined: Sun May 29, 2005 10:02 pm
Posts: 7075
Location: Here, not there.
All what you want would be scripting: menu's are GUI scripts, weapon changes are scripts (BFG has some C++ SDK code), player speed is script.

i'd suggest just downloading a simple mod and look at what's done. There's some weapon only mods out there. Infact, check out the D3W mod contests, they do different parts!

Mapping contest: viewtopic.php?f=1&t=24991&st=0&sk=t&sd=a
viewtopic.php?f=1&t=25145&p=235899

Boss: viewtopic.php?f=26&t=22419

Can't find the weapon contest thread but here's the paintball guns I made: http://planetdoom.gamespy.com/View.php? ... tail&id=78

_________________
Fuzzy Logic Inc
PAINTBALL DOOM 3!!!!
Check out my Q2 server! q2server.fuzzylogicinc.com :D
Doom 3, Paintball! d3server.fuzzylogicinc.com


Top
 Profile E-mail  
 
 Post subject: Re: Doom 3 mod creation workflow
PostPosted: Sun Jun 17, 2012 2:35 am 
Offline
missed 400 shots

Joined: Tue Dec 06, 2011 8:05 pm
Posts: 418
Quote:
I've heard Doom 3 requires a ton of scripting just to get simple things done).


Doom 3 doesn't require really any scripting(aside from entity defs, materials and sound shaders), you can make a new game without ANY scripting at all. Were the D3 scripts really work well is with scripted level events.

Quote:
increase movement speed of the player


Look in syscvar.cpp and find pm_walkspeed/pm_runspeed and in player.def, change to whatever you want.

Quote:
new map with 1 weapon (new, not existing one)


Look in player.def find the "weapon" key and change the value to whatever you want.

Quote:
What's need to be written in C++


Any new mechanics/scripted events/etc.
Quote:
Change projections of the pistol


Look at weapon_pistol.script and find the "weapon_pistol::Fire" function and compare it to the plasmagun, you will also need to copy over some of the keys in the weapon def files, but thats it.

Quote:
I want to make a new menu (New game and Exit),


If you want a basic menu template, heres mine from idTech 4 cdk its basic and provides what you need(save to mainmenu.gui)

Code:
windowDef Desktop
{
   rect   0 ,0 ,1280 ,720
   backcolor   0, 0, 0, 0
   menugui   1
   float doomme   1
   onESC {
      if ("desktop::doomme" == 0) {
         showcursor "1" ;
         set "idlogo::rect" "0 0 0 0" ;      
         set "demoEnd::rect" "0 0 0 0" ;
         resetTime "SoundrunMenu" "0" ;               
         set "desktop::doomme" "1" ;
         set "cmd" "play """ ;
      }
      set "cmd" "close" ;
      
      if ("desktop::doomme" == 666) {
         set   "cmd"   "quit" ;
      }      
   }

   windowDef unnamed5
   {
      rect   0,0,1280,720
      visible   1
      background   "guis/assets/mainmenu/mainmenu"
      matcolor   1,1,1,1
   }
   windowDef unnamed1
   {
      rect   1069,609,180,38
      visible   1
      forecolor   0.6, 1, 1, 1
      text   "Play Game"
      textscale   0.5
      textalign   2
      textalignx   -10
      textaligny   4
      backcolor   0,0,0,1

      onMouseEnter {
               transition "forecolor" "0.6 1 1 1" "1 1 1 1" "250" ;
   
            }
      onMouseExit {
               transition "forecolor" "1 1 1 1" "0.6 1 1 1" "250" ;

      }

      onAction {
         set   "cmd"   "startGame" ;
      }
   }
   windowDef unnamed1111
   {
      rect   1102,656,141,36
      visible   1
      forecolor   0.6, 1, 1, 1
      text   "Quit"
      textscale   0.5
      textalign   2
      textalignx   -10
      textaligny   4
      backcolor   0,0,0,1

      onMouseEnter {
               transition "forecolor" "0.6 1 1 1" "1 1 1 1" "250" ;
   
            }
      onMouseExit {
               transition "forecolor" "1 1 1 1" "0.6 1 1 1" "250" ;

      }
      

      onAction {
         set   "cmd"   "quit" ;
      }
   }
}


Top
 Profile E-mail  
 
 Post subject: Re: Doom 3 mod creation workflow
PostPosted: Sun Jun 17, 2012 2:42 am 
Offline
Last man standing
User avatar

Joined: Thu Aug 19, 2004 7:22 pm
Posts: 1123
Two invaluable resources: http://www.modwiki.net/wiki/Main_Page & http://www.iddevnet.com/doom3/

Between these two sites (and this site as well), you should be able to figure what needs to be done (whether simple def changes, scripts, or C++ code) to do what you want to do. And if you have Quake 4 or Prey, their SDK's come with better mod examples with more thorough explanations and comments on what's being done in them, so it may be worth checking them out as well.


Top
 Profile E-mail  
 
 Post subject: Re: Doom 3 mod creation workflow
PostPosted: Sun Jun 17, 2012 3:06 am 
Offline
did just hit his 750th monster

Joined: Mon Jan 01, 2007 5:13 am
Posts: 850
Location: TX, US
Thanks guys


Top
 Profile  
 
 Post subject: Re: Doom 3 mod creation workflow
PostPosted: Thu Jun 21, 2012 9:18 pm 
Offline
The first 10 posts have been the best...

Joined: Wed Jun 06, 2012 5:56 pm
Posts: 22
Actually, everything you have listed can be done without touching the SDK. For making new weapons, you'll need new models, textures, .def and .script files. Changing the normal pistol projectile into a plasma projectile can be done in .def files. As others have already said, a new menu can be done in gui scripts. Changing the player speed can be done with a player.def file.


As for how many scripting it requires... That depends on what you want to achieve. It all depends on how complex your feature is. If you want a hovering platform with a GUI on it that you can fly around the map all you want using the GUI, then yes you will need to do a ton of scripting. For making a new weapon, you won't really need that much. Copy and modify an existing weapon script, add new functionality if you wish and that's it. You can add a flashlight/laser sight, dynamic spread(like in tactical shooters), recoil, and probably iron sights without touching the SDK code. And you can add all this to a single weapon. Scripts are very flexible.


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group