Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Test zu SmileBASIC - Nintendo 3DS

  • Deutschland Deutschland: SmileBASIC
Plattform
Nintendo 3DS
Erscheinungsdatum
17.08.2017
Vertrieb
SmileBoom
Entwickler
SmileBoom
Genre
Sonstiges, Anwendung
Spieleranzahl
Lokal: 4 - Online: 4
Besitzt du dieses Spiel?
Anmelden
Magst du dieses Spiel?
Jetzt kaufen und ntower unterstützen
eBay

Programmieren auf einem Nintendo 3DS-System

Von Marco Kropp ()
Viele Menschen, die gerne eigene Spiele entwickeln wollen, können nicht programmieren. Sie haben zwar all diese tollen Ideen, doch es mangelt oft an der Umsetzung. Meist kommt es zu einer Idee, dann schnappt man sich eine Engine, fügt die Modelle oder Grafiken ein und dann scheitert man am Programmieren. Oft verstehen diese Personen nicht, was es heißt, die Zeilen zu schreiben und die Prozesse zu entwickeln, die hinter der schicken Grafik in den Videospielen stehen. Wenn man mit Programmieren beginnen möchte, kann man den Informatik-Unterricht in der Schule besuchen. Meist wird dort die Programmiersprache PASCAL oder C gelehrt. Diese imperativen Programmiersprachen sind im Vergleich zu den objektorientierten Sprachen wie C++, C# oder Java einfacher zum Einstieg. BASIC ist eine dieser imperativen Programmiersprachen und SmileBoom aus Japan dachte sich, eine Software für den Nintendo 3DS zu entwickeln, mit welcher man in BASIC programmieren und sogar seine eigenen Spiele erstellen kann.

In der Programmierumgebung wird auf dem Touchscreen die Tastatur abgebildet, während man den Quellcode im EDIT-Modus oben sieht.

Doch wie genau macht man sein eigenes Spiel in dem Programm SmileBASIC? Nun ja, man wählt im Menü "Create Programs with SmileBASIC" aus und dann kommt man direkt in die Programmierumgebung. Auf dem oberen Bildschirm wird der Kommando-Bildschirm (im DIRECT-Modus) oder der Quellcode (im EDIT-Modus) abgebildet, während unten auf dem Touchscreen die Tastatur abgebildet ist, wo man auch eine Schaltfläche findet, um zwischen DIRECT- und EDIT-Modus für den Quellcode zu wechseln. Im zuletzt genannten findet der ganze Spaß des Programmierens statt. Was man bei dem Einstieg in eine Programmiersprache fast immer macht, ist die Ausgabe eines Wortes oder eines Satzes, ganz beliebt ist "Hello World". In BASIC ist dies ganz simpel, denn man schreibt PRINT "Hello World!". Während des Tippens werden euch über der Tastatur bereits Befehlsvorschläge angezeigt, sodass ihr auch schnell PRINT auswählen könnt. Die Anführungszeichen implizieren, dass es sich hier um einen Character-String handelt, einer Zeichenkette von Buchstaben, Ziffern und anderen Symbolen, die man jedoch nicht zum Rechnen nutzen kann. Um eine Variable numerischen Typs, also Zahlen mit einem Wert, auszugeben, schreibt man beispielsweise BSP=12 (an dieser Stelle folgt ein Zeilenumbruch) PRINT BSP. Dadurch wird auf dem oberen Bildschirm im DIRECT-Modus 12 zu lesen sein. Dann könnte man im selben Modus auch gleich einmal das Programm speichern, mit einer der schon vorgefertigten Schaltflächen mit dem Titel SAVE. Dann taucht dieser Befehl auf und ihr tippt den gewünschten Namen ein, wie zum Beispiel SAVE"EINS". Dies speichert das Programm unter dem Namen EINS.

Beginnend von hier kann man sich dann der Entwicklung weiterer Programme zuwenden. Zum Beispiel einer Schleife, wo man einen Wert pro Schritt immer um eins erhöht. Hier habe ich mal ein Stückchen Quellcode für euch eingefügt. Die Sachen, die hinter einem ' stehen sind Kommentare und werden vom Programm, zumindest für den Rest der Zeile ab diesem Zeichen geltend, nicht beachtet:

