Gaming Creating an ocean exploration simulator

What if you wanted to start in a port and go to a wreck site or mud volcanos using navigation mfd's and deploy the rov?, it would need time warp and a scenario editor. The vessel config files would have a float or sink variable for different cargos as well. Giant squid would be a difficult addon with those tenticules!:lol:

That's not really helpful yet.

What if we want to get something done soon?
 
Definatly the best way to start simple with a big area.The basic orbiter comes with a whole planet,atmosphere and simulated space and bodies,so this would just have a sky background,flat water global surface,water light,pressure,density model,a few mfd's and colidable terrain under water, and a simple ship and rov.The eye candy,surface effects and sea monsters will be added in time,so essentialy a sea version of orbiter.
 
Definatly the best way to start simple with a big small area.

FIFY.

The basic orbiter comes with a whole planet,atmosphere and simulated space and bodies,so this would just have a sky background,flat water global surface,water light,pressure,density model,a few mfd's and colidable terrain under water, and a simple ship and rov.The eye candy,surface effects and sea monsters will be added in time,so essentialy a sea version of orbiter.

:facepalm:

When will you be finished with this, next weekend?

---------- Post added at 03:47 PM ---------- Previous post was at 03:04 PM ----------

IMHO, something around such a real-world task could make a good playground, but that's still a lot of coding to be done until you can even do that:

ROV_working_on_a_subsea_structure.jpg
 
It may not need collision detection on terrain.The engine could place objects located from the centre of the sphere outwards.I made a planet displacement map on a sphere,just need to sculpt the ocean terrain to scale.Current flow need not be simulated but boyancy must be.It will take time to develop though.
 
It may not need collision detection on terrain.The engine could place objects located from the centre of the sphere outwards.I made a planet displacement map on a sphere,just need to sculpt the ocean terrain to scale.Current flow need not be simulated but boyancy must be.It will take time to develop though.

Exactly. We Germans have a saying that translates to "Going from the 1/100th to the 1/1000th" to complain about putting too much effort into details.

I would not even exclude that you might even disband such a project, if you start it too large for you to grasp with your own senses. Thus I can really really recommend you: Keep it really small, develop in small or even smallest steps. Slow small, but steady progress is much better than no progress at all.

For example: Buoyancy is mandatory. Right. No complaints. But how complex must the Buoyancy model be? Even a simple single point version would already be better than no version at all, right? Can be done in less than a day.

Once you have this really simple one done, you can think about refactoring it to something bigger, maybe have multiple sources of buoyancy in a model or something smarter.

In the end, you just want two outputs in the buoyancy calculations: Force and Torque. Funnily, you also want the same outputs by the propulsion system. Maybe you can simply refactor the simple buoyancy module to implement an interface, that returns force and torque and then implement better versions of the buoyancy module with the possibility to simply change the used simulation model for buoyancy in a configuration file. Maybe you can make the physics engine sum up all modules forces and torques to change the state of the vehicle. Maybe.

And this maybe means: No need to already waste time about planning the future, if you need to plan today. You know that such questions exist, but you can enjoy the luxury to not having to answer them now. Use the time for learning options and finding possible solutions before you have to give the answer to a question at the last reasonable moment.

Until this last reasonable moment: Keep things simple and work towards minimal goals.
 
Thats not much different to Orbiters aerodynamics. In fact, you can even have it a lot easier there: Because the water is practically incompressible in terms of fluid dynamics, you can use much simpler simulation models.

Yeah but Orbiter still doesnt really properly model aerodynamics based on the 3d mesh of an object, just uses user defined airfoils and drag elements that might or might not model the vessel very well depending on how well the user understands aerodynamics. This could probably be worked around in a new project, but without it the physics model probably wont be very accurate to what it should be.

Much harder is the visuals... the lightning conditions under water are much more complex than in space.

Dat refractive index :lol:

But I dont think that should be that big of an issue for this project in the initial stages. Unity must have a basic water renderer anyways, even if it probably is only applicable at very shallow depths

If there is enough interest in this project, I might be willing to help develop. How long would it probably take me to learn C# if I already know C++?
 
How long would it probably take me to learn C# if I already know C++?

None, and a lot...

It's not like coding in C# is that much different than C++, so you'll be able to do most things right away.
But C# and the .NET framework provides a lot of tools that make everything much more convienient (or so they claim...), and to get to know all of those for maximum efficiency takes time.

To get started, keep these 3 things in mind:
1. Anything not a primitive is a reference, which is a pointer behaving like an object. Think of all your objects as pointers, and you will avoid most mistakes related to that.

2. weak typing (using "var" instead of the proper datatype in declarations and similar) might sound like fun, but slows down the program at runtime. Which might not be a problem for most web applications, but if you're going to write a game, type strongly!

3. Stop worrying what happens to all the references you leave lying around. It's not your problem. Funnily, this is the part I struggle most with. My brain keeps nagging me constantly to clean up after myself when I write in Java or C#.

