Build your own old-school 3D shooter in a weekend
81–90 of 105 posts
Re: Build your own old-school 3D shooter in a weekend
#82Re: Build your own old-school 3D shooter in a weekend
#83Earlier quoted context omitted.
> it's more of a tiny ray tracer It's a ray caster, where the rays are sent out from the camera to intersect the map. With ray tracers, the rays are sent out from the light source, IIRC. Your point on OpenGL is valid, but that just removes all the learning from it. OpenGL does so much of the grunt work for you. This kind of old-school game engine is a great learning experience.
> It's a ray caster, where the rays are sent out from the camera to intersect the map. With ray tracers, the rays are sent out from the light source, IIRC. Not correct. I see this pedantry often, but it's factually wrong. If you look at the Wikipedia articles for both ray casting [0] and ray tracing [1], they BOTH describe the methods as sending rays from the camera/eye. From what I can tell, the difference between r…
However typically in video game rendering, ray casting refers to the specific technique where you only trace rays against a 2D scene for a single scan-line, and then draw the entire column of pixels based on that result, such as is done in Wolfenstein.
Ray-Tracing really can be used for anything that intersects rays against a scene but is typically used for set of techniques that at-least involve sending out primary rays from the camera via ray-tracing, but with "ray-tracing" GPUs we are seeing it used more specifically for secondary rays coming from the Camera.
"path-tracing" is generally the set of techniques that end up with a full path from camera to light.
Now, there isn't really much in rendering that sends out rays only from the light source, it's still just too computationally impractical.
However, there is "bidirectional path-tracing" which generally sends out rays from both the camera and the light source, then tries to join them in the middle. It's a bit more complicated but generally converges quicker than other montecarlo renderers.
Anyways, as I said, it's a big mess, partially because it's a big continuum, and there are generally renderers that exhibit properties from multiple of these categories.
Re: Build your own old-school 3D shooter in a weekend
#84Earlier quoted context omitted.
> With ray tracers, the rays are sent out from the light source, IIRC. Are there any implementations which send rays from the light source(aka. forward ray tracing)? This is astoundingly inefficient, as most rays will not intersect the camera. I've never seen one, other than in brief academic discussions. What you can use forward ray tracing for is to compute shadows.
I had considered making a ray tracer that worked that way, but with the slight difference that rays didn't have to hit the camera, but would just have to hit a point within line of sight of the camera. Obviously there would be massive gaps between pixels, but I would fill it in with a Voronoi diagram [0], or perhaps shaded with Delaunay Triangulation [1]. This renderer would be nothing more than a toy or proof-of-con…
Re: Build your own old-school 3D shooter in a weekend
#85Earlier quoted context omitted.
> it's more of a tiny ray tracer It's a ray caster, where the rays are sent out from the camera to intersect the map. With ray tracers, the rays are sent out from the light source, IIRC. Your point on OpenGL is valid, but that just removes all the learning from it. OpenGL does so much of the grunt work for you. This kind of old-school game engine is a great learning experience.
> With ray tracers, the rays are sent out from the light source, IIRC. Are there any implementations which send rays from the light source(aka. forward ray tracing)? This is astoundingly inefficient, as most rays will not intersect the camera. I've never seen one, other than in brief academic discussions. What you can use forward ray tracing for is to compute shadows.
Of course, this all starts to get a little more complicated when trying to compute global illumination.
Re: Build your own old-school 3D shooter in a weekend
#86Earlier quoted context omitted.
This kind of engine is great as a starting place for programmers, I think, but Unity is probably what you want for the kind of thing you're doing. There's also Godot if you want to stay in Open Source land, but it probably isn't as good and certainly doesn't have the same level of coverage in tutorials and documentation. Or there's the time-tested path to gamedev: modding existing games.
Serious question: what games would you fine folks recommend to get my kids started with modding? The oldest loves Minecraft, Zelda BoTW, and Smash Bros on the switch. I’ve built a Raspberry Pi Retropie NES clone and they’re all over super bomberman, and old school Pokémon. The last game I modded was OpenTTD before my kids were born.
Re: Build your own old-school 3D shooter in a weekend
#87They had an example app that was a FPS made from scratch. The HUD was there, enemies, weapons, environment.
There might be a Metal FPS base game available on GitHub, I can't remember what it was called.
Re: Build your own old-school 3D shooter in a weekend
#88Earlier quoted context omitted.
1. What aspect of the rendering did you feel you didn't have control over with your own vertex, fragment, and compute shaders? 2. You can hook into most if not all of the physics internals by overriding Update() and FixedUpdate() functions. Unity is definitely less flexible and powerful than rolling an AAA 3D engine and editor.. But that takes years, and 95% of the time there's a way to solve the problem in Unity.
1. the primary issue is you can't properly optimize rendering and if what you want to do doesn't fit neatly into unity's architecture its gonna be dog slow and your gonna spend forever writing hacks and work arounds to get it to work. you don't have to roll your own everything for a custom 3d engine, theres a lot of libraries out there. the idea that everyone should use tooling that reminds me of visual basic to make…
This fellow’s mindset is a common one, and likely he’s passing it on from his own experience...Telling that engineering culture discourages the shortest routes to creativity
Re: Build your own old-school 3D shooter in a weekend
#89Earlier quoted context omitted.
1. the primary issue is you can't properly optimize rendering and if what you want to do doesn't fit neatly into unity's architecture its gonna be dog slow and your gonna spend forever writing hacks and work arounds to get it to work. you don't have to roll your own everything for a custom 3d engine, theres a lot of libraries out there. the idea that everyone should use tooling that reminds me of visual basic to make…
This is the kind of misguided mindset that effectively discourages people from making games. It’s as if someone urged people to look into lumber and the papermaking en route to making their own card game. This fellow’s mindset is a common one, and likely he’s passing it on from his own experience...Telling that engineering culture discourages the shortest routes to creativity
Re: Build your own old-school 3D shooter in a weekend
#90I looked at this after doing GCSe project, finding it to hard and skipping to a real 3D engine like quake because it was conceptually easier.