Skip to content

Combat top-down airplane game with fuel management, multiple weapons, multi-level, and adjustable difficulty. Made with Godot.

License

Notifications You must be signed in to change notification settings

ikostan/SkyLockAssault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,490 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Project Start Made with Godot Godot GDScript Itch.io CodeRabbit Pull Request Reviews CI/CD Latest Release Last Commit Downloads codecov Repo Size Closed Issues Open Issues Known Vulnerabilities All Contributors

A top-down online web browser game built with Godot 4.5

Sky Lock Assault

Combat airplane web game with fuel management, multiple weapons, multi-level, and adjustable difficulty.

This is a dedicated Godot v4.5 game dev project on Windows 10 64-bit OS. We'll be learning game dev here, starting with a simple main menu and expanding to core mechanics like player controls, enemy AI, and assaults in the sky. The repo is open-source at SkyLockAssault.

You can play this game on Itch.io

Project Overview

  • Godot Version: 4.5 stable (or compatible).
  • OS: Windows 10 64-bit.
  • Tools:
    • Docker Desktop v4.45 for local testing
    • GitHub Desktop v3.5 for repo management
    • PyCharm 2024.1.7 (Community Edition) for file editing
    • Windows PowerShell for running Docker commands
  • Supported Browsers: Chrome 90+, Firefox 88+, Edge 90+ (WebGL 2.0 required)
  • Known Limitations: Mobile touch controls are experimental; fullscreen may not persist on iOS Safari
  • Goal: Build a playable top-down shooter with web deployment in mind—export to HTML5/Web, test locally, deploy to itch.io.

Game Assets

Documentation

  1. Guide to Implementing Versioning
  2. Godot v4.5 Docs
  3. Development Guide
  4. Local CI Pipeline for Godot Project using Docker
  5. Docker Local Test Server
  6. Setup Instructions
  7. Signing Setup for GitHub Desktop
  8. BOTS:

Roadmap

Here's a high-level plan for upcoming features. Contributions welcome!

  • v0.2: Completed Foundations - Project import, Docker local testing, basic input actions, top-down movement, main menu, quit handling for browser, HTML5 export and testing, GitHub Actions CI/CD to Itch.io (complete).
  • v0.3: Expansion - Add levels, weapons, player feedback integration.
  • v0.4: Post-MVP Refinements - Performance optimization, audio polish, bug fixes.
  • v0.5: Ongoing Development - Feedback gathering, minor updates, release tagging.
  • Future: Multiplayer elements, AI enemies, mobile export (post-launch based on community input).

Contributing

Pull requests welcome for mechanics like enemy AI, levels, or web optimizations! Fork the repo and submit your ideas. See CONTRIBUTING for guidelines (create if needed).

Player Feedback

We value your input to improve Sky Lock Assault! Share your thoughts via:

  • Itch.io Comments – Discuss gameplay, bugs, or suggestions directly on the game's page.

Security

For details on reporting vulnerabilities and our disclosure process, see SECURITY.md.


License

This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later) - see the LICENSE file for details.

Commercial use is allowed under GPLv3 terms, which require that any distributed derivatives or combined works remain open source and provide source code to users. For closed-source commercial alternatives without these GPL requirements, a separate license is available upon request.

Key Terms

  • Open Source: You can view, modify, and distribute the code freely, as long as derivatives remain under GPLv3.
  • Commercial Use: Allowed under GPLv3 (with source code obligations for distributions). Closed-source commercial use requires a separate license.
  • Contact: For custom licenses, trademark use (e.g., "Sky Lock Assault"), or inquiries, reach out via GitHub issues or X @EgorKostan.

🟡 Current Development Status

Milestone: UI & Input Improvements, Testing & Docs (Milestone 10)
Active Focus: Input remapping tests, Settings + UI sync, documentation updates.

