GUI: World – the main screen
World
Notification of world news
Notification of recent combat results
New Mailbox Messages (list first 5)
My ships – sort by: departure city/place, destination & ETA (or docked), curent storage / total, … (click on a ship to go to ships screen with that ship in focus)
My buildings – sort by: city, type, (production) current production / max possible production, (warehouse) current storage / total (click to go to city screen where building is located)
Cities
Mailbox*
Ships
Auction
High Seas“Some quote about sea travel, trading, history, etc” ~ Joe Schmoe
(changes daily)
Mouse over cities to see names and some statsClick on to go to that city screen. Ship at city: drop down for go to city screen, or give ship orders to sail.
Ocean regions – mouse over to see names and statsClick on to go to ocean region page
Click on username to go to Account page
Oceans
* = unread mail
s
s
“s” = one of player’s ships. (replace with ship graphics.) Click on ship: drop down menu. 1. go to ships page with that ship in focus 2. set new destination (if more than one ship near click point, list all options for all ships near click point). Option to adjust destination by picking waypoints through different ocean regions??? (avoid high piracy areas, for instance)
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
Path finding – either implement simple pathfinding or pre-define the paths between cities … this would get pretty tedious. (X cities = something like X! paths – not quite that many, but a lot….)Idea: “hexagonize” the world, designate each as land or sea. Start out with straight line between cities, then adjust if land in the way.
s
GUI: Ocean regions screen
High Seas Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
Tile-ize or hexagon-ize the region maps? To make ship position easier to define and track.
Would probably want realistic ship speeds – if updates happen once every 10 minutes, then figure out how far ship would travel. Each ship calculates where to “be” at next update.
List of recent combat results in this region (what ship won, what ship lost), along with some stats on combat activity over the last game-year.
List of your ships in this ocean region
The Caribbean Sea
Mouse over: “Atlantic Seaboard” – click to go to this ocean region screen.
Mouse over: “North Pacific Ocean” – click to go to this ocean region screen.
s
GUI: Cargo Module
High Seas Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
In warehous
eIn city Buy Sell
Bar Iron 0 352 5 3
Bullets 0 954 2 1
Paper 0 13 200 150
Ink 0 4 500 66
Chocolate 0 445 42 30
Medicine 0 75 59 51
Sausages 40 881 30 29
Flour 0 145 20 15
Cloth 0 1 1050 1000
Hats 0 88 65 60
Guns 0 0 -- 2500
Books 0 0 -- 1853
Cookies 30 4 854 743
Suits 0 0 -- 2400
Basic Manufactured
151050Max
Some variation of this needs to be in:Ship screen (at sea)Ship screen (docked)City screen (if warehouse present)
Would be nice to have just one main module that works for all, or with slight modification.
GUI: City screen
High Seas Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
In warehous
eIn city Buy Sell
Bar Iron 0 352 5 3
Bullets 0 954 2 1
Paper 0 13 200 150
Ink 0 4 500 66
Chocolate 0 445 42 30
Medicine 0 75 59 51
Sausages 40 881 30 29
Flour 0 145 20 15
Cloth 0 1 1050 1000
Hats 0 88 65 60
Guns 0 0 -- 2500
Books 0 0 -- 1853
Cookies 30 4 854 743
Suits 0 0 -- 2400
Basic Manufactured
151050Max
These are buttons
Buying and selling direct from warehouse – only if warehouse is in city.
GUI: Mailbox screen
High Seas
Messages from other players
Messages from the game – ie, tutorial information for new players, pirate/navy messages
Messages on auction results – items won or items sold
Messages on expedition results – artifacts found
Quests! “A mysterious letter from a stranger…” Triggers: gold level, visited certain cities, X total ships, Y total buildings, Z combat victories, combat failures, expeditions taken, … Objectives could be to transport X of good Y to city Z by date D, send an expedition to ____ by D, etc. Be creative though … like Space Rangers 2… no “random” or generic quests, but all kind of different.
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
GUI: Artifacts/Account page
High Seas
List of player’s artifacts, what ships/buildings they are equipped on
Unassigned artifacts – just sit here until assigned, or sold at auction.
Maybe some achievements could be “artifacts” – non-equippable, just for status
Could probably meld this with the “Account” page accessible by clicking on user name
(Should have a “Sailing Roster” page which lists all players on realm – can see their player page – drool over their Artifacts, buildings, ships, gold.)
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
Artifacts
GUI: Ships screen – at sea
High Seas<
Swifty>
ReliantEnterprise
Crew 10/10 | Morale 24/25 | Seaworthiness 85/100 | Cargo 99/100Sailing in the The Caribbean Sea
Bound for New Orleans (ETA 3 hr 20 min)
List of artifacts attached to this ship
List of awards / achievements this ship has been awarded (ie 5 combat victories, 10 cities visited, …)
Link to region screen
On board Throw overboard
Ore 0
Gunpowder 0
Timber 0
Dye 24
Sugar 0
Cocoa 0
Tea 0
Spice 0
Meat 5
Grain 0
Silk 0
Cotton 0
Furs 0Click on “Ships” button from any other page – takes player to most recently viewed ship
These are buttons
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
Link to city page Basic Manufactured
151050Max
World
Cities
Mailbox*
Ships
Auction
Oceans
GUI: Ships screen – on expedition
High Seas<
Swifty>
ReliantEnterprise
Crew 9/10 | Morale 13/25 | Seaworthiness 55/100 | Cargo 99/100On expedition in The Amazon | Set sail
List of artifacts attached to this ship
List of awards / achievements this ship has been awarded (ie 5 combat victories, 10 cities visited, …)
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
On board
Bar Iron 0
Bullets 0
Paper 0
Ink 0
Chocolate 0
Medicine 0
Sausages 40
Flour 0
Cloth 0
Hats 0
Guns 0
Books 0
Cookies 30
Suits 0
Basic Manufactured
World
Cities
Mailbox*
Ships
Auction
Oceans
Set sail: Links to world map, with ship selected and “where to?” ready
GUI: Ships screen – docked
High Seas<
Swifty>
ReliantEnterprise
Crew 9/10 | Morale 13/25 | Seaworthiness 55/100 | Cargo 99/100Docked at Singapore | Set sail
Rename Ship | Join pirates | Join navy
List of artifacts attached to this ship
List of awards / achievements this ship has been awarded (ie 5 combat victories, 10 cities visited, …)
Click on a good in cargo: drop down menu option to buy/sell, textbox for amount | max.
Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
Set sail: Links to world map, with ship selected and “where to?” ready
On board In city Buy Sell
Bar Iron 0 352 5 3
Bullets 0 954 2 1
Paper 0 13 200 150
Ink 0 4 500 66
Chocolate 0 445 42 30
Medicine 0 75 59 51
Sausages 40 881 30 29
Flour 0 145 20 15
Cloth 0 1 1050 1000
Hats 0 88 65 60
Guns 0 0 -- 2500
Books 0 0 -- 1853
Cookies 30 4 854 743
Suits 0 0 -- 2400
Basic Manufactured
151050Max
Visit Warehouse
Visit warehouse: “In city” -> “In warehouse”, “Buy” -> “Withdraw”, “Sell” -> “Deposit”. Link changes to “Visit Market”
These are buttons
World
Cities
Mailbox*
Ships
Auction
Oceans
Become navy or pirate – only in cities. “Become pirate” disabled if any of players ships are navy. Likewise for “become navy” if any are pirates. If all ships are just traders, both options are there.
GUI: Auction screen
High Seas Winter 1607 | User: yakinikuman | $2,534 | Forum | Help | Logout
World
Cities
Mailbox*
Ships
Auction
Oceans
World wide auction (don’t see need for city-by-city auctions…)
List of buildings and ships (and cities they are in)
Also artifacts that haven’t been “equipped” on a ship yet
Click on building/ship for more information – basically a “public” version of the selling player’s building or ship page.
Auctions – run like ebay: listing fee, set end date, minimum bid
Winning – get a mailbox message. If artifact, stays “attached” to player account until equipped or re-auctioned. If ship/building, immediately becomes part of player’s ships/buildings.
Tools Needed
Python 2.6
Nevow Athena 0.10.0 – built on top of Twisted. Client-server interface.
For Path planning tool: PIL 1.1.7 (Python imaging library)
World MapScreen
GMClient
GameServer
ClientInterface
City Screen
OceanScreen
ShipScreen
MailboxScreen
AuctionHouseScreen
AccountScreen
ExpeditionScreen
GameClient
GM ClientInterface
ServerInterface
Mailbox
Player
AuctionHouse
MailManager
AccountManager
World
Cargo
ArtifactOceanShipBuildingCityExpedition
Maybe embed expeditions in ship screen
Warehouse
Lookup tablefor ship type, base stats
Lookup tablefor artifact type, color, stats
NevowAthena
Browser
Server
All Browser commands come through Player
Misc
Concern: if journeys between cities take multiple days, will new players be interested enough to keep playing? Maybe each player could start out with several ships?
Another concern: if ships are only bought/sold between players or by microtransaction, then player will create multiple accounts, sell ships cheap, then delete account
If only mechanism of ship transfer is through auctions, then player will have no guarantee of winning…maybe it’s ok. But end result could be too many ships on the market, brining down ship prices and ship demand
Fix: maybe restrict auctionhouse to players with net worth > $5000 or something.
No trading goods, buildings, ships, money directly from player to player … must go through auctionhouse
Server / Admin
Need to be able to run multiple “realms”
Could start them at different years?
Admin mode client
Add/delete/modify user accounts, ships, buildings
Add/delete/modify quests
Reports on prices, ships in transit, combat
add/remove cities
Change goods, change prices
Add/modify scheduled events
Change year or rate of time passage
Scheduled Events
Text file – each SlowU, the file is searched for the new date and any updates are executed
Makes it easy to add new events if needed
Events: emergence of new ship type; drastic (and likely to continue) population change due to war, famine, or disease; new resource (coal); closure of ports due to war/quarantine?
Timers
Start game in year 1600.
Slow timer event AKA turn timer
1 day = 1 game turn = 1 game season (Spring, Summer, Autumn, Winter)
Therefore, 4 days = 4 game turns = 1 game year
400 days ~= 14 months = 100 game years
Game downtime while server does SlowU events. (hopefully fast)
Fast timer event
Every 10 minutes, although this is not obvious to the player.
Therefore, slow timer event happens every 6*24 = 144 fast events (maybe fewer depending on how fast SlowU updates take)
SlowU
Take down server
Resolve any combat or user events in progress
Back up everything: end of day state
Ships: ratings, position, destination, cargo
Cities: number of goods, prices, population, supply/demand modifiers Population growth could be based partly on how well current demands
(goods) are being met
Perform update
Back up everything again: start of (next) day state
Set game timer to real time
Restart server
FastU
SlowU might just be a special case of FastU.
FastU update can start as soon as previous update finishes!
After update, make copy of world object
Update ship positions and combat results
Meanwhile, server is handling user requests: buy/sell goods, auctionhouse stuff, setting sail
Ships: user commands set sail – this just changes the ship’s state to “ready to sail”. Actually doesn’t embark until next FastU (might need to be 2 FastU’s b/c of copied world….)
Buildings
Different levels of buildings (can upgrade). Higher levels provide greater production rate.
Raw materials production buildings:
Small: 1 unit produced
Apprentice: 3
Journeyman: 6
Master: 10
Manufacturing buildings:
Small: 1 Ingred #1 + 1 Ingred #2 = 1 G
Apprentice: 2 Ingred #1 + 2 Ingred #2 = 3 G
Journeyman: 3 Ingred #1 + 3 Ingred #2 = 6 G
Master: 4 Ingred #1 + 4 Ingred #2 = 10 G
Make gold cost to upgrade building dependent on current value of good that building produces in the city. This will tend to make specialized cities – cheaper to build more production where there already is a lot.
Takes 1 SlowU to upgrade a building.
Can buy/sell in auction house, or buy with micro-transaction. Start out with buildings in each city owned by the gamemaster and on AH for credits.
Special building: warehouse. Can buy/sell goods like a ship can. (Need to be able to transfer goods between warehouse and own docked ship. Possibility: rent out warehouse space....)
Building options:
Buy ingredients at current price if none in Warehouse
Sell output goods immediately or store in Warehouse. (If no more room in Warehouse, goods will be sold immed, regardless)
Must have a ship currently docked at the city to build a warehouse there
Initial game state: make sure for the world as a whole, total production ~= total consumption. Standard_supply = initial world total / cities
Building Ingred #1
Ingred #2
Building:Good
Goods – types emerge over time – scheduled events??Intentionally left out: slaves, coffee, tobacco, rum
Foundry:Bar Iron
Armory:Guns
Basic (13+1)Each city produces X + rand(Y) each slow turn
Derived (10) Finished (4)
Gunpowder
Ore
Timber
Sugar
Cotton
Cocoa
Spice
Grain
Coal Doesn’t appear until 1800s.
Steamships use any coal in cargohold for massive speed. Revert
to wind power (ie much lower speed)when no coal in hold.
Furs
Magazine:Bullets
Paper mill:Paper
Weaver:Cloth
Pharmacy:Medicine
Chocolatier:Chocolate
Gristmill:Flour
Hatter:Hats
Printer:Books
Bakery:Cookies
Dye
Ink Factory:Ink
Tailor:Suits
Tea
Silk
Meat
Butcher:Sausages
Economic model: Supply/demand
Per Good
standard_supply: fixed for each good
standard_price: fixed for each good
demand_multiplier : affected by season, some randomness, historical events. SlowU update.
Prices updated each SlowU
demand = standard_supply / supply * demand_multiplier
If supply == 0, demand = standard_supply * demand_multiplier
sell_price = demand * standard_price
buy_price = X * buy_price
Tentatively set X = 1.5. Value of X could also fluctuate each slowU.
Consumption at each city (SlowU) uses up goods
Production at each city (SlowU) uses some goods and creates others (city owned buildings). Player owned buildings – goods used are those from player’s warehouse.
Each point of population uses Cpp unit (make adjustable) of each good every slowU
Cpp: consumption per population
Standard_supply and standard_price are global, per good
Demand_multiplier differs for each city for each good and flucuates.
PROBLEM: player could buy up all the goods in a city at a low price on one turn. Then the next turn, the price will be much higher b/c supply went to 0. The player then sells all the goods back and reaps big profits.
Ships
Ships: cog, junk, clipper, ... , steamer
Variations for pirates and variations for navy
Ship seaworthiness degrades over time. Affects speed and combat rating. Must pay to get repaired.
Ships and buildings – bought at auction house or through micro-transaction. Game master could inject new buildings or ships into the market via scheduled events (puts ships/buildings directly in auction house).
Putting ship up for auction – must have no cargo. ship remains docked at city
Combat
First time to 10,000 g – letters arrive in player's inbox simultaneously from pirate king and from navy admiral
Thereafter can assign any ship as navy or as pirates (can't have both navy ships and pirate ships at once however). Ship must have empty cargo hold to become navy or pirates … avoids cheating (could fill up cargo, become navy, and then get to destination without any change of being attacked, then become trader and sell)
Pirates patrol oceans and target traders
Navy patrol oceans and target pirates
Random chance combat will be entered
FastU: combat resolved; winner gets gold / goods
Bounty grows on pirates upon each successful pillage? Bounty could be mechanism for Navy payoff.
Navy salary – in addition to bounty. Flat fee paid per SlowU. Amount depends on ocean region (greater $$ for more dangerous regions)
Ship seaworthiness, # of crew, crew morale affect combat outcome
Ship loses in combat: Proceeds to nearest friendly city. Immune from further attack until city is reached. (Would need path-finding from point of defeat to nearest city?? Maybe easier to just proceed to final destination unmolested ………)
Navy ship: prefix “HMS”, Pirate ship: prefix “PS”? Or maybe just different colors – on map and on ship information screen (font) to clearly ID one way or another.
Combat 2
Ship stats
Combat – like NP weapons skill
Crew (size) – like HP / number of ships in NP
Or maybe Crew and Hull (strength), the product or sum of which is like NP # of ships….
Combat outcome calculated exactly like NP
Speed – how far ships travels in one FastU
Detection
Navy = chance to find pirates
Pirates = chance to find traders and avoid navy
Traders = chance to avoid pirates
Combat Entry
For each region
For each Navy ship, ordered from high to low Detection skill
Calculate combat entry odds, then random draw to determine if combat takes place (ie if pirate is found and engaged)
If combat, fight pirate in region with lowest Detection skill (he couldn’t avoid the Navy ship)
For each pirate not beaten after Navy takes turn
Same process as above, but the pirates are fighting traders
Incentives, etc
Navy: Cannot carry cargo. Each pirate ship has a $$ bounty based on that pirate’s pillaging
Pirates: take traders cargo. Pirates cannot buy goods, but they can sell goods. If pirate beats trader, takes all cargo it can carry; rest is dumped overboard. If pirate’s cargo full, keep most valuable cargo as determined by prices of port last visited by pirate.
Pirates, navy, and traders should be able to see ALL ships in any region, and their destinations. Then traders can see where to avoid (pirate heavy) or safe areas (navy heavy), pirates/navy can see where juicy targets are.
Options for navy/pirate:
Patrol region until _______ (time limit, ship wear and tear, cargo X% full …), then return to starting port
Chase ship _____ (pick from global list of ships) until ____ (date, destination reached). Navy uses this to defend traders (either own or contract out to other players via PM, forum, auctionhouse), pirate uses this to single out juicy trader target
Trader incentive: way to make the most $$; expeditions
Separate quest lines for pirates / navy
Players will probably have traders + pirates or traders + navy and not exclusively traders.
Artifacts• Assigned to a ship (or building); affect stats of that ship only.
– Permanently melded to that ship – “Bind on Equip”
– Only one artifact of each type per ship. Can put a new one on, but old is destroyed.
• Random chance to find on expeditions
• Can buy/sell on player market or buy with micro-trans (up to a certain level)
• Could have different “drop rate” per type for each expedition site … and it could change with time. Ie - “Go to the Amazon now, good drop rates for muskets”
Level
Type Boosts Broken Tarnished Sturdy Shiny Ancient Exquisite
Spyglass detection
Sextant
Compass Expedition success +0.1% +0.2% +0.3% +0.5% +0.7% +1.0%
Cutlass combat
Musket Combat
cannon combat
Sail Ship speed
strongbox Cargo space +5 +10 +20 +50 +100 +200
Poker table Crew morale
Grappling hook combat
Crow’s nest detection
Talking parrot
Whiskey barrel Crew capacity
Good production (attach to buildings)
Ship wear and tear
Expedition Ideas
First cut: just have a random chance every FastU that an Artifact will be found. Time spent exploring damages ship and crew morale, strength … limits time ship can explore before heading back to city to re-supply.
Varies per Expedition locale: rate of ship damage (higher to reflect more “difficult” expeditions), chance to find what type of artifact (higher chances to find better artifacts at more difficult expeditions.)
Idea 1 – collaborative fiction. Choose-your-own adventure, players can add a branch to the story. Amazon-type votes (“Like”, “Don’t Like”) used to refine story (give random # of choices). Strength of artifact won/found varies with how the voting goes
Idea 2 – buried treasure, grid map of area and choose where to explore/dig.
Design Decisions
Cannot change ship’s course once ship has set sail. If players could change course, you need to implement path finding, and players would want more finely detailed zoomable maps
Only change in course is due to combat defeat. Defeated ship is immune from further attack and will proceed to the nearest port.
Scrapped: being able to “see” ships within your ships’ visual range, but what’s the point if you can’t do anything about it (ie take evasive maneuvers)
Then people would want auto-evasive maneuvers, etc. …
Scrapped: using Google Maps, but there are issues with a for-pay site, and with microtransactions whether HS would qualify or not is unknown.
Scrapped: changing weather in ocean regions that would affect ship speed, combat entry odds, and combat. Seems unnecessary at this point.
Scrapped: any taxes (on buying/selling goods, or property taxes on buildings) – taxes aren’t fun. Can get same money-sucking-out-of-game-world effect with ship repairs.
Fun factor – why will people play?
Competition: trying to get the most $, trying to be most powerful pirate / navy
Publish lists: Top 100 Richest players, Most Notorious Pirates, Most Valiant Navy
Achievements/ “medals” – got $X, visited Y ports/regions, won Z combats ….
Problem with this motivation when player population is small … no one to compete with….
Social aspect
Be sure to add forums, PM
Customization
“paint” for ships
Different colors of artifacts: “Red/Blue/Green Tarnished Compass”, all have the same stats. But if you equip X Red artifacts, you get some kind of a bonus
Could have an RPG element, with player stats, portrait, age; can marry and have kids; when player character ages he dies and oldest son takes his place; can view family tree and each generation’s achievements ….
Exploration
Expeditions
Quests – historical and educational, but also with a sense of humor
Must be easy to get started and easy to log in for 10 minutes and do business once-a-day! Need clean UI, distinctive art style… Browser based game truism: “players need a positive reaction in the first 30 seconds”
Tutorial
Maybe have a very small map, separate from the rest of the game, where players start – complete a “prologue” that introduces the basic trading concepts. No combat, just trading. Maybe something like 3 cities on a lake somewhere. Accelerate passage of time when the player sets a destination. Quests: buy X low in city 1, sell X high in city 2; buy Y low in city 2, sell Y high in city 3
Storyline hook – orphan working for trader uncle, he sends you to the lake to do business. Then you join him on your first big journey, to some city (in the starter area). Then he disappears – you are on your own. (Finding out what happened to him could be quest subject)
After tutorial, maybe all players should start in the same city in a relatively safe region where there are a lot of cities a short distance away – ie Mediterranean or Carribean. Then the wait time for travel won’t be so bad.
Path Planning
Use high res map of world. Mark all water white, all land black
Get coordinates of each city
For each city i
For each city j
Use A* or similar algorithm to find series of waypoints that will go from i to j without treading on any black pixels
Save waypoints as the route between i and j
Above algorithm is all offline. In game, just access the database of waypoint routes.
To do
List of cities: world positions, sailing distances between them, goods production, population, base/starting demand multipliers
Ship types and stats; prices
(global) standard supply and standard price for each good
Top Related