Hi everyone! I'm new


(Alejandro Ayuso Muñoz) #1

Hello. I’m a new programmer and I’m interested on buying an arduboy. I only know to program on Java and I don’t know what languages use the games of the arduboy. It’s difficult to learn them? Do you recommend me to buy an arduboy? I have one more question. The arduboy has a on/off button or how it turns on/off?

Thank you everyone :slight_smile:


(Boti Kis) #2

Hi Alejandro and welcome to the community!

Games for the Arduboy are developed in C++ and knowing some other programming languages is handy.
It does have an ON/OFF switch on the top.

You don’t need an Arduboy to develop Games for it since there are some Emulators. The most common is Project ABE by @FManga.

To learn how to make your first game i can recommend you the Tutorials by @crait and the Tutorials by @filmote.

Have fun and ask if you need some help!


#3

YES, the language is mainly C++.
But it is different from the C++ you would use to, say, program…
Minecraft (a computer software) uses C++ (also available in java)

YES, java helps. (I came from java too.) They look very similar and many things are similar altogether (like datatype void) :handshake:

In the Arduino IDE however, it seems that you can use both C(classical C) and C++. Some #C syntax are also legal(not an error).

Go ahead and start from the tutorial (as mentioned above), then do great things! (trust me you can, because I did some)


(Pharap) #4

From the perspective of someone who knows both Java and C++.

They are similar in places, but also quite different.

The basic differences:

  • The basic constructs (for, while, if, else) are almost exactly the same.
  • Both have a concept of classes, but classes behave differently.
  • Both have variables but they behave differently.
  • Both have enums but they behave differently.
  • C++ doesn’t have interfaces, but its classes can be made to behave almost exactly the same

The more fundamental differences (don’t worry if you don’t understand many/any of these):

  • Java is garbage-collected, C++ is not
  • Java compiles to JVM bytecode executed on a virtual machine, whereas C++ compiles straight to machine code *
  • Java’s variables are usually ‘references’ by default, whereas C++'s variables are the actual values
  • Java puts nearly everything on the heap, C++ puts nearly everything on the stack or in registers
  • Java generics use type erasure, C++ generics use templating

* For the pedantic technophiles: technically speaking this is a generalisation, but discussing the other possibilities like the Dalvik VM and Clang + LLVM would vastly over complicate things


The original version of Minecraft was written in Java, it’s only the later versions that use C++.

Obviously though, Minecraft is quite beyond the Arduboy’s capabilities due to various hardware constraints.


A few clarifications:

void is not a datatype. It is the absence of a type.
A function marked void returns no value.
A pointer to void is a pointer to a block of memory that doesn’t have a type.

The IDE does not accept C#.
It might appear to accept C# syntax, but only the subset of C# syntax that is also a subset of C or C++, and in almost all cases the semantics (i.e. the meaning/behaviour) will be different.


(Boti Kis) #6

He told you so probably to simply things for you and probably meant that void is used like a datatype.

But @Pharap is correct and you can do so quick research on it. You quickly will find that void can be used instead of any datatype to indicate, that there is no type. Another difference to datatypes is that you can’t create a variable of void.


(Simon) #7

Welcome aboard Alejandro,

Have a go at the tutorials that were mentioned and you will be have few problems. Having a Java background will be very helpful but occasionally you will pull your hair out and say ‘but this works in Java’. Its at that point you will realise that some of the differences that @Pharap pointed out are super important and sometimes subtle.

You can write complex games without ever needing to write a class but I encourage you to stick with it and question whether you can apply the OOP techniques you have learnt in Java to C++. At the end of learning C++ on a restricted environment like the Arduboy you should become a better Java programmer!

Again, ask questions and have fun!


(Alejandro Ayuso Muñoz) #8

Thank you everybody for your time. I’ll read about it and start programming a new game. When I have enough money, I’ll buy an arduboy.
Thx :smiley:


#9

Hmmm… :thinking:
Because I wasn’t here UNTIL I GOT my Arduboy…
You can always message someone to have them check the code for you, if you can’t test it with your Arduboy (since you don’t got it yet…)
@crait’s first tutorials are very helpful and can get you started. (although I tinkered around a few program examples, it was Crait’s tutorial that put things together.)
I wasn’t writing serious code that does things until I read that. (although in my Computer programming class we DID do some code, but those canmot run outside a IDE.)