24
Jul
2017
Beta

Nantucket is in Beta

by DanieleBubb

Nantucket has officially gone Beta last week. We are going to close the first round of beta testing, where we let our friends and families play the game in exchange of feedback and bug reports.

The feedback has been great so far, many testers played the game for long play sessions and came back to us with mails showing us what they liked and what they would improve.

The testers helped us discovering bugs, we found 100+ bugs and right now we are working on a patch which fixes (almost) all of them. We are also working on balancing the difficulty thanks to users’ feedback and data collected from their save files.

After the patch is up, we’ll start a second round of closed beta, with the aim of finding more bugs and check if the difficulty curve improved.

Now some quotes from the testers:

I had a blast playing this game and I was surprised at how easily I would get absorbed for hours when playing. Now I’ll start a second playthrough trying to be as wicked a captain as possible.

Alejandro

I found it difficult at the start, but after few hours it sucked me in

Vincenzo

I just fired a man because he had typhus and syphilis … 10/10

Mario

Many of you are asking us on social media about the release date, but unfortunately we haven’t set it yet. Right now Nantucket is feature-complete and we are focusing on bug fixing, difficulty balancing and overall polishing. We also hired Steven which will help us proof reading all the texts in the game.

Probably we will do other testing sessions and we will involve our most loyal followers, if you would like to get involved in testing Nantucket please follow us on Twitter and Facebook, and subscribe to our Newsletter to stay updated.

13
Mar
2017
Code

Choosing the fastest route in Nantucket – 2D polygonal pathfinding in Unity

by DanieleBubb

In the last few weeks we reworked the pathfinding system in the world map scene. In this article we are going to explain how we implemented the new pathfinding system, and what are the improvements we got from it.

The old, tile-based pathfinding

As many other devs do, we used A-Star algorithm to traverse the navigation graph and pick the fastest route between two points in the map.

The navigation graph was generated using an offline process which defined nodes and edges following these rules:

  • The world map was split in squared tiles
  • We added a node in the graph for each traversable tile
  • We added an edge between two adjacent nodes

The graph looked like this, with the nodes represented by blue circles and edges by red lines:

The issues

We analyzed the problems we had with this system and came up with the following:

  • Too many nodes and edges, which led to poor performances
  • Rough choice of routes along the coast

The solution

To solve those issues we wanted to find a way to generate the graph differently, in order to:

  • Reduce the number of nodes and edges, especially in open areas, to improve performance
  • Move the nodes closer to obstacles, to achieve smoother routes around corners

The graph generation

We ended up changing the rules of generation of nodes and edges in the navigation graph. We defined obstacles as polygons and defined the new graph with the following rules:

  • Add a node per convex vertex of the obstacle polygon
  • Add an edge per couple of nodes visible in line of sight

Inspired by this article we generated the obstacle polygons by following these steps:

1. Draw the obstacles using the Graphics editor of your choice

2. Insert the obstacle image in a GameObject and add a PolygonCollider2D component to automatically define the outline.

3. Generate nodes and edges of the pathfinding graph

Since our obstacles are static the process is done offline, and data stored in a ScriptableObject.

The path calculation

When a route between given source and destination points has to be calculated the only computations left to be performed at runtime are:

  1. Add a node on the position of the source point
  2. Add edges from source node to every visible node in line of sight
  3. Repeat steps 1 and 2 for the destination point
  4. Calculate the best path using A-Start algorithm from source to destination node

Here is the pathfinding in action, you can notice how the graph changes when moving source and destination points:

The optimization

In order to improve the performance and let the pathfinding not impact the framerate, we implemented few optimization techniques.

We added a visibility cache, we used the tiles we had in the previous implementation, and stored all the visible nodes in line of sight for each tile. This let us save computation time when adding the edges between source and destination nodes, instead of performing a lot of expensive line of sight checks, we just use the nodes cached in the tile the node is in.

We reduced the number of edges by removing all edges between nodes of different polygons, except for special nodes marked by hand. We won’t go in detail about this, since is strictly tied to the nature of the map, and we didn’t find a way to automatically choose special nodes.

We then moved all the runtime part of the algorithm in a different thread to further save computation time.

The final result

