Coder Social home page Coder Social logo

tanchiki's Introduction

Motivation

Project "Tanchiki"🎮

"Tanks" is a retro game that was developed and released in the 1980s. The game was originally created for the Atari 2600 console, but it was later ported to other systems, including the Commodore 64, Apple II, and others.

Our remake will contain the same idea like in original game. We share interests with retro games, and from our opinion it is quite interesting project to re-create. Now, let's see what our project will be in the future:

The game involves two players that engage in a real-time battle to the death against bots. Also it can be played in a solo mode (versus the same enemies - bots). Game goal is to kill all enemies, stay alive and defend base, while they're trying to destroy players base and kill everyone. Players must be careful, because team damaging is allowed.

The game is played from a top-down perspective, and players control their tanks as they try to destroy their opponent. The game will be using only keyboard movement for both players. Read info about controls, software documentation, game models and more on other pages.

Creators

Damir Asylbekov

Alisher Nurakhmetov

Our project is written entirely in Java(ver. 19) using MVC. We are using Java FX to draw the GUI. The view is responsible for the GUI along with the controller. The logic will be placed in Model.

Online play will be implemented using a ping-pong ball principle. The server will run locally.

Game client - The game client will constantly and cyclically send data to the server, specifying the port and IP address, and listen on a specific port.

Game server - The server will be implemented in parallel on another thread and also listen on a specific port. Incoming data will be sent to the game client of the other player.

Data storage and transmission - Data will be stored in JSON format, which will contain key-value data.

Data for all objects will be provided to the server, which will transmit them to the game client of the other player.


Below is information about each class and its methods, attributes:

java


Here's description of each object in game:

For example, as a static objects we define:

(each texture has 50x50 format)

block - obstacle made of durable materials, that means it is solid.

solidbrick

removable_brick - obstacle made of bricks, which players can break with their bullets by shooting at them.

brickdef

base - object, that players must protect, because if someone breaks it, the game will end.

base_block


Here are some non-static objects, as:

enemy - enemy tanks, their mission is to kill players or destroy the base.

enup

player - this objects represents player's model and behaviour.

p1up

bullet - this objects displays a bullet that was shot by an enemy or a player.

enemy_bullet

How to play?!

In the main menu, players must choose a game mode:

Singleplayer - game mode for 1 player, i.e solo game versus bots

Multiplayer - game mode for 2 players, playing 1v1 or playing together versus bots

Level Editor SP - game level creating and editing for singleplayer, you can build your own level to play on

Level Editor MP - game level creating and editing for multiplayer, you can build your own level to play on

The game "Tanks" has a simple level editor that allows players to create their own levels. In the construction, players can choose various blocks to create their map, such as walls (breakable or unbreakable), bonuses, or enemy tank spawners.

Screenshot_2023-05-22_at_11.59.10_AM

In the actual game, you will see something like this:

NES_01

On the right side of a page, you can see amount of enemies on a level and each players remaining life count.

Player abilities:

Arrow UP or W - Move up
Arrow LEFT or A - Move to the left
Arrow DOWN or S - Move down
Arrow RIGHT or D - Move to the right

Each collected item will be activated immediately after getting it.

Each player must shoot at the enemies:

E - shoot a bullet in direction, where player's model is oriented at the moment.

tanchiki's People

Contributors

1lukrecia1 avatar dmr4eg avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

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.