🚧 Note: This project is currently under development. The game is playable, but new zones, features, and bug fixes are being added regularly.
ICoop is a 2D adventure and exploration video game developed entirely in Java. This project is built on a modular architecture that separates a custom game engine from the specific game logic, offering combat mechanics, puzzle-solving, and dungeon exploration.
- Multi-zone Exploration: Travel through various interactive maps such as Spawn, Maze, Arena, and OrbWay.
- Combat & Magic System: Fight various enemies (DarkLord, BombMonster, LogMonster) using different weapons (sword, bow) and elemental magic (fire and water staffs).
- Interactions & Puzzles: Unlock doors with specific keys, collect resources (coins, diamonds), and interact with the environment (levers, rocks, explosives).
- Interface & Inventory: Track your Hit Points (HP) and Experience Points (XP), and manage items collected throughout your quest.
- Interactive Dialogues: Talk to NPCs to progress the story or obtain clues.
The repository is divided into three main modules managed by Maven:
game-engine: The game's physical and graphical engine. It handles visual rendering, physics (collisions, hitboxes), vector mathematics, and user input.iccoop: The core of the game. This folder contains all the specific ICoop adventure logic (actor behaviors, zone generation, storyline, and enemy AI).tutos: A set of mini-games and tutorials to gradually introduce the features of the game engine.
- Java Development Kit (JDK) (version 11 or higher)
- Maven (for dependency management and building)
Installation Steps:
- Clone this repository to your local machine:
git clone [https://github.com/charaf-ech/icoop.git](https://github.com/charaf-ech/icoop.git) cd icoop/ICoop-charaf_branche - Build the project using Maven:
mvn clean install
To start the main adventure, run the main() method of the primary class located in the iccoop module from your IDE (IntelliJ, Eclipse, etc.):
- Main Class:
ch.epfl.cs107.Play
(Feel free to modify this section if your key bindings are different)
- Arrow Keys: Move
- Spacebar: Interact (talk to NPC, read sign)
- X Key: Attack / Use equipped item
- I Key: Open/Close Inventory
- Esc: Pause the game
- Addition of new levels and bosses.
- Improvement of enemy artificial intelligence.
- Addition of sound effects and ambient music.
- Echchorfi Charaf
- EL Haddad Sajid