[SOLVED] Placing a new entity into 3D space visual dilemma. Hopefully someone can help

The theme is an opened world space game. The problem is you want to build a space station somewhere in the opened solar system. You need to “place” the space station into 3D space. The solution I have at the moment is something I don’t like. Basically I have a Grid in front of the camera and the space station in the middle of the grid. The camera is a flyby camera and as you move around the space the grid and station follow the camera. It’s functional but aesthetically I think it sucks. I need help with a visual tool to place an entity into 3d space keeping in mind that as a user it should be easy to use and it should give me perspective on other entities in the 3D space.

Below is a picture of what I have so far.

So in the end you would like to have a game where the user can place space stations etc.? Correct me please if I am wrong!

Did you use the scene composer already? There you can add custom controls too.

He’s trying to find an in-game mechanism for placing and moving space stations that he likes. It is entirely unreasonable to expect players to boot up the JME SDK just to place a space station in the game.

Edit: also note, it’s not about the “how to code it” it’s about UX design.


IIRC in X-Universe series when you buy a station you have a transport ship that follow you, then you tell the transporter to stop and the station is built in its last position.
If your game is in first person, imo this is the more intuitive and immersive way.

Space stations need to be in an orbit so I’d compute orbits based on the position the user selects and draw these as a circle around the planet, then when the user changes the position update the orbit circle - this should give a reasonable combination of restriction and visual preview imo.

Oh sorry, yeah, now I got it. :relaxed:

I am allowing people to build space stations anywhere in space … this “selector” will be used for other things as well … for instance, I will need to allow the user to select a point in 3D space to warp their ship(s) too. It’s not the typical crappy mechanic that you usually see where people are forced to travel from by selecting a destination entity. Their navigation computer can calculate a warp target in open space as well.

Maybe follow mouse pointer not camera?

You can’t use mouse pointer following in a 3D coordinate system … you also have no sense of perspective. This is a classic problem in 3D space positioning.

So how other devs make 3D strategy games where you build something - you must select place in 3D.
If you can’t follow cursor maybe follow object attached to cursor?
I’m trying to help but probably don’t understand your point of view :slight_smile:

In open space there is NO terrain for your cursor to follow in 3D space. This is why all opened world space games don’t let you click into opened space to choose a destination for your ship’s movement. They force you to click on a target object … planet, star, other ship, etc

The problem is … Your screen is 2D … your mouse only travels in 2 dimensions because it’s on your screen … I need to choose a spot in space in ALL 3 dimensions.

You can use the mouse wheel to control the z axis, could be a good compromise.

I guess you could set a default distance away from the cursor and let the user modify it with the mouse wheel while showing a preview.

Still, not very accurate or easy to use. Perhaps a two step system where you first select a point on the galactic plane and then after confirming that one, adjust the y value by moving the mouse foreward/backward.

I’d rather use what @RiccardoBlb said about the transport ship. Seems elaborate enough and easy to use, if only a bit slow.

Edit: Damn @thetoucher you beat me to it lol

Where does the user normally have his/her hands when they play? What are the common movement mechanisms already in play?

There are 3 perspective in the whole game … in cockpit flight, third person flight, and camera only scene exploration. The controls for each are …

In cockpit flight your mouse controls your camera swivel and the normal wasz keys move the ship up/left/right/down respectively and qe keys roll left ad right respectively.

In third person flight it’s the same key and mouse controls as in cockpit except your camera is fixed behind and slightly above your ship.

camera only scene exploration are your typical flyby cam controls except I use my own flyby cam that does not modify the fov for zooming but instead moves you forward/backward at 10x the normal speed.

Believe it or not … not all users have a mouse wheel. There are also other reasons why … the mouse wheel is reserved for zooming … Space is HUGE

Personally, I’d use something like this for space station placement… click to plop it X meters in front of the camera and then fly it around in third person… maybe with some other elevation keys.

Alternately, have WASD control its absolute position in 3 space with Q/Z for up and down… and let the camera simply orbit so the player can see from all sides. Rotation can be done separately with a toggle, maybe.

I like it … I also forgot to mention that every entity in the scene has a double click listener that instantly zooms the camera up to it. It can be used to quickly move the space station to a new entity in the middle of your placement. I will steal the new circular gizmo that’s in the 3.1-a3 sdk for rotation. This will work nicely.

I solved my entity placement mechanics problem by allowing you to fly the entity through space and also puting a grid around it so you have a sense of space.

Initial Ship Selection

Ship Placement controls

Many of your issues remind me of the HGTG quote:

“Space is big. Really big. You just won’t believe how vastly hugely
mindbogglingly big it is. I mean you may think it’s a long way down the
road to the chemist’s, but that’s just peanuts to space.”

1 Like