survive-line

Ball survives two sine waves using N.E.A.T algorithm

https://github.com/ahelsamahy/survive-line

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary

Keywords

neat-algorithm pygame python3
Last synced: 6 months ago · JSON representation ·

Repository

Ball survives two sine waves using N.E.A.T algorithm

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
neat-algorithm pygame python3
Created over 3 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Citation

README.md

Survive Line

Survive Line is a game powered by Pygame and Artificial Intelligence, designed as my BSc thesis project. In this game, a ball navigates between two waves where they have random amplitude and the speed between them decreases over time, powered by the latest in AI technology using the N.E.A.T algorithm.

Features

  • Dynamic Waves: Experience the changing waves as you play more.
  • AI-Driven: The ball is controlled by an AI trained using the N.E.A.T algorithm. It managed to play continuously for 30 min
  • High Performance: The game runs at a 120fps providing smooth gameplay.

AI Features

The game features an AI that can autonomously navigate through the waves without any manual intervention. Below is a video showcasing the AI in action

https://github.com/Ahelsamahy/Survive-Line/assets/10195309/7f49307b-deb6-4765-94cc-6789664209fc

Game Footage

Here's a sneak peek of Survive Line in action:

https://github.com/Ahelsamahy/Survive-Line/assets/10195309/41cc46dd-8de3-48ee-bc9d-451bf78ec930

Controls

  • Use right and left arrows controls to navigate away from the waves.
  • v Key to show vision lines for the NN
  • b key to show the ballRect (bonding box for the ball)
  • p key to show the particles

Installation

  1. Clone this repository:

bash git clone https://github.com/yourusername/Survive-Line.git

  1. Navigate to the project directory:

cd Survive-Line

  1. Install dependencies

bash pip install -r requirements.txt

  1. Run the game

bash python main.py

Contribute

Contributions to the project are welcome! Please fork the repository and submit pull requests with your proposed changes.

Thesis Document

For those interested in the detailed technical and scientific documentation, the thesis is available in LaTeX format.

Owner

  • Name: Ahmed Mohamed
  • Login: Ahelsamahy
  • Kind: user
  • Location: Eger,Hungary

Hi there, I'm Ahmed (not related to username) studying CS in EKCU, Teen C# and python developer.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Survive Line
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Ahmed
    family-names: Mahfouz
    email: ahmelsamahy@gmail.com
repository-code: 'https://github.com/Ahelsamahy/Survive-Line'
url: 'https://ahmedmahfouz.me/?p=thesis'
abstract: Surviving game with ball between two lines.
keywords:
  - Python3
  - PyGame
  - AI
version: '1'
date-released: '2023-02-20'

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1