Quasar
Moderator

Posts: 2202
Registered: 08-00 |
JoelMurdoch said:
1. First of all James, I have the Visual C++ Toolkit I d/led from Microsoft's site. Do you know if it is possible to somehow leverage this to compile Eternity? In the bin directory it has link.exe, cl.exe and various dlls.
I would need to export a makefile for you to use. I can do this easily using Visual Studio; I've just never had any need to do it so far. Consider it done for the next version. You do not have to compile SDL for VC++, that is already done for you by the SDL guys, who use an elaborate cross-compiler setup to build it for Windows using the linux version of GCC. You will, however, have to change paths in the generated makefile to point to where you have setup the SDL and SDL_mixer libraries. I hope you will be able to handle that.
JoelMurdoch said:
2. Water and other liquids. Not sure what you could do in the context of Doom, but it would be nice to see more done with these to try and make more believable worlds but still making it Doom. Fraggle was on the right track with that swirly liquid code.
Two things in particular come to mind - making the water move up and down slightly to simulate the wavy motion of water. Probably too hard with Doom's renderer. What might be more doable is being able to somehow make a liquid sector that can interact with another texture. Say you could have a sector of water next to a sector of say sand, and a square or rectangular "buffer" sector with this special type. It takes the two flats and then creates an interaction between the two. Using this technique it should be possible to easily create the illusion of lapping water, such as what you'd get along the edge of a beach. Manipulation of flats by a formula of some kind is possible, otherwise fraggle's swirl code wouldn't exist. Let's be creative :)
The swirling flat code is simple because it only has to distort a single flat, which it can hold in a flat memory buffer. Trying to dynamically apply effects between two flats situationally depending on their location is not possible with the current way floors work, AFAIK. A good idea, but not technologically feasible.
JoelMurdoch said:
3. Monster AI. I love Doom dearly still, but it has become frighteningly predictable. I realised this about six months ago when I realised I was doging imp fireballs without even looking. I saw them launch and new exactly how much time I had till they hit me.
Some quite simple optional mods could make a big difference. I think we've spit-balled on this before James. Things like randomising enemy hit points, speeds and projectile speeds. I realise it will break some WADs, but those who haven't been design by guys too anal about ammo balance should be fine.
As joe demonstrated, there are some ways this kind of thing can be done through EDF, though not to the degree you are speaking of. The primary problem with your idea of randomizing some fields is that they are only stored in mobjinfo_t and therefore can only have one value per species. Moving all fields into mobj_t would make Eternity use too much ram, and otherwise it won't work in save games, since mobjinfo_t is created once at startup by EDF and not saved.
JoelMurdoch said:
4. Crouching and jumping. These have become part of my FPS skills well and truely. When I come to Doom I miss them. It makes for a better experience, I think - lets you interact with the world in a more believable way. Maybe these could be added to Eternity to be used at the player's discretion, and with the option for a level designer to enable or disable them via the mapinfo lump?
Jumping will be added as soon as netgame/demo input problems are resolved in an extensible manner. Crouching you can forget about unless somebody is prepared to provide me with suitable crouching frames for all the DOOM, Heretic, Hexen, and Strife player classes. I'm not prepared to allow a 56-tall sprite to appear to walk through a 24-tall hole in the bottom of a wall :P
JoelMurdoch said:
5. EDF for weapons. What is the status on this? Both Millennium and Caverns of Darkness need this. If I could compile the code I'd love dearly to try and help.
Status is that it is in the high design and conceptual stage. No work has been done on it, partially because of the same netgame/demo input issue. Weapon changes are packed into a narrow set of bits in the ticcmd_t structure, and thus changes can only be recorded for the first 16 weapons. This is a low limit and I'm not sure it would be well received for EDF to have a 16-weapon-per-player-class limit, however reasonable I personally think that limit is.
JoelMurdoch said:
6. Ambient sounds. I seem to remember some mention of ambient sounds in previous reference to Eternity, but I could not find anything in the docs. For my needs, there needs to be two kinds. Looping or randomised playing ones you can assign to a thing, visible or invisible. Second it would be neat to be able to have a sound sourced from a sector, to make it easy to do things like creating a water sector with sea sounds.
Eternity TC defined some hardcoded ambient sound objects but those were removed from the code a long time ago. As joe demonstrates, it's fairly simple to make an object that sits around playing localized ambience. Well-managed global ambience effects as seen in Heretic are not currently available, but obviously they are going to be implemented for Heretic support sooner or later, and will at that point be usable in DOOM as well.
JoelMurdoch said:
7. How scriptable are particle fountains? Basically I want to be able to simulate waves breaking again a rock. Obviously can't make the wave itself, but a puff of particles accompanied by a suitable sound could create something close. So the particle fountain would need to be able to be turned off and on, and playing a sound in the event of the latter.
Particle scripting is in its infancy, so you basically can't do anything with it yet. Particles can be turned on and off by setting/removing the DORMANT flag on the object, but support for changing flags in scripting isn't quite complete yet either.
JoelMurdoch said:
8. Rain effects. You mentioned these in the Millennium forum. How do you plan on implementing these, and what exactly will they be capable of? Will they be able to be used in a massive outdoor area without choking the engine?
Particles are low-cost and you can have thousands of them active without choking the engine. I imagine I will create a control spot object which spawns particle rain within a given radius of itself with parameterized effects such as wind speed (direction determined by the control point's angle).
JoelMurdoch said:
9. Slopes. I know, I know :P But the bottom line these are a tremendously useful design capability. Are there plans to implement these in Eternity?
Basically I want to be able to make Doom more fun and unpredictable, with more believable worlds to explore while still making it Doom.
Let's put it this way. You can hold your breath waiting for slopes if you want to turn blue and die in a slow, painful fashion :) I recognize their usefulness, but they are not a natural extension of the DOOM engine and require massive rewrites to anything that deals with floors in even a passing manner, far surpassing the amount of work that was needed for object z clipping, 3DMidTex, and even portals.
|