Guest User

Untitled

a guest
Jan 1st, 2018
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.98 KB | None | 0 0
  1. Tue, 5 Dec 2017 18:42:11 -0800
  2.  
  3. Always glad for an opportunity to rant! :) I don't know how much
  4. background you're going to include or assume the reader already knows,
  5. so if some of the explanations about Doom network code, ZScript, etc.
  6. are redundant feel free to edit them out.
  7.  
  8. I also don't know how long the answers are supposed to be. Let me know
  9. if I'm going over and I can try trimming some of the fat.
  10.  
  11.  
  12. > How did you first come up with the idea of a hyper-realistic Doom
  13. > mod? Obviously Doom isn't known for that kind of gameplay, so what
  14. > inspired it?
  15.  
  16. Well, first things first, I should qualify that "hyper-realistic"
  17. description! HD is vastly more forgiving - you'll never break a bone
  18. or lose an eye, for instance.
  19.  
  20. What's packaged as HD now started off as 4 different mini-mods I made
  21. for my own use back in the mid-2000s.
  22.  
  23. The first was a pinky demon replacement, a proof-of-concept based on
  24. what I'd read on the Inuitor Insultingly Stupid Movie Physics website
  25. review of the 2003 Hulk movie. (The review has been taken off the site
  26. though it might be in the book.) Basically the objection that caught
  27. my eye was that making giant Hulk-ized pit bulls (nevermind the breed
  28. bias) was a terrible idea, because pit bulls were already just the
  29. right size for the sort of attacks they're known for and being bigger
  30. would just slow them down. So I thought about the huge man-sized pinky
  31. demons that basically served the role of Wolfenstein's German
  32. shepherds and wanted to try out a smaller, faster, more agile version
  33. to see how much deadlier they could be.
  34.  
  35. The second was an attempt to give the zombiemen a 3-round burst
  36. attack. The main FPS I was playing at the time was the Infiltration
  37. mod for the original Unreal Tournament. I remember having some trouble
  38. running it after some updates (it had incredible detail that
  39. *seriously* tested the limits of what the engine and my computer could
  40. handle), and wanted to see if I could replicate some of that gameplay
  41. in another FPS.
  42.  
  43. The third was an attempt to create an assault rifle with grenade
  44. launcher, when the DECORATE markup language was advanced enough to do
  45. custom weapons.
  46.  
  47. The fourth was a DECORATE replacement pain elemental that, instead of
  48. shooting lost souls, shot fans of mancubus fireballs and randomly
  49. strafed while chasing the player in the same manner as some of the
  50. Hexen bosses. The idea was to make a more interesting and less
  51. aggravating fight while keeping the overall difficulty the same.
  52.  
  53. Eventually I combined these things into a single mod.
  54.  
  55. Sometime around March 2007 I discovered that I could use ACS to change
  56. a player's pitch and angle when they fired, so I added
  57. Infiltration-style muzzle climb to finally justify the three-round
  58. bursts. And then I just kinda started adding stuff from there, and the
  59. pattern continues to this day.
  60.  
  61.  
  62. > Is Hideous Destructor a "gag" to you - in the sense that it
  63. > completely subverts everything everyone knows about Doom - or do
  64. > you think that a truly innovative gameplay experience came to light
  65. > when you framed it through a hardcore, tactical FPS lens?
  66.  
  67. Hideous Destructor is Doom fanfic! Virtually every design decision
  68. comes from asking the question, "Given Doom has ____, but also has (or
  69. doesn't have) ____, how do we harmonize those facts in a way that
  70. makes the setting plausible and the gameplay fit the setting?" (One
  71. possible exception is in the monster attacks most of which were
  72. inspired by various anime and gaming tropes, but consider: "Given Doom
  73. has flashy magical attacks that don't really mesh with known laws of
  74. physics, and also has the BFG,...")
  75.  
  76. The guys who make Ground Branch have a name for their philosophy:
  77. Natural Order of Realistic Gameplay. The way I understand it, it means
  78. that they don't try to come up with any pre-defined roles or
  79. expectations and try to manipulate damage, accuracy, etc. to match;
  80. instead, they do their best to replicate how a gun (or a bullet or
  81. whatever) works in real life and however good or bad it is, that's
  82. what it is. No distortions or concessions should be made in favour of
  83. "game balance"; the normal tradeoffs described by Isaac Newton and
  84. Adam Smith should be enough. (My own experience working with HD is
  85. that, if you've got 2 guns with real-world counterparts and one is so
  86. clearly better ingame that no rational player would choose the other
  87. one in any context when both are available, either your game is not
  88. sufficiently modelling something - malfunction rate, felt recoil,
  89. maneuverability in tight spaces, convenience of ammunition - or your
  90. game only has situations that the inferior gun was never designed
  91. for.)
  92.  
  93. What I do with HD kinda sorta skirts around the borders of that, but I
  94. cannot commit to such a philosophy wholesale. As a generic "Doom
  95. improvement" gameplay mod, I try to ensure that every canon weapon is
  96. represented in some way, meaning there are some weapons that I *must*
  97. use like the chainsaw or super shotgun which you wouldn't even think
  98. about adding if you were designing a tactical milsim from the ground
  99. up. This, and the fact that the weapons don't perfectly correspond to
  100. anything in our time and place, gives me both the freedom and the
  101. obligation to come up with reasons for a weapon's continued presence.
  102.  
  103. I'm guessing, of course, that the folks at Blackfoot never have to
  104. consider much more speculative things like "Why would this
  105. zillion-dollar corporation hoard all these barrels of glowing green
  106. goo?" or "if I were Satan what would motivate me to strike the Earth
  107. with a visible, physically vulnerable army, giving up my most powerful
  108. weapons of disbelief and complacence, and what would I be exploiting
  109. to give me the power to do so (and why wouldn't I just use the
  110. old-fashioned featherless bipeds and bring up another Bolshevik
  111. revolution or ISIS or Moral Majority or whatever)?" when developing
  112. Ground Branch.
  113.  
  114. In between typing bits of my answer I was given a link to a short
  115. story in Uncanny Magazine, "Between Liminal Spaces" by Hiromi Goto.
  116. https://uncannymagazine.com/article/notes-liminal-spaces/ It's
  117. surprisingly resonant of some (not all, and not all of it is resonant)
  118. of the thought processes that go on when I decide what to add or not
  119. add in HD.
  120.  
  121.  
  122. > It seems like a lot of work to add in, like, head-bob and manual
  123. > medpacks to a source code that didn't calculate for those things
  124. > before. How difficult was Hideous Destructor to make? What were the
  125. > hardest things to implement?
  126.  
  127. First I need to correct two possible misconceptions. I'm not doing
  128. anything to the Doom source code at all - everything is done within
  129. the confines of GZDoom's scripting systems and can be run by GZDoom
  130. unaltered. Head bobbing is already in Doom - it's just that at the
  131. reduced speeds the default amount becomes much more pronounced. (Only
  132. this past year was it possible for the mod to reduce the amount
  133. further so at the lowest speed it didn't look like the player was
  134. going on tippy-toes in the middle of each step.) There's nothing in HD
  135. that you wouldn't be able to find in another GZDoom mod; it's the way
  136. they're all put together that makes it what it is.
  137.  
  138. With that out of the way: I think you've caught me at one of the more
  139. interesting times for me to answer such a question. Late in 2016 Graf
  140. Zahl et al. released the first implementation of ZScript, an ongoing
  141. attempt to unify as much of (G)ZDoom's functions as feasible into a
  142. single comprehensive runtime-compile scripting language.
  143.  
  144. This meant that years of work with crazy workarounds in DECORATE and
  145. ACS [Action Code Script, first introduced in the original Hexen for
  146. running certain events in a map] was deprecated or obsolete.
  147.  
  148. To be clear, I was (and am) very happy to bin all that old work and
  149. replace it with more sensible, maintainable coding. But it does mean
  150. I've spent the past year having to substantially rethink almost all of
  151. HD's pre-existing code, and the new stuff has introduced a lot of new
  152. bugs to deal with. Just in terms of sheer amount of time spent,
  153. though, this overhaul project itself (which is still ongoing but on
  154. hiatus due to other commitments) is definitely a contender in being
  155. the most difficult "one" thing.
  156.  
  157. In terms of sheer aggravation, I think I have had the most trouble
  158. with debugging multiplayer desyncs. [For a bit of context for those
  159. who only got into online gaming after Quake: the way a GZDoom
  160. multiplayer game works, each client is running a wholly independent
  161. instance of the game and (more or less) the only things communicated
  162. between the clients are player inputs and diagnostics. This means
  163. that, if I start 2 instances of GZDoom loading the same mods and
  164. entering the same map, *every single thing* in the game world, visible
  165. or invisible, has to be *exactly the same*, or the game will
  166. desynchronize - everyone's version of what is going on will get more
  167. and more different until nothing makes sense anymore.]
  168.  
  169. Hideous Destructor uses a *lot* of randomly generated numbers. Most of
  170. the time this raises no issue with multiplayer - the numbers are all
  171. clearly selected within the playsim from a pre-generated list and all
  172. clients will be in sync. However, *some* things are not obviously so,
  173. and are treated differently by each client. Sometimes it has turned
  174. out to be a bug with GZDoom; other times it is an undocumented (or
  175. merely non-obvious) distinction in how certain types of things are
  176. treated; a few rare times it's even been a problem with another mod
  177. that was being loaded with HD. It takes a lot of testing and guesswork
  178. to figure out.
  179.  
  180. On the other hand, a couple things that have continued to bother me
  181. that are hard enough that I still haven't tried to implement them for
  182. any release:
  183.  
  184. - Decisionmaking for the monsters. I've given up pathfinding, but the
  185. prospect of a monster being able to decide on principled grounds
  186. (instead of just randomly) whether to attack or move is always this
  187. tantalizing that I keep thinking *just a little more work and it just
  188. might work!*, but every attempt has inflated into a huge ball of
  189. unmanageable spaghetti before imploding - with no noticeable
  190. improvement in the overall effectiveness of the monster in question.
  191. (In some ways it makes them even easier to fight, because they become
  192. very easy to predict and exploit.)
  193.  
  194. - Persistent individualized magazines, batteries and other
  195. partial-consumables in the player's inventory. In Doom, each inventory
  196. item carried on a player is supposed to consist of a single actor for
  197. that inventory type, with an "amount" variable to track how many the
  198. player has; a whole new array would have to be defined to track
  199. individual amounts in each instance of that item. The bookkeeping can
  200. be done, and theoretically nothing is stopping me; but there are so
  201. many edge cases where other things interfering with the player's
  202. inventory can potentially "desync" between the number of units one has
  203. and the number of sub-units in each of those units.
  204. The current compromise, which was practically all but necessary before
  205. ZScript, goes like this: I've got 2 separate inventory items for full
  206. mags and rounds that are not in full mags. If you hit reload, you'll
  207. try to reload one of the full mags, and if you don't have one of
  208. those, you'll reload a random number of the abstracted rounds - always
  209. short of a full mag. Meanwhile, if you sit around doing nothing for
  210. long enough and you have the relevant weapon out (and your full mags
  211. are not already maxed out), you'll start passively converting partials
  212. to fulls. Not very satisfying but at least it conserves the number of
  213. rounds available (unlike some mods that discard the partial entirely)
  214. while discouraging Chronic Reload Syndrome.
  215.  
  216.  
  217. > What's the part of Hideous Destructor you're most proud of?
  218.  
  219. I think HD has ruined me for a lot of weapon mods and FPSes out there
  220. when it comes to being impressed by the performance and *presence* of
  221. a weapon. A lot of thought goes into making sure the weapons are
  222. portrayed as having their own independent existence from the player -
  223. it's more than just you hit this button, your HUD plays this animation
  224. and the projectile spawns to hit the other guy, you've got to deal
  225. with the weight of the thing, it gets snagged in things and it's
  226. annoying - having the biggest gun isn't just a macho wish-fulfilment
  227. anymore when you've got to *work* to lug it around.
  228.  
  229. On the other hand, I take a lot of pride in trying to come up with
  230. ways to make HD as responsive to the player's input as possible
  231. without a multiplicity of buttons to memorize. I find so much
  232. "realistic" fare unplayable when you've got a key to lean left, lean
  233. right, go prone, crouch, crouch slightly higher or lower, tuck your
  234. elbow in, start breathing voluntarily, etc. etc. etc. - it just starts
  235. to feel like I'm trying to pilot a vaguely man-shaped
  236. remote-controlled robot. With HD I try to throw all that out and stick
  237. as close as I can to the controls normally available in GZDoom -
  238. which, including altfire, reload, zoom, 4 custom user weapon
  239. functions, use-item, jump and crouch, is already more than twice the
  240. total number of buttons you could use in vanilla Doom.
  241.  
  242. That all said, I really like the mage imp attacks.
  243.  
  244.  
  245. > I wanna say you first uploaded Hideous Destructor back in 2007
  246. > (though I could be way off on that,) and over the years the mod has
  247. > certainly picked up a cult following. What does that mean to you?
  248. > To have a niche group of people who are totally in love with your
  249. > insanely difficult Doom contraption?
  250.  
  251. The earliest recorded writings I have discovered evidencing an HD
  252. release go back to February 2007, so let's go with that. :)
  253.  
  254. I'm certainly grateful for all the people that care about this mod.
  255. Guys like mumblemumble and Abba Zabba and Silentdarkness12 (just
  256. arbitrarily naming the first 3 I can think of off the top of my head)
  257. have been indispensable in providing feedback and bug reports. Hard
  258. Knox's videos (and SD12's) are always a joy to watch. Without you guys
  259. HD would be... well, maybe not that terribly much *more* of an
  260. unplayable bizarre dog's spaghetti breakfast, but certainly a lot
  261. buggier and less compatible with all the different maps out there!
  262.  
  263. (My sincerest apologies to those whose names I have neglected for
  264. brevity's sake. I am not known for being even remotely fair.)
  265.  
  266.  
  267. > You still do active work on the mod to this day right? What are the
  268. > sort of tweaks you're working on right now?
  269.  
  270. As I mentioned, I'm still in the process of upgrading everything to
  271. ZScript. I'm maybe 80% done with the weapons, though I may go back and
  272. revisit some of the earlier stuff to optimize it with some of what
  273. I've learned along the way.
  274.  
  275. I've recently commissioned some new assault rifle HUD sprites from my
  276. graphics artist ( https://art-of-bee.tumblr.com/ ) and I've got to add
  277. them soon for the next release.
  278.  
  279. I might reach a point where I might expect to start telling myself I'm
  280. finished, but that's turned out to be a lie before. A few times over
  281. the years I've decided that HD was "finished" and decided to update
  282. only for bugfixes and maintenance, but every time I've done that
  283. eventually:
  284. 1. GZDoom came out with a new feature that finally let me do something
  285. I'd wanted to do for years; or
  286. 2. I learned something that turned something in HD totally upside
  287. down. The biggest example of 2 that comes to mind: HD has become
  288. much, much more forgiving of player mobility (especially while
  289. shooting) in recent years. In earlier versions your entire view would
  290. go way off and you'd suffer all sorts of penalties, and your speed
  291. for anything other than forward sprint was slower generally. Back
  292. when HD got started I had been very active on the Infiltration forums
  293. and training rapier with Academie Duello back when they were still
  294. working out how they would even teach their stuff. Both experiences
  295. put a *huge* emphasis on maintaining ideal static forms in pursuit of
  296. perfect defence and offence. Then after something like an 8-year
  297. hiatus I picked up rapier again with Valkyrie Western Martial Arts
  298. Assembly ( http://boxwrestlefence.com/valkyriewmaa/ ) and it almost
  299. literally added two entire dimensions to how I viewed armed combat -
  300. those perfect static defences were only ever meant for the tiniest
  301. sliver of time in a much more complex process. Going back to HD I
  302. realized that I was grossly overpenalizing and overrestricting
  303. movement where I should not have, and a lot of tweaks around that
  304. time were geared towards letting the player act and maneuver - and
  305. *fight* - more naturally.
  306.  
  307. Pretty much all I ever post about HD is on the ZDoom forum thread.
  308. It's generally fairly quiet (compared to say the Brutal Doom Facebook
  309. page) and frankly I like it that way - lots of people with lots of
  310. ideas, lots of them really are good proposals (or would be good but
  311. for some limitations imposed by the engine, cliché aversion or my
  312. arbitrary whim) but I've only got so many hours in a day and so many
  313. spoons to throw at things.
  314.  
  315.  
  316. > Also if I could get your name, your age, and where you're from,
  317. > that'd be great.
  318.  
  319. Matt, mid-30s, Richmond, BC.
  320.  
  321.  
  322. > Thanks so much!
  323.  
  324. Thank you for this opportunity!
Advertisement
Add Comment
Please, Sign In to add comment