Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content count

  • Joined

  • Last visited


About wesleyjohnson

  • Rank
    Senior Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. wesleyjohnson

    Doom Legacy 1.47.2 Release

    The Sky code has been made tolerable, for now. Some other bug reports have surfaced and are being fixed too. If it affects the network interface or version, I am fixing it now for 1.48. I would have released 1.48 last month (ahhaaa, that was OCT), but... There have been a few small improvements made in bots vrs network play, and that broke the network code somewhere. Now, I am having to do the deep dive into all things network, and finally fix the kludges. The new fixes are not necessarily all giving immediate good results, but I hope this eventually makes the network behavior more predictable.
  2. wesleyjohnson

    Why don't source ports REWRITE the entire Doom engine?

    Ports with 32 bit software draw, like DoomLegacy, have already done much to improve software draw. However, in DoomLegacy, the 32 bit software draw still goes through the ds_colormap, because everything in Doom about how the colors are affected by distance, is defined by those color tables. Also that is how colormaps are done. Where the 32 bit RGB draw has it most impressive advantage is in translucent and fuzz. Instead of using those palette color translucent tables, which were far worse than the distance banding, the 32 bit software draw can use true RGB blending, which is what is in DoomLegacy 32 bit drawmode. Back to the colormaps. I have tried to analyze the Boom colormap for LAVA, so that it can be rendered using RGB blending. That colormap is highly non-linear, and our simple linear blending effect does not truly replace it. This is one area where the palette draw still renders better than the 32 bit RGB draw (which includes OpenGL too).
  3. wesleyjohnson

    Deciphering R_ScaleFromGlobalAngle

    Figuring out what the reasoning is in the Doom code, is going to be subject to interpretation. And someone else will likely have a different opinion. I don't think it is a matter of using polar coordinates. If the vertex were in polar coordinates at any time then that could be used for a projection to a sphere, and for large distances that could be approximated as the flat screen. Just because they calculate angles does not make it polar coordinates. The world coordinate system is obvious, and all the calculations can be understood in that coordinate system. Any solving of distances would work. If you use Algebra and some trigonometry, there are several resultant sets of equations, each would yield the same results. But, Algebra assumes perfect numbers with indefinitely large precision and indefinitely large range. The actual CPU available at the time was much more limited, and they wanted to draw this fast enough that it would not flicker. Those needs are what drive the way this is calculated. The basic technique is to calculate a few points correctly, and then interpolate the rest. Distance does not interpolate correctly, but the 1/distance does much better. By trial and error, other damaging effects were discovered and avoided using kludges. To avoid losing precision, is was necessary to calculate intermediate values that retained good precision for as large a range of situations as possible. The angles to the screen pixels happen to have a consistent relation to what is seen. They don't end up calculating a large number of bits of precision that have no effect. In this way the original algebraic equations get transformed to something that retains it values, does not overflow or underflow, or dive into small fractional values, over the expected viewing angles. They could not afford to be doing this using 128 bit floating point math. Everything had to work just using integer math. They could not use the trig functions because they were too slow. So lookup table approximations. To save space those tables were collapsed as much as possible. Everything else is just the details of that. One obvious speed improvement was to not let Z in on the distance calculations. It is not true 3d projection (they call it 2 1/2 d projection). The scale only depends upon the X and Y. The wall is constant over its Z. This means that the scale does not change as a vertical texture is drawn. Now, if they draw in columns too, they can interpolate the scale for a point along the floor, and use it for everything in that column. That is just fast enough to get by on the hardware of the era, and most people don't notice the loss of vertical perspective. You could only look up or down for the height of the screen, as they did not have free look at that time.
  4. Maybe, If you wrote your flyby as a fragglescript function. Put the fragglescript function into a PWAD. Invoked the fragglescript function by a watcher. Record the Doom screen using some OS application that can record an arbitrary window. Maybe. Easier if no other players need to be involved, just a passive fly through a level with a player just standing there. You are going to have to read alot of docs just to see what various ports have to offer.
  5. Most Doom ports have demo recording. Are you thinking about some other recording like a movie ? Some ports have independent cameras, like Doom Legacy. The ability to control the camera is limited, and not having used the camera to do things like you describe, I cannot say it can be done. To me, it seems to require network play, with one non-player watching via the camera. How to record that and what format you want, I don't know. Play phobiata.wad with DoomLegacy. When some keys are applied, a camera view flies around showing the application of the key to unlock something. But, that camera is controlled by fragglescript and does not record anything.
  6. wesleyjohnson

    engine asymmetry WRT wall blocking

    As an experimenter, I do love the weird and novel idea. However, I am not seeing much of a good use or application for this mirrored demo. As a project goal, I recognize it as having great potential as a time-waster. My immediate impression is it is something that that I would back away from, slowly, and try to not look back. You may be caught by the idea already, and have a great deal of difficulty escaping. .. I feel the Halloween season approaching. All those movies they show. The people in those movies should know better. There is a monster lurking, don't open that door. Run away while you can.. I expect the mirrored level map would provide a different feel for some common maps, but then should record demos marked as requiring the mirrored level map.
  7. wesleyjohnson

    engine asymmetry WRT wall blocking

    And any text in a texture is going to be mirror writing ? If the textures don't get flipped some of the adjacent textures are not going to match.
  8. wesleyjohnson

    Source port with mouselook for Windows 98?

    DoomLegacy, has freelook. The OpenGL was developed on the Win98, but the native draw is very good too and much faster for an older machine, and much better looking than 8 bit draw. I still have the Win98 machine set up in the corner, although the Win builds are now done on a WinXP machine. I have always been careful to preserve the ability to run on older machines, not require gaming processors. I think it should still work fine. For years it was compiled using MinGW on the Win98 machine.
  9. wesleyjohnson

    Doom Legacy 1.47.2 Release

    Got a little fix that reduces the sideways walking. It was the one difference from MBF that I could find, and still does not look it should do anything. The hang-up lately is that I am working on Sky extension, so as to not need to stretch any skies. The problem is that the my code is so fragile that every change causes an extensive debugging session. I am now on my third attempt, after having disabled two previous attempts. All the support for this is done, it is just the generation of the sky details that does not behave reasonably. Just started another reorganization of that code, to deal with three possible sources of conflict in what is drawn for the sky. Of course, now it is refusing to draw anything but the background and a few scraggles. Have a selection item for skies, one of which extends with a starry sky. It generates a star field above the wad sky, with some extension of areas the sky. That looks rather like a starry night above the distant hills. I only have to break up that straight line some. Might let the starry sky dip down into the wad sky background. I have about three works in progress that I wanted to get into the next release too, but I want to get past the skies problem first. So, it looks like late Sept. at best.
  10. wesleyjohnson

    Intellectual debts

    I will have to agree with the original post (Quasar) and others in that parts of the implementation portals was poached, before Eternity community even had a chance to get benefits from it. If there now arises a difference in the final implementation, it is likely that the ZDoom community will claim that their larger fan base has more importance, and that Eternity Engine should change to be compatible with them. There are other supporters of ZDoom and its derivatives that are not very subtle in promoting that everyone should just use ZDoom, and any good idea has already been rolled into ZDoom, so why should anyone bother with the other ports. There is no end to the irritation this can produce in the general Doom community, the details of that I will leave to each individual reader. Also, a mention in a bulk file is more of a legal defense than much else, as it is rather irrelevant for any other purpose. The place in the code that was derived from examining Eternity code should mention that right at that place in the code. This may be useful to whom-ever should be maintaining that code next, but is doubly important to any one else who may be considering "borrowing" from that code for their project. It is possible to generate very similar code due to necessity, but this code seems to incorporate ideas and method that originated with Eternity Engine. Even creating code based on examination of some other port often will "borrow" ideas that should be attributed in the derived code, especially if it is extensive or a major feature. In this, I do not take into any account any changes that have happened during this discussion. I am considering the original post and what should have been from the very start.
  11. wesleyjohnson

    Doom Legacy 1.47.2 Release

    What I would like to know is if anyone who has used MBF seen this sideways walking. I want to know if it is an MBF bug, or a bug in my implementing of MBF code. I currently cannot test MBF directly. If the patches that I am working on currently would work, I would like to make the release of 1.47.4 before Aug 2019. As that is not going to happen, then as soon as I give up on them, and just release what I got. I am working extending the short skies up to 240 height, so that we never have to stretch a sky. So far the mechanics are finally working. Some very old hacks in the texture code were unmaintainable, and I am revising that coding first. The extended skies are starting to look tolerable, if you don't stare directly at them. I keep breaking the starry night skies. The starry night skies extend the best of all, sometimes. Will put in a select switch, so users can select which sky treatment works best for a wad. This involves way too much testing, which makes this coding take an enormous amount of time.
  12. wesleyjohnson

    On the evils of ML_DONTDRAW

    I have used it extensively to clean up the map so that the map does not show extraneous implementation details. If I had to split a sector into sections due to lighting or for some mechanism, then there is no reason for the map to show that. Extra lines, extra sector divisions, non-visible trigger lines, lighting sub-sectors, and the like are hidden from the map. I also use it to hide some areas of the level map where I consider that those areas would not be on a map found by the player. These would be freshly dug tunnels, or monster alterations that conceptually occurred after the map was created. Some authors just use it to make things difficult, but I use it to control the map presented to the player. The usage of ML_DONTDRAW is part of the crafting by the author, and is part of the user presentation of the levelmap. By tampering with the display of ML_DONTDRAW, you would interfere with that. No simple rules to distinguish the various uses of that flag.
  13. wesleyjohnson

    Doom Legacy 1.47.2 Release

    DoomLegacy 1.47.3 can change the drawmode in the menu, and does save it in the config file. Read back from the top of this topic. DoomLegacy should go in its own directory. During multi-player sessions, if your DoomLegacy is the server, it allows other DoomLegacy to download your wad files. There are some security measures taken so this feature cannot be used to search your computer. One of those is to block file searches to the HOME directory. If it cannot load legacy.wad (to get support graphics) it will give you error message and quit, which on Windows just looks like quit because all the error messages written to stderr just end up in the stderr file.
  14. wesleyjohnson

    Doom Legacy 1.47.2 Release

    From the "Launcher" comment, I am going to assume it is some version of Windows. I also assume it is 1.47.2, as that is the latest version. Make sure to read the docs. All the setup instructions for various platforms are all in there. Also you need two download files. The executable download, and the support files download. Put them both in the same directory. Give doomlegacy its own directory. Do not put them in your home directory, access to home has been restricted for security reasons. You also need a wad file, like doom2.wad. The way to do it when you have problems is to get a console, and type in the executable name, along with parameters. First, cd to the executable directory, because that eliminates alot of possible problems. On Windows, output and error messages are shoved into the files stderr and stdout in the executable directory. Windows will not output them to the console like Linux does. I suggest first to test that it runs at all. >> doomlegacy --help To get to the built-in launcher, give it no parameters >> doomlegacy Then test what graphics you may ask for >> doomlegacy -game doom2 or >> doomlegacy -native and only later >> doomlegacy -opengl
  15. wesleyjohnson

    Doom Legacy 1.47.2 Release

    Added some new corona types. The corona around torches now flickers. Added some new DrawAlpha draw modes, to better draw coronas in software draw. They will likely get used for fog draw too. This even works in 8 bit palette mode, due to having support for doing RGB color math, and converting back to a palette color using a 12 bit RGB to palette lookup. It is tolerable now. But the best play mode is now NATIVE. Although OPENGL has dynamic lights, it is slow on my machine. Thinking about the next release, 1.47.4. That means I will need to update the docs for these new corona types and modes.