Hacker News new | past | comments | ask | show | jobs | submit | kipi's comments login

Check out the Zenith Space Command TV remote from the 50s https://www.theverge.com/23810061/zenith-space-command-remot...


Shameless self promotion, but if you're interested in how collision detection was done in 3D (in Quake) I made a video on the topic here:

https://www.youtube.com/watch?v=wLHXn8IlAiA

The technique can detect the intersection point of a (fixed size, axially aligned) moving bounding box and a hull defined as a BSP tree. In this sense it is rather limited compared to newer methods but it works rather well and the implementation is pretty robust, and fast enough for the primitive hardware of the day.


Also shameless self promotion - if you're interested in 4D collision detection (and rendering, and rigid body physics), I've made a semi-tutorial-style repo here:

https://github.com/beaumayns/box4d

Not nearly as polished as your video, but hopefully someone finds it interesting.


Nice to see you here, I’m a big fan of your videos! I did some work on Q3 mapping tools for mac back in the day and always been very interested in everything quake related.


Amazing. How did you create the animation of the quake level getting broken down into BSP nodes?


Thanks. I made it in Blender, with a Python script for loading the Quake level and setting up the Blender scene


Your videos are absolutely fantastic, thanks for making them!


Thank you for this


Hello, video creator here. This is indeed the actual code, and it is written in QuakeC, a language created specifically for the game logic in Quake. The part I'm not sure about is why the creators wanted to add in extra side beams at all.


Oh, didn't know about QuakeC. Shame on me.

So both the "normalize" and the improper swap are the part of the original source?




I think your guess seems plausible, although maybe it was simply an effort to widen the beam to better match the graphics? The lightning effect is rather wide and it may have been surprising for the player if the hitbox ended up too narrow.

I haven't played Quake in the better part of 20 years so I can't comment from first hand experience, but judging by your top-down view at around 41 seconds, the single beam visually seems to intersect with a bunch of enemies while not dealing any damage (probably as a combination of narrow hitboxes on both the beam and the enemies).


I wrote a breakdown of a different Quake engine quirk (rampsliding) that might be a fun topic for a video if you're looking for new topics:

https://www.ryanliptak.com/blog/rampsliding-quake-engine-qui...


Btw, I love this type of video where you breakdown and explain code like this and I've subscribed. Looking forward to seeing more of your videos.

Especially with games, I think the video format lends itself well to demonstrating the effects of the code organically.


Probably just to make the gun more powerful, so you get some area of effect damage and not just hit the target right under your crosshair.


in the era of arrow keys and ball mice, lg probably felt like trash. who knew it would end up so iconically broken :-)


Shameless self-promotion, I made a similar thing in Quake: https://youtu.be/xVLtnKyRSb4

I love this write-up, especially the interactive diagrams at the end. My vid doesn't go into as much detail on the actual circuit design, but like the article it uses a bunch of BCD ripple-carry adders. For output I use standard 7-segment decoders. As noted in the comments there are faster ways to do logic in Quake which I overlooked in my research, but to my knowledge noone has made a circuit this large before. I've put the source code on github for anyone that wants to take a deeper look: https://github.com/matthewearl/q1logic/


Watched and subscribed. I also watched your Quake speedrun vid, really cool stuff!


Author here, I intersect the view frustum with the light's sphere of influence (and also take into account PVS info) so it still includes lights that are reachable by one bounce. Technically this means I might omit two bounce reflections but in practice this doesn't appear to be a problem.


Correct, it wouldn't be hard to take the best known strategy and implement it perfectly. Aside from the two points you mention, it also serves as a precursor to applying RL to real levels in which we may not be so sure about the optimal strategy.


It's the Quake 1 physics, not QW. I haven't looked at the QW physics in detail, but I think the main difference is that there's a single frame of ground friction applied between every jump, which ends up making a difference to the optimal techniques.


I skipped the variable frame rate out of this write-up in an attempt to keep things simple by leaving the GIF composing to an external program (ImageMagick). In an earlier iteration I did in fact create a version of the GIF with frame duration proportional to the real time:

http://i.imgur.com/ncTIdHL.gif


The speed is relatively consistent except for the early frames (where pictures were taken at twice the rate of later on) and where frames were dropped due to missing data or alignment failure. Here's a version of the animation where frame duration is proportional to the real time between the frames:

http://i.imgur.com/ncTIdHL.gif

The animation spans 3 months or so. The real time is shown in the text in the corner.


Fixing your link:

http://i.imgur.com/ncTIdHL.gifv

Using ".gifv" in the link sends a video instead of a gif, way smaller file size and higher quality animations are better for everyone.


Neat, thanks for sharing this!


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: