Can't wait for DoomScript

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
Mighty Duck X-treme
Posts: 272
Joined: Tue Jul 15, 2003 5:48 pm
Location: Chesterfield, Missouri

Can't wait for DoomScript

Post 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
Thrasher
Posts: 73
Joined: Wed Jul 16, 2003 3:08 am
Location: Imperial Moon Base: Thal Vaishet

Post by Thrasher »

What is DOOM Script?

I know that Zdoom already has ACS scripting (which is very impressive in itself).
User avatar
Kate
... in loving memory ...
Posts: 2975
Joined: Tue Jul 15, 2003 8:06 pm

Post 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.
User avatar
Randy110887
Posts: 11
Joined: Thu Jul 17, 2003 4:13 pm

Post 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?
User avatar
Kate
... in loving memory ...
Posts: 2975
Joined: Tue Jul 15, 2003 8:06 pm

Post 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.
User avatar
bimshwel
Posts: 636
Joined: Tue Jul 15, 2003 5:15 pm
Discord: bimshwel #7516
Location: misplaced

Post 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").
Thrasher
Posts: 73
Joined: Wed Jul 16, 2003 3:08 am
Location: Imperial Moon Base: Thal Vaishet

Post 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!
Mighty Duck X-treme
Posts: 272
Joined: Tue Jul 15, 2003 5:48 pm
Location: Chesterfield, Missouri

Post 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. ;)
User avatar
Hirogen2
Posts: 2030
Joined: Sat Jul 19, 2003 6:15 am
Github ID: jengelh
Graphics Processor: Intel with Vulkan Support
Location: Central Germany

Post by Hirogen2 »

What things would that be?
Mighty Duck X-treme
Posts: 272
Joined: Tue Jul 15, 2003 5:48 pm
Location: Chesterfield, Missouri

Post by Mighty Duck X-treme »

Take a look at the DDF pages, for example.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48040
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post 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 all

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...)
User avatar
Enjay
 
 
Posts: 26413
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Post 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?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48040
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post 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.
User avatar
Hirogen2
Posts: 2030
Joined: Sat Jul 19, 2003 6:15 am
Github ID: jengelh
Graphics Processor: Intel with Vulkan Support
Location: Central Germany

Post by Hirogen2 »

Graf Zahl wrote:

Code: Select all

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48040
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post 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.

Return to “General”