Archipelago - Alternative ending and finding pieces. Completion of phase 2 and phase 3!


Introduction

After many months of work this update marks the completion of both phase 2 and phase 3 of Archipelago. Double celebration!

The following phases and functionality are now complete:

  • Phase 1 (Board and ship movement): The initial set-up. Getting the board shape and structure and the first pieces in place. Player turns. Implementing manual ship movement, the interaction of moves with the compass and wind, ship movement transitions.
  • Phase 2 (Resources, Goods, Building, Trade Contracts, Scoring): Discovering resource pieces on islands, transporting goods, building new ships, delivering goods for contracts, being rewarded with points for these actions plus all the dashboard and commentary to communicate the game progress.
  • Phase 3 (Conflicts and pirate ships): Pirate ships chasing down cargo, sea battle action, safe harbours with protection from forts, ships limping back for repair.

As a quick comparison here's a recent screenshot following the latest update:


Screen Shot 2018-07-19 at 18.33.50.png

And here's a gif from when phase 1 was completed, back on March 27:


phase 1 complete.gif

All very different!


The last Archipelago update saw the introduction of scrolls with each new moon to give the game more structure, as well as the implementation of a game ending once the time limit of eight moons has elapsed.

This update adds an alternative game ending based on a player completing contracts with all four islands. A search function has also been added to allow players to find specific pieces on the board.

In detail, the main features added are in this contribution are:

  • Contract delivery restriction: Each team is restricted to only one contract per island.
  • Contract completion marker: A mark is added to a harbour to show when a team has completed a contract with that island.
  • Alternative game ending: If a player completes contracts with each of the four islands then the game is over at the end of that turn.
  • Search function: When a player hovers over the pieces on the stock dashboard (left sidebar) all the pieces of that type are highlighted on the board by a white background.
  • Sidebar formatting / tidying: Scroll has been added to the sidebars and some icon sizes reduced to prevent overrun when the number of contracts and pieces increases.



For a full view of the current state of the game development see my github-hosted page.
https://miniature-tiger.github.io/archipelago/

Please note that the game is not yet complete - you can see current progress and test functionality but you will have to wait a little longer to play!

Background details of the project can be found at the end of this contribution post.


Repository

The repository for Archipelago can be found here:
https://github.com/miniature-tiger/archipelago


New Features covered by this Contribution

Contract delivery restriction: Each team is restricted to only one contract per island

To prevent a player simply repeating contract delivery with the nearest island to their base and resources, a restriction to one contract per island has been imposed for each player. Players will now have to work with the entire board to fulfil contracts and win the game.

The commentary shows a message if a player approaches a fort where that team already has a contract. Here the orange team is trying to deliver cloth to Narwhal island when they already have a closed coffee contract.


Screen Shot 2018-07-20 at 10.09.59.png
Screen Shot 2018-07-20 at 10.09.42.png

Orange team prevented from closing a second contract with the same island

The code changes for the above new feature can be found here:
https://github.com/miniature-tiger/archipelago/pull/82/files

The main changes were in contract.js:

  • checkDelivery method updated to determine whether a team already has a contract with that island.
  • checkDelivery method also changed to give different commentary depending on which delivery criteria are met / failed.

Contract completion marker

A mark is added to one of the island harbours to show when a team has completed a contract with that island. This should remind teams not to try to close more than one contract with a single island.

In the screenshot below three teams have completed contracts with the island. The markers are always placed in the harbour that reflects the positions of the team bases on the map, for ease of reference.


Screen Shot 2018-07-20 at 10.19.25.png

Three completed contract markers in harbours

The code changes for the above new feature can be found here:
https://github.com/miniature-tiger/archipelago/pull/83/files

The main changes were in board.js:

  • The closedRouteMark method was added which adds a mark (SVG) in the appropriate harbour to show the team has completed a contract with that island.

Alternative game ending

If a player completes contracts with each of the four islands then the game is over at the end of that turn (once all players have moved in that moon phase). The winner is the player with the most points at that point in the game, so not necessarily the player that completes the four contracts. Since a contract takes eight turns to complete, a player will not know at the point of contract delivery whether it will be sufficient to win the game. However it will almost always be in a player interest to carry out the contract delivery, since it adds points to their total.

A scroll appears once the game is complete. In this game green team completed the task and also had the most points to win the game.


Screen Shot 2018-07-18 at 14.21.16.png

Game Over! Go Green Team!

The code changes for the above new features can be found here:
https://github.com/miniature-tiger/archipelago/pull/84/files

The main changes were:

  • contracts.js: A method to count the number of closed contracts per team was added. This also captures the maximum number of closed contracts for any team, and that team's name. If the maximum number of closed contracts is 4 then this will result in the game ending.
  • gamemanagement.js: Changes to allow the game to end in different scenarios

Search function

As the game progresses, the map gets busy and pieces can be hard to find. With this feature, when a player hovers over the pieces on the stock dashboard (left sidebar) all the pieces of that type are highlighted on the board using a white background.


Screen Shot 2018-07-19 at 18.29.20.png

Can't find the wood for the trees?


Screen Shot 2018-07-19 at 18.30.02.png

Just hover.

The code changes for the above new features can be found here:
https://github.com/miniature-tiger/archipelago/pull/86/files

The main changes were:

  • board.js: A new method (highlightTiles) was added to draw the white background octagons behind pieces. A new method clearHighlightTiles clears the new board layer (and thus the highlighting) once the player mouses off the left sidebar.
  • dashboard.js: A new method hoverPieceOn checks which icon is being hovered over on the left sidebar (using mouseover combined with id of target).
  • main.js, movement.js, pirates.js: New board layer added and new event listeners added and removed within game logic.

