If anybody is interested in using or hacking on it, or asking questions, just write here


In short, you can write a game using a very simple and flat API, with no other dependency. The game gets compiled to a "cartridge' that can be run on the runtime (omicron.jar) (or you can bundle the runtime and release as a standalone game).
It features:
- runs on all platforms, including raspbian (thanks to clicky)
- generalized gamepad configuration
- old school api and simple resource management
- sandboxed cartridge execution
- fixed resolution (??)
To run just give java -jar omicron.jar <game>.omicron
You can find everything here:
https://github.com/msx80/Omicron/
NB. to run omicron on RPi you probably have to adjust the opengl driver and openal support with the following commands:
Code: Select all
sudo mv /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0.disabled
sudo cp /opt/vc/lib/libbrcmGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo modprobe snd_pcm_oss
Code: Select all
package com.github.msx80.omicron;
public interface Sys {
public static final int SCREEN_WIDTH = 384;
public static final int SCREEN_HEIGHT = 192;
Image loadImage(String filename);
Image[][] loadSpritesheet(String filename, int sizex, int sizey);
Sound loadSound(String filename);
void clearScreen(float red, float green, float blue);
void color(float red, float green, float blue, float alpha);
void draw(Image image, int x, int y);
void draw(Image image, int x, int y, boolean flipX, boolean flipY);
void draw(Image image, int x, int y, boolean flipX, boolean flipY, int width, int height);
void draw(Image image, int x, int y, boolean flipX, boolean flipY, int width, int height, int angle);
void write(Image[][] font, int x, int y, String text);
void offset(int x, int y);
void playSound(Sound sound);
int availableControllers();
Controller controller(int index);
Mouse mouse();
void dispose(Image image);
void dispose(Sound sound);
void exit(Object returnValue);
}