Ok, so you are a beginner in programming / gadgets / graphics


#1

If you are a beginner, don’t worry.

Everyone begins somewhere. Besides, being a beginner is a good place to be: everything you do will improve your skills. There are few things in life that are as satisfying as learning new stuff.

Pokitto is a device developed from scratch by someone who had never designed a PCB before and did many other things the first time in their life, like starting a Kickstarter campaign. You decide to do something, get information about it and learn. That’s it, no secret to it.

Manuals, tutorials and guidance will be made available. A big part of my motivation in creating the Pokitto was to share this cool gadget with the world. And teaching goes with that mission.

If you are a beginner and have just joined in:

please have faith in us and yourself. We will improve the documentation, create tutorials and talk to you, and I guarantee you’ll get the hang of things.

Meanwhile you can write about things you are interested in learning here, and we’ll make a note of them and try to focus first on lessons and tutorials that interest the community.


#2

I am really glad to hear that. I am pretty much a beginner. I started toying with Pico-8 and I am close to finishing my first game, but I am eager to learn a new language and try some more gadgety things.

As for me, I would love to see a simple game tutorial to get hang of things. In a perfect world it would explain each step as talking to someone who never programmed.

On the gadgety front, I would love to see how to use some simple components and GPIO to make some simple hardware gadgets (like a thermometer). Something akin to things found in the 1980s usborne book Experiments with your computer (that can be downloaded for free on the bottom of that website). Even translating some of the experiments from that book to Pokitto would be awesome.

I am also curious about adding modules to Pokitto to be used in games (the wolf3d “joystick” seen on kickstarter would be a good example). I would love to learn how write some simple games that could use a microphone or gyroscope. Things like that.

EDIT: Just read on Kickstarter that you are considering adding a scripting language on top of C++ . I would recommend lua, mostly because after the success of Pico-8, more and more people are using it for gamedev.


#3

I second @VonBednar’s request: a step-by-step tutorial, possibly with a wiki-style setup so that other users can ask questions or comment would make a great learning resource.

My own experience making games goes back to 1989, when I was spending my summer making sprites pixel by pixel and moving them (and learning a lot). What I really missed back then was the bigger picture: the game logic and architecture. Would love to return to that journey.

In that context, I have recently acquired a copy of Game Programming Patterns by Robert Nystrom. It is a very good read and helps to get a good architecture in place, using game-oriented design patterns: “You will learn how to write a robust game loop, how to organize your entities using components, and take advantage of the CPUs cache to improve your performance. You’ll dive deep into how scripting engines encode behavior, how quadtrees and other spatial partitions optimize your engine, and how other classic design patterns can be used in games.”


#4

Agree with both above:

  1. Lua would be a great scripting choice
  2. The game logic and big picture architecture is often a mystery

For example, there are tons of tutorials about variables and loops and functions, but almost no tutorials on how to take all that and make a linearly expressed text file (top to bottom, which implies things happen in sequence) which actually makes one game character animate and run one way while other game characters SIMULTANEOUSLY run another way and maybe other things are going on too. It’s mindwarping for a beginner.

Or what parts of a game program do what, eg EXHAUSTIVE inline comments. In plain English, here would be the beginning of a Pokitto program:

  • Pokitto! We’re going to use your library for this, ok?
  • Pokitto! We’re making a game called “game”.
  • Game! Pay attention to everything inside these brackets as long as you’re running.
  • Game! Keep these variables, we’ll refer to them later!

etc :slight_smile:

This may seem silly to anyone slightly more advanced, but if this is designed with kids in mind, there is no such thing as an explanation that is too simple or friendly.

Finally, documentation should be searchable by what you want to do, vs just the names of functions.


#5

Game Programming Patterns looks excellent, instabuy!


#6

@spongefile I read all the input you’ve given, thank you for that. I like that people give first impressions, because they are the honest truth of the situation.

I do not think the main problem is that we are lacking material. The community has made quite a bit of tutorials and software considering the age of the project. It is more that all that material needs to be put in a better structure. This will be done.

Setting up a project in mbed online compiler is really easy : you only have to press “import” and you’re done. We must remember that all programming tools require some sort of steps to get started. This is also a process that needs to be described in a better way


#7

Setting up mbed is easy. (I actually think the existing tutorial for that is fine.) I’m talking about the moments after that, when you’re staring at a blank IDE, trying to figure out what to type into it :slight_smile:

EDIT: I’ve been playing around with ways to show code structure to total beginners. Imagine if you could mouseover the following image and have it explain what each part you touch did:


#8

What I am personally confused about is the multitude of different programming environments. mbed sounds cool and I’ll likely create an account. As a linux user I usually install a toolchain and use whatever editor I have at hand. For embeded its a bare metal toolchain and the base libraries.
I had installed codeblocks to try the simulator, but I don’t understand why I would need a different ide to get pokitto binaries.
For this particullar microcontroller this does not look easy though - no arduino ide support, I did not found a gcc download yet (only their eclipse bundle).


#9

Completely command line interface (Linux is best for this)

and

https://os.mbed.com/teams/Pokitto-Community-Team/

and

Bare metal export (Make & GCC) :


#10

Awesome! Thanks.


#11

@jonne, I’ve got some trouble with the commandline builds:


Let me know if you know whats my mistake. Anyway, it is not blocking, since the web-builds work.


#12

The problem is the linker flags from the mbed export

You should only have -Wl,-n as linker flags , all the rest are unnecessary crap


#13

‘Fixed’ it (that is got it to work, by hacking the generated Makefile)!


#14

As an almost complete novice I like the look of this!

Loving my Pokitto but I want to get going with it and am currently battling the beginnings of C++.
Trying to find some decent tutorials / books has not been too great so far ;/


#15

Start from this example:

https://os.mbed.com/teams/Pokitto-Community-Team/code/HelloWorld/

Then take a look at basic graphics (commented in Finnish, I will add english version soon)

https://os.mbed.com/teams/Pokitto-Community-Team/code/Ympyroita/

Take a look at how buttons are used in this simple drawing program

https://os.mbed.com/teams/Pokitto-Community-Team/code/Piirtely/

When you are done with those, you are already pretty well on your way.

Come back here then and we will set you up with more!


#16

Thanks Jonne :+1::sunglasses: