GithubHelp home page GithubHelp logo

quantum-defence / quantum-defence Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 502.95 MB

Defend the base against waves of attacks by enemies with turrets, gates, borders and strategy. Along the way, learn more about how these mechanisms are inspired by real life quantum computing applications.

License: MIT License

GDScript 96.59% GLSL 3.41%
quantum-computing quantum godot game game-development tower-defense tower-defense-game open-source

quantum-defence's Introduction

Quantum Defence

A tower defence game that uses quantum computing principles to put a twist on the game. Enemies have qubits (seen as the colours red or blue) and they attack either red or blue portals based on its value. Normal towers will only get you so far. Power your towers with quantum circuits to play the odds and tear down your enemies.

How to install the game

Download the latest release from the sidebar. Choose the right one for your platform and run it (You may have to bypass security if your computer does not trust unsigned programs).

1-menu.mov
2-level-selector.mov
3-pick-towers.mov
4-tower-firing.mov
5-quantum-tower.mov
6-enemy-dying.mov
7-settings.mov

quantum-defence's People

Contributors

bharathcs avatar bluntsord avatar imgbotapp avatar web-flow avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

nathanfranke

quantum-defence's Issues

BuildUI/TowerInventory

Tower Inventory has to come under BuildUI intead of tower. Finish up the drag and drop between the UI and the TowerInventory.
Think theres an inbuild function. Maybe wanna reimplement it.

Tower Inventory is at the right side of the game and will pop up when a tower is inspected. Map will handle the inspection so dun need to worry about that. Rmb to set ?tower at to be null.

Drag and drop turrets / items

  • must be impossible on paths / existing turrets / home
  • items must result in attribute changes for turrets
  • must show GUI changes for selector on the map

Sound FX

  • Resource drop sound
  • Game start / game over

Tower related

  • Firing sounds for each kind
  • Upgrade sound
  • Build / Dismantle

Enemy related

  • Attack sound
  • Death sounds

Item

Make the item equip properly and apply its effects. Item only has attributes and no other function.
These attributes are :

  1. Damage
  2. AttackSpeed
  3. Range

[BUG] Can't update quantum items

Describe the bug
The quantum items dropped into the tower do not do anything.

To Reproduce
Steps to reproduce the behavior:

  1. Create a tower
  2. Click on tower
  3. Drag a Not / H gate into their quantum slot

Expected behavior

  • Tower is updated with its circuit changed, isTensor changed
  • Probability bar will change based on the above ^

Screenshots

Screen.Recording.2021-07-11.at.3.40.01.PM.mp4

Desktop (please complete the following information):

  • Mac, App v0.9

Milestone 1 last day

Bharath:

  • Program flow
  • Export game
  • project log
  • make video

TeeChin:

  • Menu start and stop
  • ProjectLog
  • functionality timeline
  • user stories

[BUG] When dragging an item to another slot game crashes

Describe the bug
When dragging a item from the build UI slot to another build UI slot, the game crashes.

To Reproduce
Steps to reproduce the behavior: See above

Expected behavior
The items are able to be put into another slot. If an item is present in the target slot, the two items are swapped.

Turret

modifiable range & sets bullet attributes when shooting
aims at nearest enemy
shoots when within enemy within range

Tower and enemy do not overlap properly.

Sometimes one does over the other, and this is a problem within towers and within enemies. Current fix, restrict tower scale such that it minimizes its overlap over other towers and enemies. For enemies, keep to 1 type of enemy so its not very noticeable.

Enemy basics:

  • modifiable range, damage and speed
  • obtains rough path from parent node map and follows it
  • stops when within range of the base and begins attacking
  • signals death when killed

Make a parent node that will handle aspect ratios 4:3 - 21:9

This parent node takes in the view constraints
personally sets the viewfinder to anywhere from 4:3 to 21:9, fitting as much of the map as possible. Any extra borders should be filled in by filler tile map.

  • contains map and build tool

  • tells map to correctly position / scale itself within the space of the filler tile maps, the real base aspect ratio of the map being how it would take up in a 16:9 viewport.

  • build tool are anchored to the right / bottom / left / wtv edges, and should auto move with resizing of window

  • ? may be useful for decoupling if map / build tool talk to each other only through this parent.

  • ? in the future, we may need to consider using this node to set up splash / boot level picker / game menu scenes.

Originally posted by @bharathcs in #18 (comment)

Figure out if the null check is necessary

JUST DISMISS THIS IF YOU DW

curious why this is an issue, could you add a comment above line 33 to explain why this null check is necessary? (Not for me, will help you if you wanna debug an issue to this in the future.) Even if you dk why but just wanna say it fixes an issue where godot errors on X action, at least noting down X action will be good for future dev.

Originally posted by @bharathcs in #103 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.