Skip to content

Protect your castle from your enemies who wants to destroy it!

License

Notifications You must be signed in to change notification settings

junseo-yang/castle-defense

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

castle-defense

Protect your castle from your enemies who wants to destroy it!
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Description
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

castle-defense is an game that you can play to defence a castle with your archer from the invasion of enemies.

Gif Game Control

(back to top)

Built With

  • C#
  • .NET
  • MonoGame

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

  1. Windows
  2. .NET core 3.1 or above

Installation

One click installer

  1. Clone the repo
    git clone https://github.com/junseo-yang/castle-defense.git
  2. Change Directory to OneClickInstaller
    cd OneClickInstaller
  3. Execute setup.exe to get dependencies
    setup.exe
  4. Run the Application
    CastleDefense.exe

Run Locally

  1. Clone the repo
    git clone https://github.com/junseo-yang/castle-defense.git
  2. Open the project with Visual Studio
    cd CastleDefense
    open CastleDefense.sln
  3. Run the Application

(back to top)

Description

Purpose

You need to defense a Castle with your archer from the invasion of enemies.

Starting Game

Screenshot Start

In the beginning of the game, you need to enter a unique player name that you are going to use for the high score record.

Play Sound and Music

After you enter a player name, the background music Eldon - Pink cheeks will be played and continuously repeated. Each time you shoot an arrow or use a bomb, the sound effect of arrow shooting sound and bomb explosion sound will be played.

Screens

In a game you have 5 screens, Start screen with menu, Game screen, Help, High Score, and Credit. You can select menu by using keyboard arrow keys and hit enter. In the help scene, you can see the description how to play the game. In the Credit Scene

Screens GIF

Game Control

While you are playing game, you can control your archer to aim and shoot arrows by mouse and use bombs by keyboard button B. You can pause while you are playing game with keyboard button P. You can go back to the start screen by ESC key from Game, Help, High Score, Credit Screen. You can quit the game by select Quit menu and hit enter.

Gif Game Control

Level and Score System

Your level start with level 1. Each time you kill an enemy by shooting an arrow, your score increases by one. If you collect 20 points at each level, you can clear a level and move on to the next level.

Save Game & Load Game

Player name, level, and score are saved automatically to the file CastleDefenseSave.txt. You will start with Level 1 and Score 0, and you can check on the high score screen if you are the first player. You can stop playing game anytime you want with press ESC. But, if you want to keep playing with your saved level and score, you need to hit enter on the load game. If you hit the enter on the start new game or lose a game and start a new game, then the saved level and score will be initialized and overridden. If you lost the previous game, you can’t load game and a new game will start.

Gif Load game

High Score Screen

You can see the top 5 high scores in the High Score Screen. If game save file is contaminated, it will be deleted and exit the game.

Screenshot High Score

Credit Screen

You can see the game creator of castle defense.

Screenshot Credit

Archer & Arrow

Archer’s shooting speed and arrow speed will be increased according to the level.

Enemies

In each level, enemies are generated randomly according to the level you are in. In level 1, an enemy ‘red bat’ will come out. In level 2, an enemy ‘Samurai’ will be added. In level 3, an enemy ‘Normal Zombie’ will be added. In level 4, an enemy ‘Mad Zombie’ will be added. Enemies moving speed will be increased randomly according to the level you are in.

Red Bat Samurai Normal Zombie Mad Zombie
Red Bat Samurai Normal Zombie Mad Zombie

Special Feature – Bomb

The number of Bomb you can use depends on the level. In the level 1~4, you can’t use bomb. If you clear 5 levels or more levels, you can get certain chance of using bomb so that you can clear the enemies on the field, but the score will not be increased.

Gif Bomb

Class Diagram

Open GameDesignDocument

(back to top)

Roadmap

  • Implement Starting Game feature
  • Implement Play Sound and Music feature
  • Implement Screens feature
  • Implement Game Control feature
  • Implement Save Game & Load Game feature
  • Implement High Score Screen feature
  • Implement Credit Screen feature
  • Implement Archer & Arrow feature
  • Implement Enemies feature
  • Implement Special Feature – Bomb feature

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Junseo Yang

Project Link: https://github.com/junseo-yang/castle-defense

(back to top)

About

Protect your castle from your enemies who wants to destroy it!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages