Piracy - Avast Ye Landlubbers!

Piracy.hex

Here is the beta for Piracy, hope you enjoy!


screens

Github link:
https://github.com/BertVeer/Piracy

11 Likes

Just playing in web emulator for a few minutes, but this looks really nice!

1 Like

Wow I love the art on this, but I didn’t realize you are controlling the speed with up/down buttons. I thought it was wind at first. Maybe that could be a cool mechanic you have to wait for the wind in a certain direction and difficult to tack into the wind.

Love it!

1 Like

Love the look of this! The ship and water kind of remind me of the old Apple ][ Ultima games.

1 Like

@Prototype, if you want to salvage a few (hundred) bytes, let me know.


Believe it or not, Nintendo got there first, a few months shy of 20 years ago:

(Though rather than waiting, you can actually control the wind direction.)

1 Like

Thanks so far, guys.

The sailing mechanism was originally wind-driven, but it was hard to go anywhere and it took a bit of code. There are still wind zones though and you can get caught in a lightning storm and break your mast. Ship damage can be repaired in any harbour.

The goal is to eventually gather enough men and arms to defeat all the navy ships.

If everything runs fine I hope to write some more detailed documentation.

And make room for even more feature creep? You bet!

2 Likes

It’s late so I won’t go into too much detail, but the biggest saving it should be possible to make from what I’ve seen is to stop copying the strings from progmem into a buffer and instead cast them to a const __FlashStringHelper * and pass that to the rendering function. Font4x6 derives from Print, so it’ll handle the progmem reading correctly, and the result should be cheaper than needing to include the progmem-to-RAM memory copying. (You may also find this library to be of use.)

If you weren’t padding the digits then you could have just printed the number directly, relying on Font4x6’s inherited print(int) function, but with the padding/modifying you will need the buffer still, however you ought to be able to replace itoa with something much cheaper.

That aside, I think you could improve memory savings by making more liberal use of constexpr, particularly where constructors are concerned.

1 Like

Fantastic work, I love it!

1 Like

You wouldn’t download a frigate.

2 Likes

Hey,

I built your game using the Arduboy2-Slimboy and I must say it runs great! I’ll watch for updates :slight_smile:

1 Like

Great to hear!

It’s not 100% done yet so hopefully I’ll find the time to finish it properly.
Please let me know if you find any bugs.

Hey I just ran into an issue actually. When searching the shores there is a risk of getting stuck so that you can’t leave the shores. The menu just keeps popping up and up.

Perhaps perhaps the fix could just be after visiting ashore you’re pushed X away from the shore.


The shot is my ship stuck in a corner and I’m unable to move due to the menu continuously popping up.

Hmm it does send you off in the opposite direction but that could probably fail when you’re actually in a tight corner. I already disabled wind to prevent being blown ashore.

I’ll see if I can fix it, thanks for reporting.

Thanks for the quick response! I look forward to any and all enhancements!