A screenshot
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
-
Virgil
- Posts: 154
- Joined: Sun Sep 28, 2003 10:01 pm
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
-
Macil
- Posts: 2529
- Joined: Mon Mar 22, 2004 7:00 pm
- Preferred Pronouns: He/Him
- Location: California, USA. Previously known as "Agent ME".
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
HotWax wrote:Well there's also the status bar that you can see parts of at the bottom of the screen, behind the dialog....
That's saying even less because it already existed in previous versions.
Agent ME wrote: I don't understad why it wouldn't be real. Isn't a dialog system simple enough?
Strife's definitely is. If you take a look at Vavoom's implementation (the only one currently available) you'd see that it's 12 kb of rather straightforward C- code.
-
QBasicer
- Posts: 766
- Joined: Tue Sep 16, 2003 3:03 pm
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
-
skadoomer
- Posts: 1026
- Joined: Fri Sep 05, 2003 12:49 pm
I thought strife was all scripted events (for some rerason i was under the impression that it was basted on hexen's source, but in picking through the levels i can't find any reason why it is) Is that all it is in the game, merely items given to the player to fake dialog, or is that just the way that randy and others have chosen to mimic the behavior in strife?
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Strife doesn't have any scripts in the sense of ACS or something like that. It has its dialog system which only works by giving and taking items to and from the player's inventory and a lot of hard coded actions that influence the game. These hard coded actions are the biggest problem in creating a working Strife conversion because you have to get them exactly right. In the end you have to go through the Exe's code to find out all the relevant stuff. Guessing will take you nowhere and any attempt to make Strife run just by doing that is doomed to utter failure because you will inevitably miss important things. I did some EXE analysis myself and found out a lot about those hard coded actions. From what I found out I am quite certain that full Strife support is nearer than many people think.
(Randy, if you read this and have some questions about those special linedefs don't hesitate to ask me.
)
(Randy, if you read this and have some questions about those special linedefs don't hesitate to ask me.
-
skadoomer
- Posts: 1026
- Joined: Fri Sep 05, 2003 12:49 pm
I got a sense of that basted on the way the linedefs have tags affect different things. (namely sounds and some quest things)Graf Zahl wrote:Strife doesn't have any scripts in the sense of ACS or something like that. It has its dialog system which only works by giving and taking items to and from the player's inventory and a lot of hard coded actions that influence the game.
Doom builder takes some guesses at various liedef actions (which is all i have to toy with until my retail verson arrives) the unknown bits (32 and 128 for things, 512 1024 and 2048 for linedefs) too are peticulair confusing, becasue i can't read into a consistency with that they do.any attempt to make Strife run just by doing that is doomed to utter failure because you will inevitably miss important things.
Perhaps this is a little crude to ask, but since you seem to be the guru to everything code related in zdoom; what are they key aspects that mod devolpers will gain upon full strife implimentation? (asid the obvious conversation system and character attacks)I did some EXE analysis myself and found out a lot about those hard coded actions. From what I found out I am quite certain that full Strife support is nearer than many people think.
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Ok, here's some info I got:
- A few linedef types use the first side's texture y-offset as a parameter - primarily this is used to trigger some special events based on the player's progress in the game
- The line flags mean:
Up to 256 they are identical with Doom
512: Railing (used in combination with the blocking flag): Only block the lower 32 map units of the line
1024: block floating monsters (I'm not 100% sure about this - it might be the inverse)
2048: I couldn't find anything about this flag
4096: line is translucent
-Thing flags:
The 'deaf' flag of Doom means 'Don't move' in Strife (this is used for some actors which normally can walk around - like peasants and acolytes)
32: same as 'deaf' in Doom (If I didn't read something completely wrong)
64: Friend
128: unknown
256: translucent
512: monsters aim is worse when targeting this
Considering that aside from the dialog system (and the friendly AI - which is an essential part of the game) Strife only consists of a small number of hard coded actions tied to a few linedef types.
The rest of the more noreworthy stuff can all be achieved with ACS and some other configuration options in a much more flexible way:
- texture animated doors: These will only be of any use if Randy finds a way to make this work without a list of texture names to animate them.
- door sounds based on door textures - again they will only be of use if it is done without some hard coded definitions
- a 'smashable glass' linedef
- a force field linedef type and some easy means for deactivation - this might be of use but all of this can already be done with normal scripting which is much more versatile than this limited implementation.
Don't forget that some of Strife's more important features features (hubs, inventory) are already present in ZDoom due to Hexen and Heretic support.
- A few linedef types use the first side's texture y-offset as a parameter - primarily this is used to trigger some special events based on the player's progress in the game
- The line flags mean:
Up to 256 they are identical with Doom
512: Railing (used in combination with the blocking flag): Only block the lower 32 map units of the line
1024: block floating monsters (I'm not 100% sure about this - it might be the inverse)
2048: I couldn't find anything about this flag
4096: line is translucent
-Thing flags:
The 'deaf' flag of Doom means 'Don't move' in Strife (this is used for some actors which normally can walk around - like peasants and acolytes)
32: same as 'deaf' in Doom (If I didn't read something completely wrong)
64: Friend
128: unknown
256: translucent
512: monsters aim is worse when targeting this
Considering that aside from the dialog system (and the friendly AI - which is an essential part of the game) Strife only consists of a small number of hard coded actions tied to a few linedef types.
The rest of the more noreworthy stuff can all be achieved with ACS and some other configuration options in a much more flexible way:
- texture animated doors: These will only be of any use if Randy finds a way to make this work without a list of texture names to animate them.
- door sounds based on door textures - again they will only be of use if it is done without some hard coded definitions
- a 'smashable glass' linedef
- a force field linedef type and some easy means for deactivation - this might be of use but all of this can already be done with normal scripting which is much more versatile than this limited implementation.
Don't forget that some of Strife's more important features features (hubs, inventory) are already present in ZDoom due to Hexen and Heretic support.
-
skadoomer
- Posts: 1026
- Joined: Fri Sep 05, 2003 12:49 pm
Hope there not importantGraf Zahl wrote: 2048: I couldn't find anything about this flag
-Thing flags:
128: unknown
thing 128 seemes to be related to multiplayer in some way (i think it has something to do with distinguishing deathmatch and co-op games)
I didn't find anything on the linedefs (at least in shareware) on flag 2048, then again there is no search option for this so i might have missed something.
So Zdoom gets what is essencially the best part of MBF. Wouldn't Friendly AI take somewhat of a rewrite of the current standing AI? Or is it more of a ThingHate function?Considering that aside from the dialog system (and the friendly AI - which is an essential part of the game) Strife only consists of a small number of hard coded actions tied to a few linedef types.
-
Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
skadoomer wrote: So Zdoom gets what is essencially the best part of MBF. Wouldn't Friendly AI take somewhat of a rewrite of the current standing AI? Or is it more of a ThingHate function?
Basically the friendly AI of Strife is a primitive version of MBF's. If I had to implement it I'd use MBF because its target search algorithm appears to be much better (and of course because its source is already available!
I don't know. Strife never officially supported co-op even though the player starts are there. The game is just totally unsuitable for it.thing 128 seemes to be related to multiplayer in some way (i think it has something to do with distinguishing deathmatch and co-op games)
-
randi
- Site Admin
- Posts: 7749
- Joined: Wed Jul 09, 2003 10:30 pm
That information about line flags is very useful. I hadn't even considered the possibility that Strife might add more of those.
I don't think thing flag 128 is used at all. Neither P_SpawnMapThing nor P_NightmareRespawn check it.
Does line special 215 do anything? Gokuma's config has it labeled as "W1 Play Quest Sound?" and it does appear to be in the switch statement in P_CrossSpecialLine, but it doesn't look like it has any actual code defined for it. I have exact code for the other specials, so those aren't going to be a problem.
Friendly AI appears to be very simple, and I think I've already got all of it implemented in what I called A_Look2. Let me know if this is wrong: In Strife, "friendly" monsters are just monsters that ignore you until you make the alarm go off or you attack them.
Do you know what Strife is doing when you obtain pieces of the Sigil? It doesn't appear to be handled by the normal inventory giving function.
I don't think thing flag 128 is used at all. Neither P_SpawnMapThing nor P_NightmareRespawn check it.
Does line special 215 do anything? Gokuma's config has it labeled as "W1 Play Quest Sound?" and it does appear to be in the switch statement in P_CrossSpecialLine, but it doesn't look like it has any actual code defined for it. I have exact code for the other specials, so those aren't going to be a problem.
Friendly AI appears to be very simple, and I think I've already got all of it implemented in what I called A_Look2. Let me know if this is wrong: In Strife, "friendly" monsters are just monsters that ignore you until you make the alarm go off or you attack them.
Do you know what Strife is doing when you obtain pieces of the Sigil? It doesn't appear to be handled by the normal inventory giving function.