Quellcode

  1. B=12 'Der Variable B wird der Zahlenwert 12 zugeordnet
  2. REPEAT 'Beginn der REPEAT-UNTIL-Schleife
  3. INC B 'INC erhöht den Wert der Variable B des numerischen Typs stets um den Wert 1
  4. PRINT B 'Gibt den Wert von B aus.
  5. UNTIL B==15 'Endbedingung: Die Schleife wird solange ausgeführt, bis sie die Bedingung erfüllt.
Es gibt natürlich auch die WHILE-WEND- sowie die FOR-TO-STEP-NEXT-Schleife in BASIC. Ich habe die obige ausgewählt, weil sie die Bedingung erst zum Ende des jeweiligen Schleifendurchgangs überprüft und nicht zu Beginn. Die obige Schleife sollte also 3 mal den Wert von B, also 13, 14, 15 ausgeben, da die INC-Anweisung vor der Ausgabe erfolgt. Würde sie danach erfolgen, hätten wir als Ausgaben die Zahlen 12, 13 sowie 14 gelesen. Natürlich könnte man die FOR-TO-STEP-NEXT-Schleife verwenden, wodurch das INC B nicht zum Einsatz käme, da man bereits zu Beginn der Schleife im Schleifen-Befehl selbst die Erhöhung oder die Reduzierung der Zählvariable definiert, wie im folgenden Beispiel:

Quellcode

  1. FOR B=12 TO 15 STEP 1 'erhöht zu Beginn jedes Schleifendurchlaufs den Wert von B um 1, bis er 15 erreicht
  2. PRINT B 'Gibt den Wert von B aus.
  3. NEXT 'Hier endet die Schleife
Hier wird B aber viermal ausgegeben, beginnend bei 12 und endend mit 15. Ihr seht, man muss sich also für die passende Schleife entscheiden, je nachdem, was man umsetzen will.

Ich könnte jetzt noch viel mehr schreiben, zum Beispiel über mathematische Operationen und den Ablauf dieser sowie über die IF-Fallunterscheidungen, doch dies ist ein Test der Software und kein Lerntutorial. Dieses ist zwar auch im Programm enthalten, jedoch leitet diese Schaltfläche weiter zum Internet-Browser. Dort findet ihr in einer schönen (englischen) Geschichte in Dialog-Form eine Einleitung zur Nutzung der Software und zum Programmieren. Auf der Internetseite zum Spiel fand ich auch eine Auflistung aller möglichen Befehle in SmileBASIC samt deren Eigenschaften. Diese druckte ich mir aus und wie es sich im Verlauf des Tests herausstellte, war diese sehr hilfreich. Auch die Anleitung fand ich in PDF-Form und brachte diese mit Hilfe eines Druckers ebenfalls zu Papier. Dies war vorteilhaft, wodurch ich gleich alles neben meinem New Nintendo 2DS XL parat liegen hatte und nach den richtigen Befehlen schauen konnte. Dies half mir auch, das komplette Ausmaß an Fähigkeiten des Programms zu erkennen. So konnte ich beispielsweise eine Sprite-Grafik durch Gyrosensoren auf dem Bildschirm in vier Richtungen bewegen lassen, je nachdem, wie ich meinen New Nintendo 2DS XL geneigt habe. Meinen Quellcode habe ich als Screenshot weiter unten eingefügt, falls es euch interessiert.

Ein von mir erschaffenes Beispiel (oben) mit der Ausgabe (unten). Das Programm macht nichts anderes, als die Eiswaffel zu bewegen und sie per Gyrosensor etwas in eine von vier Richtungen zu lenken.

