Python-Spielplattform für Kinder erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
GabrielleChanel
User
Beiträge: 22
Registriert: Dienstag 13. April 2021, 11:54

Freitag 16. April 2021, 08:51

Ich möchte eine eigene kostenlose interaktive Python Spielplattform für Kinder erstellen. Ich möchte, dass der User zuerst den Code nicht sieht und einfach nur spielen kann und danach kann dieser den Code sehen und modifizieren. Wie gehe ich da am besten vor und an was muss ich alles denken?

Beispielsweise enthält meine Spielplattform folgende Programme:
- Zeichenprogramm mit turtle
- Memory-Spiel
- Sudoku
- ein Wörterlernspiel (greift zufällig auf Wörter und deren Definition zu)
- evtl. ein Python-Interpreter, um damit zu spielen und Sachen selber auszuprobieren

Alle Programm sind in Python geschrieben. Es muss möglichst robust sein und beim Gebrauchen und Erweitern nicht kaputt gehen. Und ich sollte problemlos immer neue Programme hinzufügen können. Es soll ähnlich wie XML-Code EXTENSIBLE und einfach anpassbar sein.

Da alles kostenlos sein sollte, möchte ich darauf aufbauen auch nur kostenlose Möglichkeiten dafür verwenden. Welche Webseite(n) eignet/n sich dafür?

Jeder Hinweis hilft, ich würde mich über Feedbacks und Ratschläge freuen.
Vielen Dank im Voraus.

PS. Erstmals will ich es nur auf Deutsch machen, später ein paar andere Sprachen manuell hinzufügen und in weiter Zukunft dann Sprachfunktionen integrieren, die qualitativ und semantisch-korrekt in weitere Sprachen übersetzen.
"Those who can imagine anything, can create the impossible." Alan Turing
Sirius3
User
Beiträge: 14428
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 16. April 2021, 09:29

Du willst also eine IDE programmieren, die speziell für Spiele angepasst ist.
Da wäre ja der erste Einstieg, sich IDLE anzuschauen.

Auf der anderen Seite willst Du eine Spieleplatform haben, wo man sich Spiele nachladen kann? Über eine Web-Seite?
GabrielleChanel
User
Beiträge: 22
Registriert: Dienstag 13. April 2021, 11:54

Freitag 16. April 2021, 09:56

@Sirius3 Vielen Dank für deinen Vorschlag. Also nicht "nachladen" kann, sondern direkt auf der Webseite drin: Spielcode modifizieren. Der Nutzer kann aussuchen, ob er sich im "Entdeckermodus" (Spiele spielen ohne jeglichen Code zu sehen) oder ob er im "Kapitänmodus" (Spielcode ansehen und sogar modifizieren kann) befinden will. Es soll alles direkt auf der Webseite geschehen, damit die Kinder oder deren Betreungsperson nicht noch Python oder irgendwas anderes herunterladen müssen, noch Speicher auf dem Rechner freihaben müssen usw. Der Nutzer sollte nur eine Internetverbindung benötigen. Vielleicht integriere ich später eine "Spielcode herunteladen"-Option, wenn der Nutzer es auf dem eigenen Rechner haben will, aber momentan geht es noch nicht um weitere nützliche zusätzliche Funktionen.
"Those who can imagine anything, can create the impossible." Alan Turing
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 16. April 2021, 10:15

Dann ist Python eh die falsche Wahl. Der Browser spricht nur JavaScript. Der Server *kann* in Python geschrieben werden, aber weil es ja auch umsonst sein muss, ist auch das eher unwahrscheinlich machbar. Stattdessen einen PHP Hoster nehmen.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
GabrielleChanel
User
Beiträge: 22
Registriert: Dienstag 13. April 2021, 11:54

Freitag 16. April 2021, 10:35

@__deets__ Vielen Dank. Also mit einem PHP Hoster oder JavaScript kann ich eine Webseite erstellen und dann darin Pythoncode für die "Spiele" verwenden?
"Those who can imagine anything, can create the impossible." Alan Turing
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 16. April 2021, 10:55

Nein. Eben kein Python. Browser verstehen kein Python. Es gab mal pyjamas als „Transpiler”, aber das sind alles keine wirklich tragfähigen Konstrukte. Wenn es nur um Browser laufen soll, ist Python raus. Wenn du aber eh deine eigene, freundlichere Sprache haben willst, ist es ggf wert einen Blick auf Blockly zu werfen. Das gibt’s auch für JavaScript.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
GabrielleChanel
User
Beiträge: 22
Registriert: Dienstag 13. April 2021, 11:54

Freitag 16. April 2021, 11:00

@__deets__ ok vielen Dank. Ich überlege mir also nochmals die weiteren Schritte und melde mich ansonsten nochmals bei dir.
"Those who can imagine anything, can create the impossible." Alan Turing
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 16. April 2021, 11:39

Alles klar. Tut mir leid, dass ich da keine besseren Neuigkeiten habe.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
Zizibee
User
Beiträge: 212
Registriert: Donnerstag 12. April 2007, 08:36

Freitag 16. April 2021, 12:34

Weiß jemand, wie die das zum Beispiel auf https://codecombat.com/ gemacht wird? Da kann man eine Spielfigur über Python Code durch Gänge steuern und Gegner angreifen lassen.
Benutzeravatar
__blackjack__
User
Beiträge: 8573
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Freitag 16. April 2021, 15:15

@Zizibee: Das ist kein echtes Python, die benutzen einen Transpiler der Python in JavaScript übersetzt. Codecombat ist ja auf Github als Quelltext zu finden. Das ist überwiegend in CoffeeScript geschrieben. Und wenn man da nach "Python" sucht, findet man Code der die JavaScript-Bibliothek `Aether` verwendet, und die scheint dann wiederum Skulpt zu verwenden. Das ist eine Python 2-Implementierung (an 3 wird gerade gearbeitet) in JavaScript.
“Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”
nezzcarth
User
Beiträge: 1288
Registriert: Samstag 16. April 2011, 12:47

Freitag 16. April 2021, 15:49

So, wie es beschrieben wurde, stelle ich es mir als Mischung zwischen einem dieser WebDesktops, die irgendwann mal "in" waren (z. B. EyeOS) und Jupyter Notebook vor. Vielleicht könnte man tatsächlich was auf Basis von Jupyter Notebooks versuchen? Der Python-Code wird dann, wenn ich das richtig verstehe/sehe, Serverseitig ausgeführt (ich konnte mit Jupyter Notebooks bisher nicht wirklich etwas anfangen). Da braucht man natürlich auch entsprechende Kapazitäten für und muss sich generell viele Gedanken um eine saubere, sichere und performante Architektur machen. Vielleicht eher nichts für ein Hobby Projekt?
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 16. April 2021, 16:48

Vor allem benoetigen Notebooks einen verhaeltnismaessig leistungsstarken Server. Nicht den hier gewuenschten moeglichst-umsonst-Server. Und wenn man den haette, ist sowas wie "turtle" natuerlich trotzdem nicht verfuegbar. Weil auf Desktop-Ausgabe gemuenzt.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
Zizibee
User
Beiträge: 212
Registriert: Donnerstag 12. April 2007, 08:36

Freitag 16. April 2021, 20:21

@__blackjack__: Danke für die Info. Das klingt erstmal stark ums Eck rum umgesetzt. Aber wenn es keinen direkten Weg gibt, muss man sich wohl zu helfen wissen.
Antworten