Log In  
[ :: Read More :: ]

Cart #rat_maze-3 | 2024-04-15 | Embed ▽ | License: CC4-BY-NC-SA

Okay, somebody has to do it. I'm going to try making a version of the 3D Maze. No rats yet. Sorry.

I'm going to start by working through Permadi's 1996 Ray Casting Tutorial. It's really cool to be implementing such an old graphics tutorial. Anyone know of any other gems out there?

The interactive debugging I've thrown together is kind of fun, so I thought I'd share. Up/down keys to go forward/backward, left/right keys to turn, z/x keys to strafe. Press Enter to toggle map view and raycast render.


  • v0.4 Implemented textured walls. It is very slow, but I haven't done any optimization yet so there's still hope. Changed movement to feel more natural in first-person mode.

    Currently drawing pixel by pixel because I need to learn how to draw only a vertical slice of a sprite (userdata). Does anyone know how? The userdata docs are a little over my head.

  • v0.3.1 Fixed an off-by-one bug that was causing some walls to be studded with spikes. What a relief.

  • v0.3 Calculate which wall is closer (vertical or horizontal). Add raycast view (press Enter to switch to it). I'm getting a weird spike artifact in the render. Colored vertical and horizontal walls differently, revealing that the incorrect wall is identified as "closer" during the spikes. I don't know what's causing that to happen. Finished Part 9 (drawing walls) of Permadi tutorial.

  • v0.2 First public version. Finished Part 7 (finding wall intersections) of Permadi tutorial.

    Question for those with more PICO8 experience than me: Is it worth using bit shift operations instead of multiplication/division by a power of two? I'm keeping it as-is for now for readability reasons, but after the raycasting logic is finished, it might be fun to see if it speeds it up.

P#145537 2024-04-03 03:28 ( Edited 2024-04-15 01:24)

[ :: Read More :: ]

Cart #frisbee_in_the_garden-0 | 2024-03-30 | Embed ▽ | No License

I wanted to learn how to make a wallpaper that would adapt to the desktop theme. I wasn't sure what to make, but my little quilt was right next to me on the couch, and I thought it would make a good subject for a wallpaper :)

It was a challenge to decide which shades to assign to which colors, but it's so important in quilting to think about the level of contrast in your design, so I knew I could get it to work out.

I would love to see someone turn this into a quilt randomizer. Now that would be a cool wallpaper!

Here is the real quilt. My wife and I designed and pieced it together, and then I hand-quilted it. It's about 2' by 2'.

P#145081 2024-03-30 06:04

[ :: Read More :: ]

I wanted to play with procedurally generated music, so here's a little game where you can listen to the little cells in Conway's Game of Life!

When music is paused, Z to toggle the aliveness of the cell at the cursor.
X to play a song of the current board and then load the new one according to Conway's Game of Life rules. You can now press X again to stop the music.
You can't spawn cells live during a song.
When the music is not playing, use arrows to move around a cursor. If you go over an alive cell, it will play its note.

I made use of eruonna's music data structure example code., as well as stat(20) and stat(24) to draw the yellow box. I didn't even have to touch the SFX menu, although I did select which channels play on which patterns by hand.

Pitch is controlled by how old a cell is. It's snapped to c-minor because that seems to be part of Pico-8's ~Aesthetic~.
Timing is controlled by position (as seen with the yellow box).

==Jun 10, 2018==
Cells are now color-coded by letter-note. In the future, you will be able to switch between this and the previous instrument color-coding:

C: 8
D: 9
E: 10
F: 11
G: 12
A: 13
B: 14

Sharps/flats are a checkered blend of the letter-notes they are located between.

There are now multiple boards. Had to rework most of my functions to support this, but now it's pretty easy to change the number of boards. The music is a little messed up, but in the future, the big board will control two sfx channels, and each little board will control its own sfx channel. Hopefully this will lead to more interesting repetition patterns in the music.

==Jun 5, 2018 Part 2 (Actually fun to mess around with now!)==
I added functionality to the cursor! Now you can press Z to kill or spawn a new cell at the cursor.
Randomly spawning cells is gone until I can get a better interface. Reset cart to get new random cells.
Modified the default effects, and added a feature to allow per-instrument volume adjustments. I think it sounds much more musical now!

==Jun 5, 2018==
Now it works! No more music bugs... I hope. This one was very embarrassing: I tried to refer to "sfxn" as "sfxm". I really need to go into a non-pico8 editor when doing serious debugging. I noticed right away after doing that.
Added cursor to preview the singing voices of each individual cell.

==Jun 4, 2018==
Aha! I added a function that allows you to easily print a character onto a cell. Hold <- to see the cells in deadlist, and -> to see cells in alivelist. It turns out that I was adding the same cell to alivelist multiple times (when pressing X) but when they died, only removing them once. Fixed now, so I think no more ghosts will be singing!

I wonder if it would be cool to have four small boards going at once, at different speeds. That way you could have repetition: maybe one instrument per board.

==Jun 3, 2018==
I can't seem to squash some big bugs. Sometimes after running for a while, music will play where things look dead. Ghosts? Maybe it has to do with how inexperienced I am with Lua's tables.

If I continute working on this, I'd like to add a simple editor so you can find out what a gilder sounds like.
I'd also like a ~pitch view mode~ where instead of color-coded instruments, it color-codes by the note that will play.

P#53259 2018-06-04 01:37 ( Edited 2018-06-10 23:33)

[ :: Read More :: ]

Cart #53060 | 2018-05-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Introducing my first actual game on pico-8: Tile Flip! (v1.0)

Tile Flip is a puzzle game where your goal is to flip all tiles to the same color (it doesn't matter which color). You control which tile is selected with the arrow keys and press z to flip the tile, but all the 4-directionally adjacent tiles are also flipped.

Tile Flip starts out easy. On Level 1, only a single move is required to win. After winning, press z again to move onto the next level. After that, it gets harder very quickly. I can only get to Level 4 or so, but then again I'm not very good at puzzles.

Tile Flip's great grandparent is Lights Out, but my exposure to this kind of puzzle was from the minigame in Runescape.

All generated puzzles should be solvable. If you're a cheater, you can use this solver.

This is my first properly polished game on pico-8, and my first attempt at composing video game music! I designed the graphics myself as well and I'm proud of the coherent asethetic and bold colors. I enjoy how pico-8 encourages me to stretch my artistic abilities. I have many years of coding under my belt, but it's hard to make nice, polished games by yourself without those art skills!

If I don't abandon this project, the next version will include a menu where you can view statistics like your current level, time playing, and moves taken. You'll also be able to retry a level (or regenerate it-- maybe this uses up lives?)

Special thanks to my girlfriend for helping me figure out how to highlight selected tiles without it looking horrible.

P#53061 2018-05-27 18:39 ( Edited 2018-05-30 18:54)

[ :: Read More :: ]

Cart #34393 | 2016-12-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

My Hello World project!

Two points bounce about randomly on the screen, and colorful lines are drawn between them. Whenever one of the points bounces off the wall, one of four sounds will play. Each time you play, a different pattern will get drawn.

So far, there is no interactivity. Maybe in version 2...

P#34394 2016-12-28 19:22 ( Edited 2016-12-29 00:22)

Follow Lexaloffle:          
Generated 2024-04-19 08:02:23 | 0.083s | Q:30