Indeed, I am somewhat surprised at that.
If the same is true for GBAs then I may seek a replacement battery cover.
(Though whether or not I’ll find one in platinum remains to be seen.)
I have other thoughts on the Game Boy related commentary,
but if I start replying to that we’ll inevitably end up going off topic.
It would be better to discuss it in a PM or a new thread in the off-topic section.
That’s good. Planning ahead is an underrated skill.
(Especially planning for worst-case scenarios.)
An admirable attitude.
I take a similar stance, though from the other side of the fence.
I prefer to assume less knowledge and risk ‘insulting someone’s intelligence’ by stating the ‘obvious’ than to assume someone already knows something and run the risk of someone feeling embarrassed because they don’t know something.
There’s a set of words I never thought I’d see together.
I’d recommend starting with that one since it’s probably the easier of the two to get into a ‘completed’ state.
They don’t have to be, but it helps in some cases.
Different drawing functions handle sprites/bitmaps differently,
and some assume that the sprite’s height is a multiple of 8 because of how the data format works.
The Arduboy’s screen has quite an odd image format where each 8-bit byte represents a vertical column of 8 pixels. The full screen image is then made of
4 rows 8 rows of 128x8-bit columns.
Images are stored in the same format to save processing power and memory (because drawing them in the native format uses fewer CPU instructions), but some drawing functions support means of ignoring the excess pixel data, and drawing functions that support transparency make it easy to make the excess transparent.
That wouldn’t have been a catastrophe because the language rules still apply.
Not having access to the standard library is an unusual situation, but it’s perfectly possible to live without it.
Parts of it wouldn’t be useful anyway.
For example, many of the data structures rely on dynamic memory allocation, which is only practical when a decent amount of memory is available.
(I’d say you’d probably need RAM on the order of megabytes for dynamic allocation to be used in a reasonable way, though it can be used on smaller amounts if it’s used very sparingly.)
If you plan to take up desktop programming at any point then I’d suggest learning about the standard library anyway, and learning C++ through ‘normal channels’.
My stance on books is complicated.
Some people swear by them, but I haven’t read that many actual programming books. Not so much because I’ve avoided them, but because that’s just how things panned out. I’ve always been able to find enough information online that I’ve never really felt inclined to buy a book, particularly as I don’t really have anywhere to keep them and because they tend to be quite expensive.
Personally speaking I’ve read precisely one physical C++ book, which wasn’t very notable. Everything else I’ve learnt from online resources and practice, or by applying prior knowledge acquired from learning other languages.
(C++ was technically my fourth programming language.)
If you do, I’d suggest not publishing them until later in the game, and to have them proofread first.
Sometimes you may think you’ve understood something only to later realise you didn’t have the full picture, and that might be reflected in what you write in a tutorial.
That I’m not surprised about.
Writing a whole program in assembly isn’t impossible, it’s just horribly tedious and somewhat error prone.
The Game Boy’s CPU was a modifed Z80 and people had been writing Z80 code for quite a while prior to that so I expect it wasn’t hard to find people with the necessary experience.
As far as I’m aware, some Game Boy Advance games were also written in assembly (or at least partly in assembly).
(I think at least parts of Pokemon and Mother 3 were from what I know.)
To make a somewhat limited analogy:
Writing a whole program in assembly is like trying to mow the lawn with a pair of nail scissors.
Programming with C is like trying to mow the lawn with an old-fashioned non-motorised push mower that falls apart if you mishandle it.
Programming with C++ is like programming with a properly motorised mower,
but there’s several extra control panels that only power users understand and the manual is very thick.
If you need any more information about licences, feel free to ask.
By the way, you can reply to more than one message by quoting someone’s post. On desktop you can just highlight a selection of text and a ‘quote’ button should appear next to it. I’m not sure if the same applies to smartphones - I don’t actually own a smartphone.
You can also edit your existing comments to add more information.
If you haven’t read it yet, have a read of this:
Yes, fortunately it can.
Personally I am of the opinion that a proper keyboard is better for programming with than a touchscreen keyboard.
You can test compiled code on ProjectABE if you don’t want to be trying to upload to the Arduboy whilst on-the-go.
However, actually compiling the code is the biggest issue.
Personally I’m not aware of any way to compile Arduino code on an Android device.
(As mentioned before, I don’t actually own a smartphone.)
I expect it’s possible assuming avr-gcc has been ported to Android, but I don’t know any specifics.
Assuming a Surface 3 has an x86 CPU and runs more or less like standard Windows then that should be easier to get up and running.
I think the time constraints are going to be your biggest issue (there’s only so much you can get done in an hour), hence you’ll probably need to plan what you intend to read about and learn about beforehand. I.e. have an actual lesson plan.
Either that or try to do the majority of what you need to do on the weekends and do things like sprite editing and planning on your bus rides.
It’s possible but you have to be careful about how it’s done.
By default the game will probably be running 60 updates per second, which is faster than typical human reaction times, so you’re likely to register a single button press before the player has managed to press both buttons.