Ich sollte an dieser Stelle erwähnen, dass das Programm nicht nur für simple Mathematik-Programme ausgelegt ist, sondern auch für 2D-Spiele. Ein integrierter Sprite-Editor, das SMILE TOOL MENU, lässt euch so eigene kleine 16x16-Pixel-große Sprites erschaffen sowie bereits vorhandene bearbeiten und auch nutzen. Es ist auch möglich damit Hintergründe zu erstellen, die Sprites zu animieren und mit einer Sinus-Kurve Sounds zu erstellen. Die Befehle und eine Anleitung dazu, findet ihr in eben angesprochener Befehlsliste sowie in der Anleitung. Sogar einige Beispielprogramme, inklusiver mehrerer Spiele verschiedener Genres sind enthalten. Somit kann man sich deren Programme auch mittels des Editors leicht anschauen. Nur ob man wirklich bereit ist, auf seinem Nintendo 3DS-System über 1000 Zeilen Code durchzugehen, ist fraglich. Zwar hilft einem die Suchen-Schaltfläche, nur ob man dann das Richtige findet, ist eine andere Sache. Auch würde ich persönlich, wenn ich Spiele entwickeln wollte, dies viel lieber am PC machen. Zumindest ich könnte mich nicht mit mehr als 100 Zeilen Code in einem Programm auf dem New Nintendo 2DS XL zurechtfinden. Doch wer den Ehrgeiz besitzt, kann sich gerne mehrere Stunden lang der Software widmen. Ohne Planung, was ihr genau machen wollt und ohne Programmierkenntnisse dürfte dies schwer fallen. Da die Eingabe des Codes auf dem Touchscreen erfolgt, ist es etwas mühselig. Man kann zwar einzelne Zeilen kopieren und an anderer Stelle einfügen, auch bekommt man bei Fehlern eine entsprechende Meldung inklusive der Zeilennummer. Doch das hinfinden dort ist, je nach Länge des Programms, auch etwas umständlich. Es besteht auch die Möglichkeit seine Programme zu veröffentlichen und andere herunterzuladen, nur erfolgt das über die Plattform von SMILEBASIC und jeder kann den Programmcode, wenn er das Projekt heruntergeladen hat und die Software hat, einsehen. Ein Übertragen auf den PC oder die Veröffentlichung im Nintendo eShop ist meines Wissens nach nicht möglich. Auch benötigt ihr einen Public Key, einen Code des Programmes, welches ihr herunterladen wollt, wenn es sich nicht um eure eigenes handelt. Ihr könnt diese nach Belieben in die Cloud laden und benötigt dafür nur eine Nintendo Network ID.

Ansonsten hat man sehr viele Mittel mit SmileBASIC zur Hand. Neben den angesprochenen Gyrosensoren könnt ihr auch das Mikrofon nutzen, genauso wie den 3D-Effekt, wenn euer Nintendo 3DS-System 3D hat und kein Nintendo 2DS oder New Nintendo 2DS XL ist. Auch einen Grafikbildschirm habt ihr zur Verfügung, wo ihr beispielsweise mit GLINE 0, 0, 399, 239 eine Linie erzeugt, die von der oberen linken Ecke des Bildschirmes zur unteren rechten Ecke läuft. Dabei sind die Koordinaten wichtig, denn der Bildschirm, welcher 400x240 Pixel misst, hat die Pixelkoordinaten von 0 bis 399 (X-Achse) beziehungsweise von 0 bis 239 (Y-Achse). Also benötigt ihr vier Angaben in diesem Befehl, den Anfangspunkt mit den beiden Werten für die X- und Y-Achse sowie den Endpunkt mit ebenfalls zwei Werten. Um die Linien zu löschen, muss man den Grafik-Bildschirm leeren und zwar mit GCLS. Das einfache CLS zum Bereinigen des Bildschirmes (im DIRECT-Modus selbstverständlich) funktioniert in dem Falle der Grafik nicht. Auch Musik lässt sich per Code programmieren. Mehr zu den Möglichkeiten wie gesagt in der (elektronischen) englischen Bedienungsanleitung und der Befehlsliste.

Unser Fazit zu SmileBASIC

Meinung von Marco Kropp
SmileBASIC erlaubt es, euch etwas im Programmierbereich auf dem Nintendo 3DS auszutoben, doch ist die Software nicht für jeden. Entweder hat man bereits einige Vorkenntnisse im Bereich der imperativen Programmierung oder man liest sich aufmerksam die Anleitung, Befehlsliste sowie gegebenenfalls Tutorials durch. Auch das Analysieren kleinerer Programme sollte hilfreich sein. Ansonsten ist die Software eine sehr gut funktionierende Entwicklungsumgebung, die euch viel ermöglicht, aber auch durch BASIC einige Einschränkungen hat. Im Endeffekt obliegt es euch, was ihr für Dinge erschaffen wollt. Aus diesem Grund verzichten wir auf eine Wertung, da das Programm zu viele unterschiedliche Anwendungsmöglichkeiten bereithält, die sich schlecht in einer Zahlenwertung abbilden lassen.
Mein persönliches Highlight: Wenn ein selbstgeschriebenes Programm endlich mal das macht, was es soll.

