Giter Site home page Giter Site logo

notiooo / makefarm Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 1.0 27.38 MB

Implementation of 3D game similar to Minecraft with infinite terrain model and basic physics in OpenGL API. The game was created as a final project of studies in computer science at the Silesian University of Technology.

GLSL 0.23% C++ 97.94% C 0.71% CMake 1.12%
final-project final-year-project minecraft opengl-game sfml-game university-project game polsl

makefarm's Introduction

MakeFarm

Implementation of 3D game similar to Minecraft with infinite terrain model and basic physics in OpenGL API. The game was created as a final project of studies in computer science at the Silesian University of Technology. The game has been named as Pre-MakeFarm, as its development continues on a separate repository.

This game uses no engine!

Gif presenting the game

A video showing how the game works

Features

  • Main menu.
  • Loading a previously saved game world.
  • Generation of a new game world.
  • Infinite game terrain.
  • The possibility of pausing the game.
  • Basic physics.
  • Various biomes (varied terrain).
  • Equipment.
  • Crafting.
  • Health bar.
  • Hotbar (quick access bar).
  • Oxygen bar.
  • Destroying and placing blocks.
  • Swimming.

Used Libraries

  • FastNoise Lite - A noise generation library focused on high performance and a wide range of noise algorithms.
  • GLEW - A library that allows checking at runtime which extensions are present and which function can be used. It provides OpenGL functions as well as OpenGL extensions.
  • GLM - It is a mathematical library based on the OpenGL Shading Language (GLSL). It contains a collection of classes and functions useful for creating vectors or matrices for OpenGL applications.
  • Dear ImGui - A library for creating a user graphical interface. It is very often used for tool development, or for debugging purposes.
  • ImGui-SFML - A library that allows to easily combine the SFML library with the Dear ImGui library.
  • Serializer - It is a serialization framework that allows saving the objects directly to files in binary format.
  • SFML - It is a fast and simple cross-platform library that allows easy access to windows, graphics, audio, or network
  • TGui - This is the GUI library that is used to draw user interface in-game such as buttons, or sliders.
  • GoogleTest - It is allows writing tests, and mock classes.

Technologies and tools

  • CMake --- A multi-platform tool that allows to automatically manage of the compilation process.
  • C++20 --- C++ standard to be released in December 2020.
  • MSVC Compiler 14.34.31933 --- A compiler developed by Microsoft.
  • CLion 2022.2 --- JetBrains' multi-platform integrated development environment for C/C++ languages.
  • Clang-Format --- C++ code formatter to ensure a stylistically consistent code style and format.
  • Git --- A distributed version control system for tracking code changes.
  • Github --- A web hosting service that allows hosting development projects using the Git version control system.

How to install and play

Please see the external documentation.

The report

Report image

You may find the final report here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.