Help me make a script for tutorials

Yes.

I had 30 minutes to think about this, and I have made up my mind.

Developers should not have to care how the data gets stored, as long as it gets stored.

I propose (and I am open to discussion) a templated Pokitto::Userdata class, that would be used as follows:

Pokitto::Userdata highscore; //create instance

highscore.token = "HISC"; //register a user-defined ID for this value, 4 bytes

highscore.save(); // permanently save (cached on EEPROM, duplicated on SD on game change)

game.display.print(highscore.value()); // returns value as integer type

EDIT: so what I am proposing is to turn the data fragments into objects that contain the methods of saving and retrieving them, making the EEPROM blocks /SD paraphernalia completely invisible.

Comments?

1 Like

Thank you. That woke me up - and I agree with your sentiment.

1 Like

looks good to me, as i understand it the user would not see anything of this but would still know his/hers highscore. So simple = good

2 posts were split to a new topic: Saving user data on EEPROM & SD - development discussion

Despite having GIMP installed I actually just use paint to make most my sprites. It might be lacking some features lacking but I like the simplicity, it makes it easier to work with a restricted colour palette.

The only time I use GIMP for making sprites is if I really need layers.

Obviously though Mac and Linux won’t have paint though, so maybe paint.net would be a good alternative. I’ve never used it myself, but I’ve heard good things about it.
(It runs on .NET so Linux and OS X would need .NET installed.)


I half agree, but the sad truth about programming is that generally you need to understand an underlying concept before you can achieve cool game stuff. For example, if you’re writing something where the enemies need to be able to find a path to the player then you can’t avoid learning the details of a pathfinding algorithm (e.g. Dijkstra’s algorithm, A*).

Framing it in a game would definitely make it easier for beginners though. A bit of carrot to go with the stick.

The main goal of this tutorial would be learning the concepts, the game is just a framing device. I personally learn much better when I can “connect the dots”, instead of just mastering how to make a dot… I don’t think I am alone in that (I have seen enough posts online along the lines “I read X, Y & Z, how do I now use it to make it into a game?”)

The goal of those tutorials is NOT to make next pokitto hotness, or even a “good” game. We are just trying to make something, something that you can see your progress. Monsters don’t need A* to move, they can just walk left X spaces, then walk right X spaces… and if someone wants their monsters to use pathfinding, we should show them how to search for answers.

I know that many of you probably come from CS or professional programming backgrounds. You are all much MUCH better programmers than I will ever be and I welcome your advice, but with this experience, I think you are overlooking the need for noob-friendliness, accessibility and how to hook someone on programming. It is easy to learn the bare-bone basics when you have a class or work that forces you to do it. When it comes to learning in your spare time, you need a lot of carrots, and seeing progress being made is a great carrot. Trust me, I have been there recently…

@jonne - As someone who is actually struggling to make a game in C, and just scraping by in lua and Python, I am very passionate about both learning and teaching how to use the Pokitto. If I can help in any way, if you need some gfx or even a sounding board, I will be happy to help!

3 Likes

Thanks! Wanna make a 2D vector drawing that we can use for making a Pokitto Fritzing component?
https://learn.sparkfun.com/tutorials/make-your-own-fritzing-parts

Fritzing is a system by which you can make diagrams on how to wire electronic parts together.

What we need is a front image of Pokitto with the connector header shown above in a kind of “cubism” way (showing two sides at once). I can do the actual Fritzing part, just need the GFX for it.

This is because @Pharap is making some cool tutorials and we could show them using Fritzing.

EDIT: what we basically need is this in a 2D vector

2 Likes

Hehe, was just going to ask if Fritzing component is basically the GPIO port :smiley: So thanks for the edit.

I will be glad to make it, will work on it tonight!

Do you need the pin labels and the text on the left?

No it should be just a simple thing.

I will send you some 2D projections (top, front) to make your work a bit easier

2 Likes

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.