Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Cart #46922 | 2017-12-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
29


Experience the thrill of being a Dad behind the wheel in the 70s!
Swerve wildly! Drink beers! Yell at your kids! Don't learn from your mistakes!

Controls
Z: Accelerate
X: Brake
Arrows steer and do ~other things~

There is an ending, it's not just a high score thing.

This is my entry into the 2017 GitHub Game Off.
GitHub repo https://github.com/Alligator/game-off-throwback

29
11 comments


Cart #46864 | 2017-11-30 | Code ▽ | Embed ▽ | No License
134


A mixture of two genres – a Roguelike and a Tetris-style game – based on a prototype I made with a friend (@ollie_read) in 8 hours during a "Crafts and Gin" Game Jam back in 2012.

• 10 levels
• Procedural generation
• Musicality!
• Old-school gameplay
• But actually winnable though

Arrow keys to move/rotate/drop blocks, X + arrows to move rogue and fight monsters.

Full instructions can be found in game. I hope you enjoy it.

Thoughts

This version of the game took a long time to make – more than 40 coding sessions during evenings/weekends of July-November 2017. I had the core game fully working within a few sessions, and the rest has literally been set dressing and "polish" (it still looks like programmer art!). Presentation is quite pompous in places, e.g. a full menu system; this is simply because I wanted to make the game as "finished" as possible (I teach game dev so I want to set a good example).

In order to fit the standard 10x20 grid (plus 4 invisible rows for spawning blocks) on the screen, I had to use 6x6 pixel sprites for each cell rather than the easier option of a map of 8x8 pixel cells. Making clear pixel art in 6x6 tiles is hard, but I’m quite happy with the monster designs and animations – I think they have personality.

This was my first Pico-8 / Lua game so wasn’t sure how restrictive the CPU or token/char count would be in practice. I was worried it would struggle with drawing so many sprites but seems okay? (stat() was showing about 10% CPU at worst). Token budget was more than enough too, but I only realised this once I had carefully implemented most of the critical content – so in general the code is unnecessarily dense. I was disappointed at first that it would easily fit into the restrictions, but then I noticed that I’d gone well over the limit for the compressed .p8.png format, which added a nice little challenge towards the end. Had two runs at crunching - the first involved me hard-coding a load of values and adding short function references, but this meant that I would have to retest the entire game thoroughly to check I hadn't broken anything, so instead I rolled back and just minimised the comments :)

A warning for beginners: Tetris clones might seem like an ideal "basic" project to work on, but I found there are lots of unforeseeable logic problems/exceptions, and quite a few subtle UX tricks that you have to do to make the game "feel" right (some I've done, some I haven't). So beware, I guess.

I’ve got it so the music is in sync with the GFX, but I have had to implement procedural music in order to do this. Originally I had a song that I played at a set tempo and synced up with the monsters "dancing", but if the Pico-8 loses focus (e.g. to desktop) the audio continues to play while the GFX freezes, so the music goes out of sync. Also noticed that pausing and unpausing the game seemed to cause the Pico-8 to throw the sync out by 2 ticks. In the end I created separate instruments as SFX and made my own "song" by triggering them on certain ticks. It’s no accident that the game follows a 12-bar blues pattern; finally my GCSE music lessons paid off.

With so much RNG it was hard to balance, especially while preserving the luck-factor of a roguelike. This meant that I had to complete several runs each time I changed something, to allow for fluctuations in RNG. The longer I've worked on it, the more I've lost all objective sense of how difficult it is, but it is definitely winnable. I hope you guys enjoy it anyway; do let me know how you get on.

Neil

134
25 comments


Cart #46889 | 2017-11-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6


A cute game about 3 girls playing with a spiritboard and getting more than they bargained for! Started out as a cute spiritboard thing like an 8 ball but became a visual novel without me realizing it.

If you want the executables there is a itch.io page it also contains the full code with comments which I sadly had to strip for the bbs release.

The question menu is controlled with x to go to the top of the menu and c to select. Enter opens the start menu.

To use the paste option on the question menu you must first paste into the game before it can access your clipboard.

6
5 comments


Cart #46853 | 2017-11-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

This is my second experiment with PICO-8, this time making a flexible and customizable particle emitter system. In this demo I've pre-made several different emitters that you can view by pressing (left) or (right).

Particles are only rendered as lines, but there are a lot of options to control how they look and behave. It took a while to figure out how to handle colliding with the edges of the screen such that it was accurate no matter how fast the particles were traveling or how long their trails were. Here's just the particle update function to see what's going on:

function particle:update()
  if self.age < self.lifespan then
    if self.jitter > 0 then
      local curr_jitter = rnd(self.jitter)-self.jitter/2
      local curr_angle = atan2(self.dx,self.dy)
      local curr_mag = sqrt(self.dx^2+self.dy^2)
      self.dx = cos(curr_angle+curr_jitter)*curr_mag
      self.dy = sin(curr_angle+curr_jitter)*curr_mag
    end
    self.dx = (self.dx+self.xgrav)*self.drag
    self.dy = (self.dy+self.ygrav)*self.drag
    local next_x = self.x+self.dx
    local next_y = self.y+self.dy

    local line_pts = {{self.x, self.y}}
    line_pts.segments = 0

    while self.collide do
      -- left collision
      if next_x < 0 and btwn(self.y+((next_y-self.y)*self.x/(self.x-next_x)),0,screen) then
        self.y  += (next_y-self.y)*self.x/(self.x-next_x)
        self.x  = 0
        self.dx *= -self.bounce
        next_x  *= -self.bounce

      -- right collision
      elseif next_x > screen and btwn(self.y+((next_y-self.y)*(screen-self.x)/(next_x-self.x)),0,screen) then
        self.y  += (next_y-self.y)*(screen-self.x)/(next_x-self.x)
        self.x  = screen
        self.dx *= -self.bounce
        next_x  = screen-(next_x-screen)*self.bounce

      -- top collision
      elseif next_y < 0 and btwn(self.x+((next_x-self.x)*self.y/(self.y-next_y)),0,screen) then
        self.x  += (next_x-self.x)*self.y/(self.y-next_y)
        self.y  = 0
        self.dy *= -self.bounce
        next_y  *= -self.bounce

      -- bottom collision
      elseif next_y > screen and btwn(self.x+((next_x-self.x)*(screen-self.y)/(next_y-self.y)),0,screen) then
        self.x  += (next_x-self.x)*(screen-self.y)/(next_y-self.y)
        self.y  = screen
        self.dy *= -self.bounce
        next_y  = screen-(next_y-screen)*self.bounce

      else -- no collision
        break
      end
      add(line_pts, {self.x, self.y})
      line_pts.segments += 1
    end

    self.x = next_x
    self.y = next_y
    add(line_pts, {self.x, self.y})
    line_pts.segments += 1
    add(self.lines, line_pts)

  elseif self.maxlength >= 1 then
    self.maxlength -= 1
  end
  -- trim the lines
  while #self.lines > self.maxlength do
    del(self.lines, self.lines[1])
  end
  -- get older
  self.age += 1
end

[ Continue Reading.. ]

6
1 comment


Cart #46937 | 2017-12-02 | Code ▽ | Embed ▽ | No License

Cart #46936 | 2017-12-02 | Code ▽ | Embed ▽ | No License

Cart #46923 | 2017-12-01 | Code ▽ | Embed ▽ | No License

Cart #46832 | 2017-11-29 | Code ▽ | Embed ▽ | No License

[ Continue Reading.. ]

0 comments


Cart #46820 | 2017-11-29 | Code ▽ | Embed ▽ | No License

0 comments



-- 12/1/17 --
Version 1.666 !
A new item and a new #3CJam cart have been added!

Sorry it's not much of a puzzle to unlock this one :/ If I'd had space, I would have done something neater, BUT.. there are also now TWO Spiritboard-inspired masks to find :)

(also button prompts have been fixed)

-- 11/29/17 --
EDIT: Bugfix release has replaced the original version:
-Corrects some issues with cart loading
-Music is less random (now only cycles when using a door)
-tweaked a few puzzles
-note: Do NOT mess with haunted hardware -- who KNOWS what could happen?
-note: Also do NOT mess with controller 2. I mean, who KNOWS what could happen??
-note: Do NOT experiment with items -- who KNOWS what could happen?
-note: Do NOT, I repeat do NOT look for odd-numbered houses. They probably don't even exist anywhere. It isn't healthy to imagine such things. Try to stay grounded instead.

The #3CJam 2017 hub cart is finally complete!
This isn't the witch game that castpixel and I started on as a 3cjam entry. It's.. something else.
"What is it, then?" you ask??
Well.. You'll have to explore and find out for yourself. :)

If you get stuck, feel free to post here in the thread or twitter.

Manual:

[ Continue Reading.. ]

13
11 comments


Cart #46891 | 2017-12-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #46845 | 2017-11-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #46797 | 2017-11-28 | Code ▽ | Embed ▽ | No License

0 comments


Cart #46773 | 2017-11-28 | Code ▽ | Embed ▽ | No License
1

made a 40 mins game cause why not

  • you move with arrows
  • and move in small steps by holding X + arrows
  • get diamonds, highscore, post here!1

