Log In  

Hello !!

I'm learning to code, but I quickly find myself getting sidetracked by trying to implement things I haven't seen in the games I've played yet, and ultimately, I end up wasting a lot of time starting over.

I would like to hear your thoughts on Pico-8, what has helped you progress the most? Was it blind development like I'm attempting without any prior experience? Did you follow tutorials or take courses? Did you look at the code of a game you like to try to understand and learn from it?

Specifically, if you were to start Pico-8 programming today with the hindsight you have now, how would you begin?

Thanks in advance.

P#146229 2024-04-10 03:47

I think that learning programming for Pico-8 is the same as learning any skill. You have to start small and basic with a goal to learn all the elemental concepts (variables, loops, if statements) and some Pico-8/game dev specific concepts (collision, camera, map, sprite animation). I think it is important to keep expectations low and not waste your best game ideas while you don't have the skill to implement them properly. The best way to learn is to make incrementally more complex games and experience as much hardship as possible. For me, it was important to finish something to have a sense of accomplishment and receive feedback on it, as it helped to keep me motivated. On the other hand, I would say it's good to approach these early projects as mere stepping stones with a similar attitude to homework and to put in only the effort they deserve.

And shout-out to the best learning resources: https://nerdyteachers.com/PICO-8/Bitesize_Games/

P#146236 2024-04-10 05:08

hello

Well, I started with the nerdy teachers platformer tutorial. I kinda didn't understand anything, I just copied the code from the video. At places, I could understand I did. Don't worry if you don't get everything.

After I had the platformer, I just started modifying the game. I wanted to make different things that I couldn't. Which resulted into very messy and inefficient code. But I slowly started learning. One thing I could really recommend you, is to ask questions. You don't need to figure out everything, ask others as well.
I'm sorry that's all that came to my mind, but we learn in different ways.
But I can tell you some stuff I did wrong.

  • having too many ideas. At some point I got stuck, I had like 6 games I started, but I also worked on them
    simultaneously

    which resulted in them still not out, I've got like 5 games I'm working on.

  • try everything. I tried making tiny games/things. Mostly stuff like tweet carts or small cool animations. But
    I also enjoy making games, it just takes longer to make a game.

  • just do it. If you're stuck in a loop where you don't know how to start and look for help, etc. Then just start. Open
    the Pico 8 manual and read it, I think it has like a starter project, to get you going. The manual also has a lot of
    thing that would be impossible to know otherwise.

  • the most important thing, have fun :)
P#146244 2024-04-10 06:35
1

Honestly, I think the most important thing is to just finish something. It doesn't have to be an amazing, award-winning game, but once you've finished one, you get the idea that you can do it again. Even if your first game is not the one you thought you'd make, that process will teach you things to bring into your next game, and it all kind of snowballs from there.

P#146263 2024-04-10 11:26
2

In my case, it's the differences between LUA/pico-8 and other languages and libraries I used before that tripped me the most :

pico-8 and LUA seem to assume that however crazy what you're asking may seem, the programmer knows what he is doing and crazy instructions must be followed without warning :
tab[1.0001]=4 works
tab[-12]=3 works
tab[false]=3 works
tab[sin]=53 works (using a native function as an index !!!)
Calling a function with the wrong number of parameters works.
There are situations where all of these might be of use, but most of the time, it's just that you made a mistake.

The solution : assert

you compute an index ? assert it is in range and an integer.
you compute a distance ? assert it's positive.
you write a function with a fixed mandatory number of parameters ? assert the parameter types and their numbers.
Crashing the game ASAP when something is wrong is much better than getting weird untraceable bugs.
asserts are easy to write, and really save you lots of debug time.

After all that, it's still easy to mix things and forget that clip() works in screen pixels but map() is affected by camera().
It's very easy to have calls do nothing due to errors in previous camera/clip/pal/palt calls.
The solution when nothing happens on screen :
printh
The console is your friend.
you can replace native functions with wrappers that printh their parameters before calling the real native functions.
That can be super helpful to find where the errors in parameters are.

P#146271 2024-04-10 12:36 ( Edited 2024-04-10 12:37)
1

Buy a rubber duck for debugging purposes. Sounds dumb but occasionally it helps

https://en.m.wikipedia.org/wiki/Rubber_duck_debugging

P#146276 2024-04-10 13:47 ( Edited 2024-04-10 13:49)

Slightly different perspective: Are you enjoying it?

Pico-8 is a fun platform to play with. It would be a shame to spoil that by pressuring on yourself to learn faster or "finish" a game.

There are some good tutorials around if that's your thing. Or digging around in somebody else's code and seeing what you can make it do can be interesting.

Otherwise it sounds like you're probably more-or-less doing what I would be doing.

P#146351 2024-04-11 11:22

[Please log in to post a comment]