Kommentare 19

  • KingDDD Turmheld - 29.08.2017 - 19:56

    Ich glaube durch die geringe Bildschirmauflösung hielte ich es keine 30min durch darauf zu programmieren ;)
    Aber ansonsten eine tolle Idee, käme sowas auf die Switch (inkl Tastaturunterst.) würde ich auch mal was programmieren & teilen
  • Juan Naym Turmheld - 29.08.2017 - 20:21

    Schade nur das ich nicht mit einem Touchscreen programmieren kann und der 3DS nicht so passend dafür wirkt. Auch wenn das eine ziemlich beeindruckende IDE ist für so ein Teil

    Und eigentlich komisch das BASIC angeboten wird aber nicht C++ . Ich meine die ist viel Hardware näher, mächtiger, passender für Spiele. Ist halt um einiges schwerer als BASIC, aber wäre dann immerhin ziemlich legit.

    Und wirklich PASCAL oder C im Informatik Unterricht? Wir hatten damals HTML mit CSS und etwas JS. Python oder Java sind auch noch populär, aber C und PASCAL wirken etwas unpassend.
  • Marco Kropp auch Ubisoft- & Koei Tecmo-Fan - 29.08.2017 - 20:29

    @Juan Naym HTML und CSS sind keine Programmiersprachen. Ich schrieb auch von imperativen Programmiersprachen und bei mir wurde PASCAL unterrichtet, weswegen ich dies als Beispiel nannte. Ich kenne Schulen, da wird C oder Java gelehrt. Im Endeffekt ist es vom Lehrenden abhängig, welche Programmiersprache er versucht zu vermitteln.
  • SilverGalaxyX Turmheld - 29.08.2017 - 20:56

    Informatik angeboten xD Wir wurden dazu gezwungen haha
  • Juan Naym Turmheld - 29.08.2017 - 20:56

    @Marco Kropp Das ist schon klar, aber das war halt war wir im Kontext von wegen Entwicklung und dann JS gelernt haben. Und wie schon gesagt, das habe ich bei den Schulen so mit bekommen

    Das mit den imperativen macht Sinn, kenne mich bei denen nicht so gut aus als C++/Python Typ der momentan C# lernt
  • Loco4 It all started with the NES - 29.08.2017 - 21:05

    Wäre es denn möglich das spiel gorilla zu programmieren?

    Wers nicht kennt:
  • I_AM_ERROR #Who's bad? - 30.08.2017 - 01:24

    Zitat von Juan Naym:

    Und wirklich PASCAL oder C im Informatik Unterricht? Wir hatten damals HTML mit CSS und etwas JS. Python oder Java sind auch noch populär, aber C und PASCAL wirken etwas unpassend.
    Wir hatten ebenfalls PASCAL - ein Jahr lang. Im Folgejahr gings mit DELPHI weiter (ist die objektorientierte Windowsversion von Pascal).


    @Loco4
    Kann man(n) ja leicht ausprobieren. PS: Neben GORILLA.BAS gab es noch das NIBBLES.BAS
  • Norkos ~ Der letzte Optimist ~ - 30.08.2017 - 06:57

    Zitat von I_AM_ERROR:

    Wir hatten ebenfalls PASCAL - ein Jahr lang. Im Folgejahr gings mit DELPHI weiter
    Ich hoffe das ist länger her als 10 Jahre. Mal abgesehen davon das Delphi kommerziell ist (man muss für die IDE bezahlen) sind beide Sprachen einfach tot. Da hilft auch nicht FreePascal. Auch der Umstieg zu anderen Sprachen ist nerviger weil die Syntax doch anders aussieht als die C-Artigen (Java, Javascript, PHP, C#, Go, ...).

    Mein Tipp für Anfänger: Java. Einfach und sicher - und man lernt eine saubere objekt orientierte Programmierung. Mit Javascript hat man zwar schnelle grafische Ergebnisse aber wirklich lernen tut man da wenig.

    Beim mir wars so: nach ein wenig rum experimentieren (Pascal&C++) hatte ich in der Schule C++, war aber wenig brauchbar. Richtig gelernt habe ich es dann im Studium. Angefangen hats mit C - was einen auch echt die Grundlagen beibringt. Aber da muss man schon Interesse für haben sonst wirds schnell frustig.
  • KingDDD Turmheld - 30.08.2017 - 07:01

    Nicht Java, gibt kaum etwas so umständliches! Ich würde mit etwas modernem beginnen, wie C# oder Swift ;)
  • Norkos ~ Der letzte Optimist ~ - 30.08.2017 - 07:14

    Zitat von KingDDD:

    Nicht Java, gibt kaum etwas so umständliches! Ich würde mit etwas modernem beginnen, wie C# oder Swift
    Naja was heißt umständlich - mann muss recht viel schreiben. Man muss aber dazu sagen das Java extrem verbreitet ist und man ohne Schwierigkeiten auch noch in 10 Jahren einen Job finden wird (und man vermutlich auf jede Frage im Netz eine Antwort findet). C# ist immer noch in der Windows "Niesche", ich bin auch skeptisch ob Mono wirklich erfolgreich sein wird. Würde es C# zwar können (gefällt mir auch) aber zukunftssicher ist es nicht.

    Zu Swift kann ich noch nicht viel sagen - ist aber aktuell noch voll in der Hypeblase. Aber der Fokus auf iOS/MacOS ist doch schon wieder mist.
  • MAPtheMOP Besserwisser-Boy - 30.08.2017 - 08:18

    @Norkos
    In den Schulen hast du aber keine Wahl. Da kann man teilweise froh sein, wenn der Lehrer überhaupt "programmieren" kann. Es gibt Schulen, da hat der schlechteste Schüler mehr drauf als der Informatiklehrer. Und natürlich lernt man dann eben das, was der Lehrer während seines Studiums oder einer Fortbildung vor 100 Jahren gelernt hat. Und das sind i.d.R. heute unbrauchbare Dinge. Selbst HTML/CSS wird in jeder Schule, von der ich das weiß, in uralten Versionen gelehrt, die moderne Browser gar nicht mehr so einfach unterstützen. Da aber die Schul-PCs meist älter sind als die Schüler, passt das ja dann wieder. Ein installierter IE6 oder FF4 kann eben noch kein HTML5 :D
  • I_AM_ERROR #Who's bad? - 30.08.2017 - 08:23

    Zitat von MAPtheMOP:

    Da aber die Schul-PCs meist älter sind als die Schüler, passt das ja dann wieder. Ein installierter IE6 oder FF4 kann eben noch kein HTML5
    Ist es (immer noch) so schlimm an deutschen Schulen?

    Die digitale Neuland Situation scheint noch anzuhalten. Während meiner Schulzeit mussten sich in den PC Räumen ca. 25 bis 30 Rechner einen(!) ISDN-Zugang (64 KB/s) teilen.
  • Marco Kropp auch Ubisoft- & Koei Tecmo-Fan - 30.08.2017 - 08:45

    @I_AM_ERROR also bei meiner ehemaligen Schule wurde modernisiert (weiß ich von einem 12-Klässler dort), aber sie haben immernoch PASCAL und sind jetzt von Turbo Delphi zu Lazarus gewechselt.

    @Norkos Ich finde, man sollte immer mit einer imperativen Programmiersprache anfangen und, wenn man mit objektorientierten beginnt, auch richtig erklären oder verstehen, was das heißt. Mit Java habe ich bereits abgeschlossen, weil ich den sprung dahin im Studium nicht wirklich verstand und nur mäßig klar kam. Aber wie ich schon schrieb (und auch im Test): Es kommt darauf an, was man erreichen und umsetzen will. Mit BASIC in SmileBASIC kam ich sehr gut zurecht, da es ja auch ein einfaches Konzept ist, doch wer wirklich eigene Spiele kreieren will, sollte vielleicht zu einer anderen Engine/Entwicklungsumgebung wechseln.

    Habe zwar noch im Laufe meines Studiums mit C++ und C# hantiert, aber objektorientiert werde ich vermutlich nicht mehr programmieren, auch weil ich nicht die Programmierungsschiene fahren werde, da ich mehr Medien- und UX-orientiert bin.
  • Norkos ~ Der letzte Optimist ~ - 30.08.2017 - 11:02

    @Marco Kropp

    Das erste mal als ich mit mit OOP beschäftigt habe blieb ich auch daran hängen weil ich nicht verstand "Warum man das macht" immerhin kann man auch alles ohne umsetzten. Da das nur neben der Schule war hatte ich natürlich auch keine Motivation dafür mich da reinzuknien. Verstanden habe ich OOP dann erst im Studium. Grade für größere Projekte ist meiner Meinung nach OOP Pflicht, einfach weil es lesbaren und gut Strukturierten Code ermöglicht. Ohne OOP versucht man entweder das Rad neu zu erfinden oder strukturiert seine Programme gar nicht, beides endet im Chaos :D

    Übrigens sind "OOP-Sprachen" wie Java oder C# auch imperative. Ich glaube was du meinst ist "Prozedurale Programmierung", aber der Begriff ist eher schwammig. Du wirst ja deinen Code auch jetzt schon in Funktionen/Subroutine unterteilen, OOP geht da einfach noch einen Schritt weiter und strukturiert (kapselt) Funktionen und Daten.

    Deswegen versteh ich auch moderne Sprachen wie Go oder Rust nicht - zu mal dann immer wieder versucht wird rudimentäre Eigenschaften der OOP dann doch irgendwie zu Implementieren (Structs, Traits).

    @MAPtheMOP
    Oha, wie gesagt hatte ich gehofft dass Delphi auch in den Schulen endlich ausstirbt :)
  • MAPtheMOP Besserwisser-Boy - 30.08.2017 - 11:39

    @Norkos
    Das stirbt erst aus, wenn die Lehrer dahinter aussterben...
  • Loco4 It all started with the NES - 30.08.2017 - 11:45

    Zitat von I_AM_ERROR:

    Kann man(n) ja leicht ausprobieren. PS: Neben GORILLA.BAS gab es noch das NIBBLES.BAS
    ich kann sowas nicht. :D

    daher hätte es mich einfach interessiert, ob smilebasic mindestens die Funktionen von qbasic hat und sich somit das spiel umsetzen liese.
    Gorilla (nibbles ist durch snake und co ja leider schon jahre ausgelutscht :P ) aufm 3ds wäre schon lustig für zwischendurch.
  • Marco Kropp auch Ubisoft- & Koei Tecmo-Fan - 30.08.2017 - 16:20

    @Loco4 Ich kenne das Spiel nicht, ob mans umsetzen kann weiß ich deswegen auch nicht. Es gibt einige 2D-Spiele, die dort Mittels Sprites umgesetzt wurden, mit verschiedenen Funktionen (auch Mehrspieler-Titel).

    Aber deinen Screenshot deutend, würde ich mal ja mit nem Fragezeichen dran schreiben.

    Ansonsten hier die besagte Liste der Befehle: smilebasic.com/en/reference/
  • Dirk Apitz Dr. Pepper - 30.08.2017 - 16:59

    Bin auch dafür dass Schüler und co mehr an die Computer gebracht werden auch mit Fächern zum Thema Medienkompetenz etc, Umgang usw..

    Ob aber jeder Schüler wirklich die Programmiersprachen brauch, wage ich dann doch zu bezweifeln.
  • I_AM_ERROR #Who's bad? - 30.08.2017 - 17:18

    Zitat von Marco Kropp:

    @Loco4 Ich kenne das Spiel nicht, ob mans umsetzen kann weiß ich deswegen auch nicht. Es gibt einige 2D-Spiele, die dort Mittels Sprites umgesetzt wurden, mit verschiedenen Funktionen (auch Mehrspieler-Titel).

    Aber deinen Screenshot deutend, würde ich mal ja mit nem Fragezeichen dran schreiben.

    Ansonsten hier die besagte Liste der Befehle: smilebasic.com/en/reference/