Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Oblerion Studio

208
Posts
22
Topics
41
Followers
32
Following
A member registered Jul 10, 2017 · View creator page →

Creator of

Recent community posts

(1 edit)

It’s good tool but library is complex to use.
The rres-raylib.h depend of ress.h .
And ress.h is make for raylib.h .

So why can you create a limited version of ress.h with focus to loading asset from .ress .

Elyoko community · Created a new topic IDE zerobrane studio

Download elyoko-a0.2-zbstudio.zip and unzip in path :

Win = your_zbpath
Linux = /opt/zbstudio
Macos = ?

gameplay:

  • (-) C’est vraiment dommage que tout ton jeux soit baser sur l’aléatoire. Laisser le choix au joueur quel type de diamant il souhaite collecter, le rendrai plus stratégique.
  • (-) le singe n’interagit pas avec le joueur (poursuite/attaque)
  • (+) map aléatoire
  • (+) mécanique diamant qui boost les stats
  • (+) mécanique choix de se battre/vol de diamant
  • (+) log de combat

graphisme:

  • (+) pixelart unique,sympatique
  • (-) Les diamants gagnerai à être plus visible sur la map

note:

Si diamant=point vie et que l’objectif est d’en avoir 15,
cela signifie que le joueur doit collecter tout sans se faire toucher/voler.
Le joueur ne risque pas de se retrouver bloquer ?

salut, le tutoriel/jeux ne sont pas fini

Elyoko community · Created a new topic Lua api
(5 edits)

towers.lua

towers_add(x, y, z, ?model_name)
towers_draw()

math.lua

dist(x, y, x2, y2) -> distance
collide2d(x, y, w, h, x2, y2, w2, h2) -> true/false
torad(degrees) -> radiant

a0.2

Main loop

function ELYOKO2D()
-- loop 2d
end
function ELYOKO3D()
-- loop 3d
end

delta time

local dt = deltatime() -- get time between 2 frame

color

local id_color = color(255,0,255,20) -- color r=255,g=0,b=255,a=20
local id_color = color(255,0,200) -- color r=255,g=0,b=200,a=255

camera 3d

-- get camera X
local camx = camerax()
-- get camera Y
local camy = cameray()
-- get camera Z
local camz = cameraz()
-- camera move
cameramove(x, y, z) -- add value to camera position
-- camera set position
camerasetpos(x, y, z) -- set value to camera position
-- camera rotate
camerarotate(rotx, roty, rotz) -- rotation in radiant
-- Camera set target
camerasettarget(x, y, z) -- set points than camera look

-- camera lock
cameralock(state)
-- state=true player can’t move/rotate camera
-- state=false player can move/rotate camera

Asset loading

! Outside loop / need protect for run once

-- load model
loadmodel(path) -- path is string
-- load texture
loadtexture(path) -- path is string
-- load plane textured
loadplanetexture(texture_name.ext) -- create model plane with loaded texture

Input

btn / btnp

if btn(0) then
-- key w is down or gamepad left stick up
elseif btnp(1) then
-- key s is pressed or gamepad left stick down
end
-- btn(id) : key is down
-- btnp(id) : key is pressed
-- id=0 → key w / gamepad left stick up
-- id=1 → key s / gamepad left stick down
-- id=2 → key a / gamepad left stick left
-- id=3 → key d / gamepad left stick right
-- id=4 → key x / gamepad button x
-- id=5 → key c / gamepad button a

mouse

local x,y,btnl,btnm,btnr = mouse()
-- x = x mouse
-- y = y mouse
-- btnl = true/false mouse left button
-- btnm = true/false mouse mid button
-- btnr = true/false mouse right button

2d

work only in ELYOKO2D

-- draw pixel
pix(x, y, color())
-- draw fill rectangle
rect(x, y, width, height, color())
-- draw line rectangle
rectb(x, y, width, height, color())
-- draw fill circle
circle(x, y, radius, color())
-- draw line circle
circleb(x, y, radius, color())
-- draw text
text(str, x, y, scale, color())
-- unload texture
deltexture(name.ext)
-- draw texture
drawtexture(name.ext, x, y)

3d

work only in ELYOKO3D()

-- draw cube
cube(x, y, z, width, height, depth, color())
-- draw sphere
sphere(x, y, z, radius, color())
-- unload model
delmodel(name.ext) -- name.ext is name without path
--draw model
drawmodel(name.ext, x, y, z, rot_x, rot_y, rot_z, scale)
-- rotation in radian
-- scale > 0 , float multiply scale of model

(need fix) save state .sav not working with .egba

