what's there?
currently not much, there is NO game, not even a demo.
this is working so far:
- the ocean waves
- the sky
- a demo boat
- game framework
at least some code exists for:
- the wind
- a client-server model
the requirements
- a linux system
with a halfway modern CPU (mine runs at 1GHz), but graphic settings
are quite tweakable. as most code uses just plib (signal handling
is one of the exceptions), a port to other plib platforms should
be relatively easy.
- OpenGL supported 3d hardware
and of course libGL, libGLU and libglut (including headers)
- plib (plib.sourceforge.net)
including headers (i use version 1.7, though 1.6 might work, too).
- a c++ compiler
and the ability to use it (as the makefiles aren't automade)
the future
the future is always open... maybe it will bring the long overdue
open source variant of a certain game (you know what i am talking
about, don't you?). i would definitely like a (massive) multiplayer pirates game ;-)
furthermore i would like to learn about faking the realism of interacting forces (to allow real-time calculation), applied math and algorithms to create more or less realistic graphics (maybe even sound) and last but not least (game) AI.
the past
my personal quest of finding a (portable) 3d engine (on top of OpenGL) might
have come to an end: plib
the first candidate was crystalspace, then neoengine, followed by nebula device. all have their own advantages, but any of them is quite large. though lacking some advanced features, plib offers
more than i currently can use, allows easy access to the OpenGL layer and imo has a very clean structure while remaining relatively small (the current sources are 3MB, about 400k headers).
waveSystem
simulating water waves can be a quite expensive job (for a CPU), depending on the amount of realism needed. plib already includes a wave object, moving the surface height by the result of some interferenced sinus functions.
i modified it to be easily tiled together (though the problem of edges remains), added (again from plib) a 3d Perlin Noise function and did a small "spend cycles to update only if visible" hack.
skybox
this is part of sphere (generated from plib) roughly the size of the view distance. currently it gets drawn with a single texture, sometime this will be changed to a dynamically created image, influenced by the weather surrounding the player.
extending that with a day/night cycle should be easy.
physical simulation
in theory, there are plenty: gravity, buoyancy, wind on sails, wind turbulence
through sails, air and water drag. these seem to make up a game (without shooting anyone), one could also simulate the ship (not only the sails) as a 3d network
of connected particles. such a ship wouldn't need hitpoints anymore, because damaged parts could become single entities (drifting away, sinking...).
anyone else played "bridge builder" or "pontifex (2)"? take a look at http://www.bridgebuilder.de/
playing the game
as there won't be any game (for a while), there is no real manual page and
all the small bits of information that turn up will be documented here:
controls
- pressing and holding the right mouse button moves the camera around
the player. scrolling the mouse wheel (while still holding right button)
moves the view up and down.
- [tab] key shows/hides the main menu bar
- pressing [F1] to [F4] set the camera to a predefined position
- [SHIFT]-[F1] to [F4] saves the current position to that F key