I'm working on the topics for picoscope 2017 (in april). I love to code, so I will speak about about tables, object oriented programming, using functions in variables, converting arguments to an array (and an array to arguments), events...
You will find samples in these cartridges.
The last event we were involded, was a great success (Roc'n Stick in Niort, France).
Pictures of the PICO-8 workshop, march 25th
I hope I will see you in the next coming weeks ;-)
I_EDITOR is a programming game. The goal is to write simple scripts to reproduce a drawing on screen. The commands used in the scripts move a pointer (“turtle”). The pointer has a pen, which can be up or down. When the pen is down, each move lays a print. There are additional instructions to make calculus, evaluate conditions and call previous declared sequences. The syntax and semantic are organized in language called I_CORE.
Now you can download the manual !
Le manuel en français est disponible.
Try to reproduce the blueprints or play with the sandbox...
I will add a score and more blueprints soon ;-)
In the main menu:
Choose a blueprint or the sandbox (up/down, x)
In the editor:
Choose the command in the first column (up/down, x) or return to the main menu (o)
Change column (left/right)
Change the value in the second colum (x, then left/right to decrease/increase)
Delete instruction in the second colum with (o)
Have a look on i_core thread to have more explanation about the language "I".
I will make a tutorial soon and post a link and additional information here.
:A 20 FD 90 TR ; :B 1 - # A ?B ; 4 B
CLR : clear
<CP : copy from clipboard
>CP : copy to clipboard
Copy the line below into the clipboard
:a 10 fd 90 tr ; a a a a
Paste in PICO-8, then activate <CP
Clipboard functions (<CP,>CP) aren't working in HTML exported cartridge.
Copy from notepad (text in the html browser may contain tag or additional characters)
WARNING : This is not (yet) a game. It's a strange thing (only) for programers.
This cartridge includes i_core and the turtle extension.
It shows how to:
- bind a personal extension (turtle object, turtle binding) to the language core engine,
- initialize the external extension and call its methods (from PICO-I and i_core)
- pass parameters from PICO-8 to i_core (N).
The turtle extension includes the following commands:
- FD forward, 20 FD
- BD backward, 20 BD
- TR turn right, 90 TR
- TL turn left, 90 TL
- CL change color, 1 CL
- PU pen up, PU
- PD pen down, PD
- TO go to, 10 10 TO
- HD head to (0 right, 90 top, 180 left, 270 down), 0 HD
':loop 20 fd <a tr 1 - # ?loop ; :side >n 360 <n / >a <n loop ; cls 4 side'
Have fun ;-)
This is the core engine of a language ('I') and its virtual machine (all of this in PICO-8).
You can extend this engine (see how _SHW or _CLS are implemented).
You can create synonyms for a simplier use (see ADD and +).
The programs must be writen in a line. Terms are separated by space.
The engine is stack based (like forth): '5 4 + .' => shows 9
The operators + - * / and flr function are available.
The '#' duplicates the last value (of the stack).
You can evaluate (5 + 4) (3 + 2) with '5 4 + 3 2 + .' => 45
Create a sub function
:NAME <sequence of instructions> ;
':A 5 4 + ; :B 3 2 + ; A B * .' => 45
You can call the sub function NAME with its NAME (see A and B in the sample).
Create SQUARE and evaluate 3^2:
':SQUARE # * ; 3 SQUARE .' => 9
If the last value in the stack isn't zero it calls NAME else it goes to the next instruction.
This is usefull to create tests and loops:
':SA # . 1 - ; :LP SA # ?LP ; 5 LP 0 .'
Count down from 5 to 0 (then stop).
You can use variables:
>NAME (load value from stack)
<NAME (push value in the stack)
'1 >A <A <A + .' =>2
You can use many :EVAL call to enter your program (one line per call).
You can use as many i_core engines as you want at the same time (object).
You can execute the whole program (:EXEC) or run it :STEP by step.
:STATE returns 3 when done. You can restart with :STATE(0).
If you have read the description so far, you may have a question.
This sounds crazy... So, why?
I'm working on two games. In the first you have to build a program by stacking graphic items to draw on screen to replicate a drawing with the minimal amonth of items. In the second, some robots fight together using genetic algorithms to evolve (by sharing part of their own code to create new ones).
I think I can share this library and my interest in doing this.
picoscope101.fr where mad things come to life...
I'm on this since a couple of hours done on several days. I have a lack of time for the jam.
I will improve as I can but I submit like it is. I hope you will be kind enough to play with it.
Follow the radar indication. Shoot but don't be hurt. You have only one life.
The levels change each time the game is played.
With PICO-8 0.1.6, you can now programming using OOP design. This sample use setmetatable to build a constructor.
Commencée, délaissée et finalement terminée...
Voici la documentation en français de PICO-8 : PDF.
Je vais progressivement compléter ce document avec mes notes, remarques et projets illustrant les différentes notions présentées (et d'autres selon l'humeur du moment).
We are organising a coding party in Nantes (France). You are welcome to join us in the workshops and for the game jam. All of this made with PICO-8.