Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Explore Quake/Half-Life maps in your browser (github.com/sbuggay)
192 points by sbuggay on March 25, 2020 | hide | past | favorite | 31 comments

This is really cool. It's such a fun project to pursue. I actually spent a few years building a native application for analyzing CS:GO demos, with a fully custom rendered 3D world for Source maps, along with demo parsing, player animations, and the ability to rewind and fast-forward instantly. You can take a peek at it here: https://rewind.site

I saw in your README that you're looking to add source support, might I recommend building off of zik's code? He already is quite far along in rendering Source maps in webgl: https://github.com/Metapyziks/SourceUtils

Best of luck, feel free to reach out if you ever want to connect.

I've wanted to integrate Source maps into https://noclip.website/ for a while, it's been a pretty major request for the site. If you wouldn't mind, I'd love to ask some questions about rendering them. Do you have any contact information?

Sure, my email is in my profile.

Oh wow, I had actually just watched that 3kliks video on Rewind recently. That's some pretty amazing tech. Thank you for sharing zik's code as well, I will definitely be taking a look at this.

Wow this is awesome, thanks for sharing. I worry about supplying the .WADs for textures. Quake and Half-Life are both open source now but I'm not sure if their resources files are.

I'm not a lawyer, but this is my philosophy on why I continue to run https://noclip.website like I do.


How do you get started deciphering the object data from an unknown format stored as binary? I've tried to extract data from ps1 games but have no idea where to begin.

Thanks for sharing, this is immensely cool! Just shared with some colleagues!

Their resources files are specifically not part of the open source releases.


This is super impressive. How do the animations and effects work? This can't just all be static data, but game code too?

Depends on the game. Nintendo stores most of their animation and particle effect data in a mostly declarative format which I've reverse engineered and reimplemented in TypeScript.

For instance, the particle engine is here https://github.com/magcius/noclip.website/blob/master/src/Co...

Jesus Christ, a 5000 LOCs reverse engineered from what is probably a binary file format. I admire that level of dedication, must have been a huge amount of work.

I love this, thank you. Sadly you have to hold the mouse button while moving the camera around but it's still amazing.

Thanks for the suggestion. If you refresh, open the DevTools console with F12, and type `main.viewer.inputManager.releaseOnMouseUp = false`, the grab will stick until you press Escape now.

Nice! A visitor to my super-old Dark Forces II: Jedi Knight site (https://www.massassi.net/) wrote and contributed something similar for Jedi Knight maps. (The site uses frames and thus I can't easily link to a page where you get the whole menu; if you start at the root just click "Levels" and pick a category.)

Example: https://www.massassi.net/levels/files/323.shtml Github: https://github.com/stephanreiter/jkview

The textures are present but blurred to avoid the copyrighted textures issue.

holy cow this brings me back to highschool. thanks for the hours I wasted here waaaay back.

Very cool. I just loaded up some Half Life maps that I made when I was 15 and it ended up being a little trip down memory lane. Thanks for that!

That's awesome :) I'm glad the drag and drop feature worked for you.

Long time ago I was a fan of KZ mod in CS 1.6 and I made this: http://kzplayer.azurewebsites.net. It's open source, but there is no "pipeline" to generate stuff on the fly.

You have demo player and you can explore some maps freely

Hi m0ver, I made a similar thing back in the day https://github.com/skyrim/hlviewer.js

It uses original file formats (dem, bsp, wad, ...), so you don't have to generate anything. You can view all current KZ world records with it here http://hlviewer.stefan100.com/

Amazing! I spent ages building a Counter Strike map with the Valve Hammer Editor back in 2004. I was super proud of it, but I never got to play it! My other, sillier creations ended up being played quite often at my then local Internet gaming café.

Now I'll get to explore it once again :)

Super cool! By any chance were you on the old facepunch forums? I remember something similar on one of the devlog threads

Nope that wasn't me. I do recall a similar project but I'm not able to find it anymore, if you find it please let me know. Thanks!

You might be thinking of https://github.com/rein4ce/hlbsp

Really cool! Add CS:GO to the list and you'll get hugged to death in no time!

is there an option for inverting the mouse movement?

I've added it, you can press "\" to toggle mouse Y inversion.


Brings back so many memories!

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