View Full Version : Doomsday Maps : Tutorials, Tech Demos and Examples
DaniJ
April 29th, 2004, 10:43 AM
This thread will be a collection of Tutorials, Tech Demos and Example maps for the awesome new features of the Doomsday engine.
I hope this thread will grow into a valuable resource for anyone looking to spice up there maps for Doomsday.
-----------------------------------------------------------------------------
Tech Demos
Please disregard the quality of the these. They are intended to show you how to create the effects so the textures used are rather low quality and don't tile very well.
Skybox Demo (ftp://jfiles@server1.thefourwinds.net/jdoom/skyboxdemo.pk3) (E1M1):
Just a simple tech demo showing how to implement a basic skybox.
Advanced Skybox Demo (ftp://jfiles@server1.thefourwinds.net/jdoom/advskyboxdemo.pk3) (E1M1):
This tech demo shows how implement a more advanced skybox, with foreground background and rotating semi-transparent cloud layer. This setup would be best used in creating the sky for a level set in the eye of thunderstorm.
Sky Portal Demo (ftp://jfiles@server1.thefourwinds.net/jdoom/skyportaldemo.pk3) (MAP01):
This tech demo shows an example of a "located" sky model to create the appearence of a portal in roof of your room extending upwards into infinity.
Just place them(one at a time) into your doomsday/data/jdoom/auto folder or load them via the wad tab in KickStart.
-----------------------------------------------------------------------------
XG Demos
These demos show you how to use the eXtended Generalised (XG) line and sector types to create all manner of new features in your levels. First a bit of info about XG ( from the XG docs at DHQ (http://archive.doomsdayhq.com/doc_xgref.php)).
XG line types separate the activation method, requirements and the effects of the line. It is possible to create 'chains' of line types, which effectively combine many types of line into one. Chains are a very important part of XG lines and sectors. Often it is easiest to define several line types, each for a certain function, and then chain them up behind a single type, which is then used in the map.
XG sector types define the physical characteristics of a sector, like light level and color, wind and gravity, and a number of chains that are activated under certain circumstances. Like with lines, sector chains refer to line types. This means all the things that are possible to do by changing the state of lines are also possible to do with sectors.
XG line and sector types are entirely separate from the original Doom types. Both the extended and the standard types can be used in a map.
The concept of chains is one of the most powerful and flexible features of XG. Where normaly a switch only has one purpose it is now possible for your switch to turn the lights off, open a door, change the music, spawn a monster etc all at the same time or at timed intervals.
XG Demo (ftp://jfiles@server1.thefourwinds.net/jdoom/xgtest.zip) (E1M1):
This demo provides a very good starting point in learning the XG system and it's potential. Simple multifloor elevators, spread building stairs, coloured lighting effects, a HealthBank where the player can withdraw/deposit excess health they have found plus many more effects. Included in the zip is a wad and the ded source files. You only need to load the wad to test the level as the XG classes are included in the dd_XGDATA lump in the wad.
XG Mimic Sector Demo (ftp://jfiles@server1.thefourwinds.net/jdoom/xgmimicsector.pk3) (E1M1):
This demo shows a powerful new feature of XG. The mimic sector class. What this class does is allows any sector to instantly take on all the characteristics of any other sector. So the floors move, the textures change, the lighting changes and even the sector type. This demo shows this feature being used to fake a room-over-room setup. Simply place the pk3 into data/jDoom/Auto or load it via the wad tab in KickStart.
XG Mimic Sector Demo 2 (http://www.daniel.ddsdesign.co.uk/Stuff/mimic2.wad) (MAPO1): -- ADVANCED
This demo shows off some advanced usage of XG and the mimic sector class.
Simply place the wad into data/jDoom/Auto or load it via the wad tab in KickStart or the addons tab in Snowberry.
The XG line/sector definitions are in the DD_DEFNS lump which can be edited via DoomBuilder's script editor, or extracted/edited as a regular text file.
-----------------------------------------------------------------------------
If you have any examples/demos/tutorials you would like to see included please post them here and I will add them to the list.
If you would like to request a demo please do so here and either myself or one of the other Doomsday gurus will see what we can do.
ToXiCFLUFF
April 29th, 2004, 11:08 AM
Heh, these rule. More, more!
Wicked Anime Kid
April 30th, 2004, 04:24 AM
Expect a techdemo of the JDA soon:D
sLydE
April 30th, 2004, 04:50 AM
how about a door that splits in the middle and slides open to either side? :D
DaniJ
April 30th, 2004, 07:31 AM
how about a door that splits in the middle and slides open to either side?
Heh. Now lets not be silly :D.
I can kind of fudge one using a few dozen instantly lowering sectors but then that wouldn't really be a Doomsday trick.
I'd rather wait for DDE 1.8 when we can use polyobjects.
Wicked Anime Kid
April 30th, 2004, 08:56 AM
how about a door that splits in the middle and slides open to either side? :D
Hexagon made one, contact him about that;)
I can hardly wait for polyobjects, it would bring a new dimension into mapping for doomsday:D
DaniJ
May 2nd, 2004, 10:31 AM
Added the XG demos from DHQ.
KuriKai
May 2nd, 2004, 02:11 PM
ah so thats how they did that room over room thing
Harry
June 22nd, 2004, 01:03 PM
What's a polyobject?*confused* Sorry about the late post. I've only just seen this thread.
DaniJ
June 26th, 2004, 04:54 PM
Polyobjects are moveable one sided walls. Commonly used in Hexen for eg swinging doors, spining cogs etc. Currently they arn't available in jDoom.
Chilvence
June 26th, 2004, 05:06 PM
Just a consideration - since Jdoom is OpenGL only, would we be able to get away with polyobjects that have a floor/ceiling do you reckon? You can already make poly's that dont fill from floor to ceiling in software mode, its just that they dont get a floor rendered on them.
Now if you had poly's you could walk on, you could probably get away with some crazed contraption involving invisible polyobjects and 3d models to make some sort of tram.
DaniJ
June 26th, 2004, 05:46 PM
Actually you might be able to do that. Set up a ring of sectors using wind that effects floating THINGS, now create a thing (a la the method developed for JDA) and it might actually work. You'd have a floating moving platform. Though I'm thinking you'd probably slide of it.
Top and bottom on polyobjects could be done in OpenGL. I don't know how easy it would be to do mind.
Jimi
July 7th, 2004, 11:00 AM
The Studio (http://koti.mbnet.fi/jeejeeje/files/Studio.zip) (MAP01)
A tech demo that shows how to make "music" with Doomsday. Includes monsters for Hurt Me Plenty and skill levels above that skill level...
DaniJ
July 7th, 2004, 12:30 PM
Nice one Jimi! That's a cool demo.
A little different from how I thought you were going to do it but it's cool.
It would be nice to be able to turn each bit of equipment on/off (could be done using is line active checks so as not to go out of sequence). Having them play locationaly is great.*thumbs*
I'll upload this to jserver and add it to the list at the top of the thread.
You should create more stuff like this.
Incidently did you know that XG doc at DHQ isn't complete? There is a few things missing. I plan on updating that doc for the new DHQ.
Jimi
July 7th, 2004, 01:23 PM
Yeah, I think it's not complete. From what I know, it's missin the mimic sector class and how to use it... Is it missing something else too?
DaniJ
July 7th, 2004, 02:34 PM
Yeah it's also missing a LOT of new REALLY useful sprefs that I asked Skyjake to implement:
SPREF_SECTOR_TAGGED_FLOOR:
SPREF_SECTOR_TAGGED_CEILING:
SPREF_LINE_TAGGED_FLOOR:
SPREF_LINE_TAGGED_CEILING:
SPREF_TAGGED_FLOOR:
SPREF_TAGGED_CEILING:
SPREF_ACT_TAGGED_FLOOR:
SPREF_ACT_TAGGED_CEILING:
SPREF_INDEX_FLOOR:
SPREF_INDEX_CEILING:
Chilvence
July 7th, 2004, 02:49 PM
The Docs would be much better accomplished with a Wiki I reckon. Works exactly like a normal website, but if somethings incomplete/in error/unclear you just log in and make the change yourself. Its worked really well for Zdoom.
doominsanity
August 19th, 2004, 04:21 PM
Before, I know I posted in the wrong place, was out of line with my sig, and am sorry, but could someone kindly direct me to a tutorial about lightmaps. I do not know how to set them up in Jdoom and would greatly appreciate any input. I hope that more tutorials will arise in the near future.
doominsanity
August 19th, 2004, 04:22 PM
I would like to know if it is possible to synchronize a wav sound to a random flickering light.
DaniJ
August 30th, 2004, 04:01 PM
Now that we have the wonderfull Doomsday Engine Wiki (http://deng.sourceforge.net/cgi-bin/view/Main/WebHome) (DEW) this sticky will soon be disappearing once I get the stuff moved over.
I've already typed up the DED reference and updated to contain every current command (I think). Also I have created a couple of HOW TOs detailing how to embed a DED in your wad using DoomBuilder and how to create a new monster... THE BARREL MONSTER, Grrrr!
Over time I'll add as much as I can to the DEW but for now it's a good start.
The next job is the XG Reference. That is gonna take me some time to complete.
could someone kindly direct me to a tutorial about lightmaps.Sounds like a good one to me. Unfortunetly there isn't one written yet, when I get time I will.
is possible to synchronize a wav sound to a random flickering light.
Yes, theres quite a lot of different ways to do it though. Depending on how you make your light. Is it an XG Sector Type?
Jimi
August 31st, 2004, 06:18 AM
THE BARREL MONSTER, Grrrr!
That's a classic evil monster! Some years ago I and my friend made the barrel move and attack player with dehacked. That was cool and funny :D
psyren
September 10th, 2004, 03:49 PM
Just a terrible fantasy idea, but don't the old wizards get tired of talkin about things over and over? Maybe no. Never get tired, it seems, listening to my requests.
Wouldn't it be better to have some site where newbies couuld go to find answers to all their questions?
Just thinking of the many questions and topics I have posted here to learn the art of making maps. Maybe some are getting tired of the same questions all the time. Maybe just want to say one time.
Maybe some like to coach every new boy(or girl) who comes looking for answers.
I have an idea to try and make a site with everything.
Vermil
September 10th, 2004, 04:02 PM
If you mean Dday specific features, check the top of Dani's last post in this thread;).
DaniJ
January 30th, 2005, 01:42 PM
If anyone wants to add some animated or coloured sector lighting effects to their PWAD here are a few examples I knocked up recently for Dark Shadow
Sector Type { ID = 9006
Comment = "Slow fading Red light"
Green fn = "a >az<"
Green fn min tics = 35 # These two values govern how long the sequence takes to do a full cycle (from a-z)
# because both values are the same there is no randomness in the timing.
Green fn max tics = 35
Blue fn = "=g" # =g This means that the Blue function(fn) is the same as the Green function(fn) "a >az<".
}
Sector Type { ID = 9005
Comment = "Slow fading Blue > Red > Yellow light"
Red fn = "a >azz<" # This means: start at 0(a), this is the point we'll jump back to at the end of the sequence(>)
# then fade to 0(a), then fade to 255(z), then fade to 255(z), then jump back to our marked point(<).
Red fn min tics = 70
Red fn max tics = 70
Green fn = "a >aaz<"
Green fn min tics = 70
Green fn max tics = 70
Blue fn ="a >zaa<"
Blue fn min tics = 70
Blue fn max tics = 70
}
Sector Type { ID = 9004
Comment = "Yellow light"
Red fn = "a >tz?32A<" # This means: start at 0(a), this is the point we'll jump back to at the end of the sequence(>)
# then fade to 196(t), then fade to 255(z), then instantly change to 255(A) and stay there for random amount of time out of 32(?32)
# then jump back to our marked point(<).
Red fn min tics = 70
Red fn max tics = 70
Green fn = "m >mz<"
Green fn min tics = 70
Green fn max tics = 70
Blue fn = "=r"
}
Simply put them in a DED and then give your sector the correct effect ID eg 9005.
Hope they help someone :)
sirsinalot
February 16th, 2005, 07:08 PM
speaking of sector lights, is it possible to write in a ded, something which tells doomsday to turn every sector in the enitre game down? Because playing doom after playing other first person shooters is like walking out into the daylight, and i really want to be able to notce doomsdays beautiful dynamic lights.
DaniJ
February 17th, 2005, 05:12 AM
Not atm but the new bias lighting that will be a part of the next Doomsday version release will allow you to disable sector lighting and then use the in-game bias light editor to re-light your favorite levels using bias lights. Once your done these can be saved directly to a DED from within Doomsday ready for future use.
I've talked to Skyjake about the posibility of saving the DED back into the original/a copy of the WAD so that you don't even need to load the DED manualy. He liked the idea but said it would be something he'd think about (ie it's not in place atm).
sirsinalot
February 17th, 2005, 01:32 PM
yeah, i figured, it did not exist, with the capability of bias lighting so close at hand.It'll be great, it really will change the game play.
DaniJ
May 22nd, 2005, 06:42 PM
Added a new XG example wad. Find it at the top of the thread.
After a little chat with Kyle the other day on MSN I figured it would be a nice idea to have some more advanced XG examples. Hence mimic2.wad.
Hopefully there will be more soon. Next up is the Colour Mixing Room example.
Also there has been an extensive amount of info added to the DEW (http://deng.sourceforge.net/cgi-bin/view.pl) (in the Editing section) lately. If your interested in XG editing its definetly worth a look.
Blizzardson
July 27th, 2005, 06:24 PM
Hmm,some of those features like swining doors and stuff,remindes me
about a ACS script i made for Zdoom,Ohwell that's zdoom already,
so thanks for explaining what those letters value stead for in the color sectors,
( a,t,z ect..) i see that means (255/ 26 = 9.8) so you got to work with steps of 10.
anyhow,il go create someone of my own,i think it's been a good help of readings this topic,
this knowledge will help me make my wad even better with,the new features support of Doomsday ;)
picklebro
March 5th, 2007, 09:05 PM
DaniJ in the new version of Doomsday everyone of your XG maps have errors. the mimic sector has a huge HOM, the lifebank one has a lump error out of bounds that crashes doom when one of the triggers go off (when you kill the former marine near the lifebank), and the mimic2 one , after you trigger the elevator switch you are stuck in it and it never actually apppears to go down (although it does go down, if you idclip out of it you can see that it has). Additionally when I load mimic2 up in doombuilder it says there are no scripts in dd_dfens even though some of the actions work. Any ideas as to what's going on?
maggot202
February 4th, 2009, 07:06 PM
If it's not too much to ask, could you please explain the code in the XG maps? because the scripting for doomsday isn't very user friendly, i think. I'd love to be explained the code for the elevator wad (mimic2.wad)
DaniJ
February 4th, 2009, 07:28 PM
There is quite a bit of information on the XG system at our wiki (http://sjke.org/dew/index.php?title=XG), you should find everything you need to know is already there.
maggot202
February 24th, 2009, 09:32 PM
i'd like to contribute with an example: how to make mobjs appear out of thin air
It's quite easy, really. Let's start with the script:
Line Type {
ID = 1000;
Comment = "A Zombieman will appear at (x=576, y=-384, z=8) facing east";
Flags = player_cross;
Flags2 = when_act | any;
Class = command;
Count = 1;
Sp0 = "spawnmobj Zombieman 576 -384 8; spawnmobj TFOG 576 -384 8";
}
Okay. So, what the hell is that all about? Let's go line by line:
ID = 1000 - This is the linedef action number. To execute this code, it's just a matter of, via an editor like Doom Builder, bind a linedef to this action. No problems here, right?
Comment = "blablabla" - Just a comment, it has no influence on the code, but it's there to remind you what this code does.
Flags = player_cross - This line tells jdoom that this code will be triggered when the player cross the line with linedef action 1000 (in this case). A complete list of triggers can be found here (http://www.dengine.net/dew/index.php?title=XG_triggers)
Flags2 = when_act | any - This line tells jdoom which requisites needs to be fullfilled if the code is to be executed. When_act tells the game that this code will be executed when the previous line is activated (Flags = player_cross), and any tells the game that this code will be executed regardless of the difficulty chosen or the mode (single player or multiplayer). Again, a complete list of requeriments can be found here (http://www.dengine.net/dew/index.php?title=XG_line_activation_requirements#wh en_act)
Class = command - What kind of code is this? Well, this is a code that inputs a command into the console. This is what this line tells jdoom. A complete list of classes can be found here (http://www.dengine.net/dew/index.php?title=Category:XG_line_class)
Count = 1 - This code will be executed only once. I believe that -1 is for an infinite number of times
Sp0 = "spawnmobj Zombieman 576 -384 8; spawnmobj TFOG 576 -384 8" - This line tells the game what command should be executed, in this case, spawnmobj, which spawns a mobj to a desired location, followed by a TFOG, a teleport fog, for good measure. The general syntaxis, in this case, is:
spawnmobj <type> <x> <y> <z> <angle>
Type must be a defined THING ID or name
x, y and z are the coordinates where the thing should be spawned
angle: it's a number that defines which way the spawned mobj should be facing. This numbers can be found here (http://zdoom.org/wiki/Definitions#Byte_Angles). By default it's 0 (east).
To get the exact coordinates where i want the mobj to appear, i place a vertex on the map where i want the thing to spawn (via Doom Builder), and take note of the coordinates (shown on the lower left section). Then, for the z coordinate, it's just a matter of taking note of the ceiling heigth that the spawning point has, for reference.
An example map can be found here (http://www.cec.uchile.cl/~nilopez/xg/spawn_zombieman.wad). Nothe that there are no .ded files because it uses a DD_DEFN lump, i.e., the script is included on the wad.
On a final note, I'd like if someone could tell me the names of the different mobjs that can be spawned with this class. I couldn't find the names for anything except monsters
DaniJ
February 25th, 2009, 04:34 AM
On a final note, I'd like if someone could tell me the names of the different mobjs that can be spawned with this class. I couldn't find the names for anything except monstersOpen the console and enter "listmobjtypes".
maggot202
February 25th, 2009, 09:41 AM
is there any way to write the output of "listmobjtypes" to a file? i tried with write listmobjtypes mobjs.txt, but it didn't seemed to work
Vermil
February 25th, 2009, 09:55 AM
Have a look at the thing def's in each games objects.ded (in the "Data/Jxxxx/Jxxxx.pk3" for 1.9 or "def/Jxxxx" for 1.8.6).
The "ID" for each one is what you use with Spawnmobj.
DaniJ
February 25th, 2009, 10:27 AM
After doing a "listmobtypes" via the console, look in Doomsday.out and you will find that information there too.
vBulletin® v3.8.3, Copyright ©2000-2010, Jelsoft Enterprises Ltd.