(2 edits)

hi, appimage is released
it only works with the GUI,
it doesn’t work with the Zerobrane IDE,
it can be used as an egba binary when you share your game.

(2 edits)

Template

local name = "template"

local interpreter={} --your interpreter table
local api={}         --your api table

-- add lua basic to api
local lua = dofile("api/lua/baselib.lua")
for item, def in pairs(lua) do
  if included[item] then
    api[item] = def
  end
end

-- package template
return {
  name = name,
  description = "Implements "..name,
  author = "you",
  version = 0.1,
  onRegister = function(self)
    ide:AddInterpreter(interpreter.name, interpreter)
    ide:AddAPI("lua", api.name, api)
  end,
  onUnRegister = function(self)
    ide:RemoveInterpreter(interpreter.name, interpreter)
    ide:RemoveAPI("lua", api.name)
  end,
  onMenuEditor = function(self, menu, editor, event)
    -- menu editor code
  end
}

  onMenuEditor = function(self, menu, editor, event)
  -- menu = wxMenu wignet             (set menu item)
  -- editor = wxStyledTextCtrl wignet (link menu item -> function)
  end

editor API
menu API

(1 edit)

interpreter table template

-- name is variable package
local interpreter={
  name=name,
  description="desc interpreter",
  api={name},
  luaversion="5.3",
  frun=function(self,wfilename) -- when interpreter call
    local cur_file =  wfilename:GetFullPath()
    local bin = "interpreter.exe"
    cmd = string.format("%s %s",bin,cur_file)
    return CommandLineRun(cmd,self:fworkdir(wfilename),true,true,nil,nil,nil)
  end,
  skipcompile = true,
  hasdebugger=false,
  scratchextloop = false,
  takeparameters = true
}
(1 edit)

api

local api={
-- function print(text) 
  print = {
    type = "function",
    description = [[A print function]],
    --       var:type
    args = "(text:string)",
    returns = "()"
  },
-- function getX() => x
  getX = {
    type = "function",
    description = [[A function to get x value]],
    args = "()",
    returns = "(x:number)"
  }
}

It just need to write objective and controls in game. Idea of making pacman with mario personage is realy good. An interesting WIP game.

Nice game, what do you use for generate level ?

Bugs : On sdl version, you can finish level without jump.

Witch linux do you use ? I don’t have same version of lib/cmake.

Turn based game is hard to make, with lot of GUI. Nice work, but i can’t test it.

you need egba or egba.exe in project path for use interpreter

(5 edits)

Download egba_a1.8-1_zbstudio_plugin.zip

and unzip in path :

  • Win = your_zbpath
  • Linux = /opt/zbstudio
  • Macos = ?

how do you install interpreter and api

I had given up on this 2023 jam, I changed engines, so I’m not reusing any code.

I can prove that the two games are different. the old source file :

the new and original :

Anyone can complain and destroy like a child. But you wouldn’t know how to reproduce this “crap game”.

Spargenox : “… This alone should have your hands smashed with a hammer so you can’t program again.”

Are you serious ? Why don’t you use your real account ?

2 boutons maximum

GBA_engine community · Created a new topic Bug report

report bug here

GBA_engine community · Created a new topic Lua api
(20 edits)

a1.8.2 Gamepad

if btn(id) then
 -- gamepad button isdown
end
if btnp(id) then
 -- gamepad button ispressed
end

id map:

a1.8 Music loading

