All Projects → Gigoteur → Unicornconsole

Gigoteur / Unicornconsole

Licence: mit
Unicorn Console: create quick game !

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
rust
11053 projects
lua
6591 projects

Projects that are alternatives of or similar to Unicornconsole

Falltergeist
Opensource crossplatform Fallout 2™ game engine writen in C++ and SDL.
Stars: ✭ 668 (-19.23%)
Mutual labels:  game-engine
Avg Core
A Future-oriented Adventure Game Framework based on React & Pixi.js. Docs: https://avgjs.github.io/docs/
Stars: ✭ 740 (-10.52%)
Mutual labels:  game-engine
Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (-6.53%)
Mutual labels:  game-engine
Anki 3d Engine
AnKi 3D Engine - Vulkan backend, modern renderer, scripting, physics and more
Stars: ✭ 688 (-16.81%)
Mutual labels:  game-engine
Ursina
A game engine powered by python and panda3d.
Stars: ✭ 730 (-11.73%)
Mutual labels:  game-engine
Raylib
A simple and easy-to-use library to enjoy videogames programming
Stars: ✭ 8,169 (+887.79%)
Mutual labels:  game-engine
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-20.8%)
Mutual labels:  game-engine
Mojoc
A cross-platform, open-source, pure C game engine for mobile game.
Stars: ✭ 799 (-3.39%)
Mutual labels:  game-engine
Opensage
OpenSAGE is a free, open source re-implementation of SAGE, the 3D real time strategy (RTS) engine used in Command & Conquer: Generals and other RTS titles from EA Pacific. Written in C#. Not affiliated with EA.
Stars: ✭ 735 (-11.12%)
Mutual labels:  game-engine
Coffee
An opinionated 2D game engine for Rust
Stars: ✭ 771 (-6.77%)
Mutual labels:  game-engine
Osu Framework
A game framework written with osu! in mind.
Stars: ✭ 692 (-16.32%)
Mutual labels:  game-engine
Acl
Animation Compression Library
Stars: ✭ 716 (-13.42%)
Mutual labels:  game-engine
Engine
Fast and lightweight JavaScript game engine built on WebGL and glTF
Stars: ✭ 6,890 (+733.13%)
Mutual labels:  game-engine
Gamedev libraries
A collection of open source c/c++ libraries for gamedev
Stars: ✭ 679 (-17.9%)
Mutual labels:  game-engine
Korge
KorGE Game Engine. Multiplatform Kotlin Game Engine
Stars: ✭ 780 (-5.68%)
Mutual labels:  game-engine
Ranviermud
A node.js based MUD game engine
Stars: ✭ 657 (-20.56%)
Mutual labels:  game-engine
Lovr
Lua Virtual Reality Engine
Stars: ✭ 743 (-10.16%)
Mutual labels:  game-engine
Chimera 2d
2D Games Engine for Windows and Xbox360 [C#] based on XNA
Stars: ✭ 5 (-99.4%)
Mutual labels:  game-engine
Sanandreasunity
Open source reimplementation of GTA San Andreas game engine in Unity
Stars: ✭ 794 (-3.99%)
Mutual labels:  game-engine
Qengine
Retro game engine for developers that enjoy creating games like it's 1997.
Stars: ✭ 763 (-7.74%)
Mutual labels:  game-engine

Unicorn Console

Build Status LICENSE Gitter

Unicorn Console is a quick and dirty engine that let you do what you want with a resolution of 400x240 pixels. The main engine is not dependant of a specific GFX library so you can use it where you want:

TOC:

Features

  • Display: 400x240 pixels, 32 bits color
  • Palette: predefined palettes/extend existing one
  • Sprite: 3200 8x8 sprites
  • Dynamic sprite: create/save sprites with all size
  • Map: 400x60 cells, 3200x480 pixels
  • Code: Rust/Javascript/Python/Lua
  • Sound: chiptune support via klystron engine
  • Editor: GFX/SOUND/CODE editor

Download

Build

Cargo feature:

  • cpython: enable python support
  • unicorn_plugin_lua: enable lua support
  • duktape: enable duktape (javascript) support
  • libksnd: use the native version of klystron for the sound

You can choose to build the main UI to play/edit games:

cd unicorn-devkit
cargo build --release

and run it with the default embedded game:

./target/release/uc-devkit

or load an existing one:

./target/release/uc-devkit ../unicorn/games/floppybird/floppybird.uni

You can also choose to build the libretro version:

cd unicorn-libretro
cargo build --release

And load the shared library with retroarch:

retroarch -L target/release/libunicorn_libretro.so ../unicorn/examples/api_demos.uni

Create

API

The API is available for Rust/Javascript/Python/Lua.

Graphics

camera

camera([x, y])

Set the camera position.

  • x/y are the coordinates to set the camera, and they could be optional (in this case, 0/0 will be used)

circ

circ(x, y, r, [col])

Draw a circle:

  • x/y are the coordinates
  • r is the radius of the circle
  • col is the color of the circle

circfill

circfill(x, y, r, [col])

Draw a filled circle:

  • x/y are the coordinates
  • r is the radius of the circle
  • col is the color of the circle

[[https://j.gifs.com/nZl3GE.gif]]

clip

clip([x, y, w, h])

Set a screen clipping region where:

  • x/y are the coordinate
  • w is the width
  • h is the height

cls

Clear the screen.

color

color(col)

set default color

ellipse

ellipse(x, y, rx, ry, [col])

Draw an ellipse

ellipsefill

ellipsefill(x, y, rx, ry, [col])

draw filled ellipse

fget

fget(n, [f])

get values of sprite flags

font

font(name)

Change the font policy ("pico8", "bbc", "cbmII", "appleII")

fset

fset(n, [f], v)

set values of sprite flags

line

line(x0, y0, x1, y1, [col])

draw line

pal

pal(c0, c1)

Switch the color c0 to color c1.

palt

palt(col, t)

Set the transparency for color 'col', where 't' is a boolean

pget

pget(x, y)

Get the pixel color in x/y coordinate

print

print (str, [x, y, [col]]) [Python: unicorn_print]

Display a string on the screen

pset

pset(x, y, col)

Set the pixel color with the value 'col' in x/y coordinate

rect

rect(x0, y0, x1, y1, [col])

draw a rectangle

rectfill

rectfill(x0, y0, x1, y1, [col])

draw filled rectangle

[[https://j.gifs.com/76MGDr.gif]]

sget

sget(x, y)

get spritesheet pixel colour

spr

spr(n, x, y, [w, h], [flip_x], [flip_y])

Draw a sprite:

  • n is the sprite number
  • x/y are the coordinate
  • w and h specify how many sprites wide to blit and are 1/1 values by default
  • flip_x to flip horizontally the sprite
  • flip_y to flip vertically the sprite

Color 0 will be transparent by default (see palt

sset

sset(x, y, [col])

set spritesheet pixel colour

sspr

sspr(sx, sy, sw, sh, dx, dy, [dw, dh], [flip_x], [flip_y])

draw texture from spritesheet

trigon

trigon(x1, y1, x2, y2, x3, y3, [col])

draw trigon

Keyboard Input

btn([i, [p]])

get button i state for player p

btnp([i, [p]])

only true when the button was not pressed the last frame; repeats every 4 frames after button held for 15 frames

Map

map

map(cel_x, cel_y, sx, sy, cel_w, cel_h, [layer])

[Python: spr_map]

Draw map; layers from flags; sprite 0 is empty

mget

mget(x, y)

Get a map value

mset

mset(x, y, v)

Set a map value

Noise

noise

noise(x, y, z)

noise_set_seed

noise_set_seed(x)

Math

Memory [WIP]

Mouse input [WIP]

Palettes [WIP]

Cart Data [WIP]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].