Despite having hundreds of nodes and edges, the overhead is minimal and improved ~100 times over the previous implementation. It runs smoothly on all the machines we tested it in, and we are now able to run it every frame to show the potential route the player can currently set.

Here is the final result in Nantucket:

Hope you enjoyed this technical article, I thought it would be useful to share it since I didn’t see anything like that implemented in Unity.

Nantucket is in the late stages of development, we are putting the final content and internal testing is giving us useful feedback on game usability and balance. We’ll soon show more gameplay in a video on our Youtube Channel. Meanwhile don’t forget to follow us on Twitter and Facebook.

25
Oct
2016
News

NANTUCKET SUBMITTED FOR THE IGF 2017

by picaresque

Ahoy there!

It’s been a while since you’ve read of us. Last time we told you we were in need of some relax to prepare for the final rush. Well, the news of today is part of that:

igf_social

We are thrilled for this submission! It means a lot to us since the game will be judged by the bests and, moreover, that the game is a lot closer to its production end.

We believe in this game and we hope to get as far as possible in this competition. We will keep you updated about this, don’t worry. Wish us luck!

The Team

Save

Save

6
Aug
2016
News

Summer Holiday 2016

by picaresque

Ahoy mates!

Here at Picaresque Studio we keep working hard for the final goal. However, we feel that we need a little rest to recover our strength for the last push. For this reason, we leave you with a new illustration of our Ishmael doodling with wood, carving out whales while something is watching…

NantucketHoliday2016

Have a nice summer time and see you in September rested and ready for some juicy (or groggy) news!

The Picaresque Studio Team

Save

Save

18
Jul
2016
News

Devs Play Ep. 11: “Black Flag on the horizon”

by picaresque

Ahoy fellow Captains!

A new, shining, Devs Play video series episode is out!

Watch Episode 11:

In Nantucket Pirates can be a very dangerous foes and tough ones. Mex, our game designer, will show you how to spot their areas on the map and how to fight them. Remember that not always it will be a good idea to go for the battle but be prepared for their might!

Enjoy the video!

The Picaresque Team

18
Jun
2016
News

Devs Play Ep. 10: “Hunger for Blubber”

by picaresque

Ahoy there!

The new Episode 10 of our Devs Play video series is out!

Watch Episode 10:

Mex, our game designer, will show you how and where to look for sea creatures. A captain has to show to  well know the seven seas! Find information about whale areas and keep track of their migration routes.

Enjoy the video!

The Picaresque Team

4
Jun
2016
News

Devs Play Ep. 9: “Fighting Whales”

by picaresque

Arr!

The long awaited Episode 9 of our Devs Play video series is out!

Watch Episode 9:

Mex, our game designer, will show you how to fight against sea creatures. Now it’s time to see who’s the man! Learn how to challenge and win sea creatures avoiding damage and rescuing your ship mates.

Enjoy the video and let’s fight!

The Picaresque Team

21
May
2016
News

Devs Play Ep. 8: “Intro to Combat”

by picaresque

Ahoy!

The new Episode 8 of the series “Devs play” is out!

Watch Episode 8:

Mex, our game designer, will show you how to prepare fir combat. What’s the combat dice and how many types are on the game? Have a look at how to deploy your crew before a fight on the waters! Low the whaleboats and enjoy the video!

Action stations!

The Picaresque Team

7
May
2016
News

Devs Play Ep. 7: “Level Up & Quests”

by picaresque

Ahoy!

The new Episode 7 of the series “Devs play” is out!

Watch the Episode 7:

Mex, our game designer, will show you how and when to level up your characters. Which are those aspects of the game affected by your level? Moreover, you’ll take a look at the quests system in Nantucket so, buckle up and enjoy the video!

Godspeed and may the fair wind be with you all!

The Picaresque Team

23
Apr
2016
News

Devs Play Ep. 6: “Manage Resources”

by picaresque

Ahoy!

Good news! Episode 6 of the series “Devs play” is out! .

Watch the Episode 6:

In today’s video Mex, our game designer, will show you how to manage your resources during navigation. How can we tackle a situation like, for instance, when food is scarce and your crew is at the brink of starvation?

Enjoy the video and hold fast!

The Picaresque Team