Probably not on github, but I can send you the code.
Recent community posts
Sorry, there's no good way to turn off the animation.
(There is a bad way, if you mean the stripes indicating force of wind on the sails. If you turn off "sail occlusion" in the physics menu, the stripes will stop updating. They will not disappear, but they will stop moving with the ship, so you can sail away from them. But turning this off stops the sails from screening each other, so you could e.g. have full force on all square sails even right before the wind.)
You can effectively pause by turning the physics simulation rate right down.
It's not formally open source, but I can send you the source if you tell me where to send it, and you are welcome to tinker with it (you already can, with the scripts, although they don't do much). It's about 20MB and in D, which I haven't used since this project, 10 years ago. I don't know how stable the language/libraries have been since then.
Late reply, but - the reasoning behind this is that in a real plane, the pilot get physical cues about how the plane is moving through the sky. This is not captured in a conventional flight sim, where your only experience of the world is a fixed, narrow forward view. I want to capture some of it by emphasizing the third person view with the wide FoV, visual trails behind the wings, etc. That's the idea; I agree it's not a total success.
If you're too heavy with the controls, you can get a spin or a stall. Start with small mouse movements, and try bigger ones when you are used to how the plane controls. I think there is a command somewhere to change mouse sensitivity in the game, if that's the problem.
Thanks, and I'm glad you're still enjoying it.
I initially worked on getting a physics model that felt reasonable to me, but did not have too much data on actual speeds at different points of sail, and especially when turning. Then I found some more numbers, and players contributed some of their sources, and by tuning various lift and drag parameters it seems to match fairly well. See here: Historical data - A Painted Ocean by Neil Thapen (itch.io)
Thanks. I can reproduce the time bug. It's weird. If I narrow down when it stops working, I get that time passes on May 7th, but not May 8th. Perhaps it's something to do with numerical precision - maybe I'm using integer time inappropriately somewhere.
On the sails - I tried this a few times, and didn't see any consistent pattern. It should depend on the force of the wind (so more for topsails) times some factor varying with the size of the sail, and some randomization. (I've upgraded my system recently and haven't installed unity yet, so it's difficult to check some of this.)
Stability, I'm afraid, is something that is not modelled well. I didn't think about it until rather late, after I had the buoyancy and hydrodynamics tuned for the simplified hull form I was using. When I realized it was too unstable/stable (I don't remember), I tried a simple fix by moving the centre of gravity up and down when the ship heels, until the behaviour seemed plausible (I did look at some stability diagrams).
Thanks for the questions. Sorry for not replying to this before - I only just saw it.
I am away from my PC right now. The way it should work at the moment is that the sideways lift generated by the rudder does not care whether you are going forwards or backwards (it probably should care). The place that the lift acts is interpolated between a particular position forward, at 1m/s, to a particular point aft, at -1m/s. I don't remember how I set up the aft point. The forward point is somewhere around 1/3 of the way from the front of the ship. It's tuned fairly carefully; I want enough instability so that you have to worry about the sail plan, but not so much that tacking becomes trivial. You can move this point around in one of the debug menus, there's a slider called "ardency" or "griping" or "by the head" or something like that.
Why do you think there is too much authority with sternway?
I looked at the shot damage code (possibly for the first time since 2014). I'm tracking the kinetic energy of a shot. According to a comment in the code, an 18 pounder shot at 500m/s penetrates 2ft of oak, and I call it a hulling if the energy is more than that (with some randomness). For damage to crew and rigging etc. I just came up with some numbers that seemed reasonable, which shouldn't be hard to tune.
I set the rate of fire at the maximum plausible one. I agree it's a touch high. It would be good to model this better, and change it over time with crew strength and morale etc. Some of the code for this is there already but I'm afraid I'm unlikely to get around to fixing this up.
(And sorry, it looks like the 9 lbers are actually firing 18lber shot.)
I'm not sure what you mean by points off or in the wind. I think it is meant to be like this:
- in the "steer" menu, the first command sets a compass point and you steer by the compass. If you use the other commands, you start steering by the wind; if the wind changes, the helmsman will change your heading appropriately.
- in the "[" and "]" menus, the "turn" and "hard over" commands set up continuous dumb turns; I think the helmsman may just keep a fixed rudder angle. For the other commands, the helmsman looks up his desired compass heading (which may depend on the wind), adjusts it according to the order, and after the command is activated he steers on this heading, by the compass.
Thanks for noticing this. I looked in the editor, and the mass of the ship is 1923 tons. 1800 tons of this is the hull (the guns are 90). It looks like this 1800 figure is one I wrote in by hand, rather than calculated, and I don't remember where I got it from.
I can see the relation displacement = about 1.5*burthen in a few places. I have one source, "The Command of the Ocean" by N A M Rodger, on the 18th century royal navy, that says "for a fully stored warship" the displacement is about twice the burthen. Do you know what the state of storage is for your figures?
This is something I am reluctant to mess with, as I am happy with the way the acceleration, stability etc. are tuned at the moment. But I will have to look at this stuff again if I ever get around to flooding and sinking.
I fixed some things on the physics menu to make it more useful. Then I settled on the figure I wanted for coefficient of drag in water, and then tuned the coefficients of drag and lift in air to see if I could get the right performance - drag for speed before the wind, lift for speed with the wind on the beam. The second wasn't quite working, so I also made the lift-curve (which is very simple-minded) adjustable, so that maximum lift occurs at a different angle.
I reduced the heel by lowering the centre of mass. This probably makes the ship too stable, and rather than messing with the buoyancy I am moving the centre of mass a bit when you heel a lot.
I didn't write about it because I'm not quite happy with the results, but I also tuned for realistic tacking. The timing works out okay, but the drag on the backed sails was maybe too high. For now I have reduced this drag to about 70% of what it is when the sails are filled. This is justifiable, as various adjustments would be made, including lifting up the sails a bit, to reduce their efficiency when tacking. But really this should be something you can give explicit commands for, e.g. doing something with the sheets of the courses, and this raises UI and animation issues that I do not want to mess with at the moment.
For tuning tacking etc., I have added a "griping" slider to this menu, that controls how far forward of the centre of the ship the (sideways) lift force of the water acts - i.e. how much the ship is by the head. The higher this is, the more the ship will want to turn.
Thank you! Both for the amazing resource, and the thoughts on my questions.
For the leeway, I've found a similar source that has half a point of leeway "in a topgallant gale" (force 4-5), a point under topsails etc. I assume this was measured when close-hauled.
About the sail blanketting, I think I exaggerated it at one point, since I wanted to get some penalty for having too much sail set before the wind. Now I think this is a matter of difficult steering rather than aerodynamic problems, so I will have another look at it.
To reply to your earlier post - there isn't any LoD, it just draws everything within about 200km of you, or whatever the range is that gives some chance of it showing on the horizon. I can afford this, as the land has a resolution of about 5km.
HOWEVER - the way travel acceleration works is that it leaves you moving at the same speed through your own patch of ocean, and instead just moves all the land around you, at high speed in the opposite direction. So the game usually takes place near to the centre of the initial coordinate system, and I'm not sure what happens if someone sails in the same direction for very long in real time. It's possible you could sail out of the world. (On the other hand, I only put stars in recently. They should stay around the ship.)
I found some more data on drag/inertia.
The build now has a drag coefficient of around 0.0025, based on what I see about modern ships (one of the debug menus says 0.008, but that slider does not actually do anything at the moment). But I've found that the original book on the subject, "The Resistance of Ships" by William Froude, is available at archive.org:
The first part describes tests done on HMS Greyhound on 1871. Greyhound was a wooden screw sloop, launched in 1859, about the same size as the frigate in APO but lighter - it's listed as around 1000 tons displacement in the tests, while the frigate is around 2000. I think it's reasonable to expect it to behave similarly to the frigate . Presumably 50 years of technical improvements give it a lower friction skin, but on the other hand there's the screw sticking out (I'm not sure what this was doing in the tests - the ship was towed).
The download is missing the diagrams, but there's a description of the results on page 16. At speeds where wave resistance is not an issue, the drag in lbs is 88*V^2, where V is the speed in knots. At 1m/s (very close to 2kts) that gives about 1500N of drag. Taking the weight as 1000 metric tons, that's a deceleration of 0.0015m/s^2. So to reduce the speed by 0.5m/s would take at least 330s, more than 5 minutes, and that's ignoring the big reduction in drag as you slow down.
The drag in the released build of APO is pretty close to this, but the ship will take longer to slow down as it's heavier. Greyhound had a wetted area of 674m^2, giving a drag coefficient of 0.0044. Putting this into APO will give a bit higher drag (I need to think about how I am calculating wetted area), but still on the order of minutes to slow down.
It might be interesting to play with yaw instability here. Increasing the instability should tend to make the ship turn from straight, slowing it down a bit faster, but also making tacking easier.
Terrain shouldn't be popping in - I'm not doing anything that fancy. Possibly you had ended up with your ship inside the terrain? The collision detection won't do anything when you are well inside, say by teleporting. You shouldn't be able to sail through it, but this might break down if time acceleration is very high.
Thanks for all the comments.
- Running windowed should already be possible, through the unity resolution menu. Holding shift when you start the game should give this.
- You don't automatically get saving and loading in Unity. I'm not sure it's worth it for a sandbox like this.
- Good point about reefing topgallants. There's a general UI issue about reefing and storms, namely, how can the player tell whether they have too much sail. You could put a strain gauge somewhere, or have it done automatically or get suggestions from your lieutenants; or keep things immediate and unsubtle.
- Sails aren't textured at all at the moment.
- "Miles travelled" - would be a good thing to put on the map when I redo it.
- Wind rising or falling - For one thing, there should be a more intuitive display of the wind level, at least something graphical with the pointer on the compass. For another, the wind changing is only an issue when using time acceleration, and time acceleration in general should be made less unfriendly to the player and, e.g., make or take in sail automatically, as though the watch-officer was doing it.
- I'm glad someone made it across the Atlantic. Right now there is no collision testing done between the camera and terrain - it sounds like you have the camera inside the terrain.
Increasing the drag at low speeds would change this behaviour. This already happens a little bit but could happen more. (Unfortunately, I think the skin drag slider in the UI now doesn't have any effect.) This would also make getting under way more difficult. Really the question is, how long should it take a ship like this to slow down?
And it might be worth distinguishing two situations here. In one, the helmsman is keeping the ship pointing straight; in the other, it's drifting and likely to turn off to one side, which should slow it down more quickly.
Thanks! Maybe we can work something out. Importing a hull model should be straightforward enough, but I don't know what issues there would be with positioning rigging, guns and other modular stuff.
That's a good point about masts and sails. At the moment it's actually supposed to work the way you say, but I haven't tuned the probabilities well so things seem to break straightaway.
Waves already move the ship, at least in a simple-minded way through buoyancy. The flooding system I want to implement would be something like - when the local height of the sea is above the hatches or whatever, then you take on water that can sink or destabilize you. Is there some other mechanism that should be happening if you are struck on the beam?
Detailed coastlines - maybe. Right now Portsmouth harbour is just a 3d model loaded into the scene. Issues come with when you need a different style of rendering for it (say if it has trees) and how to deal with level-of-detail and time compression.
The first thing I worked on was buoyancy, which is modelled for all the spars, so that's what you're seeing when you capsize. I guessed the distribution of weight around the ship.
Square rig physics doesn't seem that bad - perhaps it depends which corners you are willing to cut. I am modelling each sail separately as a wing (really a position, an area and a normal). I don't worry about, e.g., aspect ratio, I just have general lift and drag coefficients, tweaked until it seems reasonable. The only effect of sails on each other I model is screening each other from the wind; for this, for each sail I cast a dozen or so rays in the direction of the wind each frame, and see how many of them hit something. It's using whatever physics engine is built into unity4.
Thanks! I've been working on it on and off since about 2011.
The weather is from climate modelling data from here - https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis2.html - for 1980. Another source I looked at was here, from weather forecasting - https://nomads.ncep.noaa.gov
I just spent half an hour watching videos of Nassau 1715. I wasn't aware of it at all - it looks fantastic.
I'm thinking the error comes from GameMaker (the engine) as it talks about "the game". I found one possibly-useful post about this error - here.
It's possible that if you watch the game directory when you run it, a log file or something might appear. Otherwise I don't know what to suggest, sorry.
It's running ok for me, through the app, on windows 10 pro v1903. Does the message looks like it's from itch or from windows? Do other (old) gamemaker games work for you, e.g. original spelunky? And what happens if you download the zip file, outside the app, unpack it and run it?
Thanks! From the log, I wonder if it's something to do with sound (which uses the OpenAL library). You could try adding the line "nosounds" to settings.txt and see if it works -- you should still get the opening music.