Sidebar formatting / tidying

Scroll has been added to the sidebars and some icon sizes reduced to prevent overrun when the number of contracts and pieces increases.


Screen Shot 2018-07-20 at 10.41.24.png

The contracts now run behind the next turn button rather than overlapping it

The code changes for the above new features can be found here:
https://github.com/miniature-tiger/archipelago/pull/85/files


Proof of Work Carried Out

This is the full url to my github account:
https://github.com/miniature-tiger


That is all for this update. If you have any queries please drop them in the comments or contact me on discord.


Details of the Archipelago Project

What is the Project About?

Archipelago is a new project that I have been working on. The aim is to develop a seafaring and trading turn-based strategy game. Players will guide their ships around the islands, searching for goods to aid construction of ships and their bases, trading with the Kingdom settlements and avoiding hazards like pirates and whirlpools.

Technology Stack

The project is a browser based game:

  • Mechanics: Javascript
  • Visuals: HTML and CSS initially but now moved across to Canvas and SVG.

Roadmap

Development phases 1, 2 and 3 are now complete!
Work will now focus on phases 4, 5 and 6.

Phase 1 - Board and ship movement: COMPLETE
  • Board set up - COMPLETE
  • Basic ship creation: functionality and graphics - COMPLETE
  • Manual ship movement and board updating - COMPLETE
  • Basic compass creation: functionality and graphics - COMPLETE
  • Turn based activity of ship movement - COMPLETE
  • Logic of length of longer moves around obstacles - COMPLETE
  • Chaining together transitions to allow graphics of longer moves - COMPLETE
  • Separation of board layers (Canvas base layer, Canvas activation layer overlay, SVG piece overlays) - COMPLETE
Phase 2 - Resources, Goods, Building and Trade Contracts

Resources

  • Add Resource tiles (forest, ironworks, flax, gold etc) - COMPLETE
  • Discovery of resource tiles - COMPLETE
  • Claiming of resource tiles - COMPLETE
  • Dashboard of player pieces - COMPLETE

Goods

  • Creation of new goods each turn - COMPLETE
  • Loading, unloading and transportation of goods - COMPLETE
  • Dashboard of goods pieces - COMPLETE
  • Goods icons - COMPLETE
  • Variable quantity of goods to be loaded / unloaded - COMPLETE

Contracts for delivery:

  • Semi-random (equitable) generation of trade delivery contracts - COMPLETE
  • Creation of trade settlements - COMPLETE
  • Dashboard for contracts - COMPLETE
  • Mechanics for contract sign-up - COMPLETE
  • Mechanics for contract delivery - COMPLETE
  • Island naming: for describing location of trading settlements - COMPLETE
  • Graphics of trade routes - COMPLETE
  • Continuance of contracts over time - COMPLETE
  • Breaking of contracts due to interference - COMPLETE
  • Re-work resource and contract surrounds to prevent overrun - COMPLETE
  • Only allow one contract to be made with each island - COMPLETE

Building

  • New ship designs - Catamaran, warship, cargo ship - COMPLETE
  • Definition of goods requirements to build each ship and ship ability specifications - COMPLETE
  • Ability to construct new ships - COMPLETE

Scoring and game structure:

  • Work out scoring mechanism (linked to contracts) - COMPLETE
  • Add score dashboard - COMPLETE
  • Breaking of game into stages - COMPLETE
  • Elimination of players as time passes - COMPLETE
  • Game ending - time limit of eight moons and completing contracts with all four islands - COMPLETE
Phase 3 - Conflicts

Pirates

  • Add pirate ships - COMPLETE
  • Automate pirate ship movements (basic movement with wind and search for cargo ships) - COMPLETE
  • Search - telescope range of 5 tiles for stronger search for ships - COMPLETE
  • Separate ship types for teams and whether all ships can defend themselves - COMPLETE

Forts

  • Add fort icons - COMPLETE
  • Create safe harbour from pirate ships - COMPLETE

Conflicts

  • Attack - Develop conflict method between ships - COMPLETE
  • Stealing of cargo - COMPLETE
  • Limping back to harbour - COMPLETE
  • Ship repair - COMPLETE
Phase 4 - One player version development
  • Artificial Intelligence levels for computer players
Phase 5 - Game Management and Settings

Settings

  • Settings pop up box created - COMPLETE
  • Options added - In progress - game speed added, developer tools added
  • Local options (player name etc)
  • Game saving and replay
Phase 6 - Rules, roll-out, documentation, testing etc
Phase 7 - Additional game features
  • Develop central market allowing players without resources to trade and fulfill contracts
  • Whirlpools

Contact / Contribute

You can get in touch with me on discord if you would like to contribute.

You can find the current state of the game here:
https://miniature-tiger.github.io/archipelago/

The repository for the project is here:
https://github.com/miniature-tiger/archipelago

Have fun!

Sort:  

Thanks for the contribution, @miniature-tiger! Some really amazing work once again! Seeing the first GIF of what it looked like on March 27 really puts how far the game has come along into perspective. Congratulations on completing phase 2 and phase 3 - I'm already looking forward to seeing you complete the other phases as well!

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thanks Amos!

Yes, it was funny to look at the old version and see how different it was. It's nice to have all the progress documented.

The one player game with computer opponents should be a nice challenge once I've done a bit of tidying up. A set of instructions is the main request I get so I'll be putting something together on that too!

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 11 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 12 SBD worth and should receive 158 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Hey @miniature-tiger
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 63815.31
ETH 3124.40
USDT 1.00
SBD 3.99