Machine Battle
https://www.youtube.com/playlist?list=PLlwvRbWsWmGUtEd47nyo0MUZJVJqvd4Iv
NOTE: For web play, on some hardware need to reduce the unit count on each team for game play to be smooth (such as 3 for each team).
GitHub Source Code Location:
(MIT License)
https://github.com/danilko/topdown-2d-multiplayer
English Section
Background
A small top-down shooter where each player can group with each other to combat against other teams.
This is based on Godot 3.x and C# Implementation
This is come up as a small personal side game project to try to allow strategy (resource allocations/capture base) with top - down shooter, but also allow simple brute - force play skill (destroy all enemies etc).
The reason for top - down is due to myself has 3D motion sickness so want to design 2D game that can enjoy above elements.
This is a very small in - progress personal project, but thought to put on itch.io to see if there are users interest to collect some feedback (thanks)
There is no commitment/support for this software and is provide as is.
GitHub Source Code Location:
(MIT License)
https://github.com/danilko/topdown-2d-multiplayer
Control (Basic Play)
===========================
Single User/Server
Execute the game depend on environment -> New Game -> Click Create -> On player menu, if need to change player name, please do so -> Confirm
Note, the current map limit to ALPHA/BETTER for Team selection only (other teams are set to be out of games in this map)
Once in the game, waiting for the Orange "WAITING PERIOD" becomes Green "GAME PERIOD", then can start fire
Multiplayer User Join Existing Game
Execute the game depend on environment -> Join Game -> Enter IP of server ->On player menu, if need to change player name, please do so -> Confirm
Note, the current map limit to ALPHA/BETTER for Team selection only (other teams are set to be out of games in this map)
Once in the game, waiting for the Orange "WAITING PERIOD" becomes Green "GAME PERIOD", then can start fire
Input
- W/S/A/D -> Forward/Backward/Leftward/Rightward
- Left Mouse Click /Right Mouse Click/Middle Mouse Click -> Left Weapon Fire/Right Weapon Fire/Remote Weapon Fire
- 1/2/3 -> Left Weapon Change (1 key can map to one weapon if equip)
- 4/5/6 -> Right Weapon Change (1 key can map to one weapon if equip)
- R -> Reload (though not necessary, as well automatically refile if reaches to 0, but it will allow player to refill in advance instead of refill during battle)
- Q - Previous Target (when auto target select is on)
- E - Next Target (when auto target select is on)
- F - Enable/Disable Auto Target Select
- Mouse Middle Wheel Scroll Up - Zoom In
- Mouse Middle Wheel Scroll Up - Zoom Out
Machine initial status:
- Left Weapon equip with static rate light beam rifle
- Right Weapon equip with shield (note shield will be more reliable during stop)
Minimap
- Angle in minimap represents machine
- Circle in minimap represents base
Default team assigned to player (single player/master) (if not change during setup), friend machines/bases will be color RED
Control (Advanced Play)
===========================
Team Units
Each team is assigned fixed amounts of "Units" on start of game. The units will be used for team to spawn up additional machine on each team (both new spawn and re-spawn). This "Unit" also allow each team machine to purchase additional weapons/items.
Machine Spawn/Re-spawn Logic
If a team's unit is used up and team cannot allocate more machine while no more machine in battlefield, this team is considered as lose
Base is also an important requirement in spawn/re-spawn machine unit.
Team Base
If a machine enters bases of another team, after the capture progress bar complete, then it is possible to capture the bases. But it is last come last serve, so another team certainly can capture it backs by having more machines continue to reach this base to disrupt the capture progress or re-capture back the base.
Spawn machine require the team to have enough units + one base at least. If there is no base, team will not be allowed to generate more machine even with available units.
So one winning condition is to capture all bases as a way to eliminate spawn of other teams.
Inventory System
B -> Trigger Assembly/Inventory/Store
Store -> Allow machine to
- Purchase items
Inventory -> Allow machine to:
- Use item (for now only repair unit)
- Drop item (if that item is not equip, for other agents etc, but enemy can also pick up)
- Sell item (if that item is not in used)
- Important: when machine destroy, all of machines' items in inventory (unless that is drop out) will be destroyed
Assembly -> Allow machine to
- Equip weapon into empty weapon slot (note cannot equip an item that is already used by another slot)
- Unequipped weapons for each weapon slot
- Destroy all units from other teams (each team can be tweak to output different amounts of units + initial bases) base on team points
- Capture all bases (so other team cannot spawn new unit)
- Time is up (it is a tie if there are more than one team with units on the field during that time)
Background Game Story
Following story is a fictional one and in no relationship tie with event or property/company/people in real world
Though it is not build into game yet, and not all functions are there such as single player campaign mode.
But following are background story thought:
Bright/Simple Side:
Students of an academy is building machines (agents) with different technology to challenge against other teams from other academies in a tournament. Player will build and/or utilize strategy to win each battles and try to move to grand final round.
Darker Side:
With another new era of cold war, a company (SYC) rises to dominate in technologies (especially warfare technology). It utilize its subsidies to persuade countries through lobby/other means to use subsidies as a replacement for existing military force. This allows enormous business success to SYC as no matter the outcome of the battle, it gains all revenues and also control the political means of the battlefield.
To continue its success business model, it uses its business dominance to suppress oppositions as well as build future edges in early process. One area is human resources in warfare (technologies/combats/strategy etc) through education restructure (institution focus on such area)/tournaments to hunt down possible candidates for its continuous dominance in next decade to come.
Known Problem
- In some system tests, after a game starts "New Game" and after the game ended, the game will not allow player to create more "New Game" as the network server is not fully stop. Player will need to force exit the game and start a game to create a "New Game"
- In multi-player, if chose more bots then default (5 concurrent), or more players join, there will be lag due to network packets depend on network in local network.
- Rest/latest issues can be found in
https://github.com/danilko/topdown-2d-multiplayer/issues
Support of the Project
As state above, this project is a self-project, and will not provide a support and deadline/commitment, so do not wish to collect any donation (if there is any).
The project will not be possible without following, so if need to support, please consider support following
Godot Engine: https://godotengine.org/
Kenny Assets: https://www.kenney.nl/assets
Or if really need to support for other means, please feel free to support below charity
繁體中文 (TW)
背景
一個小型top down shooter 遊戲
基於 Godot 3.2 遊戲引擎與 C#
這是一個人設計小型遊戲案子,希望可讓玩家以戰略來挑戰, 或以技術來挑戰
選擇設計 top down shooter 是應為本身有糟糕的3D motion sickness, 所以希望設計一款遊戲有射擊, 戰略, 速度等風格, 最後選了 top down shooter風格.
這個程式提供爲程式現在狀態, 沒有支援也不知哪天會更新 (There is no commitment/support for this software and is provide as is.)
GitHub 原始碼 :
(MIT License)
https://github.com/danilko/topdown-2d-multiplayer
控制 (簡單玩法)
===========================
單機/伺服啟動
啟動遊戲 -> New Game -> 按 Create (接受預設值) -> 按 Confirm (接受預設值)
請注意如果要改變隊伍 (Current Team),, 目前測試地圖只能支援 Alpha 跟 Beta 隊伍, 其他隊伍將無法加入戰局
在遊戲時間從 WAITING PERIOD (橘色) 轉為 GAME PERIOD (緑色) 即可開始射擊.
加入已啟動伺服
啟動遊戲 -> Join Game -> 打入伺服 IP -> 按 Join (接受預設值) -> 按 Confirm (接受預設值)
請注意如果要改變隊伍 (Current Team), 目前測試地圖只能支援 Alpha 跟 Beta 隊伍, 其他隊伍將無法加入戰局
在遊戲時間從 WAITING PERIOD (橘色) 轉為 GAME PERIOD (緑色) 即可開始射擊. 如果加入後戰局已開始 (爲GAME PERIOD (緑色) ) 即可開始射擊.
控制輸入
- W/S/A/D -> 前/後/左/右
- 左滑鼠鍵/右滑鼠鍵 -> 左武器射擊/右武器射擊 (左右以角色朝正上方時爲準)
- 1/2/3 -> 左武器轉換 (1/2/3各可裝備一種武器)
- 4/5/6 -> 右武器轉換 (1/2/3各可裝備一種武器)
- R -> 補彈 (但是也可以不用, 彈藥 0 時會自動補充, 這只是讓玩家可以在遇到敵人之前先提前補彈)
每一部機械初始值爲:
- 左邊基本步槍
- 右邊盾牌 (注意的是盾牌在行走時是效用會打折扣)
小地圖
箭頭爲機械, 圓圈爲隊伍站點
預設值爲藍色爲我方
控制 (複雜玩法)
===========================
隊伍點數 ( Team Unit)
一個隊伍站點在遊戲開始時會擁有初始 Unit 點數. 機械生成需要足夠的隊伍點數.
機械生成與重生邏輯
當一個隊伍:
在戰場上沒有機械 並也 無法建成新機械 (不管是因為沒有隊伍站點或點數)
將會判定爲輸家.
隊伍站點 (Team Base)
在敵方隊伍站點待上會有一個讀取線, 如果完成將搶占敵方生成站點.但敵方也可以搶攻回來.
機械建成需要最少一個隊伍站點與足夠的Unit 點數. 即使能有額度沒有隊伍站點也無法機械建成.
這個測試地圖已經把 3/4 化爲我方生成點 (指如果用預設隊伍 Alpha)
其中一個贏的方法爲先搶下所有隊伍站點以斷敵方建成新機械
倉庫系統
B -> 啟動 組裝/倉庫/商店
商店 (Store)
- 可用隊伍點數購買武器與商品
(請注意這個是用隊伍點數,將會影響有多少次機械建成)
倉庫 (Inventory)
可使用/賣出/丟棄
- 使用物品
- 丟棄物品 (假如該物品沒裝備)
- 賣出物品 (假如該物品沒裝備)
- 重要告示: 當一部機械被破壞時, 該機械所有物品將一起被銷毀 (出非在之前丟棄或賣出物品).
組裝 (Assembly)
- 裝備武器到武器欄位 (該武器必須沒被其他武器欄位佔用)
- 移除武器欄位的武器
遊戲結束條件
- 任何一方隊伍機械全數擊毀
- 全部隊伍站點被一方隊伍攻下(防止其他方機械建成), 並掃蕩所有剩下的敵方機械
- 遊戲時間結束, 如果有超過一支隊伍的機械還在戰場上活動, 就將判斷爲平局
背景故事
以下爲虛構故事跟真實世界人物物品公司沒任何連結如有雷同純爲巧合
表面上比較陽光的故事:
某一所學校的學生在學校機械戰鬥比賽挑戰其他學校參賽者以最後贏得冠軍為目標.
較黑暗的故事:
在一個新冷戰時期的時代, 一家公司 (SYC)快速壯大. 並用自身優勢使個國發動無人戰爭. 但是戰中用的公司與耗材全部其實都是SYC檯面下分支, 使其更加壯大.
SYC 爲保持自身優勢並在多領域打擊反對方. 其中一項爲重組多國教育體系以專注於戰爭與技術研發, 並舉辦賽事以使旗下教育體系對彼此抗戰訓練尖端人才,技術,另外展現軍事與科技以恐赫對手.
已知問題
- 在伺服模式或單機模式下, 在用 "New Game" 啟動一場遊戲之後可能不能用 "New Game" 在啟動一場新遊戲. 必須要關掉遊戲 (Exit), 重新在開啟遊戲
- 在多人網路對戰時, 如果Concurrent Connection 設定超過預設值 5, 連結端的客戶端將會非常卡
- 其他問題與最新問題可看
https://github.com/danilko/topdown-2d-multiplayer/issues
支持
這個也是一個個人型的小遊戲如果有人喜歡那就好了. 因為也沒有支援不知哪天會更新所以覺的收 Donation 不太好.
如果真的想要支持請考慮支持以下一些開源方案, 沒有這些開源方案可能就沒有這個方案,
Godot Engine: https://godotengine.org/
Kenny Assets: https://www.kenney.nl/assets
假如想支持其他方案, 也可考慮以下或其他公益團體
Status | Prototype |
Platforms | HTML5, Windows, Linux |
Author | danil-ko |
Genre | Shooter, Action |
Tags | 2D, Godot, godot-2d, Local multiplayer, Multiplayer, Top-Down, Top down shooter |
Multiplayer | Local multiplayer |
Player count | Singleplayer |
Download
Development log
- v0.15-alpha - [Godot] "Machine Battle" Game Dev Log 07/24/2022 - Implement Remot...Jul 05, 2022
- v0.14-alpha - [Godot] "Machine Battle" Game Dev Log 12/26/2021- Improve AI path...Dec 26, 2021
- v0.11-alpha - [Godot] "Machine Battle" Game Dev Log 12/12/2021- Queue logic for...Dec 12, 2021
- v0.10-alpha - [Godot] "Machine Battle" Game Dev Log 09/12/2021- UI/flow update +...Sep 13, 2021
- v0.09-alpha - [Godot] "Machine Battle" Game DevLog 08/28/2021: Updated AI variet...Aug 29, 2021
- v0.08-alpha - Multi - Tunnel Missile Launcher/Breakable ShieldJul 18, 2021
- v0.07-alpha UpdateJun 03, 2021
- v0.06-alpha UpdateMar 14, 2021
Leave a comment
Log in with itch.io to leave a comment.