46

R-Type šŸŽ®

A horizontal-scrolling shooter game project undertaken during my third year at Epitech. Navigate through diverse levels, conquer challenging bosses, and save the world from an alien invasion.

R-Type Project šŸš€

šŸŒŒ Overview

Welcome to R-Type, a classic side-scrolling shooter game where players pilot a spaceship and combat waves of oncoming enemy forces. Players must navigate intricate levels, tackle formidable bosses, and ultimately thwart an alien invasion.

šŸ•¹ļø Features

šŸš€ Gameplay Mechanics

R-Type is a dynamic action-packed game demanding swift reflexes and strategic prowess. As the spaceship's pilot:

  • šŸ›ø Dodge obstacles and evade enemy fire.
  • šŸš« Annihilate enemy ships and terrestrial defenses.
  • šŸ’Ŗ Harness power-ups and unique weapons to amplify firepower and boost health.

Each level brings its set of challenges and foes, culminating in intense boss battles that gauge your in-game expertise.

Control your ship with the following keys:

  • ā¬†: Move Up
  • ā¬…: Move Left
  • āž”: Move Right
  • ā¬‡: Move Down
  • Space: Shoot

šŸŒ Networking Features

R-Type supports both offline and online gameplay. The online mode facilitates cooperative gameplay, allowing players to band together and tackle game challenges.

The online component operates on a client-server model where the game server oversees game state management and rule enforcement. Player connectivity to the game server employs protocols such as UDP.

If you're keen on developing a custom client, adhere to the attached protocol.

šŸ› ļø Game Engine

The game engine behind R-Type accelerates the development of varied games, exemplified by the creation of Flappy Bird and Factorio using the same game engine. Despite the stark contrast between these games, the shared game engine delivers uniform performance and user experience. Such adaptability is invaluable for developers as it fosters code and resource reuse, enhancing game quality and player engagement.

šŸš€ Getting Started

šŸ”§ Setup

šŸ“¦ Dependencies: Conan

Dependencies are managed with Conan.

Install it with:

pip install --user conan

Post-installation, execute:

conan profile new default --detect
conan profile update settings.compiler.libcxx=libstdc++11 default
conan remote add bincrafters https://bincrafters.jfrog.io/artifactory/api/conan/public-conan
conan config set general.revisions_enabled=1

Encounter issues? Refer to the official documentation.

šŸ“‘ Documentation Generation

Documentation generation leverages Doxygen. Ensure the installation of:

  • texlive-latex-base
  • texlive-fonts-recommended
  • texlive-fonts-extra
  • texlive-latex-extra

šŸ“– Quick Documentation Access

Access the documentation here.

Update it using:

./generateDoc

āš ļø When introducing a documented file, modify the Doxyfile. Search for INPUT =.

šŸŽ® Additional Games

We crafted two more games alongside this project!

šŸ­ Factorio

In Factorio, players orchestrate and oversee an automated factory in an unfriendly territory. Initiating with scarce resources on an extraterrestrial planet, players extract raw materials, leading to the production of advanced commodities.

šŸ¦ Flappy Bird

Flappy Bird tasks players with guiding a bird through green pipe obstacles without making contact. Points accrue with each successful passage. Mastery revolves around optimizing the "space" key press to maintain flight altitude and rhythm, evading obstacles to achieve top scores.

Group Members

  • Samuel Shemtov
  • Quentin Caniou
  • Kaan Bouldoires
  • William Karkegi
  • Enzo Alaimo

R-Type Game Image