Giter VIP home page Giter VIP logo

defendo's Introduction

Defendo

Defendo is a tower defense game that made using Godot Game Engine v2.1.4.stable.official.

Download

Get it on F-Droid

Guide

Win-Guide

Contribute

  • Open an issue
  • Translate (see Cxenoj.csv)
  • Add more levels, guns, enemies, etc.

License

Defendo is a tower defense game.
Copyright (C) 2017  Hassan Heydari Nasab

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

defendo's People

Contributors

basxto avatar bla-ke avatar enkeli avatar harry-wood avatar hassanheydarinasab avatar kolanich avatar martinkgg avatar poussinou avatar r3s1stft1l3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

defendo's Issues

create story

we need at least some sentences of story to get into the game. that can later be used to defined other aspects of the game like graphic design and gameplay.

answer basic questions like

  • where are we?
  • why do we have to do what the game is about?
  • who is attacking us and why?

this can be worked out by the community or a professional story writer, if there is one in the open source community.

Player looses before enemy hits base

I always get the "You lost" message when the space ship or what it is, is still quite far away from my base.

I mean it maybe does some "foreseeing" and when I did nothing I would indeed loose. (I've always interpreted the message as "You will loose", because of that.)
But I could still do something, drop bombs or so, to prevent that.

In any case, even if I could not do anything, users should see, that they loose. Otherwise they say: "Hey, I don't believe you!" when the app says "You loose" (BTW, does it say "You loose" instead of "You lost" ๐Ÿ˜„?)

don't show fps to user

it could be an optional feature that can get activated in developer menu.

i like that android enables the developer menu when you click multiple times on the version number. maybe also implment that.

Money is subtracted instead of summed

In groups of 10 the $$$ is subtracted by 1 when defeating an enemy. So it goes: 19, 18, 17, 16, 15, 14, 13, 12, 11, 20

As you see, it ends correctly. (otherwise we would not get any money, of course)

Please include 32-bit binary

I downloaded but I wasn't able to play:

defendo-v2-1: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=93fd41596c512cba3a0bd0c28ccf2323368e0cad, not stripped

Also happy first issue!

Add settings to disable sound/music

I often play music in the background and I don't want the game to have its own music or sounds at all. A way to disable this would be nice.

Turret Tap and Hold Menus Do Nothing in Old Era

Expected Behavior

The menus items that appear over a Turret when Tapping and Holding make changes to the way the Tower behaves in Old Era.

Actual Behavior

The menu items that appear over a Turret when Tapping and Holding do not make changes to the way the Tower behaves in Old Era.

How to Reproduce

  1. Launch Defendo 2.5.0 on Android 8.1.0
  2. Tap on Play for Old Era
  3. Tap a Turret to place a Tower into gameplay
  4. Drag the new Turret onto a Node
  5. Tap and Hold on the Turret
  6. Tap any of the 4 options which appear

Device: Pixel 2 XL
OS: Android 8.1.0
App Version: 2.5.0

Recording of the Bug

HoldChoicesBroken.gif



Posted on Utopian.io - Rewarding Open Source Contributors

Strip the binary

As you see your binaries are not stripped:

defendo-v2-1: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=93fd41596c512cba3a0bd0c28ccf2323368e0cad, not stripped

strip them and see how their size decreases!

farooghkz@farooghkz:~/Downloads$ ls -lh defendo-*
-rwxrwxr-x 1 farooghkz farooghkz  30M Jul  3 20:18 defendo-v2-1
farooghkz@farooghkz:~/Downloads$ strip defendo-v2-1 
farooghkz@farooghkz:~/Downloads$ ls -lh defendo-*
-rwxrwxr-x 1 farooghkz farooghkz  21M Jul  3 20:30 defendo-v2-1

select slot to buy tower into it

the current gameplay where you click on a tower in the menu and it appears somewhere on the screen is very frustrating. often i even don't find it! My first idea was to drag and drop it into the slots, but i think it is better to

select a free slot and select a kind of tower you want to buy. it get's build what takes some time. maybe 1 or 3 seconds (needs balancing)

you can change the tower type in a slot only by selling or destroying (#37) the one inside it.

This would solve the lack of space on the screen.

Not sure about mines.

Turrets and Mines can be Dragged Outside of Gameplay Space and Lost

Expected Behavior

User is never able to place a Turret or Mine in a location where they cannot move it again.

Actual Behavior

User is able to drag a Turret or Mine to the bottom of the screen outside of the visible gameplay space. They will be unable to drag it back into gameplay space.

How to Reproduce

  1. Launch Defendo 2.5.0 on Android 8.1.0
  2. Select Play on Old Era
  3. Tap a Turret or Mine to place into the playspace
  4. Zoom out all the way by dragging down on the slider bar on the right
  5. Tap and Drag the Turret/Mine to past the bottom of the screen

Device: Pixel 2 XL
OS: Android 8.1.0
App Version: 2.5.0

Recording of the Bug

TowerUnrecoverable.gif



Posted on Utopian.io - Rewarding Open Source Contributors

Allow dragging new towers into the board

Currently the only way is to click for the tower you want to buy, and once it spawns, drag it. Although both approaches are fine, dragging feels more natural to me (and probably other people). It could show the tower and if you drag it outside the shop box, consider it as purchased. Or perhaps be able to refund if you drag it there? Of course, I came across this while playing on Android :P

Use Travis CI

Hi.

It could be nice to use Travis CI (Continuous Integration). https://docs.travis-ci.com/
It is useful for quality, but also to explain how to build automatically the program with text command(s).

Regards.

accept donations

@HassanHeydariNasab would you like to receive donations?

You can also forward a part to Godot and put bountied on Bountysource, so others contributing to the game and solving issues get payed (a little).

I suggest allow PayPal (Credit Card, SEPA), Bitcoin, Litecoin and Dogecoin (lower value, so lower transaction fees than BTC).

Double tapping is counter-intuitive on Android

There aren't many tower defense like games on F-Droid, so thanks for that! However, double tapping on a mobile phone is much less common than long clicking, my suggested behaviour. Both could be kept. Furthermore, the tower completely moves from where it should be! This occurs after trying to double tap several towers.

As a side note, it's strange the game doesn't fill the screen completely.

Tapping and Dragging on Windows Affects Gameplay Objects Underneath

Expected Behavior

Interacting with Confirmation Windows does not affect Gameplay Objects placed underneath the Tap location.

Actual Behavior

Interacting with Confirmation Windows affects Gameplay Objects placed underneath the Tap location.

How to Reproduce

  1. Launch Defendo 2.5.0 on Android 8.1.0
  2. Click Play on Old Era
  3. Tap a Mine or Turret to Place a Tower
  4. Tap the Android Back Button
  5. Drag the new Windows top bar over the Tower
  6. Tap and Drag the Window

Device: Pixel 2 XL
OS: Android 8.1.0
App Version: 2.5.0

Recording of the Bug

DragTurretWindow.gif



Posted on Utopian.io - Rewarding Open Source Contributors

FR: fps limit

Currently the game consumes a hugh amount of battery. When the user has an option to limit the fps to 30, less battery should be consumed.

Does not use full screen

As you can see in the screenshot at #9, the app does not use the full screen, but has black bars at the top & bottom.

sell towers

it should be possible to sell towers (to get rid of them).

the price might be 80% of buy price (base cost + all upgrades)

quick fix: feature to "destroy tower"

Donate Button in About Screen does Nothing

Expected Behavior

The Donate button in the About screen takes the User to a location where they can donate to the developer.

Actual Behavior

Nothing happens when the User taps the Donate button on the About screen.

How to Reproduce

  1. Launch Defendo 2.5.0 on Android 8.1.0
  2. Tap About
  3. Tap Donate

Device: Pixel 2 XL
OS: Android 8.1.0
App Version: 2.5.0

Recording of the Bug

DonateButtonBroken.gif



Posted on Utopian.io - Rewarding Open Source Contributors

menu covers game

I can't select the tower anymore because the menu overlapps it. Also one slot can't be used!

screenshot_20171201-045919

Solution: remove menu and implement #41

Traditional mode is too easy and advanced mode maybe too difficult

In the traditional mode I could always quote easily play the game. WHen you finally get how to do it, you also see that the enemies are easiy. The heavy ones with many live points, are slow, so they can also be destroyed fast and they do never really attack from the side, which also makes it really easy.

I came to the point where I had more than enough money, but further upgrading my weapons was too cumbersome just because how the UI works. Tapping nearly three times for each upgrade point, was just too much if you want to upgrade your 100 points weapon to 200 or so...

game

On the other hand, the new game mode with different weapons, is difficult. I could not com far. Maybe that is how it is supposed to be, as I am also not such a good player and did not try it that often.

don't show technical details to users

they are fine in the README on github, for (potential) developers, but confuse gamers und normal users.

so remove them from the game and F-Droid description.

towers should snap into slots

the game looks messy and unprofessional when the towers are not centered in the circle.

image

it should not be possible to place more than one object in one slot, it don't makes sense for the gameplay. also towers need to be removable (#37) since it don't makes any sense to have more towers than slots. (i will propose upgrades instead of combining towers)

towers should not be placeable freely on the map. mines should, as it makes sense.

endless game

The game shouldn't end at level 50.

Waves should just get stronger and give more money.

screenshot_20171201-072631

Upgrade easier on fingers

Hello,

currently, to upgrade a turret I need to drag it inside the base, create a new turrent and drag the new turret inside the base. Repeating this hundreds of times causes quite a bit of strain in my finger and wrist, and makes the game too painful for me to enjoy.

My proposal for making the interface a bit swifter to use is that if there is a turret inside the base and I tap the button to buy a new one, then no new turrent is created and the turrent inside the base is upgraded instead.

That way I could bring a turret inside the base, tap update 20 times or however many I need, and move it back to its pad, all rather easily

only get needed permissions

currently there is a long list of permissions visible on F-Droid. I think they are not all needed.

  • godot.ACCESS_CHECKIN_PROPERTIES
  • godot.ACCESS_COARSE_LOCATION
  • godot.ACCESS_FINE_LOCATION
  • godot.ACCESS_LOCATION_EXTRA_COMMANDS
  • godot.ACCESS_MOCK_LOCATION
  • godot.ACCESS_NETWORK_STATE
  • godot.ACCESS_SURFACE_FLINGER
  • godot.ACCESS_WIFI_STATE
  • godot.ACCOUNT_MANAGER
  • godot.ADD_VOICEMAIL
  • godot.AUTHENTICATE_ACCOUNTS
  • godot.BATTERY_STATS
  • godot.BIND_ACCESSIBILITY_SERVICE
  • godot.BIND_APPWIDGET
  • godot.BIND_DEVICE_ADMIN
  • godot.BIND_INPUT_METHOD
  • godot.BIND_NFC_SERVICE
  • godot.BIND_NOTIFICATION_LISTENER_SERVICE
  • godot.BIND_PRINT_SERVICE
  • godot.BIND_REMOTEVIEWS
  • godot.BIND_TEXT_SERVICE
  • godot.BIND_VPN_SERVICE
  • godot.BIND_WALLPAPER
  • godot.BLUETOOTH
  • godot.BLUETOOTH_ADMIN
  • godot.BLUETOOTH_PRIVILEGED
  • godot.BRICK
  • godot.BROADCAST_PACKAGE_REMOVED
  • godot.BROADCAST_SMS
  • godot.BROADCAST_STICKY
  • godot.BROADCAST_WAP_PUSH
  • godot.CALL_PHONE
  • godot.CALL_PRIVILEGED
  • godot.CAMERA
  • godot.CAPTURE_AUDIO_OUTPUT
  • godot.CAPTURE_SECURE_VIDEO_OUTPUT
  • godot.CAPTURE_VIDEO_OUTPUT
  • godot.CHANGE_COMPONENT_ENABLED_STATE
  • godot.CHANGE_CONFIGURATION
  • godot.CHANGE_NETWORK_STATE
  • godot.CHANGE_WIFI_MULTICAST_STATE
  • godot.CHANGE_WIFI_STATE
  • godot.CLEAR_APP_CACHE
  • godot.CLEAR_APP_USER_DATA
  • godot.CONTROL_LOCATION_UPDATES
  • godot.DELETE_CACHE_FILES
  • godot.DELETE_PACKAGES
  • godot.DEVICE_POWER
  • godot.DIAGNOSTIC
  • godot.DISABLE_KEYGUARD
  • godot.DUMP
  • godot.EXPAND_STATUS_BAR
  • godot.FACTORY_TEST
  • godot.FLASHLIGHT
  • godot.FORCE_BACK
  • godot.GET_ACCOUNTS
  • godot.GET_PACKAGE_SIZE
  • godot.GET_TASKS
  • godot.GET_TOP_ACTIVITY_INFO
  • godot.GLOBAL_SEARCH
  • godot.HARDWARE_TEST
  • godot.INJECT_EVENTS
  • godot.INSTALL_LOCATION_PROVIDER
  • godot.INSTALL_PACKAGES
  • godot.INSTALL_SHORTCUT
  • godot.INTERNAL_SYSTEM_WINDOW
  • godot.INTERNET
  • godot.KILL_BACKGROUND_PROCESSES
  • godot.LOCATION_HARDWARE
  • godot.MANAGE_ACCOUNTS
  • godot.MANAGE_APP_TOKENS
  • godot.MANAGE_DOCUMENTS
  • godot.MASTER_CLEAR
  • godot.MEDIA_CONTENT_CONTROL
  • godot.MODIFY_AUDIO_SETTINGS
  • godot.MODIFY_PHONE_STATE
  • godot.MOUNT_FORMAT_FILESYSTEMS
  • godot.MOUNT_UNMOUNT_FILESYSTEMS
  • godot.NFC
  • godot.PERSISTENT_ACTIVITY
  • godot.PROCESS_OUTGOING_CALLS
  • godot.READ_CALENDAR
  • godot.READ_CALL_LOG
  • godot.READ_CONTACTS
  • godot.READ_EXTERNAL_STORAGE
  • godot.READ_FRAME_BUFFER
  • godot.READ_HISTORY_BOOKMARKS
  • godot.READ_INPUT_STATE
  • godot.READ_LOGS
  • godot.READ_PHONE_STATE
  • godot.READ_PROFILE
  • godot.READ_SMS
  • godot.READ_SOCIAL_STREAM
  • godot.READ_SYNC_SETTINGS
  • godot.READ_SYNC_STATS
  • godot.READ_USER_DICTIONARY
  • godot.REBOOT
  • godot.RECEIVE_BOOT_COMPLETED
  • godot.RECEIVE_MMS
  • godot.RECEIVE_SMS
  • godot.RECEIVE_WAP_PUSH
  • godot.RECORD_AUDIO
  • godot.REORDER_TASKS
  • godot.RESTART_PACKAGES
  • godot.SEND_RESPOND_VIA_MESSAGE
  • godot.SEND_SMS
  • godot.SET_ACTIVITY_WATCHER
  • godot.SET_ALARM
  • godot.SET_ALWAYS_FINISH
  • godot.SET_ANIMATION_SCALE
  • godot.SET_DEBUG_APP
  • godot.SET_ORIENTATION
  • godot.SET_POINTER_SPEED
  • godot.SET_PREFERRED_APPLICATIONS
  • godot.SET_PROCESS_LIMIT
  • godot.SET_TIME
  • godot.SET_TIME_ZONE
  • godot.SET_WALLPAPER
  • godot.SET_WALLPAPER_HINTS
  • godot.SIGNAL_PERSISTENT_PROCESSES
  • godot.STATUS_BAR
  • godot.SUBSCRIBED_FEEDS_READ
  • godot.SUBSCRIBED_FEEDS_WRITE
  • godot.SYSTEM_ALERT_WINDOW
  • godot.TRANSMIT_IR
  • godot.UNINSTALL_SHORTCUT
  • godot.UPDATE_DEVICE_STATS
  • godot.USE_CREDENTIALS
  • godot.USE_SIP
  • godot.VIBRATE
  • godot.WAKE_LOCK
  • godot.WRITE_APN_SETTINGS
  • godot.WRITE_CALENDAR
  • godot.WRITE_CALL_LOG
  • godot.WRITE_CONTACTS
  • godot.WRITE_EXTERNAL_STORAGE
  • godot.WRITE_GSERVICES
  • godot.WRITE_HISTORY_BOOKMARKS
  • godot.WRITE_PROFILE
  • godot.WRITE_SECURE_SETTINGS
  • godot.WRITE_SETTINGS
  • godot.WRITE_SMS
  • godot.WRITE_SOCIAL_STREAM
  • godot.WRITE_SYNC_SETTINGS
  • godot.WRITE_USER_DICTIONARY
  • godot.custom.0
  • godot.custom.1
  • godot.custom.2
  • godot.custom.3
  • godot.custom.4
  • godot.custom.5
  • godot.custom.6
  • godot.custom.7
  • godot.custom.8
  • godot.custom.9
  • godot.custom.10
  • godot.custom.11
  • godot.custom.12
  • godot.custom.13
  • godot.custom.14
  • godot.custom.15
  • godot.custom.16
  • godot.custom.17
  • godot.custom.18
  • godot.custom.19

Persistent state between breaks.

Hello,

I just found the game today on f-droid and I like it a lot. However, it would be nice to be able to pause and resume the game with a break of possibly several hours. On Android the game might get killed if it stays in the background or (depending on battery policy) drains the battery. Would it be easy to implement persistent state after exit of the game?

Cheers,
Annaluise

upgrade towers

instead of combining them.

in my favorite tower defense game (GemCraft), you combine gems. that makes sense in some way. but combining towers to get one more powerfull tower don't makes sense to me.

so i suggest an upgrade system.

you buy one tower. the cost increases with the number of towers you have of that kind.

then you are able to upgrade it in levels.

the base damage, range and firing speed is multiplied by the level at maybe 20% (needs balancing).

you can buy higher levels at

  • +1
  • +10
  • +100
  • +1000
  • +10000

and so on. there should be really no limit since the game should be endless (#38)

A good UI/UX needs to be found. Maybe look how other games have solved it.

My first idea:

have a button "upgrade" in the context menu of a tower. when you click on it, a new menu appears with the options. higher upgrade are only visible when you have the money to buy them.

problems to select and drag towers

This is my first reported issue here, so
first of all thank you for creating and sharing this game!

The most annoying usabillity issue is that i have problems to select and drag towers.
You see me struggling in this video: https://youtu.be/SysYEA-Om-g


Fairphone 2 with Fairphone Open OS 17.11.2 (no google services)
Andoid 6.0.1
Version 2.5.0

speed up the game

i do other stuff while the game runs because it's soooo slow.

i know the enemys get killed by my towers so there is no need to buy something for 10 waves.

i suggest to implement 3 speeds: normal, double and tripple (try out if still playable)

auto-zoom

you see i question every element of the game. why not remove the zoom controls?

instead implement auto zoom. with every network upgrade it zooms out more, so everything is visible.

enemys should appear directly above the current view, so one don't has to wait.

Save the game

It would be grate if you could continue the current game after rebooting or androids oom took place. ! maybe just serialise and deserialise the current instantiated game.

At least you should save the highscore even if there is no "loosing condition"

Thanks in advance

FR: Save game

I'd like to save my game and resume it another time

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.