Coder Social home page Coder Social logo

tankoj's Introduction

GitHub tag (latest by date) License: GPL v3 contributions welcome

๐Ÿช–Tankoj!๐Ÿช–

A relative-complex tanks game

Screenshot

Everything made from scratch from the graphics engine to the UI BIG mistake btw and designs except the backgrounds.

Similar to Worms W.M.D..

RPG Game Template made possible this game.

๐ŸŽฎ Gameplay ๐ŸŽฎ

Tankoj! is a turn-based game where players take turns aiming, adjusting potency, and firing their missile. Each player has a chance to shoot in a round. The game continues in this turn-based fashion until all players have taken their shots. The last tank with remaining health points at the end of the battle is declared the winner. Players can accumulate points during the match to purchase various missiles, force shields, and upgrade their tank's stats (e.g., resistance, speed, HP, gasoline) for the next battle.

Short Youtube gameplay

๐Ÿ“ธ Screenshots ๐Ÿ“ธ

Screenshot UI

๐Ÿ“‹ Notes ๐Ÿ“‹

  • The code was written with the principle of performace above readability or clarity, e.g. it uses unidimensional arrays for bidimensional arrays, see here how it's possible. imagen pixel 2d

  • This code is written to have a low tech debt except the UI part, it needs to be replaced to a third party library.

  • It almost meets the original requirements and is made to be easy to change (maintainability, extensibility) and easy to understand (readability, formatting, clarity) but lacks of proper documentation.

  • This project is currently paused until I decide how to translate this in a web app or made a separate app for mobile and web version and after I find other experienced java developers interested in this project.

  • The code as well the commits were written in Esperanto, I will translate them when I have time to invest in this project.

  • It uses Java 1.8

๐Ÿ“Œ Known Issues ๐Ÿ“Œ

See issues section

๐Ÿ“‹ TODOs ๐Ÿ“‹

  • Use a third-party UI library instead of reinventing the wheel.

  • Use a bug tracker instead of a text file.

  • Add music.

  • Add animations, especially the explosions.

  • Add sound effects.

  • Improve a bit the game's physics.

  • Make an usable IU.

  • Make proper documentation for make faster to hunt developers.

  • Add automated tests.

License

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.

tankoj's People

Contributors

ega-supremo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

tankoj's Issues

Null Pointer Exception when opening the game

Some threads load the background images simultaneously while the game requests one of those images that has not yet been loaded generating the typical null pointer exception. This happens always when the game is opened.

Array Index Out Of Bounds Exception when shooting

It happens sometimes the missile's angle starts at a negative number, provably should be added a checker before the missile is launched to fix that.

The array is an array of missile images of each angle

but it works on my machine!

CONO DE SU MAQUINA
java.io.IOException: Problem reading font data.
at java.desktop/java.awt.Font.createFont0(Font.java:1205)
at java.desktop/java.awt.Font.createFont(Font.java:1076)
at qef.ilj.YargxilAzhj.yargxFontn(YargxilAzhj.java:290)
at qef.Konstantj.(Konstantj.java:137)
at qef.Qefperant.main(Qefperant.java:44)
CONO DE SU MAQUINA
java.io.IOException: Problem reading font data.
at java.desktop/java.awt.Font.createFont0(Font.java:1205)
at java.desktop/java.awt.Font.createFont(Font.java:1076)
at qef.ilj.YargxilAzhj.yargxFontn(YargxilAzhj.java:290)
at qef.Konstantj.(Konstantj.java:138)
at qef.Qefperant.main(Qefperant.java:44)
CONO DE SU MAQUINA
java.io.IOException: Problem reading font data.
at java.desktop/java.awt.Font.createFont0(Font.java:1205)
at java.desktop/java.awt.Font.createFont(Font.java:1076)
at qef.ilj.YargxilAzhj.yargxFontn(YargxilAzhj.java:290)
at qef.Konstantj.(Konstantj.java:139)
at qef.Qefperant.main(Qefperant.java:44)
/images/icons/blue_button_1.png
input == null!
Exception in thread "main" java.lang.ExceptionInInitializerError
at qef.Qefperant.main(Qefperant.java:44)
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Throwable.getLocalizedMessage()" because the return value of "java.lang.Exception.getCause()" is null
at qef.ilj.YargxilAzhj.yargxBildn(YargxilAzhj.java:46)
at qef.Konstantj.(Konstantj.java:164)
... 1 more

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.