music_loaddir("dir") -- load .wav .mp3 .ogg in ./dir/*
music_playsound("sound") -- play sound.wav
music_playmusic("music") -- play music.mp3/.ogg
music_pausemusic() -- pause currant music play
music_stopmusic() -- stop currant music play

a1.7 Interverse

Run an other game, read extern save.

Run game

run("projet.egba") -- work with .lua 

Read extern save

-- if target is projet.sav
local numb = rsave_numb_ext("projet",id)
local nstring = rsave_string_ext("projet",id)
local nbool = rsave_bool_ext("projet",id)

Entry point

Create projet.entry for run (projet.lua / projet.egba) at start.

a1.6

Save-state (.sav file)

This is static data, it keep value when quit.

Write save

wsave_numb(id,100)
-- id 0 → 50
wsave_string(id,"name")
-- id 0 → 50, string 35 char
wsave_bool(id,true)
-- id 0 → 100

Read save

local i_num = rsave_numb(id)
-- id 0 → 50
local i_string = rsave_string(id)
-- id 0 → 50
local i_bool = rsave_bool(id)
-- id 0 → 100

a1.5

Main

loop function

function EGBA()
-- your code run 60/seconds
end

log

trace("hi")
-- print hi in console (only string)
local v=2 print("value :",v)
-- lua print function can be used to view variable value in console

palette swap

pal(2)
-- id 0 -> 4, change curant palette 
-- for all function after with id color    

Graphics

clear screen

cls(0)
-- clear screen with id color 0 

print text

text("hello world",23,23,0,16)
-- x 23, y 23, id color 0,font size 16

draw rectangle

rect(23,23,50,50,2)
-- draw fill rectangle in x 23, y 23, width 50, height 50, id color 2
rectb(23,23,50,50,2)
-- draw line rectangle in x 23, y 23, width 50, height 50, id color 2 

draw pixel

pix(10,10,2)
-- draw pixel in x 10,y 10, id color 2

draw sprite

spr(1,23,23,2)
-- draw sprite id 1,x 23,y 23,scale 2

Input

keyboard

if btn(0) then
-- if key down is down
elseif btn(1) then
-- if key up is down
end
if btnp(2) then
-- if key left is pressed 
elseif btnp(3) then
-- if key right is pressed
end
-- id 0 : down, 1 : up, 2 : left, 3 : right, 4 : x, 5 : c
-- btn -> btn is down
-- btnp -> btn is pressed

mouse

local x,y,btnl,btnm,btnr = mouse()
-- x = x mouse
-- y = y mouse
-- btnl = true/false mouse left button
-- btnm = true/false mouse mid button
-- btnr = true/false mouse right button 
GBA_engine community · Created a new topic Fast start
(10 edits)

a1.5

Setup new project

  • Download palette image .png <= 32 color lospec.com
  • on browser touch « + » , it create new.lua and new.png
  • click on « new » project, click on « spr » button
  • drag and drop palette image to window
  • save, quit and rename new .lua/.png with your projet name

Debug (GUI)

  • load projet with browser
  • press space for start/stop debug

Create EGBA from script/sprite

  • After load projet , « -> » button or  ctrl + e
  • ctrl + l for locked egba (can’t import lua/spr from egba)

Import sprite/script from EGBA

After load projet , « <- » button or ctrl + i

Run EGBA (GUI)

After load projet, press enter for start/stop running EGBA

Build standalone game from EGBA

After load projet, ctrl + b

If you have egba and egba.exe, it create binairy for linux (no ext) and window (.exe)

Debug (CLI)

open cmd, tape it

egba.exe project.lua 

it use .png for load color and sprite

Run (CLI)

open cmd, tape it

egba.exe project.egba

Load spritesheet

  • drag and drop 256x256 img, it to browser→project→spr
  • drag and drop 256x257 img, it to browser→project→spr

a0.1

setup cartbridge .egba

  • Download palette image .png <= 32 color lospec.com

  • launch egba.exe

  • drag and drop image to window

  • btn save create save.egba next to egba.exe, rename it with your project name

load .egba

  • launch egba.exe
  • drag and drop it to editor

lua script

  • create .lua next your .egba with same name.
  • edit it with it
-- hello world example
function EGBA()
  print("hello world",50,50,1,20)
end

full api

launch external script

  • open cmd, tape it
egba.exe project.lua

it use .egba for load color and sprite

load script to cartbridge

  • launch egba.exe -> script section
  • drag and drop it to editor

export spritesheet

  • goto sprite section
  • ctrl + E

load spritesheet

  • drag and drop it to editor

launch cartbridge with intern script

  • open cmd, tape it
egba.exe project.egba

build standalone game.exe

  • launch egba.exe
  • load cartbridge ,goto script section
  • right ctrl+B -> project.exe

build game.exe work only for window , not with wine

(4 edits)

I haven’t had the cmake 3.27 update on ubuntu yet. I’ll test it later.
The story and the image are interesting.
Do you have any more screenshots or a video of your game?

Compilation problem

You can compile an SDL2 game on the web with emscripten.
You can also cross-compile with clang on macos.

I don’t have numpad on my keyboard. And i can’t select second player.

(2 edits)

it’s ingenious to play with the screen size, but a part of the game is off-screen and some error messages are unreadable at start.

There are nothing for play. When you click many time, it close.

I am on linux to and i run it with wine.

(1 edit)

Demake of clash of heroes might and magic 64x64.
https://itch.io/jam/lowrezjam-2023/rate/2215676

You need to upscale size of pixel, it’s important for low rez game.

You can use wine for run .exe on linux/mac.

(1 edit)

The game is really nice, I love the sprites, gameplay and sfx. All the horror elements are there.