SerenaTaN5
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Uncharted Waters Onchain Game Design revision 1/29 @SerenaTaN5 ![image](https://hackmd.io/_uploads/ByF2u2iKa.png) ### Game Type: * MMORPG, Idle, Strategy, Simulation ### Design Principle: 1. **Enhancing Composability** - Mods Marketplace - Layer Composability 2. **Building Alliances in Social Gaming** - Maximizing the ability to form alliances - Having a tab displaying existing alliances 3. **Item Development: Stats, Values, and Levels** - The higher the skill level, the lower the energy cost will be 4. **Automating Interactions with Blockchain Integration** - Idle game - How to achieve this with blockchain? - Use of a commit-and-reveal function 5. **Risk and Return Equalization** - The energy bar is refilled every 24 hours; all actions cost energy - Stake `xDAI` to claim ownership of an island. Unstake `xDAI` to stop playing the game. - The heavier the cargo you carry, the slower your movement speed will be --- ## Game Overview * Players need to stake coins (`xDAI`) to gain ownership of an island <img src="https://hackmd.io/_uploads/S1CTd2iK6.png" width=40% height=40%><img src="https://hackmd.io/_uploads/BJvR_2jKT.png" width=40% height=40%> * Players can engage in woodcutting, fishing, mining, etc., to accumulate resources for crafting and cooking. * Once they have equipped and crafted a ship, they can sail to other islands to engage in diplomatic activities (trade, combat, theft). * They need to build a defense system to protect their land and avoid attacks or theft by other players. If the island's hitpoints fall to zero, the loot can be claimed by others. * By establishing marketplaces, they can exchange resources with others to earn profits. --- ## Game Specification: Map and Resources Setup ## Overview The game world consists of an infinite big grid, where each cell represents a hexagonal tile. The map is primarily composed of water tiles, with a few islands scattered throughout. Each island is rich in resources that players can collect and use for various in-game activities. ## Map Generation ### Grid - The map is infinitely big. - Each cell in the grid is a hexagonal tile. ### Water - The default tile is a water tile, represented by the color blue. ### Islands - The map contains 15 islands in every 100 x 100 grids - Each initial island is generated using a random walk algorithm, ensuring that all tiles in an island are interconnected. - The minimum distance between any two island centers is 8 tiles. - Each island has exactly 19 tiles. - islands are expandable, tho each additional grid will resulting in more stakes. ## Resources ### Types of Resources 1. **Base Resources** * Wood - Stone - Cotton 2. **Advanced Resources** - Iron - Coal - Copper - Uranium ### Resource Distribution #### Base Resources - Each island contains 3 ``base resources`` - 4 of the 15 generated island contains additional 1 ``advanced resource`` - The distribution of base resources is randomized but follows these constraints: - ~~Each type of base resource must appear at least 2 times but no more than 3 times on each island.~~ #### Advanced Resources - Four islands will contain advanced resources. - ~~Each of these islands will contain exactly 2 tiles of the same advanced resource.~~ ### Tile Representation #### Water Tile - Represented by the color blue. - Contains no resources. #### Resource Tile - Represented by various colors depending on the resource it contains. <img src="https://hackmd.io/_uploads/BkbeFnjtp.png" width=50% height=50%> - Wood: Brown - Stone: Dark Grey - Cotton: Light Yellow - Iron: Light Grey - Coal: Black - Copper: Golden Brown - Uranium: Shiny Green #### Empty Grid - Represented by the color white. - Contains no resources. - Able to build in later stage ### Random Walk Algorithm * Used to generate islands. * Ensures that each island has exactly 19 tiles. * Ensures that all tiles in an island are interconnected. * If an island cannot be generated with the specified constraints, the algorithm will retry until it succeeds. <img src="https://hackmd.io/_uploads/HJ8fK3sFp.png" width=60% height=60%> --- ## Game Specification: Player Action - Each action causes `energy` - 1; - All successful action causes the specific skill`xp` + 1; - After accumulating enough `xp`, the skill specific `level` + 1, which resulting less energy cost - Energy bar will be refilled every 24 hrs **``Mining``**: all the mined resources go to players ``inventory``. `Mining` skill `xp + 1`.~~inventory is a table with name, item color, and amount, can be show and collapse when click button. The inventory will update.~~ - ~~when player select the grid by single left click, add a effect on the grid. once they press "m" on keyboard, the resources start to mine~~!![image](https://hackmd.io/_uploads/Hy07Y3iKT.png) **`Crafting/Smithing`**: players can craft items with existing receipts and suffcient resources in inventory, `crafting` skill `xp + 1`; * ship repairing (必须回城镇修复) **`Woodcutting`**: players can cut woods. Each action will make the `woodcutting` skill `xp + 1` **`Fishing`**: players can go fishing. Each action will make the `fishing` skill `xp + 1` **`Cooking`**: players can go fishing. Each action will make the `cooking `skill `xp + 1` cooked food are used to add `Hitpoints` ~~**`Thieving`**: player can steal things from other players. Successful thieving will make `thieving skill xp + 1`~~ **`Sailing`**: player can sail from one place to another with crafted ships. Sailing will make `sailing xp + 1` **`招募`**: 更高等级的水手,消耗的sailing能量越小 **`Building(later)`**: players can place buildings on their islands; buildings have different kinds - **`Military building`**: building will auto attack enemies, once the enemies enter a given range - **`House`**: growing population will need bigger housing unit over time - **`Storage building`**: store excessive equipments - **`Marketplace`**: allow players to buy and sell; 24 hrs open <!-- **walkthrough** In-game items can be traded with xDAI 1. 玩家pick一个土地 选择质押50个DAI 2. 质押DAI了之后,玩家就获得了土地 3. 玩家可以开采资源 - **采矿**,钓鱼,砍树 4. 以采矿的故事线举例, 采矿 -> 铜 -> 锻造青铜装备 采矿xp + 1; 铜 inventory + 1; 锻造 xp + 1 能量 - 2; 采矿xp 锻造xp 升级可以解锁更厉害的装备 5. 装备 -> ship; 装备 -> 城池 6. ship可以攻占城池 / 攻打舰队 7. 攻占城池可以获得城池产生的资源 / 攻打舰队可以获得之前质押的xDAI;xDAI的数量会累积在ship上 --> ---- <!-- process: 每个人出生stake 获得一个岛,岛会有资源,根据时间来收获 通过资源可以建造船 船和岛都有相应的防御和攻击力 每个人最多有5个船,岛无限量 战斗: 每个人可以派船去攻打别人的船或者岛,如果对方在战斗中没血了,那么成功 如果是成功的,那么获得这个岛或者船 如果船到达上限,那么直接获得船所对应的资源 战斗时,会根据装备,技能等来决定 每天有体力限制,针对wallet。越多船,消耗能量越多 待解决: 攻打完之后,剩下的船的hp,会自动回复么,还是需要通过其他获得进行加血 战斗中扣血的流程是怎么样的? 玩家之间,是否可以联盟攻打其他人 攻打别人时,只能一个船打一个船,还是可以5个船一起出动打对面任意的船只。 --> ## Gameplay and More Specs ### 水手 * 招募可以获得等级越高的水手,等级越高的水手航行消耗更少能量 * 每一搜船有水手数量的要求 * 水手航行需要消耗食物(钓鱼->烹饪 or 种植) * 水手缺少食物会死亡 * 如果食物耗尽,船失去拥有权,路人可以通过给船分配食物和水手claim拥有权 * 水手可以被交易 ### 锻造系统 ### 定制船体 中号船: ![Screenshot 2024-01-28 at 19.50.00 Medium](https://hackmd.io/_uploads/HkqeWs4c6.jpg) 小号船默认有3个货物仓库、2两个房间、1个船长室、两个大三角帆、空的船首、空的船尾 可以通过装备crafting,对船进行改造: * 增加货物仓库(储物空间增加) * 增加房间(水手数量增加) * 改造成厨房/锻造台 * 把大三角帆改为不同的横帆斜帆和上帆(增加船的推进力) * 在船首、船尾装备不同炮台(改变船的攻击力) * 在船尾装备装甲(改变船的防御力) #### 船的属性: ![Screenshot 2024-01-28 at 20.18.27 Medium](https://hackmd.io/_uploads/BkEVPoN9p.jpg) (与图片相比有所改动,简化了属性) 船有小号船、中号船、大号船;小号船的房间数量少、可以装备的武器少;反之亦然。 船有以下属性: * 耐久性/生命(每个船的使用寿命,可通过锻造修复) * 装载量 (装载重量越大,航行速度越慢) * 船员人数上限 * 船员人数下限 * 航行速度 (除了配备的风帆外,航行速度受到装载量、风向影响;如果船为舰队≥2,航行速度为舰队平均速度) * 攻击力 * 攻击间隔时间 * 防御力 #### 船的编排 * 当玩家拥有≥2数量的船后,可以自制船的顺序;可以编排的顺序 1 - 3 - 1; 2 - 1 - 1; 1 - 1 - 1 - 1 - 1; * 在战斗模式中,阵首的船会先收到攻击,阵尾的船最后收到攻击;在相同列的船会拼摊伤害。 ### 战斗系统 * 船的受攻击顺序:船的编排 * 船的攻击顺序:所有的船一起攻,每一条船的攻击间隔时间不同 * 受伤的船可以进行修复(锻造->回城修复) * 生命归零的船包括穿上的水手、装备、货物直接丢失 * 可以进行逃跑(舰队航行速度) * 允许多方协作:当有多方舰队在场,可以选择舰队攻击 ### 交易系统 * 在城镇港口设置amm pool * 可以开不同物品的amm pool * 在城镇港口设置order book * 自定义 buy / sell; * 通过游戏内货物交易 * 交易筹码可以是一方/双方城镇的token ### 游戏货币 * 每个城镇可以发行自己的token,可以自定义每股对应数量和equity(token对应税收产值 -> 矿物和食物;可以设置equity时效); * 24小时为结算周期,可以开船来城镇领取税收(生产raw资源) * token可作为贸易货币 * 当城镇被打败,城镇停止向原拥有者提供生产资源 ### 气候设定 风向 * 风向每天变化;风向影响航行速度 ### 城镇系统 #### 城镇的作用 * 城镇产生资源。城镇是玩家的出生地,玩家出生,就拥有所有权,城市有中心地,一旦中心地被攻破城市就被占领,城镇仓库洗劫一空, 原玩家失去城镇拥有权,从而不能产生更多的资源; * 城镇可以建立amm市场 * 城镇有储存空间 * 城镇可以建立安防系统 #### 城镇的维持 * 更高的action等级能采更高级的矿、铸造更高等级的装备、钓更高等级的鱼、招募更好的水手... * 更高等级的action需要城镇更多人口 * 城镇人口的增长需要充足的食物 (种植 or 钓鱼->烹饪)和时间 #### 城镇的攻占 * 舰队炮轰攻打城镇;首先收到攻击的是防守单位 - 城墙;其次是炮台大炮;再是城市中心 * 城市被洗劫之后人口减半(无法生产和原来同等的资源);残血装备可修复;没有生命的装备不可修复 #### 城镇的防守 * 玩家可以在城镇里放置防御装置和攻击装置 * 如果地方玩家选择攻打,攻击装置在一定范围攻击范围自动攻击 * 在白名单内的船只可以停泊在城镇内庇护 ### 门派系统 ### 能量系统 * 每次action要消耗能量 ### 游戏主体 * 一个钱包最多控制5艘船,但可以制造多余的船进行交易 * 每次action要消耗能量 * 一个玩家可以殖民多个城镇,一个玩家只能发行一种国债 * 当玩家歼灭一整支舰队可以获得该舰队所质押的token * 游戏玩家可以随时退出游戏通过提取质押的方式,需要3天时间提取时间,3天内的时间不能死亡;提取完毕后,该玩家的游戏内assets变灰,被freeze,不再流通。如果有国债,必须提前归还完毕。 ## Front end ### Graphic * 无法抹去死亡痕迹,所以死亡船只留下印记 ## Dev tools

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully