Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Rami Sabbagh

A member registered Sep 26, 2014 · View creator page →

Creator of

Recent community posts

Not really, it's still being developed very veru slowly

No unfortunately

Sorry for the very late reply btw, I'm working on the plans for rewriting the project

As I remember, there's an ARM version of the LÖVE framework, if you could install it, then use it to run the .love file

I've picked the yellow/orange coloring of LIKO-12 so it looks less like PICO-8

Can't really estimate, I'm working on this project on my free time, and there's so little of it those days.

Because a longer clear name might be better than a short name, and in LIKO-12 we don't worry about the code's length.

You can just 'spr = Sprite' at the first line of your code and then use spr just fine

I'm having plans for doing that, but it has to be community funded, with it's own donate button.

Yes, there's the 'SheetToClip' command,

There are some WIP community projects which use it, you can ask about them in the LIKO-12 Discord.

Sorry for the late replay,

The music editor will be implemented, but after about 9 months.

The audio peripheral is going to be re-written.

The 1.0 number is because I've decided to apply semver scheme, and since I already care about backward complatibilty, then releasing 1.0 was better than 0.10

You can type 'appdata' or 'folder' in LIKO-12's terminal inorder to open it in your computer's file explorer.

No, There aren't any code limits 😉

I think I'm too late to answer this, but here's the answer:

LIKO-12 has some basic limitations, but those can be bypassed by many ways, for example, you can store additional sprites sheets in the code, with gzip compression.

Oh, Finally !, I have a one WIP, nice :)

How did you fix it ? What was wrong ?

This happens because I don't have a MAC to test the builds.

You can create native builds for your games, check

Hey, I had the same issue, easy fix:

Rename the 'data' folder to 'Data' (Capital D), yes, Linux is case sensitive :P (Unlike Windows and Android) 

I use Windows 10 personally, and this doesn't happen for me.

Try to resize the window, will it fix itself ?

The problem could be cause by your GPU driver, try to update it.

Hey, Nice to see you here !

It's pretty simple to do, call this anywhere in your game:


And the keyboard controls would be enabled, and incase if the user closed the keyboard you will have to re-open it for him, best by doing:

--Will make the keyboard open whenever the user touches the screen
function _touchpressed()

To get the keyboard input check _textinput, _keypressed, _keyreleased and Keyboard/isKDown in the online documentation:

Recerved Successfully

Recerved Sprites slot #10 ('maping sprites'), And you can't take more than 1 sprites slot...

Reserved Successfully

Reserved Successfully

Thanks for your submission !

Willl update the main post tomorrow.

(15 edits)

Update: the Collab16 has been cancelled

Hello everyone,

TIC-80 Collab16 is a "16 game in 1 cartridge" made by 16 different developers (Not finished yet),

The limited TIC-80 resources has been divided for 16 games, with the following limits for each game:

  • 4039.875 Character of Lua code.
  • 32 Sprite, there will be 1 game with 16 sprites only, because of menu sprites.
  • 1 SFX waveform.
  • 4 SFX slots.
  • 8 Games will be able to use 1 Music Track.
  • 120x32 Map area.


Base cartridge:

In order to contribute, you will have to select your resources slots:

1. Game code:

The menu has the 16 games code stored in a table, each game should pick one of the available slots: 0 -> 15

Here's the game skeleton that you may use:

do --Used to scope each game local variables
GM[0].N = "Game Name"
GM[0].A = "Author Name"
GM[0].T = function(self) end --TIC function
GM[0].S = function(self) end --scanline function
GM[0].I = function(self) end --Init function, called when the game is selected

Global variables use by the menu code:

GM <- The table holding all games
m = math
flr = m.floor
rnd = m.random
pr = print

2. Spritesheet Areas:

If your game uses sprites, then you will have to pick one of the first 8 areas, and if your game will also use Map, then you will have to pick an area from the second 8 areas (starting from area #8)

3. Map Areas:

If your game uses the map, then you will game to pick the map areas with the same id of the sprites slot that you used.

Note: The map sections are numbered incorrectly, just minus the id in the picture by one.

4. SFX:

Each game will be able to:

  • Define it's own single waveform (You will have to collaborate with other developers inorder to get good sfx ;) )
  • Use 4 SFX slots (They have to be in a row).

Note: the waveforms are numbered from 0 to 15 starting from the top.

5. Music:

Since TIC-80 has only 8 music slots, then only 8 games can use a single music slot.

6. Menu Icon:

You will have to replace the menu icon with (your game code id + 1) slot in the FG tab in the spritesheet.

Reserving a slot:

The final cartridges merging process will get stuck if 2 games uses the same slot of a specific resource, that's why I decided to create a 'reserving system', This doesn't mean that you will be able to fully reserve a slot for your game, but, it will be good to tell people that someone is already using this slot, at the end, the first game that submits will claim the slots it used.

To reserve a slot, comment here with a message in this format:

I'll reserve those slots:
- Game code: 0-15
- Sprites: 0-F / 'Not Used'
- Map: 8-F / 'Not Used'
- Waveform: 0-15 / 'Not Used'
- SFX: 0-60 (The first used SFX slot number) / 'Not Used'
- Music: 0-7 / 'Not Used'

Submitting a game:

To submit a game, upload it to the TIC-80 website under the 'WIP' section, and post a message here with this format:

My submission game:
- Link: (Insert the link to the TIC-80 game here)
- Game code: 0-15
- Sprites: 0-F / 'Not Used' (And tell here if you have free slots that any other developer can use)
- Map: 8-F / 'Not Used' (And tell here if you have free space that any other developer can use)
- Waveform: 0-15 / 'Not Used'
- SFX: 0-60 (The first used SFX slot number), (And tell here if you didn't use all the 4 slots, specifying which slots you didn't use) / 'Not Used'
- Music: 0-7 / 'Not Used'

At the end, I'll merge all the cartridges myself.

Reserved slots:

Game code:

Slot 0: Makki99
Slot 1: pixelherodev
Slot 2: egordorichev
Slot 3: jackj106
Slot 5: niltic
Slot 8: Trelemar
Slot 9: softmagician
Slot 15: ChildishGiant


Slot 0: Makki99
Slot 1: pixelherodev
Slot 2: egordorichev
Slot 4: niltic
Slot 8: Trelemar
Slot 9: softmagician
Slot A: jackj106
Slot F: ChildishGiant


Slot 8: trelemar
Slot 9: softmagician
Slot A: jackj106
Slot F: ChildishGiant


Slot 0: ChildishGiant
Slot 1: niltic


Slot 0-3: softmagician
Slot 4-7: niltic
Slot 60-63: ChildishGiant
Might use: pixelherodev


Slot 0: softmagician
Slot 1: niltic

Submitted games:

No submitted games yet.

Awesome !

Son link, That's an awesome game !

Hey @Tchey, Check LIKO-12 V0.6.0_PRE_04, I have fixed the Linux client problem, It must now prompt you if you don't have love installed, otherwise it will launch LIKO-12.

(1 edit)

Thanks for your offer, but sorry , But I'm not a fan of Apple products, nor in the hassle of supporting their devices, specially iOS devices.

My LDJam 39 Game made using LIKO-12:

Okay, I'll add a .sh script so LIKO-12 checks if love is installed, if so then run the .love file using the client, if not, then ask the user to install love.

(2 edits)

Hello everyone,

Here's the place where you can post about your LIKO-12 Games.

note that the best way to share it with us is to use pastebin:

  • "save mygame -c"
  • "pastebin put mygame.lk12 -c"
  • And paste the code here !

Looking forward to see some awesome games :)

Thanks !

The game errors at line 27 !