https://github.com/sergeychelak/tankodrome
A fast-paced top-down tank shooter for iOS and macOS, built with SpriteKit
https://github.com/sergeychelak/tankodrome
apple-platforms game game-ai game-development gamedev indie-game ios macos native-games procedural-content-generation procedural-generation spritekit swift swiftui top-down-shooter wave-function-collapse wavefunctioncollapse
Last synced: 3 months ago
JSON representation
A fast-paced top-down tank shooter for iOS and macOS, built with SpriteKit
- Host: GitHub
- URL: https://github.com/sergeychelak/tankodrome
- Owner: SergeyChelak
- Created: 2025-02-23T19:56:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-25T13:32:10.000Z (about 1 year ago)
- Last Synced: 2025-07-03T02:02:31.070Z (about 1 year ago)
- Topics: apple-platforms, game, game-ai, game-development, gamedev, indie-game, ios, macos, native-games, procedural-content-generation, procedural-generation, spritekit, swift, swiftui, top-down-shooter, wave-function-collapse, wavefunctioncollapse
- Language: Swift
- Homepage:
- Size: 9.98 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🛡️ Top-Down Tank Game
A top-down tank game inspired by *Battle City* (NES), built natively for Apple platforms using Swift, SpriteKit, and SwiftUI.
> Designed as a research project to explore game development on Apple platforms with native tools and frameworks — and to share the journey with other developers.
## Features
- **Written in Swift** with **SpriteKit** for rendering and **SwiftUI** for UI overlays.
- **Supports macOS and iOS** — tvOS support is under consideration.
- **Component-based gameplay architecture** — a lightweight micro-engine wraps `SKScene`, resembling an ECS (Entity-Component-System) approach.
- **Procedurally generated levels** powered by the **Wave Function Collapse** algorithm.
- Gameplay and aesthetics are **inspired by the classic Battle City** game for the NES.
## Purpose
This is a research and exploration project aimed at:
- Understanding the feasibility and limitations of native game development tools on Apple platforms.
- Experimenting with gameplay architecture patterns and procedural generation.
- Sharing experiences, lessons learned, and code with fellow developers and game enthusiasts.
## Roadmap / Future Plans
- Expand the in-game menu with **options and settings** (e.g., sound, controls, difficulty).
- Upgrade or replace in-game art to improve visual appeal.
- Enhance NPC behavior and AI logic.
- Add environmental and visual decorations to enrich game scenes.
- Introduce different types of NPCs with varied behavior.
- Expand the set of level building blocks for greater gameplay variety.
- ~~Add support for **gamepad controllers** across all platforms.~~
## Video
[Youtube](https://youtu.be/XTulq5Bihak)
## Development Configuration
- Xcode 15 or later
- macOS 15 or iOS 18
- Swift 5.9
## Procedural Generation
Levels in this game are procedurally generated using the **Wave Function Collapse (WFC)** algorithm.
To better understand and refine this technique, a separate application was developed as a dedicated research project:
🔗 **[Wave Function Collapse](https://github.com/SergeyChelak/WaveFunctionCollapse)**
> A standalone macOS application that implements the WFC algorithm in Swift.
> It was created specifically as a research tool to support procedural level generation for this tank game.
This tool helped to experiment with rule sets, visualize constraints, and test the behavior of WFC outside of the game context, making it easier to iterate and improve the algorithm before integrating it into the gameplay system.
## Contributing
Pull requests, issue reports, and general feedback are very welcome! Whether you're interested in game architecture, procedural generation, or just love tanks — feel free to jump in.