Pseudo 3D in Gimkit?

Hear me out on this…

3D raytracing in Gimkit!!!

My idea is to use a coordinate system and a bunch of barriers that activate and deactivate based on a raytracing equation! If you’re good at trigonometry, you can help me a lot!

Here is a video on the math behind raytracing: https://www.youtube.com/watch?v=g8p7nAbDz6Y

This could be a HUGE project and have a ton of potential.

PS

If you have any tags that fit this topic or if I should move this topic to devices, please let me know.

17 Likes

God my brain hurts looking at this post.

I’ll look at the video when I have time and try to generate you a few equations.

4 Likes

Please don’t mark any solutions, I’m watching the post and will figure everything out for you later today.

This is a cool idea, love it. I think you should move it to devices because you aren’t really asking for help

You would probably want to do a text display. 2 3D renderers have also already been made, one for points and another for wireframe. Raycasting would also be an interesting idea.

3 Likes

I didn’t know that. Do you have a link to that? It sounds really cool!

I don’t have the link to the point renderer, and I’m not releasing the 3D wireframe renderer until I fix the random crashes that occasionally happen :skull:

5 Likes

Thought about this before as I have made it in Scratch but it would be super difficult

1 Like

Yeah. I mean, it could work but would have high memory. This would be fun to research.

This has been changed to a single details box because of the length it is.

Pseudo 3D (LENGTH WARNING)

Top - Down vs Platformer

So after taking a quick look at the video I think I have (some) idea of how to do this.

Assuming we’re using this in Top-Down because we cant go in every direction in platformer, I’ll completely base everything off of that.

Important Questions / Philosophies

  1. What will be the object that’s moving, how will we incorporate ray tracing into gimkit without using gimhook?
  2. Will we have enough memory to compensate for the probably 100’s of zones that’ll be needed to make a small sized map with raytracing?
  3. How will we make the equations needed with the limited amount of blockcode?
  • 3D Ray Tracing is hypothetically possible on gimkit

The Coordinate System

The coordinate system will be relatively simple(ish).

Since this is a small scale example we’ll be using x1-7 and y1-7.
Screenshot 2024-05-10 4.19.48 PM

I know my coordinate system isn’t the best, but the point is the map is going to have to be a glorified coordinate system for this to work

Explaining The Math (Ew!)

Since we’re dealing with a block game, and the zones can only be so small we’ll be working in whole numbers only.

Like all coordinate planes, we’ll be using x,y in our equation. Easy Right? Nope!

Like we seen in the coordinate plane above, each zone will represent sets of coordinates… (0,0) (1,0) 0,1) and so on.

For each possible set of coordinates we’ll have a property that keeps track of the players current coordinates.

(Sort’ve) The Beginning To Everything

I know this may seem counterproductive, but we’re going to be using a text for the block code.

Oh well stars why cant we…

BECAUSE I SAID SO!!!

As seen here when the zone at coordinates ‘(0,0)’ transmits on 0,0 we’ll set the property of “PlayerCords” to 0. Seems simple right? No. This is just the beginning.

The Hard Part

The Hard part is the memory munching, property-tracking, system we’re going to have to make. For this we’ll actually use a trigger instead of a text because we won’t need to receive on multiple channels.

The default value will be -300 (because everything through -196 and 196 is taken)

The player scope HAS TO BE player for this to work.

Now when the property changes due to our text constantly receiving coordinates, we’ll transmit on “raytrace”.

The trigger we’ll be receiving on is going to constantly be under pressure to well, raytrace.
Screenshot 2024-05-10 4.37.20 PM

When we’re a 0,0 the pole will have a raytracing effect (it getting closer).

We can layer, lets say 10-15 poles each one getting larger or smaller, and only being shown when a specific set of cords are reached by the player.

Outro

I’m sorry this isn’t more in-depth, as it’s the best I can do on my schedule. I’ll gladly help test the system though, just invite me to a chat over the forums.

Takeaways

  • My Head Hurts
  • I’m going to take a map
  • Reply if you have any questions.
8 Likes

Theoretically impossible to me. Although this might fit into unknown-difficulty because we don’t know how difficult it will be. All we know is a LOT.

I wish I could help with this but I only have a general idea of what your talking about X-X cool project though.

1 Like

Technically if we had a increased memory cap it’d be 100% possible.

The only issue is we can’t track which direction a player is moving, only the area they’re in so it may look a little wonky at times.

1 Like

“Fake 3D”?

Does this make sense to me or no?

Not impossible. A wireframe renderer is possible, ray casting isn’t that much more difficult.

1 Like

I don’t understand what you’re asking.

Are you naming this method fake 3d or asking if it makes sense to call it fake 3d?

Thanks. I’m not that experienced, so what is ‘wireframe’ or ‘ray casting’?

They’re confused because “pseudo” means ‘fake’
I mean its understandable

Pseudo means fake.

So this basically means “Fake 3D”.

Yes. Basically you take a 2D area and turn it into 3D by making the walls a certain height based on the distance away from the player.