[HN Gopher] From BSP to ESP - How S3ctor Abused Quake Editors to...
       ___________________________________________________________________
        
       From BSP to ESP - How S3ctor Abused Quake Editors to Redefine the
       Morrowind Mod
        
       Author : todsacerdoti
       Score  : 130 points
       Date   : 2024-11-13 01:23 UTC (21 hours ago)
        
 (HTM) web link (openmw.org)
 (TXT) w3m dump (openmw.org)
        
       | knome wrote:
       | hey, in case the author is the submitter, your title covers
       | 2/3rds of the top line when viewing this from my phone.
        
       | slowmotiony wrote:
       | I have a hard time believing an eight year old child was watching
       | Doom 3 developer talks and telling his kindergarden friends about
       | buffer shadows and Carmack's Reverse.
        
         | sorbusherra wrote:
         | I don't know...When I was kid we used to talk poking memory
         | addresses for cheats while playing c64 games and we were all
         | 9-11 years old. Kids do darnest things.
        
           | amatecha wrote:
           | true, that reminds me of my friend hex-editing his savegame
           | files for WarCraft 1 in DOS - he would have been 10 or 11 at
           | the time.
        
         | badsectoracula wrote:
         | I started programming at 7, i was certainly telling my friends
         | about all the random stuff i barely had a smidge of
         | understanding while trying to program simple games myself - i
         | could barely move a smiley face (DOS ASCII character 2) on
         | screen to collect hearts (DOS ASCII character 3) and yet i was
         | certain i could make a game like Prince of Persia once i
         | figured out how to draw lines on screen with Turbo Pascal's
         | BGI.
        
         | pjmlp wrote:
         | Back in the 80's having 10 year olds show off Z80 Assembly on
         | their Speccy and C64 wasn't that extraordinary, what was
         | impressive is the ideas many would think of without nothing
         | else besides a couple of books and nothing else.
         | 
         | I am sure what I am telling here, because I was one of those
         | kids, with whatever we could get from the local library,
         | coupled with Input magazines, and some Portuguese newspapers
         | with computing stuff on fridays (A Capital).
         | 
         | By 14 I was already into Demoscene stuff.
         | 
         | EDIT: Naturally it was 6502 on the C64.
        
           | warpspin wrote:
           | Dito. Started c64 scene at 12. You had to not talk about your
           | age back then, though.
        
           | Y_Y wrote:
           | Is there any modern equivalent? If you could control a
           | child's computer access and didn't care about them missing
           | out on tiktok etc what would you do? Of course a refurbed ZX
           | Spectrum is an option, as is Scratch or some other hand-
           | holding environment. I'd be interested to know if anyone is
           | raising tough, rugged, Mel-type hackers[0] these days, and
           | how they're going about it.
           | 
           | [0] http://www.catb.org/jargon/html/story-of-mel.html
        
             | warpspin wrote:
             | I am skeptical that this can be repeated at all nowadays
             | the way we had it in the 80ies and 90ies (or even earlier,
             | but I'm an 80ies child, haha). At best with some kind of
             | limited hardware or in some narrow area like writing games.
             | Also, surely not with Scratch. Scratch is, what you give a
             | 5 year old to learn some concepts in my opinion. My
             | children were appalled by it when they became 10 cause it's
             | "baby stuff". At least those kids interested in
             | programming.
             | 
             | The thing in the 80ies and early 90ies was, that you could
             | actually, as a kid, compete with something professional and
             | have total control over the outcome, if you had a bit of
             | talent in any area. This was unbelievably motivating.
             | 
             | Where can one person or two people nowadays seriously
             | compete with professionals and have serious control over
             | the outcome? If at all in the area, where you will actually
             | find kids today: Roblox games, Unity games, anything with a
             | finished engine, where they can focus on the content itself
             | because anything else will simply be unrealistically large
             | effort.
             | 
             | Also, limited retro hardware things might work, I do not
             | know. For me, if I was a child again, they would not work
             | because these are things that are too limited - I would
             | always know there are really powerful PCs with all 3d stuff
             | around. As said above, the fantasy of being able to do
             | anything some software company could do was what motivated
             | me in the 80ies/early 90ies, so I'd rather probably teach
             | myself some game engine, too, because that allows me to
             | live the state-of-the-art fantasy. At least I assume that.
             | 
             | Another thing old hardware did, by the way, which modern
             | hardware does not, is that it launched people on a
             | programming learning path immediately, if they desired to
             | successfully use it. You could not use a C64 without
             | learning at least a tiny little bit of basic.
        
               | sumtechguy wrote:
               | > I am skeptical that this can be repeated at all
               | nowadays
               | 
               | For me I think it was more of an access issue that caused
               | me to want to do it. Once you were done with the 2-3
               | games you might have. You started getting the mags from
               | the library and typing things in and hoping it would work
               | (no typos!). Just so you could get another game.
               | 
               | Along the way you picked up tons of low level
               | programming. The computers of the time were 'batteries
               | included' usually including some form of BASIC and then
               | an escape into the world of ASM if you knew the right
               | incantations. After awhile you would find hey this
               | programming thing is sort of fun too.
               | 
               | But today a kid has some access to things like what you
               | point out. But however they also have access to thousands
               | of other games for a very reasonable price. The older
               | systems you better be committed to getting that game you
               | wanted as they were decently priced high enough you had
               | to shell out a decent amount of cash to get it. With free
               | to play and thousands of low priced games plus the
               | massive catalogs of older systems. Getting a game is now
               | 'easy' and cheap.
               | 
               | On my old computers apple2, c64 and ti994a the prompt to
               | launch things _was_ a programming prompt. With the GUI
               | world there is no prompt just files and icons. Getting an
               | IDE setup on most modern systems is not hard but it is an
               | extra step (and fiddly with some of them). You are then
               | presented with a blank canvas but you have to know how to
               | fill out the form to get it to do anything at all.
               | 
               | Could we replicate the old systems? Totally. Would anyone
               | actually use them? Not so much as to 'get things done'
               | the GUI is way better. There is a step missing if we want
               | to replicate what we had. But is 'what we had' the right
               | way to program? That I am not convinced of. Pretty sure
               | if I said 'yes' that would be my bias of using it that
               | way showing. We would have to have a different way that
               | still brings people up step by step we had but fits into
               | the current landscape of computers.
        
             | wing-_-nuts wrote:
             | I _highly_ recommend hooking your kid up with pico-8.
             | 
             | It's a simple little 'fantasy' console with tons of tools
             | to make gamedev streamlined. It's really caught on fire
             | with the gamedev community and you can tell there was a lot
             | of pent up creativity out there that was sick of the
             | complexity of modern gamedev and just wanted a tight little
             | environment to make simple indie games with. I'm not doing
             | a good enough job describing it, but the website is below
             | and check out the youtube overview.
             | 
             | https://www.lexaloffle.com/pico-8.php
             | 
             | https://www.youtube.com/watch?v=uXveyqOYB5w
        
             | johnnyjeans wrote:
             | I sincerely doubt it.
             | 
             | One of the more underexamined consequences of computers
             | being so ubiquitous and widespread is how it's affected
             | child rearing. Any parent or anyone who works with children
             | knows one of the most important parts of child rearing is
             | socialization. It's imperative that your child gets along
             | with other children, always has been. Today, with children
             | being given access to social media, that means that your
             | child too will have to be given access to social media in
             | order to fit in. The reason being that this is what kids
             | will talk about amongst each other primarily, it will
             | constitute much of their interests early in life.
             | 
             | The problem of course with this mandatory exposure is that
             | it's vampiric. The odds of getting a kid into 6502 assembly
             | after they've been exposed to the monoamine explosion of
             | trite garbage like TikTok may as well be an impossibility.
             | Deprive them of that explosion... they'll probably not have
             | a good time with their peers. Social ostracization will
             | harm their personal development, and they will experience
             | it if they can't yap about the latest memes with the other
             | snotlings. They'll grow to resent you for making them the
             | weirdo with nil cultural knowledge.
             | 
             | It's a rather worrisome situation, honestly. The best route
             | to getting kids into programming, in my opinion, is through
             | Roblox or making Fortnite custom maps. It's stuff they can
             | share with their friends in a medium that they'll enjoy and
             | think is cool. It fits in with their cultural motions. If
             | you do a good job of encouraging their experiences doing so
             | and instilling a hunger for more and deeper knowledge,
             | eventually they'll move on to greater horizons.
             | 
             | I say this as someone that's absolutely loathe to do any of
             | this. I _would_ want to raise my child on Plan 9. Teach
             | them how to write 6502, how to write lua, how to write C.
             | But it 's just not how the world works anymore.
        
               | tiahura wrote:
               | It can, you just have to have the right wife.
        
               | KerrAvon wrote:
               | The answer is to find like-minded parents and form
               | schools with their kids. This is hard to do, but it is
               | the only real answer.
        
             | vundercind wrote:
             | The modern equivalent doesn't look the same at all if you
             | want equivalent _motivation_.
             | 
             | We all dicked around with "shitty" computers and learned
             | all the stupid trivia you had to memorize to use them, back
             | then, because _that 's all there was_ and you could make
             | your own bad text adventure or crack some commercial game
             | or whatever and your friends might think it's cool, because
             | that was _state of the art_ , or close to it, and anyway
             | you had to get about half-way to being able to program a
             | computer just to be able to run games or play around in a
             | text or image editor. The extrinsic motivation for hacking
             | on some modern C64 clone or what have you is far lower than
             | it was then.
             | 
             | Minecraft modding is probably the closest modern
             | equivalent.
        
               | jdwithit wrote:
               | Yeah I think this is a good point. Around ~8th grade I
               | got pretty far into making a Final Fantasy 6-inspired
               | JRPG in QBASIC with some friends. Obviously it was not
               | remotely professional quality. But the delta between it
               | and a "real" game wasn't THAT insane. There's only so
               | much you can pack into little 8 or 16 bit sprites. It's
               | very easy to write a 2D tile based engine, there was a
               | lot of info on the Internet about it even then back in
               | the late 90s. I didn't need to know college level math to
               | do basic 2D rendering and effects. If making a somewhat
               | presentable game in the 90s interested you, it was all
               | pretty attainable with study and work.
               | 
               | Nowadays, for my own kids, the equivalent would be trying
               | to write... Zelda: Tears of the Kingdom from scratch?
               | Which is like asking them to solve cold fusion based on a
               | middle school understanding of science. It's laughable.
               | Making "old grandpa games" doesn't motivate them. Which
               | is a bummer, because hacking on that crappy QBASIC RPG
               | definitely set me on the path to a lifelong interest and
               | career in tech. (Unfortunately it was never finished,
               | because my HDD died, and the backup I periodically dumped
               | to a floppy was unreadable, so several years of effort
               | were lost. Great early lesson about backups not meaning
               | shit unless you regularly test that you can restore
               | them...).
        
               | filoleg wrote:
               | I agree with your take, just wanted to add Roblox to that
               | list containing Minecraft modding as well.
               | 
               | Kids create almost full blown games in Roblox these days.
               | Most of what they create is ofc extremely basic and is of
               | poor quality, but they are kids. And the outliers can get
               | pretty insane, in a good way.
        
             | Caius-Cosades wrote:
             | Well there probably would be more those kind of genius-
             | autist-savants if children were allowed and encouraged to
             | pursue their interest. Instead what usually happens when
             | and if a child becomes obsessed with some topic is that
             | instead of allowing child to pursue what he is passionate
             | about by guiding a child towards a more constructive
             | path(if necessary), he gets penalized for it. Repeatedly
             | and as often as it takes for the child to stop dreaming.
             | And that is such an incredibly stupid waste of human
             | resources.
        
           | pryelluw wrote:
           | Yep, same here. I didn't know what I wasn't supposed to do so
           | I tried whatever. Spending hours just typing nonsense until
           | something worked. Getting the monitor to display different
           | colors was certainly exciting! I never made it into demos but
           | sure did spent way too much time poking around my c64.
        
         | bogwog wrote:
         | I started when I was around 10, and made my first "game engine"
         | in C++ at around 12 or 13. If anything, doing this type of
         | thing when you're that young is easier (unlimited free time,
         | and young brains probably learn things more easily). The only
         | real barrier is interest/motivation.
        
           | colechristensen wrote:
           | >The only real barrier is interest/motivation.
           | 
           | My barrier at that age was just information. Obviously things
           | have become much easier now.
           | 
           | Having windows 95 as your first OS made this particularly
           | difficult and the Internet was what it was at that time.
           | 
           | It took me years to find the right questions to ask and the
           | right information. What took me several years to figure out I
           | have tought someone in an afternoon. (getting from 0 to a
           | short roadmap to something functional).
        
             | amatecha wrote:
             | Yeah, I always wished so badly I knew an adult who was a
             | skilled programmer. I borrowed books from the library but I
             | would always hit a wall so early on, not being able to make
             | sense of the concepts (and being on a Mac, which none of
             | the books provided a compiler for). Looking back I know for
             | a fact I could have grasped the concepts if they were
             | explained a little more "gradually" for me, which a mentor-
             | type person absolutely could have done easily.
        
         | wrsh07 wrote:
         | Even today a friend's kid has been programming since younger
         | than eight - watching YouTube videos about game development etc
         | 
         | I think you'd be surprised at what kids are able to do at what
         | ages if they're allowed to work productively towards useful
         | goals
         | 
         | Watch a video of some Montessori 3 year olds.
        
           | bobim wrote:
           | Montessori has nothing to do with this, my triple experience
           | is that kids figure out the method allows them to derp
           | around, and they will derp around. The school tells nothing
           | as keeping the cash coming in is more important than kids
           | education.
           | 
           | A passionate kid is passionate, the method is not making him
           | passionate.
        
             | wrsh07 wrote:
             | The friend's kid isn't a Montessori kid
             | 
             | He just likes programming. He likes building stuff. One of
             | his best friends is a kid his age who lives across the
             | country. They just like being productive.
             | 
             | At the end of my previous post, I was trying to dispel this
             | idea that kids under ten are incapable of doing things
             | independently. That they're incapable of engaging in things
             | like an adult. If a 3 year old can grocery shop and make a
             | cake, an 8 year old can watch a game dev talk. Can be
             | obsessed with game engines. Can learn to juggle.
             | 
             | My niece wrote a blog post years ago when she was under
             | ten, and the comments she got were "your parents must have
             | written this for you, you aren't capable of having done
             | this" which is absurd. Don't act like kids are incapable
             | just because the ones you see are incapable.
        
         | amatecha wrote:
         | hmmm, I don't feel too skeptical about it - I think it just
         | sounds more impressive in hindsight where it can be described
         | in full clarity (and probably underestimating how much was
         | picked up in the months/years afterward). I was writing
         | HyperTalk around the age of 9, after learning the "secret"
         | command of "set userlevel to 5" [0], although it was kinda
         | difficult without any documentation (I just opened other
         | existing Stacks to see how stuff was done). If you grew up
         | around computers and had a knack for it, well, a youthful brain
         | just soaks up everything it's exposed to, really.
         | 
         | This actually reminds me of how valuable it can be to expose
         | kids to complex/depthful things from an early age -- some will
         | dive right in and embrace it, and potentially enjoy a rewarding
         | experience with the particular subject.. For me it was
         | computers, and at the time I really couldn't get enough.
         | 
         | [0] https://hypercard.center/HyperTalkReference/Set-the-user-
         | lev...
        
         | pzduniak wrote:
         | Eh, you're overestimating OP's statement. I think they're
         | roughly my age and at eight I was busy figuring out Win32 APIs
         | and DLL imports in Object Pascal to make _rad utility
         | programs_. I probably would've immediately gone into game
         | modding if not for the fact that I was using a late 90s Dell
         | notebook that had like 8MB of VRAM :) Two years later I had a
         | bunch of game servers running entire custom gamemodes
         | implemented in LUA with other kids _loving it_.
        
         | pdntspa wrote:
         | I was pulling similar shit around that age, armed with those
         | old illustrated "How Computers Work" books. This kid just got
         | into something nerdier
        
         | foldor wrote:
         | 8 years old is well past kindergarten aged. It's the second
         | grade around here. It's still young, but the maturity
         | difference is huge.
        
         | shpongled wrote:
         | I booted a hobby OS I had written in C on the family PC (off of
         | a floppy disk!) by the time I was 13. Kids can have a lot of
         | free time to mess around with this stuff - I would love to see
         | what I could do now with a whole summer off.
        
         | craftkiller wrote:
         | I started programming when I was 8. Certainly not to the point
         | where I would understand Carmack's reverse and buffer shadows
         | but there are people much smarter than me and information has
         | never been more available than it is today so I don't think its
         | completely implausible.
        
         | epcoa wrote:
         | You're basically just calling the author a liar.
         | 
         | I don't think this is necessarily extreme outlier child prodigy
         | level (and maybe just as well), but do you completely
         | disbelieve a 10 year old completing a degree in Physics? Do you
         | not believe they exist? [I think the story is somewhat eyebrow
         | raising, not to endorse it as good, just that it exists]. But
         | if that person told you or wrote they completed University at
         | age 11 are you going to just say well that's unbelievable
         | because it's so rare, it can't possibly be true. You think
         | Terence Tao's life story is just made up?
         | 
         | You truly can't believe out of the millions of eight year olds
         | that some are doing this sort of thing (and that it would be
         | more than likely to appear here)? If you can, then you're
         | basically saying they're a liar, for what reason? If that's not
         | the intent, then what is it?
        
       | ahoka wrote:
       | You can do much more in Blender and it takes around a month to
       | get to a decent level with it. BSP is just outdated and limiting.
       | If you want to add small details and variance, then just make
       | smaller models and combine them in creative ways, together with
       | decals, texture atlases, etc.
        
         | cheeseomlit wrote:
         | Blender certainly has many more features, but I've been
         | bouncing off of it for years- every time I try to learn it I
         | get overwhelmed by all the minutia. Trenchbroom just feels more
         | natural, and for lower fidelity quake-style maps its all you
         | really need
        
         | bogwog wrote:
         | They're creative tools. The "better" one is the one that the
         | artist is most comfortable with. I've seen working professional
         | artists who still rely on ancient abandoned software from dead
         | companies.
        
           | amatecha wrote:
           | Years ago I learned about the tools that one of my favorite
           | bands used. At the time where Intel Macs were taking the
           | world by storm, these guys were still using G4 towers in
           | their studio and had no interest in using anything new. I'm
           | sure they moved onto something newer, but who knows how long
           | that took. Indeed, an artist's relationship with their tools
           | takes some time to develop and isn't easily cast aside!
        
         | tightbookkeeper wrote:
         | You're not responding to the article.
         | 
         | > BSP is just outdated and limiting
         | 
         | - In quake brushes are not just visual, but are also used to
         | solve collisions. Without brushes you need separate "collision
         | meshes".
         | 
         | - brush based editors are much faster for prototyping space
         | shapes. Art can always be improved later and is even
         | outsourced. Gameplay is harder to get right.
         | 
         | - brushes are easier to reason about in processing for auto
         | generating UV coordinates and light mapping
         | 
         | > just make smaller models and combine them in creative ways
         | 
         | This is a cost saving choice, not a better game choice.
         | 
         | What games do you want to play? The ones where the space is
         | tailor made? Or the ones with a lot of copy paste?
         | 
         | Also if you look at the spaces in the article, they don't have
         | a lot of clutter anyway.
        
           | ahoka wrote:
           | I'm responding to the article, which says:
           | 
           | "You can see the frame of the room is made up of four static
           | pieces which I've been glued together. This type of
           | prefabbing makes it impossible to add little details or
           | variations into the structure of an existing asset, you need
           | to change the one, or make a new one."
        
         | cloudwalk9 wrote:
         | BSP is a technique for optimizing visibility calculations on
         | convex level geometry. You're still making a 3D model and
         | that's exactly what's stored as part of a .bsp file. So the
         | point isn't BSP being outdated.
         | 
         | Just Trenchbroom and tools like it have more of a Minecraft
         | creative mode simplicity to them, with click and drag snap to
         | grid rapid prototyping of basic level geometry, and even more
         | advanced geometry and details (including creating slopes and
         | cylindrical structures, rafters, vents, general architectural
         | details), than Blender's out of box generic UX presentation
         | intended for all use cases of 3D design.
        
         | amatecha wrote:
         | Pretty sure Quake mappers are getting by just fine without
         | Blender:
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
         | 
         | https://www.quaddicted.com/files/quaddicted-images/by-sha256...
        
         | overgard wrote:
         | I don't think it's about BSP's per say, it's about being able
         | to use Brushes. Current Unreal Engine still supports these I
         | think (it's been a minute since I looked). It can be a nice
         | prototype workflow.
        
         | outworlder wrote:
         | > You can do much more in Blender and it takes around a month
         | to get to a decent level with it. BSP is just outdated and
         | limiting.
         | 
         | You are comparing apples to oranges.
        
         | cmovq wrote:
         | BSPs (or CSG in general) is still present even in modern
         | engines due to how quickly it allows designers to build levels.
         | Even when it's only used for prototyping prior to an art pass.
        
         | badsectoracula wrote:
         | You can technically do "much more" in Blender, as it is a full
         | blown mesh editor, but (quake-like) brush-based editors are
         | *MUCH* faster -and easier- to work with. The limits do allow
         | for making some things easier.
         | 
         | And unless you are targeting vanilla Quake (or a game with
         | similar limitations), you can still use smaller models (and
         | modular meshes) for details, etc, so you get the best of both
         | worlds.
         | 
         | Also FWIW i don't think Blender is always the best even for
         | such environment props - for some geometry (mainly man-made
         | stuff) something like Wings3D can be faster to work with than
         | Blender.
         | 
         | In fact implementing brush support was one of the first things
         | i added to my engine's world editor[0][1][2] and adding
         | Wings3D-like mesh editing is something i've considered (i
         | implemented the data structure and basic operations years
         | ago[3], but i'd need to convert the code to use the engine's
         | geometry code and of course implement the editor UI for it).
         | 
         | [0] https://i.imgur.com/S2VtAn6.jpg
         | 
         | [1] https://i.imgur.com/RPfG3Ee.png
         | 
         | [2] https://i.imgur.com/lOhmyoq.png
         | 
         | [3] https://i.imgur.com/4Zk9Td7.png
        
       | somat wrote:
       | I love the quake .map format. It is like this glimpse into an
       | weird alternate history. A sort steampunk ascetic to graphics.
       | 
       | The article touches on this, but for them unfamiliar, the quake
       | .map format is the editable text based format. but it does not
       | use the common method of vertices into edges into faces as the
       | base building block. it uses planes, the graphics primitive is is
       | the three points that define a plane, where these planes
       | intersect are the edges.
       | 
       | I never dove into the subject enough to figure out if this plane
       | representation was also internal to the compiled bsp format, but
       | I suspect it is. My guess is that it is the natural conclusion
       | when you need a map interchange format for your highly optimized
       | space partitioned engine.
        
         | rasz wrote:
         | PowerVR supported in hardware something called "infinite
         | planes", wonder if its connected. Afaik no game, program or API
         | ever used it.
        
       ___________________________________________________________________
       (page generated 2024-11-13 23:00 UTC)