Difference between revisions of "Sim:Main Page"

From The Dreadnought Project
Jump to: navigation, search
(November 28, 2015)
(Development History)
(9 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
|{{SimSlideshow}}
 
|{{SimSlideshow}}
 
|}
 
|}
In 2002-2006, I created a simulation I called '''Fleet Action Imminent'''.  I hoped to then create a massively multiplayer game called '''With the Fleet''', but except for a few prototypes, WTF never got very far before I set it aside for other pursuits — notably, this wikiBut that doesn't mean the end.
+
In 2002-2006, I created a technically-minded 3D naval simulation I called '''Fleet Action Imminent'''.  I hope to create a massively multiplayer game featuring these same details, and have prototyped it on several platformsI've reached the point where I need to collaborate to develop something stable I can openly share beyond video demos with others.
  
==Fleet Action Imminent==
+
==Videos demonstrating the Sim==
FAI was written in Java, and delivered a Spartan 3D interactive environment using an extinct, Windows-only 3D plug-inIt delivered low frame-rates and a dated appearance, but these were not a barrier to what I wanted to focus on: creating a realistic simulation of the ships, duties and mechanisms of fire control.
+
The first three educational videos are... ''ok''The last two are more involved, but I had not enough scripting of what I wanted to show and explain. And so I ramble quite a bit (sorry).
  
FAI embodied realistic ballistics and implementations of 20+ distinct AI behaviours for sailors with different shipboard duties, manning a virtual Dreyer table, wireless transmitter, many data transmitters and receivers, Vickers director, coincidence rangefinders, dumaresqs, etc, etcIt was fairly glorious.
+
There are some mistakes in the videos, particularly in the voiceoversI encourage you to follow the links to Wiki articles that more accurately describe some of the details.
  
