Page 1 of 3

Can't wait for DoomScript

PostPosted: Wed Jul 16, 2003 7:16 am
by Mighty Duck X-treme
I really hope DoomScript gets done! ^_^

After that, move over DDF and DeHackEd! This will hopefully become the best feature in ZDoom, IMO :D

PostPosted: Thu Jul 17, 2003 8:20 am
by Thrasher
What is DOOM Script?

I know that Zdoom already has ACS scripting (which is very impressive in itself).

PostPosted: Thu Jul 17, 2003 10:01 am
by Kate
Ever played Unreal? there's a scripting language in it that controls everything from how monsters behave to the physics of projectiles. Doomscript would allow you to change [edit](or create)[/edit] anything in the game from the monsters to weapons and even the players themselves.

PostPosted: Thu Jul 17, 2003 4:36 pm
by Randy110887
So, 2 items that are normally the same can be easily scripted to be completely different from one another? One imp shoots fireballs, the other shoots plasma, yet they are the same item?

PostPosted: Thu Jul 17, 2003 6:43 pm
by Kate
Randy110887 wrote:So, 2 items that are normally the same can be easily scripted to be completely different from one another? One imp shoots fireballs, the other shoots plasma, yet they are the same item?
Yes, that would be possible.

PostPosted: Fri Jul 18, 2003 1:22 pm
by bimshwel
If that's so much like this "Unreal" thing, why not just play Unreal, then? The more features Doom has, the less fun it is to see them, after a certain point. Why, I can remember, some years ago, thinking invisible platforms were neat effects. Neat (though I admit I was never especially impressed with those "3d bridges").

PostPosted: Sat Jul 19, 2003 8:20 am
by Thrasher
Ever played Unreal? there's a scripting language in it that controls everything from how monsters behave to the physics of projectiles. Doomscript would allow you to change [edit](or create)[/edit] anything in the game from the monsters to weapons and even the players themselves.


From what I have observed in many Zdoom TCs that use ACS is that it does just about the same thing. Controling monsters, and modifying weapons, and other cool stuff that are already availible. I don't see any real reason to add another scripting language if Zdoom already has a good one. Long Live ACS!

PostPosted: Sat Jul 19, 2003 8:29 am
by Mighty Duck X-treme
Ah.

But some people can't wait for Doomscript to be done because it can do things that ACS can't do, IIRC. I can see your point though. ;)

PostPosted: Sat Jul 19, 2003 8:31 am
by Hirogen2
What things would that be?

PostPosted: Sat Jul 19, 2003 8:49 am
by Mighty Duck X-treme
Take a look at the DDF pages, for example.

PostPosted: Sat Jul 19, 2003 10:29 am
by Graf Zahl
Before we start thinking about what Doomscript can/should and cannot/should not do we need a mechanism to add custom monsters to the game first. Something like this:

Code: Select allExpand view
ACTOR ZombieMan
{       
   DoomEdNum 3004
   Monster
   Health 20
   Radius 20
   Height 56
   Speed 8
   PainChance 200
   SeeSound dsposit1
   AttackSound dspistol
   PainSound dspopain
   DeathSound dspodth1
   ActiveSound dsposact
   SpawnOnDeath Clip
   States
   {
   Spawn:
      POSS AB 10 A_Look
      Loop
   See:
      POSS AABBCCDD 4 A_Chase
      Loop
   Missile:
      POSS E 10 A_FaceTarget
      POSS F 8 A_PosAttack
      POSS E 8
      Goto See
   Pain:
      POSS G 3
      POSS G 3 A_Pain
      Goto See
   Death:
      POSS H 5
      POSS I 5 A_Scream
      POSS J 5 A_Fall
      POSS K 5
      POSS L -1 A_Death
      Stop
   XDeath:
      POSS M 5
      POSS N 5 A_PlaySound dsslop
      POSS O 5 A_Fall
      POSS PQRST 5
      POSS U -1 A_Death
      Stop
   Raise:
      POSS KJIH 5
      Goto See
   }
}


(Just something I designed for my own private port of PrBoom...)

PostPosted: Sat Jul 19, 2003 10:38 am
by Enjay
Clear, easy to understand and not too different from what Randy has started to do with things like decorate projectiles and destroyable items which are viewed as the first rung on the doomscript ladder.

You say your own private port of PRBoom? Is this something you have actually compiled? Do you plan on making it public?

PostPosted: Sat Jul 19, 2003 12:02 pm
by Graf Zahl
This 'private port' is something I did some time ago but I've stopped developing it. It was mostly enhancements of PrBooms OpenGL renderer in order to make it fully Boom compatible (originally it didn't properly support colormaps) Then I started adding stuff from some other ports like Legacy's 3D-floors. Unfortunately some of this added stuff is just too buggy and I don't have the time to fix all the bugs in order to make it public. So I doubt I will release the whole thing ever.
The parser for the file format I posted, however is fully functional. In its current form it's probably useless because it relies on modified data structures that do not exist in this form in any source ports. I could modify it to work with ZDoom (this stuff could easily be integrated into the DECORATE lump) but this would require some minor changes to the data organization because I added a parameter field to the states to make it more flexible.

PostPosted: Sat Jul 19, 2003 12:14 pm
by Hirogen2
Graf Zahl wrote:
Code: Select allExpand view
ACTOR ZombieMan
{       
   DoomEdNum 3004
   Monster
   Health 20
   Radius 20
   Height 56
   Speed 8
   PainChance 200
   SeeSound dsposit1
   AttackSound dspistol
   PainSound dspopain
   DeathSound dspodth1
   ActiveSound dsposact
   SpawnOnDeath Clip
   States
   {
   Spawn:
      POSS AB 10 A_Look
      Loop
   See:
      POSS AABBCCDD 4 A_Chase
      Loop
   Missile:
      POSS E 10 A_FaceTarget
      POSS F 8 A_PosAttack
      POSS E 8
      Goto See
   Pain:
      POSS G 3
      POSS G 3 A_Pain
      Goto See
[...]
Goto See
   }
}

Though I would propose one variable at the beginning which stores the 4-char ID, like

ACTOR { id POSS }

so one doesnot need to type it over and over. Nice start. This is just what I would like to have. And of course, if possible, get rid of the old frame tables, which are also limited to 967 frames anyway.

PostPosted: Sat Jul 19, 2003 1:54 pm
by Graf Zahl
Hirogen2 wrote:Though I would propose one variable at the beginning which stores the 4-char ID, like

ACTOR { id POSS }

so one doesnot need to type it over and over. Nice start. This is just what I would like to have.


I didn't do that on purpose because you may want to use different sprite names in an actor (like some projectiles in Doom or some monsters with a lot of different frames in Hexen.

And of course, if possible, get rid of the old frame tables, which are also limited to 967 frames anyway.


The frame table length is no longer an issue in ZDoom (except in Dehacked). Even now you can create new ones with the existing DECORATE functionality and all things combined (Doom, Heretic and Hexen) there are already 4000-5000 states right now.