I found out that Open AI's ChatGPT understands programming, including Pico 8 LUA. I had it create something simple, a pong game. I did create the sound effects, but 99.9% of the code was created by ChatGPT. I found the best way to get it to add more code without timing out is to just request it to create code snippets for _draw() and or _update()
Code:
p1_y = 36
p2_y = 36
ball_x = 64
ball_y = 36
ball_vx = 1
ball_vy = 1
p1_score = 0
p2_score = 0
game_state = "start"
function _update()
if game_state == "start" and (btn(4) or btn(5)) then
game_state = "play"
p1_score = 0
p2_score = 0
end
-- move the paddles
if btn(0) then p1_y -= 1 end
if btn(1) then p1_y += 1 end
if btn(2) then p2_y -= 1 end
if btn(3) then p2_y += 1 end
-- clamp the paddles to the screen
p1_y = mid(8, p1_y, 68)
p2_y = mid(8, p2_y, 68)
-- move the ball
ball_x += ball_vx
ball_y += ball_vy
-- bounce the ball off the paddles
if ball_x < 3 and ball_y > p1_y-4 and ball_y < p1_y+4 then
ball_vx = -ball_vx
sfx(1)
end
if ball_x > 123 and ball_y > p2_y-4 and ball_y < p2_y+4 then
ball_vx = -ball_vx
sfx(1)
end
-- bounce the ball off the top and bottom of the screen
if ball_y < 0 then
ball_vy = -ball_vy
sfx(0)
end
if ball_y > 72 then
ball_vy = -ball_vy
sfx(0)
end
if ball_x < 0 then
sfx(2)
p2_score += 1
ball_x = 64
ball_y = 36
ball_vx = 1
ball_vy = 1
end
if ball_x > 128 then
sfx(2)
p1_score += 1
ball_x = 64
ball_y = 36
ball_vx = -1
ball_vy = 1
-- check for game over
if p1_score >= 10 or p2_score >= 10 then
-- check for input to restart the game
if btn(4) or btn(5) then
p1_score = 0
p2_score = 0
ball_x = 64
ball_y = 36
ball_vx = 1
ball_vy = 1
end
end
end
end
function _draw()
cls()
-- check the game state
if game_state == "start" then
-- clear the screen
cls()
-- display the start screen
print("gpt-pong", 48, 24, 7)
print("credits: by. chatgpt", 32, 36, 7)
print("press x or o to start game", 24, 48, 7)
elseif game_state == "play" then
cls()
-- draw the paddles and ball
rectfill(0, p1_y-4, 2, p1_y+4, 7)
rectfill(126, p2_y-4, 128, p2_y+4, 7)
circfill(ball_x, ball_y, 2, 7)
-- draws the player scores
print(p1_score, 4, 2, 7)
print(p2_score, 118, 2, 7)
-- check for game over
if p1_score >= 10 or p2_score >= 10 then
-- clear the screen
cls()
-- display the winner
if p1_score >= 10 then
print("player 1 wins!", 32, 36, 7)
else
print("player 2 wins!", 32, 36, 7)
end
-- display the restart message
print("press x or o to restart the game", 32, 48, 7)
end
end
end
|
This was fun, thank u! I found it especially amusing to play pong against myself as punishment for being curious if AI could make a pico-8 game. There are so many layers of ridiculous here, that it ended up being true peice of interactive art! Playing pong against yourself is similar to asking AI to create what u want. It's a reflection of your intention in the way pong is a mirror of itself.
[Please log in to post a comment]




