Help me make a script for tutorials

Sorry this is going to be a long one. :P
(Skip to the end if you want.)


I’ve been on both ends of that sort of thing so I know what that can be like, but usually people aren’t just being mean for the sake of it, they’re being cruel to be kind.

Being able to program also means being able to ‘fend for yourself’ (i.e. to work things out for yourself) at some point, and it’s easy to fall into the habit of “if I get stuck I’ll just get someone else to work it out for me”. Some people (even professionals) make a living just copying and pasting code and begging for help on the internet until they can get a half-working frankenstein program running without fully understanding how it works. Many decent programmers try their best to discourage this by forcing people to work things out for themselves. It may or may not be the best way to go about it, but ultimately it’s usually well intentioned.

I agree that it’s difficult to reach the point where you know how to glue bits together, but even with proper tuition it takes a while to get to grips with. There are things that can be done to help, but it’s more than just knowing techniques for gluing code together, it also requires first-hand experience.

Perhaps I didn’t get my point across quite right.

What I mean is that beginners have a tendency to want to avoid complicated topics or rationalise that they can get on without them, but anything worth having comes at a price and in programming that price usually involves understanding a theoretical topic before being able to put it into practice.

Even ‘walk left X spaces, walk right X spaces’ has theory behind it (i.e. state machines). For simple stuff it’s easy enough to get away with not knowing it, but there comes a time when the hard topics have to be discussed.

In early tutorials it won’t need to be considered as much, but later tutorials will unavoidably hit the ‘theory’ stuff and it’s going to need some inventive tackling.

Actually, I’m not a professional at all, I’ve never had a job being a programmer and 5 years ago I didn’t know the difference between a gigabyte and a megabyte.

Well written tutorials are helpful and I admit there’s a lack of those out there, but it’s also important to be determined and to not back down just because something looks dull. Everything that makes games fun is backed by a shed load of stuffy, boring mathematics written in latin by pompous dead people.


I’m not saying you’re wrong, I’m just saying it’s a hard task and it’s going to need a lot of coordination.

Importantly it’s not just about educating people about programming, there’s an aspect trying to cultivate the traits that a programmer needs, like problem solving and determination.

In the past I’ve seen people argue that programmers are actually problem solvers and programming languages are just a way to express the solution to a problem and while I don’t think it’s quite that simple, there’s some truth in that sentiment.

1 Like

I think there are many kinds of people. Some people like to study the basics first and some like to get their hands dirty right away. It is nearly impossible to make one tutorial for everyone. Nothing stops us to make many of them :slight_smile:

I personally like a tutorial which is simple and short but makes something fancy. When I was studying Unity3D some years ago I went through perhaps only one or two relatively short written tutorials. Then I just picked short pieces of information here and there. I also do not like long video tutorials. But that’s me. A lot of people like them, I am sure.

3 Likes

I agree that people need to be able to find answers themselves. I think our misunderstanding comes from different ideas about what this tutorial is supposed to be.

For me, it is supposed to be a newbie friendly thing to “hook” someone onto game programming. A good starting point. I assume there will eventually be an API explaining the everything without any fluff. All I can say, is such approach worked for me.

Anyway…

I personally prefer text based tutorials for programming. It allows me to take everything at my own pace. Not having to pause the video to read the code is also a big plus for me.

I think videos would work for overview of the various IDEs, but for programming I would prefer text with pictures as needed. We can always make a short video and have an expanded text under it, or even post the transcript.

2 Likes

My two cents, my personal taste:

I never appreciate a video tutorial. I like to read at mine own speed and fast forward, replay, pause when I need, in the simplest way possibile.

Some or most of the points are already in the wiki or in the forum. Often not so easy addressable or documented, but some of the points are very ambiguous to me and should be well marked. Those are:

  • Screen modes: how many are fully functional? Tiled mode?
  • How to create a new project? A medium project, with 10+ files, that both work in PokittoSim and EmBitz, easy to expand in both, easily maintainable with main lib fixes.
  • Library general picture: there’are a lot of ready made functionality that seems hide in the code: buttons trigger, delays, fixed point math, sound lib, target fps, physics. I don’t like to reinvent the wheel and sometimes I feel frustrated to lose lot of time searching something should be there.

I’ll be happy to write a small tutorial on use img2pok,
maybe also to improve it with more assets conversion format (svg, wave).

2 Likes

On the other side of things, I think there are some topics better served by a video tutorial. The pokitto assembly tutorial was very helpful because I could watch @jonne and realize that I could apply a little more force to the ribbon cable to plug it in. Up to that point I was just using the printed directions and couldn’t figure out how to get the ribbon cable properly connected because I wasn’t pushing it hard enough. Tutorials that benefit from showing something being done can benefit from a video.

3 Likes

Will ‘14. making & importing sounds’ go in depth on the synth side of pokitto?
I want to know how to control each of the oscillators as well as how much they are modulated by the effects and envelope. I’d also like to be able to use pots to control each of those settings.
Actually what is the max number of pots or buttons i could connect?

Theoretically its the number of GPIO’s in PEX, although there are various ways of connecting even more.

By my count that’s about 18, which might be enough.
A tutorial on the various ways of connecting more would be helpful.
I’m not definite but i’m expecting that i’m going to eventually want at least a few more ports.