LOL

1
0 comments


Cart #47147 | 2017-12-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Cart #46766 | 2017-11-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8


Landing Simulator 2017

Fly for the high score based on how fast you complete the levels using the arrow keys to maneuver through space and time.

My first PICO-8 project, based on the second tutorial from the "Game Development for PICO-8"-zine by MBoffin. A small and rough expansion to get my hands dirty. Sorry about the lack of music, I limited this project to focus on programming patterns and a few visual effects.

My high score: https://twitter.com/r_pdx/status/935305070157094912

8
3 comments


Cart #47154 | 2017-12-06 | Code ▽ | Embed ▽ | No License

Me learning how to program :)

CHANGELOG

Version 0.9.1 :

  • Fixed crash upon restart

Version 0.9 :

  • Snake grows
  • Aligned every object to a virtual grid. Now "collision" code is much more simple.

PAST VERSIONS

0.9 :

Cart #47153 | 2017-12-06 | Code ▽ | Embed ▽ | No License


Alpha :
Cart #46764 | 2017-11-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments




Testing some stuff

0 comments


Cart #46752 | 2017-11-27 | Code ▽ | Embed ▽ | No License
1

The definitive version of Chicken Cutter. I'm going to leave this alone for now, as the features I want to add would require a complete revamp of the code I'm just not ready to tackle yet.

Additions
+Multiplayer Mode
+Difficulty/Time Settings
+Return To Main Menu Without Reboot

Original Game: https://www.lexaloffle.com/bbs/?tid=30321

Code, art and sound by me.

Please let me know if you find any bugs or glitches!

1
0 comments


I know there is plans in the future to add a leaderboard system to Pico-8, but I was wondering if there were plans to maybe add a really limited networking system, kind of like a 56K modem. This would allow for some pretty creative ways to interact with servers, websites, and even other carts. One idea of mine was you would host your own leaderboard system on a Heroku app and the distributed carts adding to the leaderboard system. Another idea would be an old-fashioned BBS that used Pico-8 as a frontend. Thoughts?

4 comments


Cart #46731 | 2017-11-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments




Hello!

This is my first experiment using pico-8, a basic water simulation that hopefully is simple enough to be used in other projects.

The two main things used to make this simulation is;
1) A vertical force applied to each point on the water surface, positive if the point is below "sea level" and negative if it is above the same point.
2) Diffusion of each point relating to its neighbours, which looks like this;

local diff = dampm * (
			pt(i+1) + pt(i-1)
			+pt(i+2) + pt(i-2)
			+pt(i+3) + pt(i-3)
			+pt(i+4) + pt(i-4)	) *
			(-8*points[i])

points[i] -= diff*damp*dt

Where dt is time since the last frame, diff & damp are value multipliers and pt(n) being a function that returns the values from the points

[ Continue Reading.. ]

11
5 comments


If I really have to post my sloppy noob code I will but I am hoping that I can get a quick answer.
When my player sprite moves onto a grid flagged 1 then that grid is solid and the sprite stops moving. If the flag is 2 then it moves to a different room AKA different MAP() value(s)
This works as it should but the solid collision still applies to the tiles from the previous room. I do not understand this because the solid function should update when the new map tiles are drawn.

In other words. It looks like my character is in a different place but all the solid grid tiles are from the previous "room".

2 comments


Hey everyone,

I wrote an article that might be of interest to the community.

It's mainly about depth and breadth in game design, how they differ in my understanding, and how depth can be achieved in small PICO-8 games in order to make them engaging despite their small size.

Here's a link: https://medium.com/@krajzeg/depth-in-games-an-in-depth-look-d94a04ce581a

Enjoy and do let me know if you liked it! :)

12
9 comments


Cart #46716 | 2017-11-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

Made a quick space shooter for the 135th onehourgamejam. Didn't quite finish it in one hour so I spent a bit more time adding music and sounds and enemy fire.

You are Cpt Squeemo of the Intergalactic Shooting Company. You're getting some target practice by playing this space shooter simulator.

Arrows to move, Z to shoot, X to restart.

4
0 comments


Cart #46703 | 2017-11-25 | Code ▽ | Embed ▽ | No License
3

A more complete version of this game is available here: https://www.lexaloffle.com/bbs/?tid=30330
They are separated projects because I consider them to be two different games, but if that's spammy I can get rid of this one. I don't want to rock the boat.

This is my first project in Pico-8. It's not amazing, but it works and that's good enough for me.

Collect the keys and avoid cutting the chickens.

Code, art and sound by me.

3
4 comments




Top    Load More Posts ->