Code Monkey home page Code Monkey logo

pixiq's Introduction

This project has been archived. It took me too long to write such low-level code. In addition, over the last few years my vision of what a retro game engine should look like has changed. So I decided to write the project from scratch. A new project with a greatly simplified API and tools for the game developer. The project is called Pi and is available at: https://github.com/elgopher/pi. I encourage you to use it.

Pixiq

CircleCI GoDoc Go Report Card

Create Pixel Art games in Golang with fun and ease.

What you can do with Pixiq?

  • draw images on a screen in real time using your favourite Go programming language
  • manipulate every single pixel directly or with the use of tools (blend and clear supported at the moment)
  • handle user input (keyboard and mouse supported at the moment)

What is Pixel Art?

  • is the art of making digital images where the creator place every single pixel of the image
  • it is all about limits: low resolution, limited palette, no rotation besides square angles and only integer scaling
  • no automatic anti-aliasing, no filters, blur and other fancy tools
  • more information can be found in The Pixel Art Tutorial

Installation

  • Go 1.14+
  • Ubuntu/Debian: sudo apt-get install libgl1-mesa-dev xorg-dev gcc
  • CentOS/Fedora: sudo yum install libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel gcc
  • MacOS: xcode-select --install

Hello world!

$ go mod init hello
$ go get -u github.com/elgopher/pixiq
package main

import (
	"github.com/elgopher/pixiq/colornames"
	"github.com/elgopher/pixiq/glfw"
)

func main() {
	glfw.RunOrDie(func(openGL *glfw.OpenGL) {
		window, err := openGL.OpenWindow(80, 16, glfw.Zoom(5))
		if err != nil {
			panic(err)
		}
		for {
			screen := window.Screen()
			screen.SetColor(40, 8, colornames.White)
			window.Draw()
			if window.ShouldClose() {
				break
			}
		}
	})
}

More examples you can find in examples directory.

Basic primitives

Project status

The project is under heavy development at the moment, and some of its features are experimental/missing and may change in the near future.

The project is using semantic versioning. Current version is 0.X.Y which basically means that future versions may introduce incompatible API changes. More about architecture can be found in architecture document.

Project goals

  • Create Go API which is just fun to use. It will provide tools known from Pixel Art software.
  • Create Development Tools similar to Chrome Developer Tools to support the development process
  • Make it fast - image manipulation requires a lot of computation, therefore Pixiq should be well optimized
  • Create a set of loosely coupled packages which can be used selectively and replaced or extended easily

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.