fraggle

Super Moderators
  • Content count

    9501
  • Joined

  • Last visited

Community Reputation

57 Neutral

About fraggle

  1. Also perhaps worth nothing: there's a beta version of Doom 2, and one Doom 2 level (MAP10) appears in some of the Doom alphas.
  2. There's only a very limited set of things you can change with Dehacked - you can't use it to do arbitrary changes to the executable. The most you might do is something that could convert certain bits of MAPINFO into dehacked patches (level names, for example), but it's probably not worth it.
  3. I'm confused by the original premise of the question. Vanilla ("vanilla true" in this context?) usually just means "uses only the features that are in vanilla". If MAPINFO isn't in vanilla then it shouldn't be surprising that "vanilla" ports don't support it. So what exactly do you mean? You mention PrBoom+ and Crispy Doom; are you talking about some category of ports that is midway between "vanilla" and "limit removing" and slightly more liberal about accepting new features?
  4. This is all really interesting; thanks for sharing. This actually matches some of my own experience in the times I've made attempts at playing Heretic. The difficulty seems to be all over the place and the weapons seem too variable inconsistent. It would be interesting to see an attempt to "rebalance" the game, maybe just through some simple Dehacked-style tweaks to adjust hit points, weight, etc. A lot of the stuff you describe can be changed through HHE (the Heretic equivalent of Dehacked).
  5. "BSP traversal" describes the entire process so I'm not sure what you mean. Ultimately I'd expect the bottleneck to be in just getting pixels into the screen buffer. The original Doom source recognizes this and uses optimized versions of the R_DrawColumn / R_DrawSpan functions which are written in assembly (these are missing from the released Doom source but can be found in the Heretic source). Depends on how you want to implement it. Are you talking about running the software renderer itself on a GPU? That could be an interesting project. One idea could be to divide the screen into areas and assign a core to render each area. How you divide up the screen needs to be thought carefully with respect to stuff like CPU caching - for example it might be inefficient to have multiple cores all writing to the same linear screen buffer but I don't know a lot about how cache invalidation works with multiple cores, especially on something like a GPU. One idea I had a while back was to convert the software renderer to use GPU-based versions of the basic drawing functions (R_DrawColumn / R_DrawSpan) - similar to what DOS Doom does, but nowadays "do it in GPU hardware" is the optimization rather than "write optimized assembly". This would have the advantage that some old maps which exploit tricks in the software rendering engine could be rendered the same (check out Requiem MAP31 for an example). Realistically though if you're looking to make performance gains then you should do your own profiling and use it to carefully guide what you attempt to do. That's pretty much it, barring perhaps some common data structures you'll find in header files. It's pretty self-contained. Maybe p_setup.c to see how some of the structures are loaded from disk? +1 to this. Fabien's write-ups are great.
  6. Harsh but this mostly matches my opinion of Heretic too. It feels too much like a "Dungeons and Dragons reskin of Doom". I know that's not entirely fair and there are a bunch of extra gameplay elements in Heretic that aren't present in Doom. However, it's always felt to me like Heretic is something of an "incoherent" game that doesn't have any clear idea of what it is or is trying to be. For example: is Heretic an FPS or a Dungeon Crawler? It seems to exist in some kind of strange halfway house where it can't decide which. But that's just one element - the game as a whole seems rushed and thrown together. With both Doom and Hexen, there's a far more definite feeling that someone had a clear idea of the game they wanted to make. With Heretic it feels a lot more like they were experimenting with the engine they'd been given, trying to see what they could make of it. Hexen is a far more mature work from a team that's had that opportunity to experiment and figure things out.
  7. For the most part, the codebase is pretty well-structured. Rather than looking for an "easy to read" version of the source code my recommendation would be to use the Doom Wiki as a reference point for figuring things out. Those of us with knowledge of it have put a fair amount of work into documenting how the code works. Specifically: Doom source code Doom source code files Doom rendering engine If you're entirely lost and don't know anything about how BSP rendering engines work at all, maybe start here.
  8. I read this years ago and I think I've even linked to it a few times in my comments here. It's certainly an entertaining read, and I think it's not entirely serious - there's definitely something of a humorous tone to it, though maybe others don't detect it (I used to be moderately active on everything2.com myself, years ago, so I know the culture there a bit better and what passes for humor). Though as the saying goes, many a truth was said in jest. While it's clearly exaggerated to absurd extremes for comic effect, some of the stuff there does seem almost on point. "Doom is a male space" for example. From perkristian's work we know that Doom's sound effects were deliberately designed to make the weapons sound more powerful. The feedback loop to the player essentially emphasizes feeling like some kind of manly tough guy. I expect that some kind of Freudian analysis of the game could be quite ... interesting.
  9. https://5years.doomworld.com/ is broken.
  10. Yeah, this looks like it should have been about 10 different articles. Actually, it looks like it is 10 different articles inexplicably on a single page. Frustrating to see what's obviously an epic piece of work torpedoed by its own bad presentation.
  11. For the most part, if we're talking "minimum system specs" in the literal sense of the phrase, then no, there shouldn't be a lot of difference. There's probably no technical reason why Final Doom can't run on a 386 with 4MB of RAM. However, there's a difference between the bare minimum and the "playable" minimum. Personally I wouldn't recommend bothering on anything less than a 486 with 8MB of RAM. I've played Doom on 386s and it's so slow that it's not really worth bothering. When the framerate is that low you're not really experiencing the game as it was intended - you might as well play something else that's going to be enjoyable on a machine like that. Now, to get down a bit into the technical details of why there might plausibly be a different bare minimum between Ultimate Doom and Vanilla Doom: The big thing as I see it is the RAM. Doom has a clever memory caching system that stores things that have been loaded from disk in memory. Things are loaded and discarded as the need arises. If you have a lot of RAM, it might be able to cache the entire contents of the IWAD file in RAM, and then after a few minutes playing you'll probably never see the little blue disk flash at the bottom of the screen again. But if you have very little RAM (say, 4MB) then it's going to be continually loading things and throwing them away. A simple example to explain what I mean: suppose that you shoot an imp. The game has to play the sound effect that the imp makes when it's in pain, so it has to load it from disk into RAM. Then perhaps you open a door and there's a new room with a Mancubus in it. The sprites for the Mancubus aren't in RAM, so it has to load them to show them on screen. If you have very little system RAM then it might be that the imp sound effect gets thrown away to make room for the sprites. Next time you shoot an imp it'll have to load them all over again. If you had more RAM this wouldn't be necessary. So there are things which can make a difference even though the game engine itself is identical between the two games. For example if you're playing some really huge, complex levels, that takes more RAM. I get the impression that the Doom 1 levels were pretty carefully crafted and tested with an eye for staying within memory limits, and I doubt that's true for the Final Doom levels. Another thing to consider is the additional monsters in the Doom II IWADs that aren't in Doom 1. That's a bunch more sprites and sound effects to keep in RAM. All this additional demand for RAM makes the game slower and less playable (as mentioned, it's already pretty much unplayable on a 386), but you can also just straight up run out of RAM too, and the game will crash. Probably they decided to bump the requirements just to set the right expectations, but by the time Final Doom came out (1996) requiring a 486 was a perfectly reasonable request.
  12. free_speech.png

    1. Doomkid

      Doomkid

      Agree with the sentiment but think it's a shame that 99% of places people come to discuss ideas they may not necessarily agree on are privately owned, often by people who have an agenda to foster a certain point of view and silence another. Still, the comic is factual and pretty funny.

       

      (To be clear I'm mainly talking about social media platforms, Doomworld has been tenfold better since political "discussions" stopped happening)

  13. By then maybe you'll finally have ops, and won't even have to blow anyone's goat until it turns into the flaming ass of a bloated camel carcass?
  14. Digitiser was the only reliable source for unbiased game reviews.
  15. I've re-read your post several times and it's hard to understand what you're trying to achieve and what you're trying to defend against. It sounds like you want to hide your network activity from your ISP - is that what you're trying to do? If so then there are several ways you can do this. One is to set up something like Tor. Another way is to set up a VPN server outside your home and tunnel all your traffic through that. Then your ISP can't see anything except an encrypted tunnel. There are several options for how to do this: you can rent a Raspberry Pi in a data center for example. You can also rent a virtual server (VPS or VM) and run a VPN server on it - there are many providers who will do this for a monthly fee and it's now quite cheap. Finally, there are dedicated VPN services that you can just pay for. It sounds like you read some tutorials about how to set up a VPN at home so that you can access your home network when you're away. That won't do much to hide things from your ISP, since any Internet access still goes through them. The state of Internet privacy has at least improved in recent years since many sites have switched to https: though (like Linguica explained).