Git Product home page Git Product logo

shade's Introduction

Shade SDK

A simple and easy to use 2.5D game SDK for the Go programming language.

NOTE: This SDK should be considered very experimental as it is still under development. It is currently being modeled after some aspects of the PyGame SDK, but this will probably change some as it matures. The project will not have its "experimental" status removed until it is easy to install, easy to use, and supports dynamic lighting.

While the above should work without needing to work with the OpenGL SDK, the packages of this SDK should be extendable such that more advanced uses are possible.

Installing

Linux (Debian based) Specific Instructions

# Install Go 1.6
$ sudo apt-get install git-core libgl1-mesa-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev

Windows Specific Instructions (work in progress)

https://git-scm.com/download/win
https://golang.org/doc/install
https://cygwin.com/install.html
http://www.glfw.org/

To install:

Dependencies

$ go get -u github.com/jteeuwen/go-bindata/...
$ go get github.com/go-gl/gl/v{3.2,3.3,4.1,4.4,4.5}-{core,compatibility}/gl
$ go get github.com/go-gl/gl/v3.3-core/gl

NOTE: the first "go get" will produce an error because generated files are not generated yet.

$ go get github.com/hurricanerix/shade/...
package github.com/hurricanerix/shade/gen: cannot find package "github.com/hurricanerix/shade/gen" in any of:
	/usr/local/go/src/github.com/hurricanerix/shade/gen (from $GOROOT)
	/Users/hurricanerix/bin/usr/gocode/src/github.com/hurricanerix/shade/gen (from $GOPATH)
$ go generate github.com/hurricanerix/shade/...
$ go get github.com/hurricanerix/shade/...

To test your install:

cd $GOPATH/src/github.com/hurricanerix/examples/ex2-platform
go run main.go

Attribution

This project was inspired by the article "Normal Mapping with Javascript and Canvas".

Some aspects of the SDK are inspired by the PyGame SDK.

assets/gopher* adapted from creations by Renee French under a Creative Commons Attributions 3.0 license.

Helpful Tools

Pyxel Edit - Very nice pixel art editor.

Sprite DLight - Instant normal maps for 2D graphics

Tiled - Your free, easy to use and flexible tile map editor.

sfxr/cfxr - Simple means of getting basic sound effects.

Troubleshooing

cannot find package "github.com/hurricanerix/shade/gen"

Some variables/assets are packaged into a generated code file, if you get this error run the bindata.sh script to generate that file.

Slow saves in VIM

Sometimes, go-imports inserts the the wrong things. VIM was hanging for me for about 10~20 seconds after saving. I'm not sure why, but switching from v2.1 to v4.1-core fixed the issue.

-       "github.com/go-gl/gl/v2.1/gl"
+       "github.com/go-gl/gl/v4.1-core/gl"

Error: "could not decode file player.png: image: unknown format"

The following line will not be auto-imported since our code does not call anything in the png, library directly. In order to ensure that the library loads (so image.decode("somefile.png") works), we must have the following import to load the PNG package.

+	_ "image/png" // register PNG decode

... has no field or method ...

And it just does not make sense why it is not found, check that go-imports imported the correct thing.

shade's People

Contributors

creiht avatar hurricanerix avatar

Watchers

 avatar

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.