Best foundations for a simple 3D construction game?

Started by
14 comments, last by Programmer71 1 year, 6 months ago

I want to make a 3D simulation game where you operate a robot to do basic construction tasks, like stacking bricks or welding.

The only catch is that the robot is on the Moon, and you are on Earth, so there must be a 2.6 second time lag in all of your controls, to simulate the Earth-Moon signal delay. (That is the challenge!)

The game should be open source and able to build/run on Windows and Linux.

I have done a lot of programming with C++, graphics, geometry, OpenGL etc. but have no experience making games or simulations.

Would anyone here recommend the first steps? What are good physics/graphics libraries to build on top of? Go with C++ or another language? Is the signal delay a big deal or no problem?

Even better, is there an existing open source simulation that I can simply modify? Or has this already 100% been done and all I need to do is download it and play it?

Not looking to make money, just want to create an experience of remote control construction on the Moon that everyone can try.

Thanks!

Advertisement

Contact NASA!

Our company homepage:

https://honorgames.co/

My New Book!:

https://booklocker.com/books/13011.html

@generaljist Yeah I'm sure NASA has nothing better to do with their time than write me a video game. ?

I do not htink that there is alibrary to simulate signal lagging, do not take as an offence but this is not an impossibile task to simulate, you should stack your commands in a stack , and after 2.6 seconds pop the first item and execute , and add the incoming signals at the end of the queue. You only need to create a qeue or use the stl::queue library.

or use UNITY along with its built-in library “simulaterobotonthemoonwithatransmissionlagof2.6”

My concern is it's no fun to control a robot with input latency of seconds. It's challenging, but no fun.

To simulate robotics i really like the Newton physics engine. Accuracy and robustness is way batter than with other engines i have used before, and it's very flexible to make your own motorized joints.

Newton physics engine is good for accurate simulation or academic simulations, I had some problems with that lib when the number of objects is higher than 1000

Programmer71 said:
Newton physics engine is good for accurate simulation or academic simulations, I had some problems with that lib when the number of objects is higher than 1000

Accuracy came at a price mainly in the early days, when it only had an ‘exact’ solver. Later it added an iterative solver, which then became the main and only option. (Robotics are now still ‘exact’ as long as the graph of joints forms no cycles.)
It's way faster than Bullet and can compete PhysX in performance now, from what i can tell.

Too bad you now use UNITY, otherwise you might give it a try again. ; )

UNITY uses the state of the at physics engine, its called the UNIO-PHYSISCS-ENGINE-WTF , its 10 times fatser than bullet, 20 times faster than physx , 50 times faster than Newton, and it will be faster than anything you can imagine, it always be, it is also 95 times faster than the real cinematic and dynamic laws in real life

Programmer71 said:
UNIO-PHYSISCS-ENGINE-WTF

Do they still use PhysX? I've heard they want to do their own… probably you don't know either.

However, saw this video yesterday. Lots of simulation going on, and made by a single guy in your favorite engine. Very impressive.
If you can match this, and publishers still say ‘we might take your game if you would use something like Unity over a custom engine’, then your rant maybe is justified.
But as said before - blame the publisher, not Unity.

Programmer71 said:
its 10 times fatser than bullet, 20 times faster than physx , 50 times faster than Newton

You know - some people might take some of your trolling serious. And if so, those who are not guilty take the damage.
Just stop the bullshit.

@JoeJ @programmer71 Thanks JoeJ and Programmer71! This is exactly the kind of information I am looking for. It appears that C++ is the winning language here, as Newton and Unity both support that.

The video of Ferocious looks amazing, especially all the surf physics done in real-time. Unity would be perfect except it's proprietary and $. I will look into all of the other engines you both describe and pick a favorite.

Yes I agree input latency may not be fun in a video game, but it might be fun if you are practicing to operate an actual robot building things on the actual Moon. Hundreds of robots can be put into space for the cost of one human astronaut, so if the industry ever gets serious about Artemis they will depend heavily on remote-control whether they plan to or not.

To get a feel for it, here are some primitive 2D mouse exercises to see if you can predict where the bricks will go (These are JS demos I hacked with the queue delay Programmer71 suggested):

(Some physics) http://moongame.rf.gd/MG/index.html

(No physics, just art) http://moongame.rf.gd/MG/moongame.html

The first thing I noticed is that it starts hard but gets easier with time. I'd like to see how far human learning can take this with 3D and 2 hands, without sci-fi level AI.

This topic is closed to new replies.

Advertisement