• Register

Do you have what it takes to battle your enemies lightyears away from earth? Can you compete with real, live opponents, in your LAN and the internet? are you ready to join the fierce squad of the best pilots in the whole world? CSiS is a new indie mulitplayer space game experience that will feature quick online battles with customized one-man ships in multiple game modes. Charge your cannons and see you online!

Report RSS Video Review of CSiS and a few thoughts on our Aiming System

Saltyolgame made a video review of our beta, check it out! Also, I would like to share a few thoughts on our aiming system... and ask for your opinions on the topic.

Posted by on

Video Review of the Beta:
An IndieDB-Member named Saltyolgames sent me a link to a video review he has made of the latest Beta of CSiS. Check it out!
Edit: For some reason, he seems to have closed his video account and now the review is gone. Sorry about that...

I've also found a nice written review of the game while doing a quick google search. I had no idea this review existed... Blog.fileplanet.com

Aiming System? We'd appreciate any input: Mail us or comment below if you have any ideas/thoughts on the current system and how we could make it better.

There's one point Saltyolgames made in the review that I would like to make a comment on, since we've been getting similar feedback from many users, and I think I understand the issue.
In CSiS, aiming (as well as steering your ship) is done with the mouse. This results in an interesting problem: A mouse can only give me information about the two dimensions - let's call them the X and the Y - of the screen. From these I somehow need to create a three dimensional vector telling me the direction that I want to shoot in, which, in itself, is not possible. I made a small (horrible-looking) sketch of the problem. The black box is your screen. There's the red arrow which is your mouse pointer on the screen and the blue arrow which represents the ship (usually towards the bottom of the screen). The green line shows all the different positions the mouse pointer is pointing at, which is all positions "behind" the screen. What I do not know is the depth (or Z, if I stick to the previous naming convention), I do not know how far along this line the position is which the player want to shoot at. I might want the ship to shoot at either the first or the second one of the blue crosses, for example.

There is two ways I can think of that other games deal with the problem:
1) In the first case, players have a first person camera, and therefore the direction is always along the normal of the camera's view-plane (the green line in the image) because the shot comes from where the camera/mouse-pointer is, or at least from very close to it. Examples: All first person shooters.
2) In case the camera is a top-down camera, the shot is often placed at a certain fixed distance above the ground, which allows the third component of the direction to shoot in to be easily computed. You click on the ground and the shot goes into the direction of the clicked position, but stays level to the ground. That spares you having to know the third component. Examples of this would be the Diablo sequals, Magicka or Alien Swarm.

But CSiS does not have either of these advantages. For one thing, the camera's a over-the-shoulder camera, and you can shoot anywhere in an arc infront of you, not just left and right but also up and down.
So how do I solve the problem?
There's one solution I could use, which is to "trace" into the direction of the green line: I could check if a shot would hit anything if sent along that line and then aim at the collision point. But this would result in me shooting nearby friends, if they happen to be between me and my target... even if the ship could aim past them easily.
That's why the current solution uses the distance to the currently targeted enemy as the third distance. And that's why shots seem to go funny when the enemy is very, very close or if you aim at an object that's not your current target and that's further away than your current target...
Any thoughts?

Post comment Comments
AidanWolf
AidanWolf - - 57 comments

One way I've done a 3rd-person aiming system in the past is making an object which uses the mouse location. Than you distance that object and either make it so it stays on the surface of the closest object intersecting it's z position from the player or creating a secondary object right in front that copies the location of the distant mouse-tracking object and dividing its x and y location by a factor that makes sense to the screen size. That way the cursor is always located where the bullets are going.

Reply Good karma Bad karma+1 vote
Germanunkol Author
Germanunkol - - 153 comments

The second idea you mentioned is very good, I like it. The problem is I won't be able to use it, as the mouse also steers the ship. So when I move the mouse, then the steering won't be exact if I also move the mouse via code/automatically. Unless I have a secondary mouse image... this one that is the actual mouse, and one which shows where the shot would go...

With the first idea, I guess the only problem would be the possible friendly-fire.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: