Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could this be used for Ray-Tracing on CS:GO maps? #47

Open
markus-wa opened this issue Apr 7, 2021 · 4 comments
Open

Could this be used for Ray-Tracing on CS:GO maps? #47

markus-wa opened this issue Apr 7, 2021 · 4 comments

Comments

@markus-wa
Copy link

Hi 👋

This looks like an awesome project, well done! I was wondering if it could be used for doing headless visibility/LoS checks for CS:GO.
I'm mostly thinking in the context of demo parsing here.

I'm imagining something like:

  1. LoadMap("path/to/mapfile")
  2. call RayTrace(a, b)
  3. get back true / false or number of objects in between the two points
  4. profit!

would this be something that could fit into the scope of the project?

@markus-wa markus-wa changed the title Could this be used for Ray-Tracing CS:GO in maps? Could this be used for Ray-Tracing on CS:GO maps? Apr 7, 2021
@Galaco
Copy link
Owner

Galaco commented Apr 15, 2021

Hi there!

Thank you! It's been a huge pain so far, and likely to be so indefinitely 😬.

That certainly is an interesting thought. Right now, it's kinda the opposite of what you're looking for. It's predominantly a renderer, with most other features unsupported. CS:GO support is, perhaps incomplete. I know there is a crashing possibility with BSP lump 35 in some CSGO maps (specifically sprp lump data), although that's more an issue with my bsp parser than this project. It's something I'll get around to eventually.

That being said, I am already slowly working through bsp and displacement collision hull parsing and loading. Once this is done, LOS checks should be relatively trivial for bsp geometry. Props will present a larger challenge; I still haven't finished staticprop loading 100%, nor touched on Dynamic or physics props, or collision models yet.

This is certainly something I'll bear in mind. Extricating the rendering functionality from map loading is sorely needed, and sooner rather than later. Thinking about being able to launch entirely headless certainly gives me a lot to think about there.

And you're very welcome to contribute anything if you so choose. Even something simple as maps that crash or fail to load or have any messed up materials are extremely useful.

@markus-wa
Copy link
Author

Great to hear that'd you'd be open to supporting that. If I get some time soon I will have a look at how I could start contributing (though I don't really know anything about map files, rendering engines or anything the like 😅)

I think for the purposes I'd be interested in it dynamic/physics props would be secondary (mostly because I guess that would require loading the state of these props from the demo files) - but of course it would be great to have all this for other use-cases 🙂

@Galaco
Copy link
Owner

Galaco commented Sep 18, 2021

Apologies for taking so long to provide any update on this. A few months ago I integrated bullet physics into the project. I haven't exposed any kind of raytracing functionality yet, but this should be much more achievable now.

There also needs to be a little more refactoring to allow for some proper headless mode (skipping vtf, renderer & gpu submission). I don't know when I'll come back to this project, but this is sitting sitting in my mind to get done.

As an aside, I will also be looking into integrating your democs-golang project at some point soon; as it gives me a stepping stone for implementing netcode.

@markus-wa
Copy link
Author

No worries, I also didn't get around to looking any further into this but it's something I really want to do at some point.

If you need any help at all with the netcode stuff let me know - my knowledge is pretty limited to just what's required for demos, but if I can help I'll try my best!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants