Jump to content
  • Advertisement
Brandon Marx

Where to start on concept and design advice.

Recommended Posts

Hello forum,

I have some decent amount of experience in Unity making games for Software Engineering projects in college, these were very specific projects however and I still am fairly new to building games. I wanted to make a game that uses the shadows of objects for collision detecting (i.e. shooting a gun at a characters shadow causes that character damage. What is the best engine to do this in (game will be 3D), and does anyone have any advice on how to approach this concept? I consider myself fairly experienced in programming, but game dev is just an entirely different beast.

Share this post


Link to post
Share on other sites
Advertisement
2 hours ago, Awoken said:

I can't help you with what you're asking for, but I will say what you're wanting to make sounds really cool.

Yeah, I really like the idea, but the implementation sounds absolutely terrifying

Share this post


Link to post
Share on other sites
Posted (edited)

How about trying to cast a ray from your light source to the bullet and check if the player is hit right before the bullet and the next hit (this is where the shadow is cast) is close to the bullet (no hit means no shadow or the skybox was hit).

With these measurements you can check if the bullet is close enough to the shadow to register a hit and process it as if the body itself has been hit.

You can even use the hit on the player to know where the bullet hit the shadow since position hit on the shadow should map with the position on the model.

Edited by SeelenGeier

Share this post


Link to post
Share on other sites

The problem will not be to get some hits in my opinion but how to get an accurate result. Assume you have a dynamic cast shadow, you need to transform the shadow to the ground and however get the data back into your client code from hardware on each frame to map that into an object that could get physics applied to. I could imagine that this would take a huge performance impact if it gets too dynamic or too huge in scale because the shadow mesh has to fit the level geometry unless you want it to look really horrible

Share this post


Link to post
Share on other sites
Posted (edited)

Do you even need to handle the shadows in the calculations?

You could as I said simply cast a ray from the light source to the bullet when it hits something and see if the ray hits the player right before the bullet.

Of course this only works with one light source realistically but it should be fairly accurate (accurate enough for a game).

Otherwise you would have to check for every shadow from every light source which include shadows that do not show up because they are illuminated by a different light source.

 

Given his experience level and the concept being a bit shallow, he should concentrate on getting the core idea of the game (shooting shadows to hit entities) in a more easy or at least solid way done.

I still think the idea is awesome and could be a really great game.

Maybe start writing a design document and put down a few more infos for others to contribute before going for the best solution.

It could be that the best solution for hitting a shadow is not the best solution for your game.

 

On a side note: Shooting the shadow can be fun for multiple players but keep in mind that AI does not necessarily see the shadows and won't shoot them. Coding an AI that is aware of all shadows might be the harder part than the shooting of the shadow itself.

Edited by SeelenGeier

Share this post


Link to post
Share on other sites

Probably the best way to do this is, when a projectile collides with an object, cast a ray from the collision point to each light source - if the ray intersects a character, they've been hit.

If you have AI characters, just run this logic in reverse for targeting - cast a ray from a light source through the intended target, and where that ray lands is where they aim.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!