I did a spaceshooter and documented the process in 16 gifs.
See an overview of all 16 gifs at once. And start each gif as a step by step tutorial.
Wow, this really was pretty cool! :D
Thanks for sharing, this is sure to help me (not only me) to learn more.
If you do not mind I joined the gifs in a video.
https://dl.dropboxusercontent.com/u/127041/ztiromoritz-spaceshooter-16gifs.mp4
Thanks again
(Sorry for the English and Hello from Brazil!)
This is a really cool way of providing a tutorial actually. Thanks for sharing!
Thank you all.
@erloncabral : This is cool. What would you like to do with it? We could add it to the page. Also feel free to use it under (CC BY-NC-SA 4.0) conditions.
ztiromoritz : Hi, I actually joined the gifs just to give pause in some parts, totally for personal use, it might be useful for some more, and put the link here :)
This was really helpful for me. As a pico-8/lua/gamedev noob, I decided to hand copy the code from the gifs, looking up stuff in the pico-8.txt doc as I went along. I learned a bunch, thanks!
I love how the overlay for each gif is each of the colors in the pico-8 palette.
Loving this, incredibly helpful, cool format. Did anyone else get a runtime error <EOF> "attempt to index local 's' (a nil value)" after doing collision 3? It references the 's' in the abs_box, coll, and _update functions. Having a hard time finding my mistake.
Really helpful, thanks! It would be nice if you could constrain the ship to the screen -- just unconventional to navigate outside the play field.
This is some quick and dirty code to restrict ship to screen area
if btn(0) then if ship.x==0 then ship.x=128 else ship.x-=1 end end if btn(1) then if ship.x==128 then ship.x=0 else ship.x+=1 end end if btn(2) then if ship.y==0 then ship.y=0 else ship.y-=1 end end if btn(3) then if ship.y==120 then ship.y=120 else ship.y+=1 end end |
Thanks for sharing, I learned a lot with your tutorial !
@coureurdesmers
quick tricks:
--wrap around if btn(0) then ship.x=(ship.x+127)%128 end if btn(1) then ship.x=(ship.x+1)%128 end more generally, ship.x=(ship.x+128+dx)%128 --walls if btn(0) then ship.x=max(0,ship.x-1) end if btn(1) then ship.x=min(ship.x+1,127) end --(127 for a pixel, 120 for a simple sprite) more generally ship.x=mid(0,ship.x+dx,127) |
Thanks @ultrabrite, I've already put this into use
Thanks for the inspiration!
thanks ltpitt, but that would be harder to edit (there was 128 instead of 127 (or 120) in the snippet above) ^_^
here's my go at it.. I want to make the enemies a little more interesting... but for now it feels pretty good.
@codyloyd: Love the changes, And that soundtrack has chops. <3
The shot spread was a nice touch too, As was the star warp effect.
Posting what I got so far from my own tinkering with it here:
Still lots to do from cleaning up my collision routines onwards but I'm just happy I found the single missing letter that had my collision routines not working as intended. (The joys of late night programming.. X.x)
I like my energy bar. It was originally going to count from 1 to 100 but I ended up going with 1-10.
UPDATE!
Working on it a bit more on its own thread in the WIP section, But it's playable as the demo was so far.. Very basic.
It prints out an error while i was doing collision 3
"attempt to index local 's' (a nil value)", Any ideas why?
TIA!
Hi guys!
First of all, @ztiromoriz, thanks for your amazing tutorial.
I finished my game based on it. Please, see below
Here's the source for each step: https://github.com/ztiromoritz/pico-8-shooter/tree/master/p8
How do you increase the enemies that spawn? I'm talking about the game made with the tutorial. I'm trying to make a difficulty progression but I can't identify which variable or line of code controls how many enemies spawn. All I need is the variable or line of code that controls the enemies spawn and what I need to change to increase the enemy spawn.
I think it’s this one: https://github.com/ztiromoritz/pico-8-shooter/blob/master/p8/tut_16.p8#L34
I searched for 'enemies' and found this 'respawn' function.
Hi!
I followed the gifs and found that I learned a lot from them. Especially the collision system seems like a very neat and rigid way of doing things. I added a small function for drawing the collision boxes as well that helped me visualise some of the syntax errors I was having.
One thing that I did find annoying was the lack of scrubbing on gifs. Sometimes I needed to see a part for a bit longer and it was annoying to have to wait for the whole gif to repeat. I ended up downloading all fo the gifs when I was halfway through and making an mp4 out of them all stitched together for the ease of use.
Thank you so much tho! I really appriciate this :)
Yo, thanks for the tutorial. It still works even on more recent versions of Pico-8. <3
[Please log in to post a comment]