All Projects → Clapeysron → Mycraft

Clapeysron / Mycraft

Licence: other
A minecraft clone project based on modern OpenGL completed in ZJU computer graphics course.

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects

Projects that are alternatives of or similar to Mycraft

Minosoft
An open source Minecraft reimplementation written from scratch. Mirror of https://gitlab.bixilon.de/bixilon/minosoft
Stars: ✭ 149 (+77.38%)
Mutual labels:  minecraft-clone
craftus reloaded
A second attempt at a homebrew Minecraft clone for 3DS
Stars: ✭ 44 (-47.62%)
Mutual labels:  minecraft-clone
MinecraftClone-Unity
A Minecraft clone in Unity
Stars: ✭ 52 (-38.1%)
Mutual labels:  minecraft-clone

Mycraft

mycraft

Mycraft is our Computer Graphics curriculum design based on modern OpengGL.

It's a clone of Minecraft mainly written in C++ and we have implemented both Mac version and iOS version for it.

Refer to Mobilecraft for more information about the iOS version.

1

Features

Render

  • Original block textures from Minecraft
  • Simple realtime shadow mapping
  • Corner shadow to simulate SSAO effect
  • Brightness-diffusion of point light such as Torch & Glowstone
  • Time pass effect with Sunrise / Sunset / Moon & Starry sky
  • Breaking aniamtion & highlight of the block selected
  • Transparent / translucent block such as water & glass
  • Simple on-ground and below-water gravity engine
  • Jitter perspective to simulate running effect
  • Underwater visual effects
  • Fog that hides far away chunks

Data

  • Terrain & cloud generation with perlin noise
  • Random generation of Flora
  • Hidden surface removal & invisible subchunk removal
  • frustum culling
  • Enclosed space detection
  • Corner shadow & brightness calculation
  • Adjustable game settings in src/game_settings.h
  • Map storage not done yet :(

Build

Install glfw & glew & assimp

Install glfw & glew & assimp with Homebrew.

brew install glfw
brew install glew
brew install assimp

Then add lib in Click Project Icon in Left Navigator - Build Phases - Link Binary With Libraries - Add libGLFW.X.X.dylib & libGLEW.X.X.X.dylib & libassimp.X.X.X.dylib then remove the not-found(red) lib in left navigator.

Install glad

Install glad from online-pack following the tutorial from learnopengl - Creating a window.

Choose OpenGL 3.3 and Core Profile then generate.

Then move header folder glad / KHR to /usr/local/include

Set XCode working directory

Set your working directory in XCode - Product - Scheme - Edit Scheme - Run - Working Directory to {Where Your Place}/Mycraft/Mycraft

Close shadow mapping if without independent graphics

For Macbook without discrete graphics, the game may lose its fluency greatly with the shadow on. You can comment out line 13 in /src/Render.cpp to ban it.

//#define SHADOW_MAPPING

Run

Just click run to get the game started

Game Control

  • Press WASD to move and press Space to jump
  • Long press the left mouth button to break the selected block
  • Click the right mouth button to place a block
  • Use space to fly and F to fall in god mode
  • ← & → to switch blocks for placing
  • ↑ & ↓ to switch options now choose (default is fov(1) )
  • 1-5 to switch options.
    • 1 fov (↑- ↓+)
    • 2 cursor escape (↑disabled ↓escaped)
    • 3 game mode (↑god mode ↓normal mode)
    • 4 perspective (↑first person ↓third person)
    • 5 zoom in thid-person perspective (↑zoom in ↓zoom out)
  • Change all game settings in src/game_settings.h

Architecture Design

mycraft_design

Reference

Tribute to best Minecraft.

Modern OpenGL example code from learnopengl and learnopengl-cn (Perfect chinese version :)

Skybox texture & Steve model sources from Craft.

Screenshots

Steve & Alex object

2

Original Textures

3

Sunset

4

Point Light

6

In-water Point Light

7

Realtime Shadow Mapping

8

Underwater Visual Effects

9

Fog

10

Moon

11

Breaking Animation

12

Ugly House by Author

13

iOS MobileCraft Screenshot

14

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].