gocraft

A Minecraft like game written in go

Github星跟踪图

GoCraft

A Minecraft like game written in go, just for fun!

ScreenShot

Features

  • Basic terrain generation
  • Add and Remove blocks.
  • Move and fly.
  • Multiplayer support

Dependencies

For go

  • go 1.10+

For glfw

  • On macOS, you need Xcode or Command Line Tools for Xcode (xcode-select --install) for required headers and libraries.
  • On Ubuntu/Debian-like Linux distributions, you need libgl1-mesa-dev and xorg-dev packages.
  • On CentOS/Fedora-like Linux distributions, you need libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel packages.

Install

go get github.com/icexin/gocraft

Run

Suppose $GOPATH/bin is in your PATH env, use command below to run.

cd $GOPATH/src/github.com/icexin/gocraft && gocraft

How to play

  • W, S, A, D to move around.
  • TAB to toggle flying mode.
  • SPACE to jump.
  • Left and right click to add/remove block.
  • E,R to cycle through the blocks.

Multiplayer

Multiplayer is supported now!

The server code is at https://github.com/icexin/gocraft-server .

You can use gocraft -s gocraft.icexin.com to connect the public server.

Since the player on public server is anonymous, be carefull for your work!

If any network error occurs, the game will end with a panic, may changed in the future.

Local cache is saved as cache_$server.db, you can use gocraft -db xxx.db to offline use.

Roadmap

  • Persistent changed blocks
  • Multiplayer support
  • Ambient Occlusion support

Implementation Details

Many implementations is inspired by https://github.com/fogleman/Craft, thanks for Fogleman's good work!

Multiplayer is implementated used a duplex rpc call, client can call server to update blocks or fetch chunks, server can also push changes to clients.

主要指标

概览
名称与所有者icexin/gocraft
主编程语言Go
编程语言Go (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2018-04-02 16:00:39
推送于2023-07-14 23:19:57
最后一次提交2022-07-10 15:52:35
发布数0
用户参与
星数1.9k
关注者数50
派生数134
提交数29
已启用问题?
问题数13
打开的问题数5
拉请求数4
打开的拉请求数4
关闭的拉请求数5
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?