Giter VIP home page Giter VIP logo

cybrion's Introduction

Cybrion

Cybrion

❝Just a silly blocky game❞ — @qninhdt

Cybrion preview

💡 Features

  • Infinite, procedurally generated world
  • Multithreading for world generation
  • Beautiful and colorful world
  • Custom shape blocks (fence, chess, table)
  • Wide variety of flowers and trees
  • Save and load world using custom file type
  • Complex GUI (Block menu, inventory)

🔧 Building

Windows

Requirements

Don't forget to add CMake to environment variables

Installing libraries and compiling

  • Step 1: Open terminal and dowload source code
> git clone https://github.com/qninhdt/cybrion
  • Step 2: Install vcpkg and libraries
> cd cybrion
> build.bat
  • Step 3: Rerun build.bat to compile project
> build.bat

After compiling, executable files and resource files will be put in folder cybrion/build

To play game, you need to run cybrion.exe in that folder

Linux

Requirements

Installing libraries and compiling

  • Step 1: Dowload source code
$ git clone https://github.com/qninhdt/cybrion
  • Step 2: Run build.sh. It will install tools, libraries and compile automatically
$ cd cybrion
$ ./build.sh

Similar to Windows, build folder will be cybrion/build

📁 Project structure

├── resources           # Game textures, shader files and config files
└── src                 # Source files
|   ├── client              # Everything that relates to rendering, window, controls          
|   |   ├── GL                  # OpenGL primitive elements (mesh, framebuffer, texture, ...)
|   |   ├── graphic             # Handle rendering for block, world, sky, ...
|   |   ├── resource            # Load config files, shader files and block textures
|   |   └── ui                  # Handle user interface (inventory, menu, text, ...)
|   ├── core                # Custom data structures and some useful classes
|   ├── physic              # Handle physic (AABB, ...)
|   ├── uitl                # Utility functions
|   ├── world               # Manage world components (block, chunk, entity, ...)
|   └── ...
└── ...

🎮 How to play

Hello world

  • Step 1: Enter the name of your world then click Create
  • Step 2: Click Play
  • Step 3: Enjoy the game 🗿🍷

Controls

  • Left Click to break a block
  • Right Click to place a block
  • WASD to move around
  • Space to go up
  • Shift to go down
  • E to open block menu
  • Esc to pause game
  • Ctrl to move faster
  • F1 to hide GUI
  • F3 to open Debug tools

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.