Skip to content

Instantly share code, notes, and snippets.

View Achie72's full-sized avatar
💻
Probably doing some game jam

Achie Game Dev Achie72

💻
Probably doing some game jam
View GitHub Profile
@Achie72
Achie72 / mod-list.json
Created November 29, 2025 11:13
BOBA Factorio Playthrough modlist
{
"mods":
[
{
"name": "base",
"enabled": true
},
@Achie72
Achie72 / launch.json
Created November 29, 2025 10:35
launch.json for love2d on linux mint
{
"version": "0.2.0",
"configurations": [
{
"type": "lua-local",
"request": "launch",
"name": "Debug",
"program": {
"command": "love"
},
@Achie72
Achie72 / accumulator_update.lua
Created August 10, 2025 08:43
Accumulator trick for fix fps
function love.update(dt)
accumulator = accumulator+dt
if joystick then
handle_joystick(joystick)
end
if accumulator >= tickPeriod then
-- do update stuff
end
end
@Achie72
Achie72 / scaling_canvas.lua
Created August 10, 2025 08:40
Löve 2D canvas scaling
function love.draw()
local width, height = love.graphics.getDimensions()
local gameScale = canvasWidth / canvasHeight
local windowScale = width / height
local sw, sh = width/canvasWidth, height/canvasHeight
if windowScale > gameScale then
drawScale = sh
else
drawScale = sw
@Achie72
Achie72 / item_pool.p8
Created May 30, 2025 18:20
Having a pool of upcoming items
if btnp(4) then
local index = cursor.y*10+cursor.x
-- placing something will have to consider if it is an empty spot
-- and if we still have something to place (in hand is > 0 in id)
if (space_map[index] == vacant) and (in_hand_object != 0) then
-- if so place it
space_map[cursor.y*10+cursor.x] = in_hand_object
-- set our hand to "empty"
in_hand_object = 0
-- only add objecst to hand if we still have them in pool
@Achie72
Achie72 / daily_verse_grid.p8
Created May 30, 2025 18:14
Grid play area in Daily Verse
-- borders around play area
line(8,7,87,7,1)
line(7,8,7,88,1)
line(88,8,88,88,1)
line(8,89,87,89,1)
-- fill pattern for grid
for i=1,10 do
fillp(▒)
--line((i*8)-1,8,(i*8),88,1)
local xpos = (i*8)-1
@Achie72
Achie72 / sort.p8
Created April 27, 2025 09:59
insertion sort by impbox
-- Insertion Sort by @impbox
-- this will sort our closed list by the A* F value.
function sort(array)
for i=1,#array do
local j = i
while j > 1 and array[j-1].f < array[j].f do
array[j],array[j-1] = array[j-1],array[j]
j = j - 1
end
end
@Achie72
Achie72 / text_print_helpers.p8
Last active March 16, 2025 11:12
How to center any text or print with borders
-- a little helper function to print centered text
function print_center(text, x, y, color)
-- get the lenght of the text
-- if you did not know, print returns the position of the last character
-- so fi you print offscreen, starting from 0 you will get the exact lenght of the text
local len = print(text, 0, 400, color)
print(text, x-(len/2), y, color)
end
@Achie72
Achie72 / state_machine.p8
Last active March 16, 2025 11:13
Scene management with state machines
-- state machines might sound complicated, but when it comes down
-- they are just if statements that control how our code behaves.
-- based on certain conditions you can jump between "states"
-- and this can help you also organize stuff better, animate more freely, or
-- for example, let's use state machines to create a menu system for our game
function _init()
-- we will start on the game logo scene
-- and we will have the following:
-- menu: to show a nice menu if you want
-- gameplay: where the actual game code runs
@Achie72
Achie72 / basic_multiplayer.p8
Created March 16, 2025 10:14
Multiplay Demo
function _init()
-- create collection for players
players = {}
-- p1
player1 = {
x = 0,
y = 2,
clr = 12,
health = 10
}