Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Missile_Command.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
144 changes: 101 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,122 @@
# Missile Command
# Missile Command 🚀🎮

## Description
## Overview

Missile Command was the first game I played on my Atari home computer.
A faithful recreation of the classic 1980 Atari arcade game, Missile Command, implemented in Python. This project aims to capture the intense strategic gameplay of defending cities from nuclear missile attacks while staying true to the original game's mechanics.

This is a recreation of the game in Python. Starting with BekBrace/Missile-Command, I will update the game to more closely match the home console port from 1987.
![Game Screenshot](missile-command\Missile_Command.png)

## Story
## Background

You are the local Missile Commander for the Missile Intercept Launch Function.
Missile Command is a legendary arcade game developed by Atari, Inc. in 1980, designed by Dave Theurer. The Atari 2600 port by Rob Fulop became a massive success, selling over 2.5 million copies and becoming the third most popular cartridge for the system.

You are responsible for the safety of millions of citizens in six nearby cities. Nuclear war has just broken out. Wave after wave of nuclear warheads have been detected re-entering the atmostphere in your zone of control.
## Game Narrative

All that stands between the last remaining citizens of your country and a fireball of death are your lightning reflexes and sharp-shooting aim.
You are the Missile Commander of the Missile Intercept Launch Function, tasked with an critical mission: protect six cities from total annihilation during a nuclear war. With nuclear warheads raining down and millions of lives at stake, your lightning-fast reflexes and precise aiming are humanity's last hope.

Get ready!
## Features

- Authentic recreation of the classic Missile Command gameplay
- Pixel-perfect missile and explosion mechanics
- Challenging wave-based enemy missile attacks
- Responsive mouse-based controls
- Detailed sound and visual effects

##System
This is written on Microsoft Windows machine.
## Prerequisites

## How to Play
You try to shoot the fireballs aiming your cities to defend your citizens.
- Python 3.8+
- pip
- pipenv (optional, but recommended)

To get the source code, you need to have Git and Python3 installed on your system.
## Installation

Clone / download files from Github repository
1. Clone the repository:
```bash
git clone https://github.com/yourusername/missile-command.git
cd missile-command
```

Create a local virtual environment
2. Create a virtual environment and install dependencies:
```bash
# If you don't have pipenv
pip install pipenv

`pip install pipenv` if you don't have pipenv
# Create and activate virtual environment
pipenv shell

Activate the environment
# Install dependencies
pipenv install -r requirements.txt
```

`pipenv shell`
## Running the Game

Install the dependencies

`pipenv install -r requirements.txt`

Run the game!!

`python missile-defence.py`
```bash
python missile-defense.py
```

## Game Controls

Use the mouse to select where you want to target.

Press primary mouse button to fire.

## Original Game
Missile Command is a 1980 arcade game developed and published by Atari, Inc. and licensed to Sega for European release. It was designed by Dave Theurer, who also designed Atari's vector graphics game Tempest from the same year.
All The 1981 Atari 2600 port of Missile Command by Rob Fulop sold over 2.5 million copies and became the third most popular cartridge for the system.

[Wikipedia article](https://en.wikipedia.org/wiki/Missile_Command)

[Flash port of the original game](http://www.arcadedivision.com/classicgame12/shooting/missile-command.html)

## Work in Progress

- working on sound system
- adding easter eggs from other Atari games
- possible appearnce of UFOs
- **Mouse Movement**: Aim targeting cursor
- **Primary Mouse Button**: Fire interceptor missile
- **Escape Key**: Pause/Exit game

## Project Structure

missile-command/
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── game.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── defence.py
│ │ ├── missile.py
│ │ ├── city.py
│ │ └── explosion.py
│ │
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── functions.py
│ │ └── input_handler.py
│ │
│ └── ui/
│ ├── __init__.py
│ └── text.py
├── data/
│ ├── fnt/
│ ├── img/
│ └── sfx/
├── tests/
│ ├── test_missile.py
│ ├── test_defence.py
│ └── test_game.py
├── requirements.txt
├── README.md
└── main.py

## Development Roadmap

- [x] Basic game mechanics
- [ ] Implement score tracking
- [ ] Add difficulty progression
- [ ] Enhance sound effects
- [ ] Create advanced enemy missile patterns

## References

- [Original Missile Command Wikipedia Article](https://en.wikipedia.org/wiki/Missile_Command)
- Missile Command Disassembly.pdf (Atari 2600 version reference)

## Acknowledgments

- Inspired by the original Atari Missile Command
- Based on initial work by BekBrace
- Special thanks to the original game designers at Atari

## Contact

Project Link: [https://github.com/CAG07/missile-command](https://github.com/CAG07/missile-command)
7 changes: 7 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
pygame==2.0.1
flake8==5.0.4
pytest==7.1.3
pycodestyle==2.12.1
pyflakes==3.2.0
exceptiongroup==1.2.2
iniconfig==2.0.0
packaging==24.2