Code Monkey home page Code Monkey logo

luapixels's Introduction

luapixels

The beginnings of what could be a game engine for using GLFW + Go + Lua.

game.lua + results

Example use

main.go:

package main

import (
    "log"

    _ "embed"

    "github.com/xyproto/luapixels"
)

//go:embed game.lua
var luaCode string

func main() {
    if err := luapixels.Run(luaCode); err != nil {
        log.Fatalln(err)
    }
}

game.lua:

window_title = "Simple Example"

function at_start()
  print("hi")
  -- Set color at palette index 7 to red (RGB 255, 0, 0)
  setpal(7, 255, 0, 0)
end

function at_every_frame()
  -- Set the background color to blue (RGB 0, 128, 255)
  background(0, 128, 255)
  -- At (100, 100), draw a red pixel (index 7 in the palette)
  plot(100, 100, 7)
end

function at_key_pressed()
  quit()
end

function at_end()
  print("bye!")
end

Performance

There is a lot of room for improvements when it comes to performance, since this implementation is fresh and not yet optimized.

The pixels are quads right now, but a texture could be used instead. This would require no changes from the Lua code, though.

General info

  • License: BSD-3
  • Version: 0.0.0

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.