[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)