Skip to content

sergioosouzaa/cub3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project was developed with @thaisfsousa

English!

Cub3d

The Cub3d project is a 42 School project that involves creating a basic 3D game engine from scratch, using the C programming language. It is a part of the curriculum of the school's software engineering program.

Objectives

The primary objective of the project is to develop a basic 3D game engine from scratch using the C programming language. The game engine should be able to render a 3D world, with walls, floors, and ceilings, and allow the player to move through the world. The engine should also include collision detection, texture mapping.

Requirements

The Cub3d project has a few requirements that must be met to pass the project:

  • The game engine must be written in C.
  • The engine must be able to render a 3D world, with walls, floors, and ceilings.
  • The engine must include collision detection.
  • The engine must include texture mapping.
  • Game map parsing from a file and implementing map validations.
  • The game must be playable, with the player able to move through the world fluidly.

Getting Started

To get started with the Cub3D project, you will need to clone the project repository from the 42 GitLab server. Once you have cloned the repository, you can use the provided makefile to compile the project by running the command make.

Once the project has been compiled, you can run the game by executing the ./cub3d binary with a map file as an argument, like so: ./cub3d maps/map.cub. This will load the game engine and render the game map specified in the map file.

To play the bonus project use make bonus and run ./cub3d_bonus ./maps/1_bonus.cub.

Bonus implementation

The bonus part is our version of a Super Mario Kart battle. Some things implemented by us:

  • Menus.
  • Character selection.
  • Background music.
  • Fps counter.
  • Health Bars.
  • Animated Floor and sky.
  • Enemies with basic artificial intelligence.
  • Doors that open and close.
  • Minimap.
  • A projectile that bounces around the map.

Conclusion

The Cub3d project is a challenging but rewarding project that allows students to develop their skills in C programming and 3D game development. It is an excellent opportunity for students to learn how to create a basic game engine from scratch and gain a deeper understanding of how modern game engines work.

Português

O projeto Cub3d é um projeto da 42 que envolve a criação de uma engine básica de jogo 3D do zero, usando a linguagem de programação C. Ele faz parte do currículo do programa de engenharia de software da escola.

Objetivos

O objetivo principal do projeto é desenvolver uma engine básica de jogo 3D do zero usando a linguagem de programação C. Essa engine deve ser capaz de renderizar um mundo 3D, com paredes, pisos e tetos, e permitir que o jogador se mova pelo mundo. O mecanismo também deve incluir detecção de colisão, mapeamento de texturas.

Requisitos

O projeto Cub3d tem alguns requisitos que devem ser atendidos para passar no projeto:

  • O mecanismo de jogo deve ser escrito em C.
  • O mecanismo deve ser capaz de renderizar um mundo 3D, com paredes, pisos e tetos.
  • O mecanismo deve incluir detecção de colisão.
  • O mecanismo deve incluir mapeamento de texturas.
  • Leitura de um mapa de jogo a partir de um arquivo e implementação de validações de mapa.
  • O jogo deve ser jogável e flúido.

Começando

Para iniciar o projeto Cub3D, você precisará clonar este repositório. Depois de clonar o repositório, você pode usar o makefile fornecido para compilar o projeto executando o comando make.

Depois que o projeto for compilado, você pode executar o jogo executando o binário ./cub3d com um arquivo de mapa como argumento, como este: ./cub3d maps/map.cub. Isso carregará a game engine do jogo e renderizará o mapa do jogo especificado no arquivo de mapa.

Para jogar o projeto bônus, use make bonus e execute ./cub3d_bonus ./maps/1_bonus.cub.

Implementação de bônus

A parte bônus é a nossa versão de uma batalha do Super Mario Kart. Algumas das funcionalidades implementadas por nós:

  • Menus.
  • Seleção de personagem.
  • Música de fundo.
  • Contador de FPS.
  • Barras de vida.
  • Piso e céu animados.
  • Inimigos com inteligência artificial básica.
  • Portas que abrem e fecham.
  • Minimapa.
  • Um projétil que ricocheteia pelo mapa.

Conclusão

O projeto Cub3D é um projeto desafiador, mas gratificante, que permite aos alunos desenvolver suas habilidades em programação C e desenvolvimento de jogos 3D. É uma excelente oportunidade para os alunos aprenderem como criar um mecanismo de jogo básico do zero e ganharem uma compreensão mais profunda de como os modernos mecanismos de jogo funcionam.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published