Voyage - Sea Travel as Gameplay, on a Chart the Product Draws, for GameMaker
A downloadable asset pack
Voyage makes the sea part of the game, not the loading screen between two ports. The wind has a direction and a strength, and your heading against it decides how fast she goes, so a dogleg can beat a straight line. A full hold is slower. Grain rots. Storms take the hull. And when you land two hundred tons of something, that port has two hundred tons of it now, and its price says so.
Every image on this page was drawn by the package itself, rendered by the shipped build.
A sea chart it generates and draws
- Islands from a seed: inked coasts with fine water lines offshore, hachured high ground and stippled woods, never overlapping and never under the title
- 32-point compass roses in open water, with a fleur-de-lis at north and portolan-coloured rhumb lines across the whole sheet
- A cartouche with the sea's own generated name, a scale of leagues, a double border with degree bars
- Four chart styles: vellum, admiralty, sepia and night
- Six ships drawn by rig: cog, sloop, dhow, junk, brig and galleon, sails filled, facing the way she heads, flying your colour
- The course on the chart: dashed through its waypoints, every port marked and named, the ship where she is right now, a wind arrow feathered by strength
- Sea routes that keep off the land:
vyg_chart_sea_routefinds the shortest course round the islands
Sailing that plays like sailing
- Points of sail: a beam reach is fastest, not running downwind; straight upwind she tacks, which costs about 60% instead of stopping her
- The hold: a full hold is 40% slower, so a player refuses the last twenty tons of a good cargo
- Keeping time: perishables age a watch at a time and turn once they are past their day
- Weather named from the wind that drives her: becalmed, fair, brisk, squall, storm. Past about 32 knots she is under storm canvas, so a storm is slower as well as damaging
- Price pressure: landing goods gluts that port for that good, down to a floor, and the glut fades
- Deterministic: the same seed and course always give the same passage, after every save and load, and an animated passage is identical to one resolved at once
my_world = vyg_create({ seed: 77 });
my_chart = vyg_chart_make(77, 7);
var _sites = vyg_chart_ports(my_chart, 2);
vyg_add_port(my_world, "tarn", "Tarn", _sites[0][0], _sites[0][1], 0.1);
vyg_add_port(my_world, "oris", "Oris", _sites[1][0], _sites[1][1], 0.3);
vyg_load_cargo(my_world, "grain", "Grain", 24, 12, 18);
vyg_plot(my_world, "tarn", "oris", vyg_chart_sea_route(my_chart, _sites[0][0], _sites[0][1], _sites[1][0], _sites[1][1]));
// Step
vyg_advance(my_world, delta_time / 1000000 * 2);
// Draw GUI
var _map = vyg_chart_draw(my_chart, 0, 0, display_get_gui_width(), display_get_gui_height(), "vellum");
vyg_draw_course(my_world, _map, "brig");
A runnable demo room is included: a generated sea, four ports on its coasts, a brig working round them. Space runs the watches fast, S changes the chart style, R the rig, N plots the next leg.
Tested, not just compiled
The in-engine suite reported 39 of 39 assertions on the shipped build: bearings across north, the polar and the tacking curve, the wind over 3,000 watches, the hold, spoilage, gluts, a passage that is the same twice, an animated passage identical to a resolved one, a save mid-voyage that finishes the same, 40 charts with no island overlapping another, every compass rose in open water, sea routes between every pair of ports on 40 charts (240 of 240 routed, walked point by point, none touching land), and every chart style and every rig drawn on a real surface with its ink measured. The package was imported into a blank GameMaker project and used the way the Readme documents it (35 of 35 checks), 180 hostile calls against its documented API crashed nothing, and every name the Readme uses was checked against the package (48 of 48).
Compatibility
- GameMaker 2024.14 or later; built and tested on runtime 2024.14.4.268 (not tested on GMRT)
- Pure GML: no extension, no shader, no sprite. Everything is namespaced
vyg_,VYG_andglobal.vyg_ - Two Open Sans font resources (Apache-2.0, notice included) letter the cartouche, the scale, the port names and the demo's log
- You get the
.yympspackage, the full readable project, the Readme and the licence
Also from CSAF
Put the prices on a real market with Bourse, a supply and demand simulation that draws its own goods; map the land your sailors reach with Charter, a discovery map with landmark marks.
AI disclosure: the code and the generated artwork of this package were written with AI assistance. It contains no audio.
| Published | 3 days ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Made with | GameMaker |
| Tags | cartography, GameMaker, gml, islands, nautical, ships, sourcecode, Trading, wind, world-map |
| Languages | English |
| Links | Homepage |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $12.99 USD. You will get access to the following files:






Leave a comment
Log in with itch.io to leave a comment.