Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Jeffrey Isselee, posted on April 11, 2002

Image Description, by Jeffrey Isselee

Screenshots are from my current work in progress, Golden Hind. Ultimately, it will be a multiplayer real-time sea adventure/roleplaying game. Golden Hind has been under heavy development for the last 3 months and is slated for public release at the end of this summer. The game is being programmed in C++ using MSVC 6 and DirectX. The graphics engine is of isometric design, with height mapping and multiple layers. It is currently implemented using Direct3D 7, but I am considering moving it to D3D8.

The maps consist of 64 x 32 pixel tiles, organized in a diamond pattern, and ship and object movement is implemented by a custom "handing off" algorithm that transfers the objects from tile to tile. Ship movement is fluid and scenes are kept busy with a number of animated special and environmental effects. Also under development is a pixel-perfect collision detection system for the combat engine. All graphics are custom-made(please forgive me, I'm just a lowly programmer). Texturing and lighting is dynamic with consideration to height and time of day, with original code for seamless texture blending. Soon to be in development is a large-scale client/server multiplayer engine using DirectPlay.

Some of the features of the final version include:
  • Thirteen unique ships to purchase or capture.
  • Large-scale multiplayer capabilities over the Internet.
  • A detailed combat system, including boarding, plundering, and scuttling of ships.
  • Many different roles to choose, including trading, escorting, piracy, and exploration.
  • Completely upgradeable and changeable ships, letting you improve as your budget allows.
  • An ever-changing world, including day/night cycles and a weather system.
  • A dynamic economy, allowing for a rich and exciting system of trade.
  • Over half a dozen powerful empires and alliances to side with.
  • A majestic and lengthy musical score, unique to Golden Hind.
  • A complex, multi-channel chat system.
  • For more information regarding the Golden Hind project, stop by the website at:

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

    April 11, 2002, 06:30 PM

    When do you plan moving to 3D ?

    This IOTD is worth a question;p


    April 11, 2002, 06:32 PM

    doh! by nasty I mean DX8, not your game!


    April 11, 2002, 08:10 PM

    Looking good. Perhaps a movie would better portray the animation of ships and battles? Oh, btw, are you going to implement pirate sounds? =P

    "nn'Arrhh matey... Fare thee be warned, landlubber"
    - Some pirate


    April 11, 2002, 08:33 PM

    A lot of great feedback, thanks a lot guys. I'll try and address all of the questions/interesting statements I've seen so far:

    "There was an article on gamasutra that tells you how to solve that problem."

    What problem? The move from D3D7 to D3D8?

    "The only constructive criticism I have is that the trees seem disproportionatly larger than everything else... Well, to my eyes anyway."

    Yeah, someone else said the same thing. It's an issue that will definitely be addressed.

    "The only thing to critique is that in the bottom left and top right images, there's some light colored stuff in the water. I'm guessing it's cannon fire hitting the water but looks a bit odd. Perhaps a bit more variation in them (they all look the same sans horizontal flipping)."

    It's actually not cannon fire. It was supposed to be rocks under the water, but on second glance, it's not very clear. The idea behind them is that it's supposed to be shallow, rocky water, which can only be traversed by small ships, allowing for features like newbie coves and hideouts for smaller pirate vessels. I used alpha blending to get the effect of translucent water, so maybe I'll fiddle with it more. More variation, yeah, I'll do something about that too. I was hoping to get away with the horizontal flip on some of them. Guess I just wasn't slick enough. Damn.

    "Something cool might be the inclusion of smoke effects when they're firing on each other. That would also lend some user feedback on who is actually firing (an ever important thing to know)."

    The combat system is under development as we speak, and I am most definitely planning on including smoke effects, contrails, explosions, and splashes.

    "I love this pic, except that it is too dark a bit, but It looks almost like 2.005D"

    How about the upper-left pic? Is that light enough?

    "Those ships look great. Are they actual 3d models or flat images?
    Do you really have a day/night cycle or is it just getting a little darker at night? I can't imagine sitting there for hours until the sun get's up again so I can shoot my enemy :)"

    Here's how it works. The terrain is all 3-D textured isometric polygons. The ships, objects, and soon to be weapons are 2-D images layered on the scene. Each 2-D object is anchored(heehee, no pun intended) to a tile, and the tiles are all drawn with their components in a clever order to allow for layering effects. It was a design choice that I feel is working well. As for the day/night cycle, there will be a system time that determines the amount of ambient light in the game. It wont be equivelant to an actual 24-hour period of time, a full cycle might take place over an hour or so, like a MUD. During full night, your line of sight will be very limited, but people shouldn't just be sitting around. It will be perfect conditions for individuals who prefer to travel.... shall we say.... undetected.

    "and for multiplayer care to think about not using directplay in case you need speed"

    That may very well be the case. I currently plan on using DirectPlay, but if it just doesn't cut it, I'll move to something faster.

    "My only gripe is, it seems your grass tiles transition directly into water, which looks a little odd IMO. A grass->sand->water transition would probably look a lot better."

    Argh, I spent many a day trying to get the grass->sand->water transition to look the way I wanted it to. It just doesn't look as seamless as the grass->water does. It'll be there eventually.

    "it would have been neat to see some explosions!!"

    Yeah, you and me both. Keep an eye on my page, I'll have some explosions for ya by the end of the month.

    "When do you plan moving to 3D ?"

    I don't plan on making the game any more "3D" than it already is. If you're referring to the switch to D3D8, umm... probably after the game's finished. I just don't have the time to worry about that now.

    "Perhaps a movie would better portray the animation of ships and battles?"

    Good idea. I'll keep that in mind.

    "Oh, btw, are you going to implement pirate sounds?"


    Thanks again all who took the time to comment. This has been a big help.


    Sniper BoB

    April 11, 2002, 08:42 PM

    that was apparent 2 me


    April 11, 2002, 08:52 PM

    those 3 ships in the corner of the bottom right image. they look a lot like those fire ships in AOE 2 !


    April 11, 2002, 11:18 PM

    Whatever you do, don't use DirectPlay for multiplayer. WinSock is easier to develop with, more robust and well debugged, and works much better through firewalls.


    April 12, 2002, 01:07 AM

    Say, bit64, what did/do you work on at Microsoft again? :)


    April 12, 2002, 01:10 AM

    It IS a little bit of a coincidence that MC doesn't post when Div0 posts, isn't it?


    April 12, 2002, 01:57 AM

    Nowadays UDP vs TCP isn't that big of an issue. The overhead of TCP is hardly a reason not to use it. Of course the situation you are dealing with will dictate ultimately what you will use.

    Hiro Protagonist

    April 12, 2002, 02:33 AM

    How is it easier to develop with? Have you tried to do voice over winsock? If you're talking about sending a packet over the wire, then yes perhaps winsock can do that in fewer lines of code, but when you get into the intricacies of developing a full game, that statement is pretty vague. DirectPlay handles groupings, message contexts, voice, player lists, throttling, guaranteed sends, sync/async sends, sequential sends, and a plethora of other benefits over UDP. Are you saying that it is easier to implement these things yourself, and that if you did it would be more robust and better debugged?


    April 12, 2002, 03:14 AM

    If guaranteed sends are optional then I guess it is not using TCP but UDP? I did a UDP based network "system" myself some months ago (until then DirectPlay did not have those features you mentioned) wich also had optional guaranteed sends. Mine was always asynch and could even handle priorities. I did a client/server architecture with a client limit of 255 but never tested it with more then 3 clients though :).
    Can one build a client/server game with DirectPlay? I guess it would not make much sense since servers are usually not run on windows machines.



    April 12, 2002, 03:55 AM

    Calm down...
    Using 3D for 2D game is cool only from a developer point of view, although there is some drawbacks (you are unable to create tons of animations, or they aren't be so detailed - because of the small texture memory)...
    So, I agree that for 2D game 3D is not the way, besides this is bad decidion from the market point of view. 2d = 2d, so why the hell anybody must have d3d8 compatible accelerator to run the game? Lazy developers...?
    (hint: HMM4... :)


    April 12, 2002, 03:59 AM

    Stop that crap, please!
    Comment the IOTD, that's why it is here...

    Hiro Protagonist

    April 12, 2002, 04:02 AM

    Ya, DPlay 8.1 is based on UDP. It can send guaranteed, non-guaranteed, sequential or non-sequential. DirectPlay supports peer-to-peer and client/server architecture. Many games on the market are client/server based and run in windows, in fact the majority of them are. Just because it is a network server, does not necessarily mean that its going to handle thousands of clients either. Granted for the most part MMOGs have been run on Unix backends with Windows clients, Dark Age of Camelot I believe runs on Windows servers. Many times the server is built into the client, in which case it makes perfect sense to use the client/server architecture.

    Out of curiosity why did you set a client limit?


    April 12, 2002, 04:20 AM

    Nice work!
    And taking in mind this is programmers art - wow, awesome!
    Taking in mind what little part of one such game the graphics is (I mean the graphic renderer) it is amusing that somebody has pushed all that alone (right?)!
    But that 3d stuff - how many animations have an ordinary ship? If there is only ships - ok, they aren't supposed to have many animations... Besides, what advantages do you get using 3d (except the writing of the software renderer :) - since this is isometric engine, the rotations aren't the case! Blending of terrain? Our engine does that in software and it takes less that 8% of overral execution time. If the game hit the market, don't you afraid that there will be (no doubt) problems with hardware support, this run on X card, that don't and so on...
    And second - the amount of objects/animations/detail is limited by texture memory... sure you can leave the AGP to fight the problem, but such games tend to group many different units together on single screen and then texture memory will be trashed (taking in mind that ordinary user have ~16Mb of it..)
    About the art - make two textures for the water - deep and shallow (to outline the shore). The blending of tiles spreads too much over neighbour tiles - your tiles are too big maybe. This helps hide the tiles, but looks unnatural (no sharp transitions). And what about animated ships' reflections? :))


    April 12, 2002, 06:25 AM

    But it's not 3d... :)


    April 12, 2002, 06:59 AM

    I got your point :)
    I read that he'll move to DXD38, and didn't bother to read that much of the discussion (last ones are death-boring, because of stupid flames...).
    Ok then, I'm just pondering over that idea :)


    April 12, 2002, 07:48 AM

    That was an byte field to save on packet length. Actually I don't understand it myself now but there must have been a reason :)



    April 12, 2002, 08:34 AM

    I think the real issue that needs to be adressed here is that the name of that atari game was rampart. I still play it sometimes on my emulator...sniff sniffffff :-)



    April 12, 2002, 08:59 AM

    since when??
    Damn , my win2k machine is down atm.. any tools to read chm's in linux ? ;)


    April 12, 2002, 09:00 AM

    as i said, i wasnt sure about the name :)

    it rocked tho ! and i want a multiplayer version with improved gfx , but well.. 2d controll :D

    Neil Edelman

    April 12, 2002, 10:00 AM

    The first thing I noticed was how huge your trees are hehe. I also think they would look nice with more blending around the edges. A better water texture would improve the scenes as well (a lighter shade of blue around the shores perhaps.) Your ships are very well done and I really like the town. I suppose it would be a bit too complex to have wind direction consistent between all the sails and the waves :]. Looks like a fun game.


    April 12, 2002, 12:52 PM

    Oops. I guess the tone of my post sounded a little hostile. Didn't mean to be!

    You only need a DX8 accelerator if you want hardware acceleration. Both OpenGL and DX can run in software if a hardware driver isn't present.

    Regardless of API used, I would hope that a good sprite animation engine wouldn't keep too many animations resident in RAM or VRAM.

    Hiro Protagonist

    April 12, 2002, 01:50 PM

    Since DirectPlay8.

    Hiro Protagonist

    April 12, 2002, 01:58 PM

    I don't know what you mean by the "overhead", are you talking about the additional information sent with each packet? That's never really been an issue. The issue with TCP is that it is a reliable transport, meaning that every packet sent is done so guaranteed and sequential. It is often the case in a game, when you do not want to send data guaranteed or sequential, because after a certain amount of time that data becomes inconsequential. This does become a big issue, especially in a fast paced network game like Quake or UT.

    This thread contains 56 messages.
    First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.