Current features

  • Main menu scene with buttons (Start, Resume, Options, Quit).
  • Placeholder game level for future mechanics and game testing.
  • Options menu with log level settings, accessible from main and pause menus.
  • Pause menu with buttons (Main Menu, Options, Resume).
  • Player scene with CharacterBody2D, ShaderBody, CollisionShape, and FuelTimer.
  • Fade-in animations for main menu UI panels.
  • Fuel system including fuel level progress bar with dynamic color gradients (green to yellow to red/dark red) and low-fuel blinking warnings.
  • Basic weapon system.
  • Difficulty settings.
  • Game controls input remapping.
  • Fuel management (timer-based depletion scaled by speed, base drain, and difficulty; refuel not yet implemented).
  • Basic adjustable difficulty (affects fire rate, fuel depletion, and more).
  • Basic sound effects & background music.
  • Airplane Rotor Sound (Stereo SFX) + Rotor Animation, with reusable helpers and rotors stopping on zero fuel.
  • Audio Buses & Panning (L/R Split).
  • Options Menu: Rotors Volume Slider.
  • Multi-Thread support enabled.
  • Player movement refactor: Lateral-only motion with acceleration-based forward/back speed control, clamped between min/max speeds.
  • Speed system with progress bar, dynamic color changes (green normal, yellow caution, red/dark red danger based on thresholds), and low/over-speed blinking warnings.
  • Centralized fuel/speed tracking via dictionaries for gameplay and UI integration.

Features Roadmap

  • Completed (Merged via Recent PRs):

    • Fuel management with timer-based depletion scaled by speed/difficulty (PR #288).
    • Player movement refactor: Lateral-only controls with acceleration/deceleration, min/max speed clamping (PR #288).
    • Speed system with progress bar, dynamic color gradients (green normal, yellow caution, red/dark red danger), and low/over-speed blinking warnings (PR #275 and #288).
    • Rotor SFX/animation with volume sliders and zero-fuel stopping (prior PRs).
    • Refactor player movement integrations (e.g., speed-based fuel drain, UI sync) – Issue #169.
    • Add procedural random parallax background for speed-based scrolling – Issue #273.
    • Switch testing from GDUnit4 to GUT for better coverage – Issues #282, #283.
    • GitHub Wiki for documentation/learning resources – Issue #284.
    • Version tagging in CI/CD – Issue #285.
    • Dynamic speed bar color changes (partially merged in PR #275/#288, but full threshold logic ongoing) – Issue #286.
  • Planned (Milestone 9: Expansions and Polish):

    • Mobile exports (Android/iOS) with touch controls and optimizations – Issues #35, #41, #43.
    • Multiplayer (co-op/competitive) using Godot's High-Level Multiplayer API, with security/testing – Issues #34, #36, #42.
    • AI enemies with pathfinding (NavigationServer) and behavior trees – Issues #40, #44.
    • Refactor fuel/speed dictionaries to dedicated StatManager class – Issue #276.
    • Add signals for fuel, speed, and weapons in player.gd – Issues #278, #279, #280.
    • Convert hard-coded fuel elements to Godot Resources – Issue #281.
    • Multi-level progression with scenes – Issue #21.
    • Optimize performance (e.g., web-specific) – Issues #27, #37.
    • Asset management/polish, bug fixes, feedback guides – Issues #29, #31, #33, #38, #86, #90.
    • Audio enhancements (e.g., refactor duplicated SFX volume logic) – Issue #267.
    • Particle effects for explosions/weapons.

Track progress via Milestones.

Known Issues

  • Harmless console warning on desktop fullscreen (NotSupportedError for orientation lock—ignored as non-fatal; doesn't affect gameplay).
  • Placeholder level lacks mechanics—work in progress.
  • Report new issues on GitHub.

Play Instructions

  • In Godot Editor: Open the project > Press F5 to run the main scene (main_menu.tscn). Use keyboard/mouse for navigation.
  • Local Web Testing: After exporting to HTML5 (see Setup), cd to infra/ in PowerShell > docker compose up -d > Open http://localhost:9090 in browser. Click "Run game" iframe; use fullscreen for immersion (ignore desktop console warnings).
  • Online on itch.io:
    1. Visit ikostan.itch.io/sky-lock-assault
    2. Click "Run game".
  • The game supports browser play; mobile-friendly with landscape orientation.

For learning: Test quit handling (platform-specific) and log levels in options menu during play.


🙌 How to Contribute

  • Fork the repo and create a branch for your changes.
  • Follow GDScript best practices; test in editor and web export.
  • Open a Pull Request with details.
  • See CONTRIBUTING.md for full guidelines.
  • Join the Discussions: Chat about ideas, ask questions on web exports, or suggest features at GitHub Discussions.

We use the following labels to organize contributions:

  • good first issue — beginner friendly
  • documentation — improvements to docs
  • feature — gameplay or UI work

Please create a branch per issue and reference the issue number in your PR title.


Contributors

About

Combat top-down airplane game with fuel management, multiple weapons, multi-level, and adjustable difficulty. Made with Godot.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •