Skip to content
Go Minecraft Client
Branch: master
Clone or download
Matthew Collins
12
Latest commit 03afc55 Nov 12, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
audio audio, steven: implement music Jul 12, 2015
cmd cmd/protocol_builder, protocol: automatically assign packet ids Aug 10, 2015
console console,cmd/steven: make the watc process handle logging Jul 11, 2015
encoding encoding/json: support unquoted strings Jun 12, 2015
entitysys entitysys: allow for raw structs instead of interfaces May 12, 2015
format format: allow for hex chat colors Aug 28, 2015
native all: drop the platform package Apr 10, 2015
protocol protocol, resource, steven: update to 15w37a Sep 12, 2015
render render: put slidy chunks behind a 'r_slidy_chunks' flag Sep 9, 2015
resource
type type/bit: allow for non simple sizes for maps Sep 5, 2015
ui ui, format: clean up color handling Aug 28, 2015
world/biome world/biome: fix all biomes' values and fix the color index computing May 11, 2015
.gitignore cmd/steven: move the entry point to cmd/steven Apr 21, 2015
CONTRIBUTING.md CONTRIBUTING.md: add a note about logs now that we have them May 28, 2015
LICENSE all: add the apache v2 license to every file Apr 3, 2015
README.md README.md: note the current state of the project Nov 11, 2015
assets.go steven: use vanilla's sounds.json Jul 11, 2015
audio.go steven: add volume settings Jul 19, 2015
block.go steven, render: tidy up plus minor optimizations Aug 28, 2015
blockentity.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
blockimpl.go steven: add double plants Aug 17, 2015
blockliquid.go steven, render/builder: minor optimizations Sep 5, 2015
blockreg.go steven: add double plants Aug 17, 2015
blocks.go steven: add double plants Aug 17, 2015
blocksign.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
blocksimple.go steven: fix simple blocks not getting the default hardness value Jul 15, 2015
blockskull.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
blocksnapshot.go steven: fully clear the light from snapshots + tidy ups May 8, 2015
blocktint.go all: add a basic in-game console May 29, 2015
blocktree.go cmd/steven: move the entry point to cmd/steven Apr 21, 2015
chat.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
chunk.go steven, protocol, resource: update to 15w36c Sep 5, 2015
chunkbuilder.go steven, render/builder: minor optimizations Sep 5, 2015
client.go steven: add moon with phases Aug 25, 2015
clientdebug.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
clouds.go steven: add moon with phases Aug 25, 2015
config.go all: clean up of last things using the config file Jun 8, 2015
console.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
desktop.go steven: improve creative flying to match vanilla Aug 12, 2015
entities.go steven: add a basic arm swing animation May 24, 2015
entity.go steven: clean up system handling May 25, 2015
entityhelditem.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
entitymodels.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
entityparts.go steven: fix the walking animation May 23, 2015
entitysystems.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
fakegen.go steven: tidy up block access Aug 26, 2015
handler.go protocol, resource, steven: update to 15w37a Sep 12, 2015
inventory.go steven: revert a change made by mistake Aug 11, 2015
item.go steven: implement basic support for player inventories Jul 20, 2015
itemlist.go steven: only show counts for stacks of more than 1 item (fixes #45) May 30, 2015
key.go cmd/steven: move the entry point to cmd/steven Apr 21, 2015
model.go steven, render: tidy up plus minor optimizations Aug 28, 2015
modelrender.go steven, render/builder: minor optimizations Sep 5, 2015
modelui.go steven: fix the render order of held items and block icons Aug 17, 2015
mojangverify.go steven: rework progress bars and fix a race in world gen Jul 10, 2015
network.go steven, protocol, resource: update to 15w35b Aug 27, 2015
playerlist.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
pluginmessage.go all: add a basic in-game console May 29, 2015
pluginmessage_proto.go cmd/steven: move the entry point to cmd/steven Apr 21, 2015
position.go
progress.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
resourcepacks.go render, steven: StaticModel -> Model and add a sun Aug 25, 2015
steven.go render, steven: only build chunks when looking at them Aug 27, 2015
ui.go resource/builtin,ui,ui/scene,steven: remove the ui loader system and … Jul 19, 2015
uieditserver.go resource/builtin,ui,ui/scene,steven: remove the ui loader system and … Jul 19, 2015
uigamemenu.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
uilogin.go resource/builtin,ui,ui/scene,steven: remove the ui loader system and … Jul 19, 2015
uilogo.go steven: go fmt Jul 17, 2015
uioptions.go steven: add volume settings Jul 19, 2015
uiresourcelist.go steven: go fmt Jul 17, 2015
uirespawn.go steven,resource/builtin,ui,ui/scene: add a format for discribing scen… Jul 17, 2015
uiscreen.go steven: fix the player list sticking if open when disconnected Jun 14, 2015
uiserverlist.go steven: mark out of date servers and display the version name Aug 10, 2015
uivolume.go steven: add volume settings Jul 19, 2015
world.go steven: fix crashes in the nether/end Jun 14, 2015

README.md

Steven

Not actively maintained anymore

A work in progress Minecraft client in Go. Don't expect it to go anywhere, just doing this for fun.

Images

Steven

Steven with Nether style background and a resource pack

Steven's server list after disconnecting from a server

Building

To build:

export GOPATH=your/install/directory
go get github.com/thinkofdeath/steven/cmd/steven

To update, run go get with the -u option.

Requires csfml libraries and headers to build.

What works

  • Connecting to servers
  • Online mode
  • Rendering most blocks
  • Block model support

What doesn't work

  • 99% of Minecraft's features

Chat

I generally am on the irc.spi.gt irc network in the #think channel. Feel free to pop in to say hi, Webchat can be found here

Builds

Latest:

# Linux OS X Windows
x64 linux_amd64.zip Issue windows_amd64.zip
x32 Issue Issue windows_386.zip

Older builds can be found here

Running

Via the Offical Minecraft launcher

Profile example

You need to create a new profile (or edit an existing one) on the Minecraft launcher and modify the profile to look like the above but replace the path to steven with the location you built it at or downloaded it too and change the server parameter to the target server. Currently only works in online mode (with no plans for offline mode currently). If the server parameter isn't passed then a server list will be displayed.

Standalone

Just running steven via a double click (Windows) or ./steven (everything else) will bring up a login screen followed by a server list which you can select a server from.

Providing a username, uuid and access token via the command line as followed: --username <username> --uuid <uuid> --accessToken <access token> will skip the login screen and jump straight to the server list. Providing a server address via --server <server>:<port> will skip the server list and connect straight to the server. As it currently stands providing all the arguments allows for the client to parallelise connecting to the server and loading the textures/models/other assets as a 'quick connect'.

You can’t perform that action at this time.