Skip to content

qninhdt/cybrion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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