I’ve started writing a very bare-bones rough draft of the tutorial(s) for programming for the PEX.

To be honest I kind of think the PEX deserves its own series because it’s not just as simple as ‘write 1/0’ and ‘read 1/0’, there’s digital input/output, analogue input/output, pulse width modulation and things I haven’t even begun to look at. The PEX really does make the Pokitto just as good for learning electronics as the Arduino is (albeit with a slightly less user-friendly programming pipeline, but it’s early days yet).

What does anyone else think?
Should the PEX be a small simple tutorial just discussing how to use the PEX from a programming point of view or should it be a series of tutorials that goes into a bit of basic circuit building as well?

2 Likes

I think some circuitry also. People are going to need to do both to use it effectively,

3 Likes

But why? If you go to mbed online, you don’t even need to install any programs. The online IDE is at least as good as the Arduino IDE. No board selections, no driver installs. No Com port selections. Assigning a pin is 1 line of code, changing state is 1 line of code.

I’m just interested know why you think so.

I’m using EmBitz rather than mbed online.
Aside from having not got round to setting up an account, I prefer having all my project files stored locally on my hard drive.
If my internet goes down (which it does sometimes) I can’t use mbed online, but I would still be able to use EmBitz.

At the moment setting up Pokitto for EmBitz consists of making a copy of the Pokitto Lib and editing the sample files. Ideally at some point I’d like to be able to have it so the Pokitto library is in one place and I can set up the header search directory like I would on a C++ project in Code Blocks or Visual studio (so I can #include <Pokitto.h> at the top), but again it’s still early days and I haven’t done much digging.

I’ve published the drafts.

They’re still very early drafts and aren’t very organised (and don’t have any pictures) but they sort of get the idea across.

Without the basic programming tutorials in place I’m having a bit of a job guessing how much I could expect the person reading them to be able to understand about the programming aspect, so I’ve made sure to comment everything in the code, even the basic bits.

Drafts are here and here.

2 Likes

This is a really great introduction video of Pico-8.

We should target the same level of integration and easyness in developing for Pokitto!

4 Likes

Sorry if @VonBednar was already doing this, but I had a bit of time spare so I made this:

https://github.com/Pharap/PokittoGraphics/blob/master/VectorGraphics/PEX.svg

I made it by hand (i.e. in Notepad++) because I couldn’t get on with Inkscape.

The values need tweaking a bit and I couldn’t get the text to go the other way around but it will suffice for a first draft.

Edit:
Managed to get the text to match up with the original.

Since .svgs can’t be uploaded to the forums, here’s a .png rasterised by GIMP:

Edit:
Looks like @VonBednar had already made a better one, but no matter, at least we have a labelled vector diagram for other purposes now.

1 Like

Sorry @Pharap, I should have kept you in the loop.

If you need any changes to the vector I made - let me know. I can find some time on the weekend to do tweaks :smiley:

And for everyone else, here’s the pokitto I made for fritzing:

5 Likes

It’s fine, I literally threw it together in a few hours (I already knew how to make an .svg). Mine isn’t quite a fritzing component anyway. It was going to be - the whole reason I randomly decided to make it today was because I wanted to make a Fritzing diagram to use on the tutorial I’m writing.

(I started making a fritzing file (again from scratch because for some reason I get on with writing XML better than learning a new UI) but didn’t get very far).

If @jonne hadn’t asked me if I had a Twitter account I probably would have only just found out now because normally I don’t look at Twitter, I just stick to the forums. Speaking of which you should make a Wiki post about how to use the new Pokitto Fritzing component in Fritzing (i.e. do we have to manually add it, is it already in their database etc).

1 Like

I’ve taken the preliminary pictures for the next PEX tutorial which will focus on DigitalIn.

Originally I was planning to make the code just do:

if(button0.read() != 0)
{
    game.display.print("Button pressed");
}
else
{
    game.display.print("Button released");
}

But it’s a bit hard to get the text and the button in the camera frame at the same time, so I was thinking about maybe making the screen change colour. I can’t get the fillScreen function to work though, I’ve tried feeding it palette indices (0 and 1) and I’ve tried feeding it colours converted to RGB565 but neither seemed to work.
(I suspect I’m missing a step somewhere, like setting the screenmode or something.)

I think this discussion would be illuminated by replacing the words “beginners” and “people” with “children” in all of the comments above–and then ask whether this is realistic to ask of all but the most dedicated children. (I realize Pokitto is also totally fun for adults, but there’s kids in the marketing materials) Kids want to have fun. I’d say let them start with frankenstein code if that’s how they want to start out, and get excited about having made something, and only later fall into tweaking with the motivation of finding out how each bit works, why it works like that or how to make the monsters do something more exciting :slight_smile:

I’ve followed various hardware projects “making code fun for kids!” that take the “it’s also important to be determined and to not back down just because something looks dull” route, which end up having a (often rapidly depleting) user base of 99% adults in the end. :smiley:

The main question is whether the point is to train kids to become professional programmers, or to spark their curiosity and improve their general understanding of what software even is in the first place.

1 Like

I am 100% in agreement with you.

Today 4 tutorials added. Follow the links on pokitto.com/programming, then just press “Import to Compiler” on the Pokitto Community Team repositories pages and you’re good to go!

More stuff coming soon!

3 Likes