Following lazy devs tutorial sort of at https://www.youtube.com/watch?v=81WM_cjp9fo&list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd
So far this is what I've got no gameplay as of yet.
I've a suggestion that I believe has some value to people making tooling chains is the ability to store metadata within the text version of a cart cart.
This would allow for saving anything that an external editor of a p8 file would want to save and restore upon loading a cart.
For example storing custom pallets or even palette transitions means that they could draw their sprites and see how they look in a fade/palette swap. If they had a fade that they liked they could work in the sprites in an external tool. Anyone else using the same tool could see the settings that were applied.
Pico8 could also store its own metadata there, like the undo history. so if someone reloaded or switched platform they could pick up where they left off.
"save the .p8 on your desktop, move it over to your handheld while you travel, and then back to desktop, and there's no need to get back in the groove manually each time you load up the file" - this is what someone suggested on discord, I'm not naming them in case they don't want to have their name associated with this post.
Even something as simple as linter settings would be useful for people who work together.
How I imagine it would work.
the p8 file is already made of blocks like
__sfx__ etc. I suggest that another block is put in that pico8 doesn't read but does keep on save. You would be free to specify any limit in size that tools have to agree too.
This could be in any format you like. Raw text, json, a hex byte array similar to the binary blocks we have at the moment.
In this way a tool could use the extra space, but I wouldn't expect this data to be retained when in PNG or any of the other binary formats. It can't be abused to get extra space in the cart as it would not be visible to the user code running within pico8.
I just thought you may appreciate the suggestion as it seems pico8 and picotron are both going down the external tooling path.
Changed how drifty the main character is. Made the hitboxes more forgiving.
Okay there is no way I'm finishing this in time for the jam.
Most of the time has been just working on the Character's mechanics and nothing else.
Dr Evil Lulzs has just killed your master you vow to get your revenge in 30 seconds. This gives you thirty seconds to reach Dr Evil Lulzs and attack or you will explode violently.
Managed to get some actual gameplay in. Added title screen/intro. Added actual level that can be played through but not completed. Death implemented, music (not mine added) one type of trap entity added.
Got the attack mostly implemented but nothing to attack at the moment :( (it does give you a speed boost however)
At the moment you can jump, roll, run left/right and nothing much else.
Still to do wall sliding/jumping
- unjank the roll,
- change the hitbox for the roll.
- Enemy AI
- Level design
- Trap code
- Intro sequence
- Cart Label
- Optional tutorial section
- Lame jokes.
- A game
Rolling is slower than running but its good for avoiding things.
Attacking will give you a slight speed boost.
Air friction will be less than ground friction, (so chaining attack and jump should give you more speed)
Intend to do an optional tutorial level where your master trains you.
Your master is sitting out of reach on the top of the screen.
you: "Why am I wearing red. I thought ninjas should be stealthy"
master: "Ninja secret. Red allows you wall jump"
Wall jump your way to a flag.
Flag on right of screen. low gap with spikes in middle.
master: "Roll past spikes, young tardigrade"
you: "why put spikes in training"
Large gap to jump across:
master: "Attack makes you faster, young sushi"
you: "That makes no sense"
when you attack and jump you can jump over gap
you: "Where did that sword come from"
master "you have done well young snotrag"
you: "could you learn my name"
master: "Now for the secret of eternal life"
master: "All you need is ..."
master hit by a flying syringe
you "NOOO Dr Evil LULZS"
you "You killed my master"
you "I will kill you in 30 seconds"
cut to main game.
I was told that this may not be too helpful but I thought I'd upload anyway.
Its basically some code to turn an area of the sprite-sheet into an explosion. I haven't referenced other peoples work on this so if there is a better implementation I apologise.
Feel free to reuse any or all parts.
THE FOLLOWING IS NOT AN ISSUE
the manual clearly states that control code
"\0" terminates printing.
However I still think its an issue
chr(nil) produces this control code. As stumbled upon this when iterating through a table incorrectly.
The following is false.
Hi It looks like I've found an issue.
chr(0) can be concatenated to a string.
From that point onwards the string can no longer be concatenated to. This looks like a null or 0 terminated string to me. However lua specifically doesn't uses 0 terminated strings as far as I can tell.
it just stops if chr(0) A just got an a it stops if chr(0) A just got an a test with 0 woops woops 2
it just stops if chr(0) A just got an a it stops if chr(0) A just got an a test with 0
This is a question I asked on discord, but I thought to get some feedback on here.
Stupid question maybe. I'm editing in vscode. I've put rulers at 32 chars to match the in built editor. How the heck do you all make your code fit inside a pico8 editor horizontally.
I don't mind going over every so often but 32 chars is very very little.
ico_zoom_in = create_icon(0x3844.92ba, 0x9244.3a01, 100, 40)
comes to 62 chars.
even if I rename to be
zi = ci(0x3844.92ba, 0x9244.3a01, 100, 40)
it comes to 44 chars but zi is a horrible name for zoom in icon. and ci is a horrible name for create icon.
maybe something like this.
local top = 0x3844.92ba local btm = 0x9244.3a01 local x,y = 100, 40 zoom_in_ico=c_ico(top,btm,x,y)
That fits but need to lift a lot of variables out and still c_ico isn't very clear name.
Do you all even consider this?
I find I just can't work with 32 chars.
If people download the carts its hard to read carts in splore. I honestly think we need more resolution in the code editor.
If pixels in the editor were half width It would be a lot easier to fit into the in built editor 64 chars is still difficult to fit, but I think I could make the majority of lines fit into that.
What do you all think? I feel like having code not fit in the editor could be off putting for well basically anyone who uses the internal editor but especially for new people trying to learn.
Not really fun, but I'm uploading to see.
Anyone have any idea how handling should work for a track of approximately this width.
No collision detection.
x to accelerate.
Sprite rotation using a function supplied by @freds72
Do you want to zoom in our out of your map during the game this may be for you.
Simple cart to show off the zoom function.
Cursor keys to scroll x/z to zoom in and out.
actual function is as follows
--prints the map zoomed -- zoom is the zoom factor 2 for twice as big -- 0.5 for half as big -- mx = the pixel cordiante of the map to start -- my = the pixel cordiante of the map to start -- sx = screen offset x -- sy = screen offset y function zmap(zoom,mx,my,sx,sy) zoom = zoom or 1 mx= mx or 0 my= my or 0 sx= sx or 0 sy= sy or 0 for i=0, 127 do tline(0,i,127, i, mx, my+i/8/zoom, 1/8/zoom) end end
Please feel free to adapt for your own projects.
A better version of this could use a screen clipping rectangle but I wasn't sure if it was necessary or not
Inspired by a game on Amstrad CPC this is my attempt make a game in the snake category. This is my first ever pico8 game.
2 Types of enemy, CPU controlled snakes and the vicious seeker.
3 Types of bonus
S to make your snake short
L to gain a new life
Ghost gain one new life every three levels.
I hope you all enjoy this as much as I enjoyed playing the original.
Level music by @SmellyFishstiks
Minor update to allow input buffering as suggested.
new version adds enemies, 10 levels to complete.
This is a unfinished version to see the finished version see: https://www.lexaloffle.com/bbs/?tid=40244
Hi this is my first attempt at making a game. I'm feeling mixed opinions. I was hoping to do a clone of a snakes game called Crazy Snakes from the Amstrad CPC (by Fraggle and Duck). However I feel like the 128x128 grouping is just too small for this type of game, especially if I use 8x8 sprites.
What would you do to improve the gameplay. I've only done three levels so far. I wanted to add in enemy snakes and one other type of enemy like the game I'm emulating. I've also not added in any of the bonus items such as extra lives, or a snake shortener.
So first impressions of pico8. Love the music editor, its not your fault I'm crap with that. Love the map editor, and the sprite editor. Little disappointed in the fixed palette but It isn't too bad and makes me more creative.
But I am disappointed in the 128x128 resolution. It just seems too much of a restriction. When using 8 bit computers in the past the resolution I had available was 320x200 which is a huge amount more.
What do you think? Is this just me not using screen estate effectively?
Okay it was me not using the screen estate well.
Okay I tried a version with 5x5 sprites and I'm a lot happier with it.
This leaves that I can have more speed and more complicated setups, and more length. Though for the early levels the big version was better.