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.
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?
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?
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").
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!
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:
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?
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.
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.
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.