How difficult is creating a game, for an absolute beginner?

Actually it should be #include <Arduboy2.h>.

This is a case where the OS makes a difference:
Windows won’t care because its filesystem is case-insensitive,
but Linux will because it’s case-sensitive.

You don’t have to use arduboy.print(F("...")),
both will work, but the F macro stores the string in ‘progmem’ and does some magic to make sure that the print function knows it’s in progmem.

This is a quirk of Arduino that you don’t have to worry about when programming C++ on desktop or other embedded systems (though other embedded systems tend to have their own quirks).

They’re called programming languages for a reason, they genuinely are a kind of language.
(Although I’d argue they’re easier to learn than most human languages, my Lua is better than my Japanese :P).

Programming is indeed difficult.
It gets easier as you learn - the things that used to be difficult become easy.
But the difficulty never goes away because the things that used to be ‘impossible’ then become the new ‘difficult’.

That’s why some people really enjoy it though - the challenge of getting a program working.
Each program is like a puzzle-ridden Zelda dungeon.

I think maybe determination is more important for a programmer than any other traits.
The effort you put in determines what you get out of it.
Work hard and you get super powers, give up and you get nothing.

1 Like

You can make the C++ bubble bigger while keeping the overlap bigger compared to C as well! Look (let me overdo it a little):


This says it all:

  • Absolutely most C++ won’t compile as C.
  • Absolutely most C will compile as C++.
  • There is a small subset of C that won’t compile as C++ => C isn’t a subset of C++.
  • There is a common C/C++ core that is very small compared to C++, but big compared to C.
  • C++ is much larger than C.
  • etc.


Searching the Internet I find similar pictures BTW:

I’d still say that slither should be at least slightly larger.

You have to account for every extra keyword in C++ being usable as an identifier in C (as you’ve pointed out before, there’s a lot of them),
C differentiating between struct A, union A and enum A,
flexible array members,
restrict qualifiers (very popular in modern C),
ye olde code that uses K&R function style,
jumps that skip initialisations,
and global const variables not marked extern when necessary in C++

If I search for “C and C++ overlap” I find a lot of fools who think C++ is a superset of C.

I also found the one you found, and this:

Which contains:

Which I’d say is probably fairer.

1 Like

I’d agree on this one :slight_smile: I don’t want to argue about seemingly minor details, but I think this may be more important than it seems because your original picture implies – and I don’t think it was intentional at all, you just focused on another aspect – that most C isn’t C++, which can put off, or at very least misinform a little, beginners who are deciding whether to start with C or C++, or who just want to get an idea of how things are. That’s why I felt like commenting here.

For the Arduboy there isn’t really a choice,
if you want to use Arduboy2 or any of the Arduino library then it’s C++.
(Unless you’re prepared to write a C wrapper for it all.)

Even if there was a choice, it’s a no-brainer,
C++ has too many useful features to pass up.

1 Like

The all C’ing eye?

Random text 20 characters is so annoying at times

1 Like