I toyed with the idea of tearing out Wildtangent in favour of [http://jmonkeyengine.com/ jMonkeyEngine], but didn't proceed with it, as the FAI architecture was unlikely to ever deliver me the massively multiplayer experience I felt was necessary to achieve my broadest vision.  This does not mean that I would not permit a talented and motivated hacker from trying to achieve this.
+
N.B.: for best results, watch the videos on Youtube in full screen.
  
One limited fruit of the switch to using jMonkeyEngine was that I took out the ballistics code into an application called '''Blammo''' that creates very accurate HTML range tables for simulated weapons based on very little input data.  I may eventually release Blammo.
+
===Torpedo Aiming Systems===
  
==With the Fleet==
+
<video id="xq-4Z8UDCYI" height="150" width="200" desc="Aiming Torpedoes from the Tube" frame="true"/>
When I was setting aside FAI's Java code, I made a few prototypes of the proper game I wanted to create.  The first was based in [http://www.garagegames.com/products/torque-3d Torque Game Engine], and the second built atop [http://ogre3d.org/ Ogre3D].  The prototypes had some innovative features I won't divulge, but never got very naval.  I sorely needed a better coder than myself to get where I was going.
+
  
I since have looked at [http://unity3d.com Unity3D], which tries to be easy to use but is harder to understand than a C++ game engine... how did they do that?
+
<video id="R1VFYBDCV6U" height="150" width="200" desc="Aiming Torpedoes remotely" frame="true"/>
  
==Developer Blog==
+
These videos illustrate use of a [[Torpedo Director Pattern 2006]], the basic model of torpedo aiming the Royal Navy used from the 1880s to 1915The first video demonstrates how such a director works when placed on the torpedo tube, and the second illustrates how it can be used from a remote aiming position by use of a [[Tangent Bar]] to factor out the parallax.
===2011===
+
Converted the sim to run on JME3Portions are working, especially the destroyers.
+
  
<video id="mUofK0auqGI" height="300" width="400" desc="4-in gun fire" frame="true" position="center"/>
+
Some time during the war, the British realized that their torpedo directors were overly complicated, and the corrections offered by the Tangent Bar were miniscule when compared to the sources of error endemic to torpedo fire at real world ranges. In light of this, they moved to abandon the torpedo directors in favour of the simpler [[Torpedo Deflection Sight]]s, which relied on a single scalar value, computed in the sheltered quiet of the ship's interior spaces, to convey to the men at the sight how to establish the proper sighting angle. 
  
===2012===
+
===The Dumaresq===
The battlecruiser up and runningThe wireless systems work, the Dreyer tables and rangefinders.  A good many bugs, but some shooting is possible.
+
The Royal Navy used a device called a [[Dumaresq]] to relate the relative motion of a target ship to the very helpful frame of reference to how fast the enemy ship appears to be moving along the line of fire versus across the line of fireThese measures are very helpful in mature fire control systems, as the first is the [[Range Rate|rate of change of range over time]] and would be a value you could integrate on a [[Range Clock]] to generate a continuous range hypothesis for continuous hitting, and the latter can be massaged further to calculate the small lateral [[Gun Deflection|aiming deflection]] angle that will cause the fire to be correct for bearing.
  
Some parts I am leaving for later:
+
<video id="ZQTBfvJH_xc" height="150" width="200" desc="The Dumaresq" frame="true" />
* the [http://www.youtube.com/watch?v=4mbT9p4a-vI ShipsLogPlayback] app is in real disrepair.  If it comes back, it will be in Java2D
+
* particle effects of gunfire and shell splashes leaves much to be desired
+
* flags don't work very well (native physic libraries would help)
+
* some of my secret features are shelved for now
+
* multiplayer
+
* PC compatibility was demonstrated briefly and lost.  I hate Windows like mad.
+
  
Right now, the following stuff works:
+
===Putting it all together: Ship-wide Fire Control===
+
:'''Fore Top''' accessible by magic portal on gundeck
+
:*Range Officer (w/ telaupad to Top network)
+
:*Spotter (w/ telaupad to Top network)
+
:*Voicepipe to Conn
+
  
:'''Director Platform''' accessible by magic portal on gundeck
+
<video id="iZZ7wdnRLsE" height="150" width="200"  desc="The Dreyer Fire Control Table" frame="true" />
:*Vickers Light Aloft director manned by
+
::*Phone Man (w/ telaupad to Top network)
+
::*Sightsetter
+
::*Director Layer
+
::*Director Trainer
+
  
:'''Transmitting Station''' accessible by magic portal on gundeck
+
<video id="ObKJQBKOn6Q" height="150" width="200"  desc="Director Firing" frame="true" />
:*TS Officer
+
:*Top Talker (w/ telaupad to Top network)
+
:*Main Talker (w/ telaupad to Main network)
+
:*Dreyer Table Mark III (c1918 sans Wind Dumaresq), manned by
+
::*Range Plotter (w/ six overhead single range receivers, two functioning)
+
::*Bearing Plotter
+
::*Range Tuner
+
::*Spotting Corrector
+
::*Dumaresq Operator
+
::*Totaliser Operator
+
:*Range Master Transmitter w/operator
+
:*Deflection Master Transmitter w/operator
+
:*Bearing Transmitter w/operator
+
:*Gun Ready Board with Fire push
+
  
:'''Conning Tower''' accessible by hatch to signal deck
+
The Royal Navy took the basic components of gun sights, rangefinders, spotting, and communications devices to build a sophisticated computer, the [[Dreyer Fire Control Table]] and a system to harmonize the effort by pointing and firing all the guns at once using a [[Gunnery Director]].  The overall effect was to transform a capital ship, such as a battleship, into an early form of networked computing system, which would allow each man to work a small part of the overall problem of converting observed ranges and bearings to the elevation and training angles required to place shells on target.  The many people so engaged could communicate their results over dedicated electro-mechanical data networks few consider today.
:*Captain
+
:*Helmsman
+
:*Voicepipe to Fore Top
+
:*Captain's Cease Fire push
+
  
:'''Gun Control Tower''' accessible by hatch on its top
+
==Development History==
:*Rangetaker (w/telaupad to Main network and nine-foot coincidence rangefinder)
+
FAI was written in Java, and delivered a Spartan 3D interactive environment using an extinct, Windows-only 3D plug-in called WildTangent.  It delivered low frame-rates and a dated appearance, but these were not a barrier to what I wanted to focus on: creating a realistic simulation of the ships, duties and mechanisms of fire control.
:*Gunnery Officer (with bearing and rate transmitters)
+
:*placeholder sailor
+
:*placeholder sailor
+
  
:'''Torpedo Control Tower''' accessible by hatch if you trek back there!
+
FAI embodied realistic ballistics and implementations of 20+ distinct AI behaviours for sailors with different shipboard duties, manning a virtual Dreyer table, wireless transmitter, many data transmitters and receivers, Vickers director, coincidence rangefinders, dumaresqs, etc, etc.  It was fairly glorious.
:*Rangetaker (w/telaupad to Main network and nine-foot coincidence rangefinder)
+
:*Two [[Torpedo Director Pattern 2006]]s
+
 
+
:'''Signal Deck'''
+
:*Semaphore Signaller (partly functional)
+
:*Flag Signaller (broken)
+
 
+
:Four '''Twin 13.5-in Turrets''', each with
+
:*Officer of Quarters
+
:*Turret Talker (w/ telaupad to Main network)
+
:*Two loaders (abstractly representing the entire loading process)
+
:*Two gun layers with elevation receivers, controls for elevating gun, sighting scopes and triggers
+
:*Turret trainer with 2 telescopes and trainer's switch, controls for training the turret
+
:*Turret Director Trainer with training receiver
+
:*Four sightsetters
+
:*a few miscellaneous receivers
+
 
+
Marsden Samuel helped me with some art.  I set him up with what I hope is a runnable WIndows version of my sim so he can walk around the Queen Mary and see whether textures are right or wrong, and check on geometry, etc.  It's encouraging to consider someone other than me running my sim!
+
 
+
===2013===
+
I worked some with Marsden and with Arjen on various aspects of the sim, but work abated.
+
 
+
<video  id="UknqrX89T_w" height="450" width="800" desc="New hydrodynamics" frame="true" position="center"/>
+
 
+
===June, 2014===
+
I spent some time looking at licensed libraries to improve the hydrodynamic and environmental appeal of the work, but the JME3 developers say that they really cannot support middleware of this type.  I'm thoroughly sick of JME3 now.  The developers seem content to have cameras that are handled differently than any other Spatial object in their system, and their lack of understanding that this would be the simplest way to treat them is reflected in the fact that the object they provide to tie them to a spatial within their system presumes, oddly, that the camera will control the spatial rather than the other way around (which would HALVE the complexity of this part of the code), and the camera faces BACKWARD when it is set up.  This is the sort of usability that gives me hives.
+
 
+
===July, 2014===
+
Looking again at Unity, still hating it.  They have some nice videos to show you the ropes now, but they persist in some bad usability stuff.  An example:  there is a "play mode/edit mode" dichotomy that can cause your work to be silently discarded if it is done in the play mode, and the graphical control buttons for this ignore standards of usability that have existed since VCRs and tape recorders.  When in PLAY mode, there is a lit PLAY delta pointing to the right.  Why is this not an unlit STOP icon (the block known around the world)?
+
 
+
There is no way to see, when a geometry in the scene is selected, its extents on the current scaling.
+
 
+
The free boat model in their asset store has a keel, beam, and draft unaligned with X,Y,Z.  It is a fairly model, but they should not accept such submissions.
+
 
+
===August, 2015===
+
Back working at Unity.  I've licensed some very commendable components to work with:
+
* [http://visionpunk.com/ UFPS] for First-person camera and control
+
* [http://beardedmanstudios.com/ Forge Networking] for multiplayer
+
* [http://sundog-soft.com/sds/features/real-time-3d-clouds/ Silverlining] for a good sky/weather system
+
 
+
I may also license
+
* [http://sundog-soft.com/sds/features/ocean-and-water-rendering-with-triton/unity-water-effects-with-triton-for-unity-pro/ Triton] for ocean modeling, but that will also require that I spring for Unity Pro
+
 
+
===September, 2015===
+
Unity3D continues to be a difficult tool for me.
+
 
+
===November 28, 2015===
+
I have posted a [[Sim:WTF Tech Demo|tech demo]] that runs on OS X and on WIndows to show to the development team.  The content is essentially a stripped-down {{UK-Acheron|f=p}} model -- a good place to start.
+
  
Its best features are a very realistic ocean asset, a very nice weather/sky system, and some rudimentary deck walking behavior.
+
I eventually replaced Wildtangent with [http://jmonkeyengine.com/ jMonkeyEngine], but didn't take things much further, as the FAI architecture was unlikely to ever deliver me the massively multiplayer experience I felt was necessary to achieve my ultimate vision.
  
===December 17, 2015===
+
==Continuing Work==
I have started to bring some networking into play.  There are deck walking bugs that cause outrageous capsizing of the ship you are on, and the halyards also go unstable at times.  However, the weather system is synchronized and two sailors can walk the deck of the same ship, poorly.  Main deck, foredeck and bridge are walkable.  Much fixing to do.
+
I decided to write a simulation because renders of 3D models and textual description of such mechanisms seems lifeless and flat.  However, it is now painfully clear that videos of someone else using a sim is also a little like having someone eat a pizza on your behalf.
  
The main components are now:
+
I am now working on a successor to FAI which I call [[Sim:WTF|With the Fleet]].  This simulation has the following main goals:
  
* [http://visionpunk.com/ UFPS] for First-person camera and control. 
+
* it will be multiplayer; each player is a sailor or officer, never a ship
* [http://beardedmanstudios.com/ Forge Networking] for multiplayer
+
* it will use voice pervasively to better model the teamwork and fraternal/sororal nature of serving aboard a ship
* [http://sundog-soft.com/sds/features/real-time-3d-clouds/ Silverlining] for a good sky/weather system
+
* it will have a sedate pace with infrequent battles, to augment their impact
* [http://forum.unity3d.com/threads/ceto-scrawks-ocean.323545/ Ceto (Scrawk's) Ocean] -- a phenomenal and cheap ocean.   
+
* it will run on current popular platforms of suitable types: Windows, MacOS, possibly Linux
* WorldComposer and TerrainComposer (a love-hate thing here)
+
* it must be stable enough to invite regular outside playIdeally, it will become a commercial offering
  
Components I found to be near-misses were:
+
As of early 2019, the work is at the prototype stageI need collaborators &ndash; primarily artists and coders.
* ActionController/MotionController - very well done and superbly documented, but seemingly not up to deckwalking
+
* Unistorm - nice precipitation effects, but atrocious API and most clouds inferior to Silverlining'sMay go back and bring in the precipitation stuff later.
+
  
 
==See Also==
 
==See Also==
 
{{refbegin}}
 
{{refbegin}}
* [[Sim:Videos|Videos of Fleet Action Imminent Simulation]]
 
 
* [[Sim:Ballistics|Discussion of simulated ballistics used]]
 
* [[Sim:Ballistics|Discussion of simulated ballistics used]]
 
{{refend}}
 
{{refend}}

Revision as of 22:46, 15 January 2019

SimBattleshipUnderFire 512.jpg
SimFireControlMechanism 512.jpg

In 2002-2006, I created a technically-minded 3D naval simulation I called Fleet Action Imminent. I hope to create a massively multiplayer game featuring these same details, and have prototyped it on several platforms. I've reached the point where I need to collaborate to develop something stable I can openly share beyond video demos with others.

Videos demonstrating the Sim

The first three educational videos are... ok. The last two are more involved, but I had not enough scripting of what I wanted to show and explain. And so I ramble quite a bit (sorry).

There are some mistakes in the videos, particularly in the voiceovers. I encourage you to follow the links to Wiki articles that more accurately describe some of the details.

N.B.: for best results, watch the videos on Youtube in full screen.

Torpedo Aiming Systems

Aiming Torpedoes from the Tube
Aiming Torpedoes remotely

These videos illustrate use of a Torpedo Director Pattern 2006, the basic model of torpedo aiming the Royal Navy used from the 1880s to 1915. The first video demonstrates how such a director works when placed on the torpedo tube, and the second illustrates how it can be used from a remote aiming position by use of a Tangent Bar to factor out the parallax.

Some time during the war, the British realized that their torpedo directors were overly complicated, and the corrections offered by the Tangent Bar were miniscule when compared to the sources of error endemic to torpedo fire at real world ranges. In light of this, they moved to abandon the torpedo directors in favour of the simpler Torpedo Deflection Sights, which relied on a single scalar value, computed in the sheltered quiet of the ship's interior spaces, to convey to the men at the sight how to establish the proper sighting angle.

The Dumaresq

The Royal Navy used a device called a Dumaresq to relate the relative motion of a target ship to the very helpful frame of reference to how fast the enemy ship appears to be moving along the line of fire versus across the line of fire. These measures are very helpful in mature fire control systems, as the first is the rate of change of range over time and would be a value you could integrate on a Range Clock to generate a continuous range hypothesis for continuous hitting, and the latter can be massaged further to calculate the small lateral aiming deflection angle that will cause the fire to be correct for bearing.

The Dumaresq

Putting it all together: Ship-wide Fire Control

The Dreyer Fire Control Table
Director Firing

The Royal Navy took the basic components of gun sights, rangefinders, spotting, and communications devices to build a sophisticated computer, the Dreyer Fire Control Table and a system to harmonize the effort by pointing and firing all the guns at once using a Gunnery Director. The overall effect was to transform a capital ship, such as a battleship, into an early form of networked computing system, which would allow each man to work a small part of the overall problem of converting observed ranges and bearings to the elevation and training angles required to place shells on target. The many people so engaged could communicate their results over dedicated electro-mechanical data networks few consider today.

Development History

FAI was written in Java, and delivered a Spartan 3D interactive environment using an extinct, Windows-only 3D plug-in called WildTangent. It delivered low frame-rates and a dated appearance, but these were not a barrier to what I wanted to focus on: creating a realistic simulation of the ships, duties and mechanisms of fire control.

FAI embodied realistic ballistics and implementations of 20+ distinct AI behaviours for sailors with different shipboard duties, manning a virtual Dreyer table, wireless transmitter, many data transmitters and receivers, Vickers director, coincidence rangefinders, dumaresqs, etc, etc. It was fairly glorious.

I eventually replaced Wildtangent with jMonkeyEngine, but didn't take things much further, as the FAI architecture was unlikely to ever deliver me the massively multiplayer experience I felt was necessary to achieve my ultimate vision.

Continuing Work

I decided to write a simulation because renders of 3D models and textual description of such mechanisms seems lifeless and flat. However, it is now painfully clear that videos of someone else using a sim is also a little like having someone eat a pizza on your behalf.

I am now working on a successor to FAI which I call With the Fleet. This simulation has the following main goals:

  • it will be multiplayer; each player is a sailor or officer, never a ship
  • it will use voice pervasively to better model the teamwork and fraternal/sororal nature of serving aboard a ship
  • it will have a sedate pace with infrequent battles, to augment their impact
  • it will run on current popular platforms of suitable types: Windows, MacOS, possibly Linux
  • it must be stable enough to invite regular outside play. Ideally, it will become a commercial offering

As of early 2019, the work is at the prototype stage. I need collaborators – primarily artists and coders.

See Also