Oh yes, and a fourth point: There's no scanf! :beathead:
 
Yeah but Orbiter still doesnt really properly model aerodynamics based on the 3d mesh of an object, just uses user defined airfoils and drag elements that might or might not model the vessel very well depending on how well the user understands aerodynamics.

Luckily - even X-Plane can't do that right after all. It is very hard to calculate fluid dynamics from a mesh that is optimized for fast game performance. Or use a mesh optimized for calculating fluid dynamics for rendering in-game.

In water, you can make use of some many simplifications, because the missing details don't hurt much. Especially for submarines and especially for ROVs that are only moving slowly.

But fully calculating fluid dynamics by a game mesh would still be hard. But contrary to Orbiter, it would be no big problem to pre-calculate the needed simulation models and provide a useful mesh/fluid dynamics editor for such a game.
 
2. weak typing (using "var" instead of the proper datatype in declarations and similar) might sound like fun, but slows down the program at runtime. Which might not be a problem for most web applications, but if you're going to write a game, type strongly!

"var" is not weak typing. It is just syntactic sugar that infers the type from context at compile time. At runtime it is equal to declaring the type. "dynamic" is weak typing, though. Perhaps you confused those two.
 
I really like Silent Hunter III. It really had global bathymetric maps.
I tried Baltic Sea, Riga gulf (shallow) and everywhere depths were close to reality, also, in Biscay Gulf northern part is shallow. Going south, I observed significant slope of bottom of the sea. I could not go as deep, as it went down of course, not to suffer structural failure, but I liked it.
 
<quote>http://store.steampowered.com/app/264710<quote>

That is too mutch detail and want it a free download so that developers can add to it over time.It should be like silent hunter in terms of global area but peaceful exploration and navigational exersise.
 
That is too mutch detail and want it a free download so that developers can add to it over time.It should be like silent hunter in terms of global area but peaceful exploration and navigational exersise.

I think you want too much too fast.

IMHO, Urwumpe's outlining in his first reply is a very reasonable way to go if you really want this to succeed. Start small and simple to save yourself from the frustrations a failed programming project might bring along.

And it would be a good idea to actually get programmers to do the work, as it seems like you can't do it yourself ;).
 
I will leave it for programers to decide if they would like to give it a go,I can supply the meshes.
 
I think you want too much too fast.

IMHO, Urwumpe's outlining in his first reply is a very reasonable way to go if you really want this to succeed. Start small and simple to save yourself from the frustrations a failed programming project might bring along.

Seconded. With any project, the first steps are to start small.

I will leave it for programers to decide if they would like to give it a go,I can supply the meshes.
To be fair, meshing is a very small contribution to the project. The ocean floor would likely be generated by programming, the rendering and physics engine would be programming; the only meshes needed would be for the vehicles, which wouldn't have an impact on the initial versions.

I think it's a good idea, but it's hard to entice other people to enact a lofty goal.

I have two suggestions:
  1. Come up with a specific, limited goal to attract others. If that works, the project can grow from there.
  2. And it would be a good idea to actually get programmers to do the work, as it seems like you can't do it yourself ;).
    Create the first version yourself and learn to program! It's a great skill to have and something like this would be a perfect oppurtunty to learn. If you make it open source, then other people can help/contribute to it.
 
I will leave it for programers to decide if they would like to give it a go,I can supply the meshes.

If this project really is going to happen we will definitely need good meshes :thumbup:

Would github be acceptable as a place to store the code?
 
If this project really is going to happen we will definitely need good meshes :thumbup:
I agree! Good meshes will be important, just not intially.

Would github be acceptable as a place to store the code?

I would like Github. I would recommend git-flow for the workflow.

Are we going to create an OF-github organization?

---------- Post added at 09:43 AM ---------- Previous post was at 09:35 AM ----------

C# and Unity?

I've never used Unity before, but if it will make it easier, sure.

I'll also have to dust off my C# skills, it's been a while :lol:
 
I agree! Good meshes will be important, just not intially.

If it gets past prototype stage. Lets start at the beginning.

IMHO it would already be a start to get a core game engine which is just a volume of water with flat ocean bottom with a freely movable camera. And when this is done, we get four primary directions to improve in the second step:


  • Better lightning effects of the water
  • Better terrain (height maps, procedural details)
  • attaching the camera to a vehicle (Vessel simulation)
  • Interacting with game objects (tools, animals)
And even more possible improvements then in the third step.

The key is just not looking at the possible results of step 45. Look at the work right ahead, which you can easily estimate. Create small tasks for the programmers and meshers to produce.

For a first prototype step, organisations or workflows are not yet needed and maybe not even helpful. Especially in case of git-flow, I dislike it, because it branches too much. One development branch and release branches for patches is IMHO faster, especially if you use continuous integration systems.

But later, yes.
 
Last edited:
Back
Top