Forum: PC-Programmierung Spieleprogrammierung mit C, Objective C, C++


von newgear (Gast)


Lesenswert?

Hallo zusammen, ich interessiere mich für die Spieleprogrammierung und 
da kommt man anscheinend an C++ nicht wirklich vorbei (wenn man das 
nicht gerade mit einer Engine oder Java machen will).

C++ soll aber so komplex sein, dass es lange dauert es verinnerlicht zu 
haben, C dagegen kann man anscheinend sehr schnell erlernen. In C gibt 
es soweit ich weis keine Klassenunterstützung. Aber ich habe mal was von 
C mit Klassen oder objective C gehört. Wird ein Klassenkonzept 
mittlerweile vom aktuellen C Standard unterstützt? Was ist objective C 
genau? Taugt C für die Spieleprogrammierung?

Gruß newgear

von Klaus W. (mfgkw)


Lesenswert?

newgear schrieb:
> Aber ich habe mal was von
> C mit Klassen oder objective C gehört. Wird ein Klassenkonzept
> mittlerweile vom aktuellen C Standard unterstützt?

Ja, das heißt dann C++.
(Ist dann natürlich nicht mehr C.)

In C ist es ineffizienter, größere Sachen zu machen, auch wenn letztlich 
alles in C geht was auch in C möglich ist.

Man hat die Wahl...

: Bearbeitet durch User
von C-lover (Gast)


Lesenswert?

Klaus W. schrieb:
> auch wenn letztlich alles in C geht was auch in C möglich ist
meine Rede! ;)

von René F. (Gast)


Lesenswert?

newgear schrieb:
> Was ist objective C genau?

Objective-C ist eine objektorientierte Programmiersprache wie C++, 
welche ebenfalls eine Obermenge von C ist. Objective-C ist aber eher in 
der Anwendungsentwicklung für Apple-Geräte relevant.

von Rolf M. (rmagnus)


Lesenswert?

newgear schrieb:
> Hallo zusammen, ich interessiere mich für die Spieleprogrammierung und
> da kommt man anscheinend an C++ nicht wirklich vorbei (wenn man das
> nicht gerade mit einer Engine oder Java machen will).

Was für Spiele?

> C++ soll aber so komplex sein, dass es lange dauert es verinnerlicht zu
> haben, C dagegen kann man anscheinend sehr schnell erlernen.

Kommt drauf an, was du schon kannst. Aber ja, C++ ist vom Sprachumfang 
her erheblich größer. Man muss allerdings nicht zwangsweise die gesamte 
Sprache kennen, um ein einfaches Spiel zu programmieren.

> In C gibt es soweit ich weis keine Klassenunterstützung.

Richtig.

> Aber ich habe mal was von C mit Klassen oder objective C gehört.

"C mit Klassen" war der Grundstein für das, was man heute C++ nennt.

> Wird ein Klassenkonzept mittlerweile vom aktuellen C Standard
> unterstützt?

Nein, wozu auch?

> Was ist objective C genau?

Eine weitere objektorientierte Sprache, die auf C basiert.

> Taugt C für die Spieleprogrammierung?

Klar. Viele Spiele sind in C geschrieben. Da sich objektorientierte 
Konzept aber gut für die Spieleentwicklung eignen, nimmt man heute eben 
lieber Sprachen, die das direkt unterstützen, wie eben C++.

von newgear (Gast)


Lesenswert?

Klaus W. schrieb:
> In C ist es ineffizienter, größere Sachen zu machen

Performancetechnisch oder vom Aufwand her gesehen?

Rolf M. schrieb:
> Was für Spiele?

Erstmal 2d Plattformer und Jump and Run. 3d wäre wohl noch zu weit 
hergeholt.

Wie siehts aus mit C#? Ein Nachteil sind sicher die Abhängigkeiten zu 
den Frameworks.

von Einer (Gast)


Lesenswert?

Im Prinzip ist die Programmiersprache egal. Nimm eine die Du schon 
kennst, und programmiere Dein Spiel.

Falls Dein Spiel mehr als ein Proof-Of-Concept wird, sind die Probleme 
auf die Du treffen wirst keine Sprach-Probleme, sondern 
Architektur-Probleme.

von Rolf M. (rmagnus)


Lesenswert?

newgear schrieb:
> Klaus W. schrieb:
>> In C ist es ineffizienter, größere Sachen zu machen
>
> Performancetechnisch oder vom Aufwand her gesehen?

Vom Aufwand her. Am Ende wirst du es sehr wahrscheinlich 
objektorientiert programmieren. Während C++ dich dabei unterstützt, 
musst du das in C "zu Fuß" machen, da die Sprache selbst dir dafür keine 
Mittel zur Verfügung stellt.

> Rolf M. schrieb:
>> Was für Spiele?
>
> Erstmal 2d Plattformer und Jump and Run. 3d wäre wohl noch zu weit
> hergeholt.
>
> Wie siehts aus mit C#? Ein Nachteil sind sicher die Abhängigkeiten zu den
> Frameworks.

Kann man natürlich auch verwenden. Wichtig ist, dass du erst mal 
allgemein die Grundlagen der Programmierung kennst. Das brauchst du 
unabhängig von der Sprache.

von newgear (Gast)


Lesenswert?

Rolf M. schrieb:
> Kann man natürlich auch verwenden.

Hört sich so an als ob C# eher zweite Wahl ist.

von Dussel (Gast)


Lesenswert?

Einer schrieb:
> Im Prinzip ist die Programmiersprache egal. Nimm eine die Du schon
> kennst, und programmiere Dein Spiel.
So würde ich es auch sehen.
Da es ja wahrscheinlich nicht um ein kommerzielles Spiel geht, ist die 
Wahl der Sprache relativ egal. Ich würde wohl was einfaches nehmen.
Da es kostenlose Engines gibt, die man auch durchaus verwenden kann, 
wären deren Anforderungen eventuell auch zu berücksichtigen.

C würde ich nicht nehmen. Wenn die Entscheidung auf eine Sprache aus der 
C-Familie fällt, dann schon C++. Den '++'-Anteil muss man ja nicht 
nutzen, er erleichtert aber vieles, wenn man ihn doch benutzen will. C 
ist zwar nicht komplett eine Teilmenge von C++, aber die Überscheidung 
ist doch ziemlich groß.
Eine von C++ inspirierte Sprache ist noch Java. Über Java kann man 
diskutueren, aber es ist schon angenehm, weil es relativ C-ähnlich ist, 
aber dem Programmierer zum Beispiel das Speichermanagement abnimmt.

von chris_ (Gast)


Lesenswert?

>> In C ist es ineffizienter, größere Sachen zu machen

Linux ist in C programmiert und ist sehr groß:

https://github.com/torvalds/linux

von walter (Gast)


Lesenswert?

In C# hat VisualStudio eine Unterstützung für Spieleentwicklung mit 
Unity

von Sonnenschein (Gast)


Lesenswert?

chris_ schrieb:

> Linux ist in C programmiert und ist sehr groß:
>
> https://github.com/torvalds/linux

Ja genau, dem entsprechend funktioniert es auch... :-) An allen Ecken 
und Kanten super gut... bei den Omas der Nerds... :-)) ROFL...

von Ulrich (Gast)


Lesenswert?

Sonnenschein schrieb:
> Ja genau, dem entsprechend funktioniert es auch... :-) An allen Ecken
> und Kanten super gut... bei den Omas der Nerds... :-)) ROFL...

Naja, es läuft im endeffekt auf den meisten Servern und auf jedem 
Android smartphone. Also ich würde sagen es funktionert. Oder kannst du 
mir ein OS mit weiterer Verbreitung nennen?

Einer schrieb:
> Im Prinzip ist die Programmiersprache egal. Nimm eine die Du schon
> kennst, und programmiere Dein Spiel.

Das kann man nur voll unterstützen.

von auswanderer (Gast)


Lesenswert?

Spiele programmiert man heutzutage nicht auf Basis der nackten 
Betriebssystemschnittstellen. Schau dir verschiedene Game Engines an, 
und such die raus was am besten passt - es gibt z.b. Engines die eher 
ihren Schwerpunkt auf 2D, Platformern, etc. haben und in Richtung 3D 
erweitert wurden, oder 3D Engines die in Richtung 2D, Pixelgrafik etc. 
erweitert wurden.
Ueber diese Engines ergibt sich dann oft welche Sprachen in Frage 
kommen. Ich wuerde mal behaupten C kannst du komplett vergessen. Du 
wirst bei einigen Engines bei C++ landen, wobei der eigentlich 
performancekritische Teil in der Engine liegt. Wenn ich z.B. die Wahl 
zwischen C++ und C# habe, dann waere C# meine erste Wahl. 
Abhaengigkeiten zu Frameworks sind kein Nachteil....die machen den 
Unterschied ob du z.B. mal eben eine XML Datei lesen oder mal eben eine 
REST API aufrufen in ein paar Zeilen Code machst, oder ob du dir Tage 
einen Wolf schreibst.

von TriHexagon (Gast)


Lesenswert?

Sonnenschein schrieb:
> chris_ schrieb:
>
>> Linux ist in C programmiert und ist sehr groß:
>>
>> https://github.com/torvalds/linux
>
> Ja genau, dem entsprechend funktioniert es auch... :-) An allen Ecken
> und Kanten super gut... bei den Omas der Nerds... :-)) ROFL...

Wie bitte? Linux ist Musterbeispiel eines Softwareprojekts. Performant, 
gut dokumentiert, state-of-the-art (ok mal abgesehen vielleicht von der 
Monolithischen Architektur), hervorragende Qualität des Quellcodes etc.. 
Es sind die eingepflegten Treiber, die den Kernel so fett machen. BTW 
Windows Kernel und BSD Kernel (Mac OSX) sind ebenfalls in C geschrieben, 
also was war nochmal das Argument?

von TriHexagon (Gast)


Lesenswert?

auswanderer schrieb:
> Spiele programmiert man heutzutage nicht auf Basis der nackten
> Betriebssystemschnittstellen. Schau dir verschiedene Game Engines an,
> und such die raus was am besten passt - es gibt z.b. Engines die eher
> ihren Schwerpunkt auf 2D, Platformern, etc. haben und in Richtung 3D
> erweitert wurden, oder 3D Engines die in Richtung 2D, Pixelgrafik etc.
> erweitert wurden.
> Ueber diese Engines ergibt sich dann oft welche Sprachen in Frage
> kommen. Ich wuerde mal behaupten C kannst du komplett vergessen. Du
> wirst bei einigen Engines bei C++ landen, wobei der eigentlich
> performancekritische Teil in der Engine liegt. Wenn ich z.B. die Wahl
> zwischen C++ und C# habe, dann waere C# meine erste Wahl.
> Abhaengigkeiten zu Frameworks sind kein Nachteil....die machen den
> Unterschied ob du z.B. mal eben eine XML Datei lesen oder mal eben eine
> REST API aufrufen in ein paar Zeilen Code machst, oder ob du dir Tage
> einen Wolf schreibst.

Genau das. Wer ernsthaft an der Spieleentwicklung interessiert ist und 
weniger an das Programmieren an sich, sollte unbedingt eine fertige 
Engine verwenden, ansonsten kommt dabei eher weniger Vorzeigbares raus. 
Eine komplette Eigenentwicklung ist wenig zielführend, aber zumindest 
sehr lehrreich. Für Einsteiger ist die Unity Engine zu empfehlen, dort 
hat man mit C# zutun. In C# ist man dann doch wesentlicher produktiver 
und muss sich mit weniger Details beschäftigen. Die Performance ist 
absolut ausreichend, da haben die eingesetzten Algorithmen schon einen 
wesentlich größeren Einfluss (wird ja mit Sicherheit kein AAA-Titel).

von foobar (Gast)


Lesenswert?

> ich interessiere mich für die Spieleprogrammierung und
> da kommt man anscheinend an C++ nicht wirklich vorbei

C++ ist dort sehr weit verbreitet.  Je größer die Projekte sind, desto 
häufiger findet man aber auch ein Gemisch aus verschiedenen 
Programmiersprachen.  So ist es nicht unüblich, dass die Low-Level 
Grafik- und Sounderzeugung von einem kleinen Team von Spezialisten in C 
und/oder C++ geschrieben ist, die Ablaufsteuerung des Spiels aber in 
einer einfacher zu beherrschenden Sprache (z.B. Lua) für das 
Gameplay-Team.

> Erstmal 2d Plattformer und Jump and Run.

Dann schau dir doch mal Pico-8 an - für's Reinschnuppern und erste 
Schritte mMn genau das Richtige.

von Progbit (Gast)


Lesenswert?

newgear schrieb:
> Hallo zusammen, ich interessiere mich für die Spieleprogrammierung und
> da kommt man anscheinend an C++ nicht wirklich vorbei (wenn man das
> nicht gerade mit einer Engine oder Java machen will).
Du hast Dir die Frage gerade selbst beantwortet - lerne Java, das deckt 
Spieleprogrammierung besser ab oder aber eine Engine; das ist dann wohl 
mehr ein Satzbaukasten.

> C++ soll aber so komplex sein, dass es lange dauert es verinnerlicht zu
> haben, C dagegen kann man anscheinend sehr schnell erlernen.
scheinbar - kannst Du beide Sprachen noch nicht?

> In C gibt
> es soweit ich weiß keine Klassenunterstützung.
nimm Java statt C++ ; auch bei Java hast Du ein Klassenkonzept und läuft 
auch mit Android.

> Aber ich habe mal was von
> C mit Klassen oder objective C gehört. Wird ein Klassenkonzept
> mittlerweile vom aktuellen C Standard unterstützt?
> Was ist objective C genau?
Programmiersprache, die u.a. bei Apple Iphone verwendet wird.

> Taugt C für die Spieleprogrammierung?
Prinzipiell ja, mit Erweiterung SDL oder Gtk+ kann man gute 2D Spiele 
damit programmieren - die laufen dann unter Windows oder Linux.
Ist dann einfacher als C++
Aber Java ist eben unabhängig von der Plattform! Mit Java deckst Du auch 
Spiele unter Android ab, wichtig für Spieleprogrammierung - mit C++ eben 
nur Windows und ggf. Linux; da kannst Du auch C mit SDL nehmen, ist 
einfacher ... oder eben eine Engine.

von Rolf M. (rmagnus)


Lesenswert?

Progbit schrieb:
> Aber Java ist eben unabhängig von der Plattform! Mit Java deckst Du auch
> Spiele unter Android ab, wichtig für Spieleprogrammierung

Das ist doch ein Märchen. Gerade Android-Apps laufen auf nix anderem als 
Android.

von Dieter H. (kyblord)


Lesenswert?

Java kann man nutzen für irgend nen Tetris Spiel. Ordentliche Spiele 
werden alle in C++ entwickelt. Kein Mensch will, dass der Garbage 
Collector sich plötzlich einschaltet und die FPS killt. Dauert es lange 
bis man C++ raushat? C++ hat man nie raus. Auch nach 10 Jahren nicht. 
Die Sprache hat so viele Konstrukte und wird alle paar Jahre um neue 
Sprachkonstrukte und Libs erweitert...

von PittyJ (Gast)


Lesenswert?

Früher (in einer Zeit, als alles besser war) hat man auch Spiele in 
Basic geschrieben.
Falls dir also eine richtige Programmiersprache zu kompliziert ist, 
besorg dir einfach einen C64 Simulator und programmiere in Basic. Das 
haben die Kids schon vor 38 Jahren gemacht.
https://www.heise.de/download/product/ccs64

von Turbo Pascal (Gast)


Lesenswert?

Schau dir mal Lazarus an.
Gute Community, die helfen dir wirklich vom klein klein bis  bei den 
großen Problemen.
Die GUI ist unglaublich und alles funktioniert auf Anhieb. Keine 
Frickelei bei der Einrichtung etc (OK, geht mit MS Visual auch genauso 
gut)

Es gibt andere interessante Sprachen wo man aber in der Zukunft nicht 
weiß ob sie sich gegen C durchsetzen können,
Mit Lazarus/Free pascal machst du nichts falsch.
Die Sprache hat sich wahnsinnig weiterentwickelt und unterstützt etliche 
Plattformen
https://www.lazarus-ide.org/

von Dussel (Gast)


Lesenswert?

Dieter H. schrieb:
> Ordentliche Spiele werden alle in C++ entwickelt.
Ich weiß nicht, was Dieter zu dieser Aussage bewogen hat 
(kyblord=Cyblord?), aber Minecraft, eines der meistverkauften Spiele, 
wurde in Java programmiert. Inzwischen gibt es auch Versionen, die in 
C++ programmiert wurden, aber zu deren Erscheinen war Minecraft schon 
sehr erfolgreich.
Natürlich kann man diskutieren, was ein "ordentliches Spiel" ist, es 
darf nur nicht der Eindruck entstehen, dass keine großen, erfolgreichen 
oder guten Spiele in Java geschrieben würden.

PittyJ schrieb:
> Falls dir also eine richtige Programmiersprache zu kompliziert ist,
> besorg dir einfach einen C64 Simulator und programmiere in Basic.
Dem stehe ich eher skeptisch gegenüber. Es gibt moderne einfache 
Programmiersprachen, die man leichter (ohne Emulator) und 
zukunftssicherer verwenden kann. da würde ich nicht wegen der 
Einfachheit so eine alte Sprache empfehlen.

von PittyJ (Gast)


Lesenswert?

Dussel schrieb:
>
> PittyJ schrieb:
>> Falls dir also eine richtige Programmiersprache zu kompliziert ist,
>> besorg dir einfach einen C64 Simulator und programmiere in Basic.
> Dem stehe ich eher skeptisch gegenüber. Es gibt moderne einfache
> Programmiersprachen, die man leichter (ohne Emulator) und
> zukunftssicherer verwenden kann. da würde ich nicht wegen der
> Einfachheit so eine alte Sprache empfehlen.

Ironie ist manchmal schon schwer zu erkennen....

Aber zu den Fakten:
Basic ist von 1964.
C ist von 1972. Also nur 8 Jahre jünger. Aber auch schon fast 50 Jahre 
alt.

Möchte man einen neuen Programmierer eine Sprache ans Herz legen, die 
älter ist als er selber?

Von daher fällt wohl auch C++ aus, das ist von 1985.

von Dussel (Gast)


Lesenswert?

PittyJ schrieb:
> Ironie ist manchmal schon schwer zu erkennen....
Besonders in Texten. Hier gibt es doch ein paar BASIC-Nutzer.

PittyJ schrieb:
> Möchte man einen neuen Programmierer eine Sprache ans Herz legen, die
> älter ist als er selber?
Ist das wieder Ironie? Ich habe etwa mit zwölf angefangen zu 
programmieren. Welche Sprache könnte man einem Zwölfjährigen empfehlen? 
(Python ist auch schon 30 Jahre alt. :-O )

von W.S. (Gast)


Lesenswert?

Ulrich schrieb:
> Naja, es läuft im endeffekt auf den meisten Servern und auf jedem
> Android smartphone.

Genauso könnte man sagen "Maschinencode läuft im Endeffekt auf den 
meisten Servern und auf jedem Android-Smartphone". Ist auch nicht 
falscher.

Nee, Linux bzw. Unix ist bei den genannten Systemen eher der 
Untersetzer, also die Lowlevel-Ebene, genauso wie es bei Windows 3.1 das 
DOS war. Die jeweilige Musike spielt ein paar Etagen weiter oben.

W.S.

von Progbit (Gast)


Lesenswert?

Rolf M. schrieb:
> Das ist doch ein Märchen. Gerade Android-Apps laufen auf nix anderem als
> Android.
womit werden denn diese Apps programmiert? Jedenfalls nicht mit C++
Setzen 6.

von Progbit (Gast)


Lesenswert?

Dieter H. schrieb:
> Ordentliche Spiele
> werden alle in C++ entwickelt. Kein Mensch will, dass der Garbage
> Collector sich plötzlich einschaltet und die FPS killt. Dauert es lange
> bis man C++ raushat?
Deine Spiele laufen dann eben nur auf Windows - das ist heute aber nicht 
mehr unbedingt Stand der Dinge, weil man Spiele sowieso nur beiläufig 
spielt und einen Laptop nicht immer dabei hat, Smartphone aber immer ... 
und wenn Du es so sieht, dann ist C++ ebenfalls Käse, weil eine Engine 
speziell auf die modernen 3D Hyper gerenderten Spiele ausgelegt ist und 
damit besser als C++ geeignet ist.
Diese Spiele sind dann alle von der gleichen Machart und Neuerungen von 
der Spielidee gibt's sowieso nicht mehr.
Für den Rest kannst jede x-beliebige Programmiersprache nehmen ... was 
der TO überhaupt will weiß man ja nicht.

von Progbit (Gast)


Lesenswert?

PittyJ schrieb:
> Aber zu den Fakten:
> Basic ist von 1964.
> C ist von 1972. Also nur 8 Jahre jünger. Aber auch schon fast 50 Jahre
> alt.
>
> Möchte man einen neuen Programmierer eine Sprache ans Herz legen, die
> älter ist als er selber?
>
> Von daher fällt wohl auch C++ aus, das ist von 1985.
das spielt doch keine Rolle - die Frage worauf Dein Spiel laufen soll?
Auf dem Smartphone?
Wenn's ein Iphone ist, dann Objective C und bei Android dann eben 
Android Studio bzw. Java.
Dann gibt's noch die elegantere Variante Browser-Game; das wäre dann 
Javascript, HTML5 oder AdobeFlash.
Das Hyper-Hyper Game mit C++, das dann nur Windows abdeckt, bekommt der 
TO sowieso nicht hin und außerdem ist alles schon da - bißchen spät für 
nachhaltige Neuerungen.

von Progbit (Gast)


Lesenswert?

Turbo Pascal schrieb:
> Schau dir mal Lazarus an.
> Gute Community, die helfen dir wirklich vom klein klein bis  bei den
> großen Problemen.
> Die GUI ist unglaublich und alles funktioniert auf Anhieb. Keine
> Frickelei bei der Einrichtung etc (OK, geht mit MS Visual auch genauso
> gut)
>
> Es gibt andere interessante Sprachen wo man aber in der Zukunft nicht
> weiß ob sie sich gegen C durchsetzen können,
> Mit Lazarus/Free pascal machst du nichts falsch.
> Die Sprache hat sich wahnsinnig weiterentwickelt und unterstützt etliche
> Plattformen
auch Pascal ist noch eine Möglichkeit, wenn einem die Sprache zusagt.
Für Spiele kannst Du auch DarkBasic Pro verwenden, 
https://www.thegamecreators.com/product/dark-basic-pro-open-source
DarkBasic scheint speziell für Spiele unter Windows oder Mac ausgelegt 
zu sein.
Basic ist damals jedenfalls die erste Sprache gewesen, die jeder mal 
gemacht hat.

von Justin S. (Gast)


Lesenswert?

PittyJ schrieb:
> Möchte man einen neuen Programmierer eine Sprache ans Herz legen, die
> älter ist als er selber?

Das ist doch gar kein Argument.

Es gibt eigentlich nur zwei Argumente für die Wahl einer 
Programmiersprache:

Meistens nimmt man die Sprache, die man kann (weil Viele nur eine 
Sprache beherrschen).

Ansonsten nimmt man die Sprache, die für das bevorstehende Projekt am 
besten geeignet ist (bei einem Hardware-Treiber könnte es z.B. Assembler 
oder C sein, bei einer Android App Java oder Kotlin, bei einer iOS App 
ObjectiveC oder Swift, bei einer statistischen Analyse R, bei 
wissenschaftlichen Aufgaben, z.B. Matrizzenrechnung MatLab, bei 
komplexen vielschichtigen Dingen Java.

Wozu man allerdings C++ wirklich dringend aus fachlichen Gründen anderen 
Programmiersprachen vorziehen sollte, hat sich mir bisher nicht 
erschlossen.

von Rolf M. (rmagnus)


Lesenswert?

Progbit schrieb:
> Rolf M. schrieb:
>> Das ist doch ein Märchen. Gerade Android-Apps laufen auf nix anderem als
>> Android.
> womit werden denn diese Apps programmiert?

Na zumindest teilweise in Java - steht doch da. Aber dass die App 
deshalb auch plattformunabhängig wäre und somit ach problemlos überall 
anders laufen würde, ist eben ein Märchen.

> Jedenfalls nicht mit C++

In einigen Spielen dürfte mehr oder weniger viel C++-Code enthalten 
sein. Denn die App an sich muss zwar in Java sein, aber sie kann native 
Bibliotheken nutzen, die z.B. in C++ geschrieben sind. Im Extremfall 
besteht die App dann nur noch aus einem minimalen Java-Wrapper, der das 
eigentliche Programm als C++-Bibliothek lädt. Und das wird lustigerweise 
gerade aus Gründen der Portabilität gerne gemacht. Viele Games benutzen 
z.B. die Unity-Engine. Die ist in C++ geschrieben und hat keine 
Java-Bindigs. Somit sind diese Spiele sehr wahrscheinlich auch in C++ 
geschrieben und lassen sich dadurch viel leichter auf andere Geräte 
portieren, als wenn sie in Java geschrieben wären.

> Setzen 6.

??

von CloseHandle (Gast)


Lesenswert?

Nimm C++.
Die meisten Leute die sagen, C++ sei schwer, blockieren sich damit 
selber. In der Zeit in der man Leute fragt ob es schwer ist hat man es 
schon halb gelernt.
Dazu kommt dass es riesen Communities gibt die genau das selbe Ziel 
haben:
https://www.spieleprogrammierer.de/

von W.S. (Gast)


Lesenswert?

PittyJ schrieb:
> Möchte man einen neuen Programmierer eine Sprache ans Herz legen, die
> älter ist als er selber?

Möchte man einem jungen Deutschen das steinalte Deutsch oder einem 
jungen Engländer das steinalte Englisch ans Herz legen? Oder einem 
Botokuden... naja, das Prinzip wirst du wohl verstehen.

OK, es gab mal Bestrebungen, die einzelnen Sprachen abzuschaffen, so daß 
ein jeder auf der Welt nur noch Esperanto oder irgend ein anderes 
Neusprech kann - aber der Erfolg blieb bislang ein wenig aus.

Man kann bei den Programmiersprachen ja sehen, daß gerade in der C-Ecke 
alle nase lang eine "neue" Sprache kreiert wird - aber bei näherer 
Betrachtung sehen die alle wie durch den Fleischwolf gedrehtes C aus - 
ergo sind das alles nur Vorbrenner für C.

Also am schieren Alter einer Programmiersprache kann man tatsächlich 
nichts festmachen.

W.S.

von PittyJ (Gast)


Lesenswert?

W.S. schrieb:
> Also am schieren Alter einer Programmiersprache kann man tatsächlich
> nichts festmachen.
>
> W.S.

Genau das wollte ich damit ausdrücken. C ist kaum jünger als Basic, das 
wurde aber als altertümlich abgetan. Die Kids wollen aber anscheinend 
was besseres.

Ich programmiere seit 40 Jahren und in der Zeit habe ich viele Leute 
erlebt, die unbedingt Spiele programmieren wollen, aber noch nicht 
einmal die Grundlagen beherrschen. Vielleicht sollten die Leute erst 
einmal das Programmieren lernen, und sich dann an einem Spiel versuchen. 
Und ob C oder C++ ist da erst einmal egal. Anfangen ist wichtig.

So zum Spiel programmieren selber. Alleine das Laden von Spielständen, 
Inventarlisten, Geländekarte ist reine Fleissarbeit. Muss aber gemacht 
werden. Ich schätze bei einem einfachen Spiel so ca 20K Zeilen. Schafft 
der Anfänger 1000 Zeilen am Tag, dann ist der einen Monat damit 
beschäftigt. Muss ja alles behandelt werden, Dateifehler, 
unterschiedliche Benutzer, variable Datenlängen ... . Man kann auch eine 
DB nehmen, dann muss er noch das DB-Design vorher machen...

Und da wird ein Anfänger doch schon aufhören, wenn er nach einem Monat 
nichts auf dem Bildschirm sieht, sondern im Hintergrund nur erst einmal 
die Daten der Spielfigur geladen hat. Spass macht das nicht, muss aber 
erledigt werden.
Und 99,9 % der Anfänger werden dann abbrechen. Ist eben nicht so der 
Fun.

Deshalb meine Empfehlung mit Basic. Da kann man mal schnell einen Pacman 
programmieren, hat nach 14 Tagen etwas Fun. Und danach wartet man, dass 
die PS5 doch irgendwann mal lieferbar ist.

Nichts gegen den TE persönlich, aber ich gehe davon aus, dass bei ihm in 
einem Jahr nichts spielbares heraus kommt. Soweit meine Erfahrungen der 
letzten Jahrzehnte.

von Karl (Gast)


Lesenswert?

PittyJ schrieb:
> Alleine das Laden von Spielständen, Inventarlisten, Geländekarte ist
> reine Fleissarbeit. Muss aber gemacht werden. Ich schätze bei einem
> einfachen Spiel so ca 20K Zeilen.

Sowas kann man in Python in 100 gut lesbaren Zeilen machen.

von PittyJ (Gast)


Lesenswert?

Karl schrieb:
> PittyJ schrieb:
>> Alleine das Laden von Spielständen, Inventarlisten, Geländekarte ist
>> reine Fleissarbeit. Muss aber gemacht werden. Ich schätze bei einem
>> einfachen Spiel so ca 20K Zeilen.
>
> Sowas kann man in Python in 100 gut lesbaren Zeilen machen.

Und warum tut sich CD-Project dann mit Cyberpunk 2077 dann so schwer, 
wenn alles nur ein paar Zeilen Python sind?
Dann müssten die doch ganz schön blöd sein. Die sollten mal die 
Spezialisten hier im Forum fragen.

von Rolf M. (rmagnus)


Lesenswert?

PittyJ schrieb:
> Genau das wollte ich damit ausdrücken. C ist kaum jünger als Basic, das
> wurde aber als altertümlich abgetan.

Es geht vielleicht weniger darum, wann es erfunden wurde, sondern wann 
es am meisten genutzt wurde. Basic ist zwar auch heute noch viel in 
Verwendung, aber die heutigen Dialekte haben nicht mehr viel mit dem 
(eben in der Hinsicht alten) C64-Basic zu tun.

> Ich programmiere seit 40 Jahren und in der Zeit habe ich viele Leute
> erlebt, die unbedingt Spiele programmieren wollen, aber noch nicht
> einmal die Grundlagen beherrschen.

Ich glaube, fast jeder, der schon früh computerbegeistert war und 
programmiert hat, wollte irgendwann in seiner Jugend ein Spiel 
schreiben. Viele haben auch angefangen, aber es eben mangels 
Grundlagenwissen oder Durchhaltevermögen nie fertiggestellt. Ich gehöre 
übrigens auch zu dieser Gruppe.

> Vielleicht sollten die Leute erst
> einmal das Programmieren lernen, und sich dann an einem Spiel versuchen.

Man kann ja auch mit einem ganz simplen Spiel anfangen. Tic Tac Toe im 
Textmodus zum Beispiel. Das wichtigste ist meiner Meinung nach in 
kleinen Schritten vorzugehen. Lieber was ganz einfaches fertigstellen 
und sich drüber freuen, als den super mega Egoshooter programmieren 
wollen und nach 5% der Arbeit die Lust verlieren, weil man kein Ergebnis 
sieht.
Eine andere Sache, die Programmierer bei sowas gerne unterschätzen ist 
der nicht-programmier-Teil, also z.B. Leveldesign, Sprites, Texturen, 
Soundeffekte, Musik u.s.w. Die ist für ein Spiel genauso wichtig, aber 
die meisten Programmierer sind nicht sonderlich gut in diesen Dingen. 
Man muss sich also mit jemandem zusammentun, der das besser kann.

> Deshalb meine Empfehlung mit Basic. Da kann man mal schnell einen Pacman
> programmieren, hat nach 14 Tagen etwas Fun.

Also deine Schlussfolgerungen kann ich nicht nachvollziehen. Weil man 
die Lust verlieren kann, wenn man komplexe Spielstände, Geländekarten 
und was weiß ich alles laden muss, soll man lieber Basic nehmen, weil 
man da Pacman drin programmieren kann? Das hat doch nichts mit der 
Programmiersprache zu tun.

PittyJ schrieb:
> Ich schätze bei einem einfachen Spiel so ca 20K Zeilen.
>>
>> Sowas kann man in Python in 100 gut lesbaren Zeilen machen.
>
> Und warum tut sich CD-Project dann mit Cyberpunk 2077 dann so schwer,
> wenn alles nur ein paar Zeilen Python sind?

Cypberpunk 2077 hältst du für ein "einfaches Spiel"?

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

Rolf M. schrieb:
> PittyJ schrieb:
>> Ich schätze bei einem einfachen Spiel so ca 20K Zeilen.
>>>
>>> Sowas kann man in Python in 100 gut lesbaren Zeilen machen.
>>
>> Und warum tut sich CD-Project dann mit Cyberpunk 2077 dann so schwer,
>> wenn alles nur ein paar Zeilen Python sind?
>
> Cypberpunk 2077 hältst du für ein "einfaches Spiel"?

Ich nicht. Aber der Rest denkt, so ein bisschen Laden und Speichern sind 
100 Zeilen Code.
Ich habe bei großen Projekten (>50 Programmierer) mitgearbeitet, und 
weiss wie viel Aufwand in diesen Dingen steckt.

Und wenn ein Anfänger nichts von Klassen weiss, dann wird er auch die 
Serialisierung nicht kennen, und erst einmal 1-2 Monate damit 
verbringen. Dann wird er wieder von 0 anfangen, weil er merkt, dass die 
Klassen nicht passend sind.
Er lernt eine Menge dabei. Aber ein Spiel hat er nicht in absehbarer 
Zeit.

von Einer (Gast)


Lesenswert?

PittyJ schrieb:
> Und wenn ein Anfänger nichts von Klassen weiss, dann wird er auch die
> Serialisierung nicht kennen, und erst einmal 1-2 Monate damit
> verbringen. Dann wird er wieder von 0 anfangen, weil er merkt, dass die
> Klassen nicht passend sind.
> Er lernt eine Menge dabei. Aber ein Spiel hat er nicht in absehbarer
> Zeit.

Das ist doch hanebüchener Unsinn.

Niemand der bei Trost ist, versucht als Einzelkämpfer ein Spiel (oder 
ein anderes Projekt) in ein paar Tagen/Wochen umzusetzen, wofür eine 
Firma mit über 50 Leuten mehrere Jahre benötigt.

Mit einer Rakete an der Internationalen Raumstation anzudocken ist 
schwer. Menschen auf den Mond zu bringen noch schwerer.

All das hat uns als 14jährige Kinder nicht davon abgehalten, ein paar 
Modelraketen-Triebsätze zu bestellen, und aus Papier, Karton, einem 
Schweißdraht und einem Holzbrettchen kleine Raketen inkl. "Startrampe" 
zu bauen, die 100m hoch geflogen sind.

Du kapierst doch überhaupt nicht um was es geht: Jemand möchte für sich 
ein Spiel in seinem Rahmen und Können basteln. Das ist ein sehr 
sinnvolles und zu unterstützendes Unterfangen.

Um dein Ego:

> Ich habe bei großen Projekten (>50 Programmierer) mitgearbeitet,

geht es hier nicht. Das interessiert niemanden. Dein Bedürfnis dich auf 
Kosten Schwächerer zu erhöhen ist erbärmlich.

Messe Dich doch mit Stärkeren. Über dein 50-Mann-Team kann ich nur müde 
lächeln!

von MaWin (Gast)


Lesenswert?

Einer schrieb:
> Du kapierst doch überhaupt nicht um was es geht:

Das hat newgear ja auch nicht erzählt.

Offenkundig schlagt er seine Zeit, wie 90% der Jungen, gerne mit 
Computerspielen tot.
Und nun kommt ihm der Gedanke: ich kann leidlich gut spielen, dann kann 
ich sicher noch viel besser ein Spiel schreiben in dem ich dann der King 
beim spielen bin.
Welche Art von Spielen, hat er nicht erzählt. Wohl kaum eine Patience 
oder Minesweeper, sondern wohl eher ein WoW oder FlightSimulator.

So denken 50% der Kinder. Nur 0.1% werden dann angestellt in Firmen die 
Spiele schreiben, und der Job soll nicht besonders gut sein, stressig 
bei schlechter Bezahlung, das Angebot an Frischfleisch ist ja auch 
gross.

Bis dahin hat er aber Motivation. Super, sollte man nutzen. Also als 
ersten Schritt programmieren lernen. GradC in GradF und so, vielleicht 
ein NIM Spiel, und bei mehr Erfahrung einen Minesweeper.
Ob man das in C, C++ oder Java macht ist reichlich egal. Für manches 
reicht schon Javascript. Realistisch steckt man mit Java aber in einer 
Sackgasse, mit C geht es über C++ weiter, andere Plattformen. Erst mal C 
und dann C++ ist kein schlechter Weg, ObjectiveC ist eine 
Apple-Sackgasse. Ob er dann nach seinem Patience-Spiel immer noch Spiele 
programmieren will oder alt genug geworden ist um den Spieltrieb 
überwunden zu haben, wird man sehen. Einige Jahre dauert es schon, von 0 
an zu Spielen zu kommen.

von Rolf M. (rmagnus)


Lesenswert?

PittyJ schrieb:
> Rolf M. schrieb:
>> PittyJ schrieb:
>>> Ich schätze bei einem einfachen Spiel so ca 20K Zeilen.
>>>>
>>>> Sowas kann man in Python in 100 gut lesbaren Zeilen machen.
>>>
>>> Und warum tut sich CD-Project dann mit Cyberpunk 2077 dann so schwer,
>>> wenn alles nur ein paar Zeilen Python sind?
>>
>> Cypberpunk 2077 hältst du für ein "einfaches Spiel"?
>
> Ich nicht.

Naja, du hast ja erst von einem einfachen Spiel gesprochen und bringst 
jetzt Cyberpunk 2077 als Beispiel. Das passt halt nicht so ganz 
zusammen.

> Aber der Rest denkt, so ein bisschen Laden und Speichern sind
> 100 Zeilen Code.

Wenn wir tatsächlich von einem einfachen Spiel sprechen, halte ich 20k 
Zeilen nur für die Serialisierung aber für übertrieben. Das wäre selbst 
dann schon nicht so wenig, wenn man das wirklich komplett zu Fuß macht. 
Sinnvoller wäre es aber eh, ein bestehendes Framework zu nutzen.

> Ich habe bei großen Projekten (>50 Programmierer) mitgearbeitet, und
> weiss wie viel Aufwand in diesen Dingen steckt.

Auch das passt aber nicht zu einem "einfachen Spiel".

> Und wenn ein Anfänger nichts von Klassen weiss, dann wird er auch die
> Serialisierung nicht kennen, und erst einmal 1-2 Monate damit
> verbringen.

In Python ist das tatsächlich sehr einfach, da es mit pickle bereits ein 
Serialisierungsframework enthält. Da muss man sich auch nicht zwei 
Monate damit beschäftigen, um das anwenden zu können.

MaWin schrieb:
> Offenkundig schlagt er seine Zeit, wie 90% der Jungen, gerne mit
> Computerspielen tot.
> Und nun kommt ihm der Gedanke: ich kann leidlich gut spielen, dann kann
> ich sicher noch viel besser ein Spiel schreiben in dem ich dann der King
> beim spielen bin.

Ich finde es ja faszinierend, wie hier oft in ein paar Zeilen eines 
Postings die komplette Lebensgeschichte des Verfassers 
hineininterpretiert wird.

> Welche Art von Spielen, hat er nicht erzählt. Wohl kaum eine Patience
> oder Minesweeper, sondern wohl eher ein WoW oder FlightSimulator.

newgear schrieb:
> Rolf M. schrieb:
>> Was für Spiele?
>
> Erstmal 2d Plattformer und Jump and Run. 3d wäre wohl noch zu weit
> hergeholt.

: Bearbeitet durch User
von Einer (Gast)


Lesenswert?

Rolf M. schrieb:
> Ich finde es ja faszinierend, wie hier oft in ein paar Zeilen eines
> Postings die komplette Lebensgeschichte des Verfassers
> hineininterpretiert wird.

Naja, psychologisch aber glaub nix Neues. Man unterstellt anderen 
meistens immer das, was man selbst ist bzw. wie man selbst handeln 
würde.

Aus dieser Perspektive sind z.B. die Unterstellungen von MaWin, jemand 
würde "offenkundig" nur seine Zeit totschlagen und nix zu Wege bringen, 
nur ein Spiegel seiner eigenen Existenz.

Deckt sich das nicht mit der Erfahrung, dass erfolgreiche Macher anderen 
eher vorschlagen, Dinge selbst in die Hand zunehmen, und Versager eher 
vorschlagen, Dinge erst gar nicht zu versuchen?

von Dussel (Gast)


Lesenswert?

PittyJ schrieb:
> C ist kaum jünger als Basic, das wurde aber als altertümlich abgetan.
Falls du mich damit meinst, ich wollte nicht ausrücken, dass BASIC 
altertümlich ist. Mir geing es um die Empfehlung, BASIC zu nutzen, nur 
weil es einfach ist.
Da bleibe ich dabei, es gibt einfach modernere und verbreitetere 
Sprachen, die auch einfach sind. "Einfach" ist alleine kein Argument, 
BASIC einer anderen Sprache vorzuziehen.
Ich wüsste überhauptkeinen Grund, BASIC als Sprache auszuwählen, außer 
'kann ich schon' oder 'das Projekt ist in BASIC geschrieben'.
Das liegt aber wohl an mir, weil ich mich nur als Jugendlicher mal mit 
BASIC beschäftigt habe. (Ich habe mit einem Freund ein Spiel 
programmiert. :-D )

Meine erste 'Programmiersprache' war übrigens HTML, später mit 
JavaScript. Man brauchte nur einen Computer, einen eingerichteten 
Texteditor und einen eingerichteten Browser und konnte loslegen. Damals 
in Zeiten von 56k-Modem, als Google noch was Exotisches war, und die 
deutsche Wikipedia vielleicht 10.000 Seiten hatte, war das ein Argument.
Deshalb würde ich sagen, wichtig ist, überhaupt erstmal anzufangen. 
Außer Zeit kostet das Ausprobieren ja nichts. Dadurch baut man sich die 
Erfahrung auf, um selber Entscheidungen treffen zu können.

von udok (Gast)


Lesenswert?

newgear schrieb:
> Hallo zusammen, ich interessiere mich für die Spieleprogrammierung und
> da kommt man anscheinend an C++ nicht wirklich vorbei (wenn man das
> nicht gerade mit einer Engine oder Java machen will).
>
> C++ soll aber so komplex sein, dass es lange dauert es verinnerlicht zu
> haben, C dagegen kann man anscheinend sehr schnell erlernen. In C gibt
> es soweit ich weis keine Klassenunterstützung. Aber ich habe mal was von
> C mit Klassen oder objective C gehört. Wird ein Klassenkonzept
> mittlerweile vom aktuellen C Standard unterstützt? Was ist objective C
> genau? Taugt C für die Spieleprogrammierung?

C++ ist einfach, wenn du den ganzen Kram weglässt, den du nicht 
brauchst.

Fange auf jeden Fall bei einem fertigen Spiel an, und ändere das dann
ab!

Hier Links, zum reinschauen:

Einfaches Tetris ähnliches Spiel mit DirectX Unterstützung:
* https://www.codeproject.com/Articles/3120/A-DirectX-Game-Quadrino

ca. 8000 Zeilen C++ Code,
aus dem Jahre 2005, läuft auch heute noch immer ohne Änderungen

Hier der Age of Empires open source Klon OpenAge:
* https://openage.sft.mx/

ca. 70 Tausend Zeilen Python und 75 Tausend Zeilen C++ Code.

Open source Game Engine Godot:
* https://godotengine.org/

Wird auch für kommerzielle Spiele verwendet,
ca. 125 Tausend Zeilen C++ Code für die Core Funktionalität,
ca. 2.8 Millionen Zeilen C, und C++ Code für das ganze drumherum

Schau halt mal, was dir mehr liegt. Wenn es nicht das Programmieren ist,
dann würde ich letzteres nehmen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

PittyJ schrieb:
> Alleine das Laden von Spielständen, Inventarlisten, Geländekarte ist
> reine Fleissarbeit. Muss aber gemacht werden. Ich schätze bei einem
> einfachen Spiel so ca 20K Zeilen. […]
>
> Und da wird ein Anfänger doch schon aufhören, wenn er nach einem Monat
> nichts auf dem Bildschirm sieht, sondern im Hintergrund nur erst
> einmal die Daten der Spielfigur geladen hat.

Wenn man mit den unwichtigsten Dinge beginnt und versucht, diese
gleich mit maximaler Perfektion umzusetzen, ist das sicher so :)

Wenn man hingegen erst einmal mit einer einfachen, aber lauffähigen
Version des eigentlichen Spiels (nur 1 Level, ohne Speicherfunktion,
ohne Hiscore-Liste usw.) beginnt und diese nach und nach um weitere
Features erweitert, bleibt die Motivation wesentlich länger erhalten.

Für die einfachen 2D-Spiele, wie sie dem TE zunächst vorschweben, würde
ich mit Python und pygame beginnen. Damit lassen sich schon mit ein paar
hundert Zeilen recht ansprechende Dinge realisieren.

Ein Raumschiffabknallspiel (mit Ballersound und Hintegrundmusik):

  https://www.youtube.com/watch?v=k_8CdlIe-zY
  (248 Zeilen ohne Kommentare und Leerzeilen)

Der Anfang eines Jump-and-Run-Spiels:

  https://www.youtube.com/watch?v=xQb3w182s7I
  (318 Zeilen ohne Kommentare und Leerzeilen)

Natürlich fehlt da noch viel bis zu einem Spiel, das einen wirklich vom
Hocker reißt. Aber zumindest dauert es nicht Monate, sondern höchstens
Stunden, bis sich etwas auf dem Bildschirm bewegt.

: Bearbeitet durch Moderator
von Progbit (Gast)


Lesenswert?

PittyJ schrieb:
> Ich programmiere seit 40 Jahren und in der Zeit habe ich viele Leute
> erlebt, die unbedingt Spiele programmieren wollen, aber noch nicht
> einmal die Grundlagen beherrschen. Vielleicht sollten die Leute erst
> einmal das Programmieren lernen, und sich dann an einem Spiel versuchen.
> Und ob C oder C++ ist da erst einmal egal. Anfangen ist wichtig.
dann mach doch z.B. einen Buch-Vorschlag und zwar möglichst einen wo ein 
Spiel programmiert wird und auf diese Weise auch Grundlagen vermittelt 
werden?
Da gibt es leider gar nicht so viele Bücher.
Weiterhin ist es Blödsinn ein Informatik-Studium als Grundlage für 
Spiele-Programmierung anzusetzen - dafür braucht er nicht alles zu 
wissen.

> So zum Spiel programmieren selber. Alleine das Laden von Spielständen,
> Inventarlisten, Geländekarte ist reine Fleissarbeit. Muss aber gemacht
> werden.
das Problem ist, daß das nur unzureichend erklärt wird - ein guter 
Programmierer oder Buchautor ist eben nicht immer ein guter Lehrer und 
weiterhin: der beste Lehrer/Buchautor ist nur genauso gut wie sein 
schlechtester Schüler.
Die meisten Bücher sind deshalb Schrott, weil sie nur Codeschnipsel 
präsentieren und den ganzen Rest als selbstverständlich ansehen.

> Ich schätze bei einem einfachen Spiel so ca 20K Zeilen. Schafft
> der Anfänger 1000 Zeilen am Tag, dann ist der einen Monat damit
> beschäftigt.
Unsinn, copy&paste - aber ob er es verstanden hat, ist eine ganz andere 
Frage!

> Muss ja alles behandelt werden, Dateifehler,
> unterschiedliche Benutzer, variable Datenlängen ... . Man kann auch eine
> DB nehmen, dann muss er noch das DB-Design vorher machen...
Copy&paste ... und das ist eben genau nicht das Problem!

> Und da wird ein Anfänger doch schon aufhören, wenn er nach einem Monat
> nichts auf dem Bildschirm sieht, sondern im Hintergrund nur erst einmal
> die Daten der Spielfigur geladen hat. Spass macht das nicht, muss aber
> erledigt werden.
> Und 99,9 % der Anfänger werden dann abbrechen. Ist eben nicht so der
> Fun.
neben den Fun-Effekt, möchte der Anfänger vielleicht auch verstehen was 
er da macht und genau das wird sehr schlecht vermittelt!

> Deshalb meine Empfehlung mit Basic. Da kann man mal schnell einen Pacman
> programmieren, hat nach 14 Tagen etwas Fun. Und danach wartet man, dass
> die PS5 doch irgendwann mal lieferbar ist.
völlig richtig, sehe ich auch so - mit Basic sollte man anfangen ... und 
wenn dieses DarkBasic oder auch BlitzBasic voll auf Spiele abzielt, dann 
reicht es doch; zumindest für Windows.
Ansonsten eben HTML5 für Browser Games.
Die Hyper Hyper Games wird der TE sowieso nicht schaffen, dafür braucht 
er dann Informatik-Studium und C++ und dann kann er sich auch gleich bei 
Ubisoft, Activision, Elektronic Arts bewerben, wenn er das geschafft 
hat.

>
> Nichts gegen den TE persönlich, aber ich gehe davon aus, dass bei ihm in
> einem Jahr nichts spielbares heraus kommt. Soweit meine Erfahrungen der
> letzten Jahrzehnte.
genau, und deswegen erst einmal Basic lernen.

von Progbit (Gast)


Lesenswert?

Rolf M. schrieb:
> In Python ist das tatsächlich sehr einfach, da es mit pickle bereits ein
> Serialisierungsframework enthält. Da muss man sich auch nicht zwei
> Monate damit beschäftigen, um das anwenden zu können.
Welchen Vorteil hat denn Python oder auch C++ gegenüber Basic bei einem 
"einfachen" Spiel?
Gar keinen - im Gegenteil, er kapiert mangels Grundlagen gar nicht was 
er da macht - und genau deswegen sollte der TE besser mit Basic starten 
und dann kann man immer noch mit anderen Sprachen dasselbe ausprobieren.
Ihr seid alle nur auf Eure Lieblingssprachen fixiert und seht gar nicht 
mehr auf das Ergebnis!

von Rolf M. (rmagnus)


Lesenswert?

Progbit schrieb:
> Rolf M. schrieb:
>> In Python ist das tatsächlich sehr einfach, da es mit pickle bereits ein
>> Serialisierungsframework enthält. Da muss man sich auch nicht zwei
>> Monate damit beschäftigen, um das anwenden zu können.
> Welchen Vorteil hat denn Python oder auch C++ gegenüber Basic bei einem
> "einfachen" Spiel?

Gegenfrage: Welchen Nachteil hat es?

von Retrokiller (Gast)


Lesenswert?

Rolf M. schrieb:
> Gegenfrage: Welchen Nachteil hat es?

Der Nachteil ist das Verständnis für den totalen Anfänger, der er ja zu 
sein scheint?
Basic ist eine Interpretersprache mit reduzierten Befehlsumfang - da ist 
C++ eine ganz andere Nummer ... ob sowas gleich als Anfangssprache gut 
endet, würde ich mal stark bezweifeln - einfach mal so im Rückblick 
gesehen als man selbst noch blutiger Anfänger war ?!
Aber das kann ja jeder machen wie er will.

von ist echt schwer (Gast)


Lesenswert?

PittyJ schrieb:
> Er lernt eine Menge dabei. Aber ein Spiel hat er nicht in absehbarer
> Zeit.

Du hast aber schon mitbekommen, dass er momentan auch nur 2D-Spiele im 
Blick hat?

https://www.youtube.com/watch?v=zH_omFPqMO4

https://www.youtube.com/watch?v=c8wswUEfnrQ

https://www.youtube.com/watch?v=7Vf_vQIUk5Q

https://www.youtube.com/watch?v=OBBrp43TX3A

https://www.youtube.com/watch?v=YzhhVHb0WVY

https://www.youtube.com/watch?v=YNXrFOynalE

https://www.youtube.com/watch?v=-CvqYl_w8Vk

https://www.youtube.com/watch?v=rWaSo2usU4A

usw.

Natürlich sollte man erst mal die Programmiersprache lernen. Aber wenn 
man die Grundlagen kennt, dann kann man mit einfachen Sachen gleich 
anfangen.

von Progbit (Gast)


Lesenswert?

ist echt schwer schrieb:
> Du hast aber schon mitbekommen, dass er momentan auch nur 2D-Spiele im
> Blick hat?
und dafür reicht auch C mit SDL oder Java oder Pascal oder eben auch 
"nur" Basic aus.
Dafür braucht man nicht zwingend C++ ... und das ist offenbar extrem 
schwer zu verstehen, daß es auf die Anwendung und das Ergebnis und eben 
nicht auf die Sprache ankommt!

ist echt schwer schrieb:
...
> https://www.youtube.com/watch?v=rWaSo2usU4A
>
> usw.
tolle Beispiele, aber überhaupt nichts für blutige Anfänger, da hier 
schon einiges an Wissen vorausgesetzt wird!
Natürlich kann ich mir per copy&paste einiges zusammenfrickeln und habe 
überhaupt nichts verstanden!
Dann kann ich mir auch gleich den fertigen Quellcode oder noch besser 
die fertig compilierte Datei als Game downloaden und gleich los gamen - 
das ist dann noch simpler als copy&paste.

ist echt schwer schrieb:
> Natürlich sollte man erst mal die Programmiersprache lernen.
Genau und deswegen Basic - weil das eine Interpretersprache ist und man 
sofort sieht was Sache ist. Primitiv aber für einen Anfänger genau 
richtig.

> Aber wenn
> man die Grundlagen kennt, dann kann man mit einfachen Sachen gleich
> anfangen.
und auch das spricht nun nicht für C, auch nicht für C++, auch nicht für 
Java, usw., sondern für Basic ... weil das nun mal die Simpelste aller 
Sprachen ist.
Für 2D Spiele und schnelle Ergebnisse reicht das immer.

von Dieter D. (dieter_dosenkohl)


Lesenswert?

Sonnenschein schrieb:
> Ja genau, dem entsprechend funktioniert es auch... :-) An allen Ecken
> und Kanten super gut... bei den Omas der Nerds... :-)) ROFL...

Junge ist das hohl 😂

von Justin S. (Gast)


Lesenswert?

Progbit schrieb:
> genau deswegen sollte der TE besser mit Basic starten

Jetzt hört endlich mit Basic auf. Das ist wirklich Geschichte.

Abgesehen davon gibt es zig verschiedene Basic-Dialekte und nicht EIN 
Basic. Also stellt sich die Frage, was Du überhaupt meinst, wenn Du von 
"Basic" sprichst.

Jede in Basic investierte Sekunde ist reine Zeitverschwendung, wenn man 
statt dessen eben Python oder C oder C++ oder Java oder irgendeine 
andere auch nur halbwegs moderne Programmiersprache verwendet.

Schluss mit dem unsäglichen Basic.

von Rolf M. (rmagnus)


Lesenswert?

Progbit schrieb:
> ist echt schwer schrieb:
>> Du hast aber schon mitbekommen, dass er momentan auch nur 2D-Spiele im
>> Blick hat?
> und dafür reicht auch C mit SDL oder Java oder Pascal oder eben auch
> "nur" Basic aus.

Ja, reicht auch.

> Dafür braucht man nicht zwingend C++ ... und das ist offenbar extrem
> schwer zu verstehen, daß es auf die Anwendung und das Ergebnis und eben
> nicht auf die Sprache ankommt!

Und doch scheint es dir sehr wichtig zu sein, dass es sich dabei nicht 
um C++ handelt.

> ist echt schwer schrieb:
>> Natürlich sollte man erst mal die Programmiersprache lernen.
> Genau und deswegen Basic - weil das eine Interpretersprache ist und man
> sofort sieht was Sache ist. Primitiv aber für einen Anfänger genau
> richtig.

Python ist auch nicht schwerer zu lernen, aber man kann damit nachher 
viel mehr machen.

> und auch das spricht nun nicht für C, auch nicht für C++, auch nicht für
> Java, usw., sondern für Basic ... weil das nun mal die Simpelste aller
> Sprachen ist.
> Für 2D Spiele und schnelle Ergebnisse reicht das immer.

Und danach will man dann weitermachen und muss dann doch eine andere 
Sprache lernen. Basic ist da eine Sackgasse.

von Progbit (Gast)


Lesenswert?

> Und doch scheint es dir sehr wichtig zu sein, dass es sich dabei nicht
> um C++ handelt.
ich sag mal so: als Fahranfänger startest Du auch nicht gleich mit einem 
Porsche bzw. sollte man nicht.
Deswegen würde ich einem blutigen Anfänger zur einer Interpretersprache 
wie Basic raten, um auch mal den Unterschied zu merken!
Basic macht auch insbesondere wegen der simplen Syntax Sinn - wie das 
bei Python aussieht weiß ich leider nicht, Python müßte ich mir selber 
mal zu Gemüte ziehen.
Eine Sackgasse ist Basic definitiv nicht, weil es ja mittlerweile 
etliche Neuerungen gibt, die auf den Uralt-Standard Microsoft Basic 
aufbauen.
Für 2D Spiele reicht es immer aus, die bekommt man mit jeder Sprache 
hin.
Die Grenzen wird er dann schon merken und dann sollte man wechseln.
Es geht um schnelle Ergebnisse und darum, daß man kapiert hat, welche 
Codezeile was bewirkt und warum man die so schreibt und nicht anders.
Das wird in diesen Youtube-Videos, etc. nicht so eindeutig erklärt.
Für einen der sich auskennt, sieht die Sache anders aus.
Bei C und insbesondere bei C++ hast Du doch viel mehr Freiheitsgrade und 
das ist für einen Anfänger auch nicht unbedingt gut - wenn er Pech hat, 
gewöhnt er sich einen miesen Programmierstil an, es gibt genug 
Negativbeispiele gerade bei C und C++ ... das läuft dann zwar auch, ist 
aber umständlicher Murgs.
Er kann ja auch mit HTML5 anfangen und reine Browsergames programmieren 
- das würde ich an seiner Stelle machen.

von Einer (Gast)


Lesenswert?

Progbit schrieb:
> Basic macht auch insbesondere wegen der simplen Syntax Sinn - wie das
> bei Python aussieht weiß ich leider nicht, Python müßte ich mir selber
> mal zu Gemüte ziehen.

Aus welcher Gruft bist Du denn raus geklettert? Hat Python noch nie 
gesehen, will aber mitreden. Oh Mann. Was für untote Typen hier 
rumhängen, immer wieder unglaublich.

von Turbo Pascal (Gast)


Lesenswert?

@ Einer (Gast)
Was bist du den für ein Vogel. Er hat aber dennoch Recht.
Python soll ja schließlich auch sehr anfängertauglich sein, wie eben 
auch Pascal.
Jedes hat seine Vorteile, wobei ich vermutlich modernes FreePascal oder 
ein modernes Basic bevorzugen würde
Je nach Anwendungsfall.

von Turbo Pascal (Gast)


Lesenswert?

Ich würde dennoch Pascal oder Basic als Anfänger bevorzugen, alleine 
schon, da man damit auch vernünftig Controller programmieren kann(Mikroe 
Pascal, Basic, C etc)
Bei C frustriert oft schon die Einrichtung der Tools(Embitz, Codeblocks 
etc)

von A. S. (Gast)


Lesenswert?

Der große Vorteil von BASIC: jedes Kind kann ohne Hilfe, nur mit einer 
Befehlsreferenz und 2 Seiten Erklärung sofort loslegen.

Das war vor dem www und IDEs wirklich gut. Es gab kein Voodoo, das einem 
abgenommen wurde und war auch nicht notwendig.

10 PRINT "HALLO WELT"

fertig. Nichts weiter. Kein Framework von 100 Zeilen, das einem der 
wizzard abnimmt.

Nächste Zeile 20 GOTO 10 und Haken an die Schleife. Steilste Lernkurven 
garantiert.

Wie das heute am besten geht, mit www und komplexen wizzards? Keine 
Ahnung... Wie und wann kamt ihr jungen (unter 35) ans programmieren? Wie 
und wann die Kinder der Älteren hier?

von W.S. (Gast)


Lesenswert?

Progbit schrieb:
> ich sag mal so: als Fahranfänger startest Du auch nicht gleich mit einem
> Porsche bzw. sollte man nicht.

Ist ein mieser Vergleich, denn er unterstellt, daß es da ein Wertgefälle 
gibt. Besser wäre es, das mal so zu sagen: als Fahranfänger startest Du 
auch nicht gleich mit einem Wagen, der nur ein unsynchronisiertes 
Getriebe hat - was die zusätzliche Übung des Zwischenkuppelns bzw. 
Zwischengas nit sich bringt.

Nochwas: bei der Spiele-Programmierung ist es weniger die verwendete 
Programmiersprache, sondern mehr das Gestalten der Sprites oder das 
korrekte Benutzen der Spiele-Engine.

Und labert nicht über aufgeblähte Zeilenzahlen. Als ich vor so etwa 14 
Jahren mal ein Spiel (Daleks) nach Win-CE portiert hatte, war EVC 
alternativlos, also wurde es ein "HHDaleks.cpp" und der Umfang waren 
etwa 1000 Zeilen Programmcode, von denen ein Großteil für das Benutzen 
des API von Win-CE benötigt wurde. Der Hauptanteil des Ganzen war die 
Gestaltung der Sprites.

W.S.

von Einer (Gast)


Lesenswert?

A. S. schrieb:
> 10 PRINT "HALLO WELT"
>
> fertig. Nichts weiter. Kein Framework von 100 Zeilen, das einem der
> wizzard abnimmt.

Ja, ja...

Python:
1
print("Hallo, Welt")

Javascript:
1
console.log("Hallo, Welt")

Lua:
1
print("Hallo, Welt")

Haskell:
1
main = putStrLn "Hallo, Welt"

Man könnte ewig weiter machen...

von Progbit (Gast)


Lesenswert?

Turbo Pascal schrieb:
> Python soll ja schließlich auch sehr anfängertauglich sein, wie eben
> auch Pascal.
Ich kann mich schlecht zu Programmiersprachen äußern, die ich nur am 
Rande kenne.
Etliche andere Sprachen gibt's ja sicherlich auch noch, die 
anfängertauglich wären. Mir fällt aber auf, daß viele hier nur auf 
"Ihre" Lieblingssprache total fixiert sind, als Universalsprache für 
alles und nichts.
Es kommt immer auf die Anwendung und das Ergebnis an - wechseln kann man 
dann ja immer noch.

Turbo Pascal schrieb:
> Bei C frustriert oft schon die Einrichtung der Tools(Embitz, Codeblocks
> etc)
viel schlimmer wird es, wenn Du Linux oder Mac benutzt. Dann 
funktioniert auf einmal das Programm nicht mehr, weil eine Headerdatei 
fehlt, die es unter Linux/Mac so nicht gibt, dann muß man erst einmal 
eine Bibliothek nachladen, damit überhaupt was funktioniert.


A. S. schrieb:
> Das war vor dem www und IDEs wirklich gut. Es gab kein Voodoo, das einem
> abgenommen wurde und war auch nicht notwendig.
>
> 10 PRINT "HALLO WELT"
>
> fertig. Nichts weiter. Kein Framework von 100 Zeilen, das einem der
> wizzard abnimmt.
>
> Nächste Zeile 20 GOTO 10 und Haken an die Schleife. Steilste Lernkurven
> garantiert.
genau das meine ich ja. Bei einer Compilersprache kommt dann eine 
Fehlermeldung wegen falscher Syntax oder fehlender Headerdatei, usw., 
usw. ... für einen Anfänger der GAU, wenn das Programm gar nicht erst 
startet - dann kommt noch die zum Teil kryptische Syntax der jeweiligen 
Sprache hinzu; klar copy&paste geht immer, aber das kann nicht der Sinn 
sein, dann kann man auch gleich Lego spielen, wenn man gar nicht weiß 
was welche Codezeile bewirkt.
Also ich bin im Nachhinein froh, daß ich damals mit Basic angefangen 
habe.

von Progbit (Gast)


Lesenswert?

Einer schrieb:
> Man könnte ewig weiter machen...
das ist Unsinn, weil es nicht darum geht "Hallo Welt" zu programmieren.

von Peter tr. (Gast)


Lesenswert?

"etliche andere Sprachen gibt's ja sicherlich auch noch, die
anfängertauglich wären"
Ja, aber die kaum verbreitet sind. Für Pascal und Basic und Pathon gibt 
es unendlich viel Literatur(Für C natürlich auch)
Und man kann danach weiter mit ihnen arbeiten,auch auch mikrocontrollern 
etc.
Jetzt als Beispiel irgendwelche exotischen Sprachen mit Java etc aus dem 
Hut zu zaubern ist wenig zielführend...
Ich arbeite sogar beruflich mit Pascal und sicher wird auch auch mit 
BAsic bei einigen so sein.

Und die lieblingssprachen die hier angebracht sind, wurden ja bereits 
genannt.
Pascal, Basic, Python und C
Alles andere macht keinen Sinn, in einem Elektronikforum(jaja, auch Java 
geht auch Controllern, das ist aber ein albernes Beispiel weil völlig an 
der REalität vorbei, auch Python derzeit eher Spielerei auf einem 
Controller)

von Yalu X. (yalu) (Moderator)


Lesenswert?

A. S. schrieb:
> Der große Vorteil von BASIC: jedes Kind kann ohne Hilfe, nur mit einer
> Befehlsreferenz und 2 Seiten Erklärung sofort loslegen.

Ja, vor 30–40 Jahren war das noch so.

> 10 PRINT "HALLO WELT"

Heute ist Visual Basic .NET hipp. Da führt die obige Codezeile zu einem
Syntaxfehler. Stattdessen muss man schreiben:
1
Imports System
2
 
3
Module HelloWorld
4
  Sub Main()
5
    Console.WriteLine("HALLO WELT")
6
  End Sub
7
End Module

Da sagt der Beginner, der in dem für ihn geschaffenen All-purpose
Synmbolic Instruction Code programmieren will, höchstens noch

  "Häh?"

In praktisch jeder anderen Programmiersprache geht das einfacher.


Progbit schrieb:
> viel schlimmer wird es, wenn Du Linux oder Mac benutzt. Dann
> funktioniert auf einmal das Programm nicht mehr, weil eine Headerdatei
> fehlt, die es unter Linux/Mac so nicht gibt, dann muß man erst einmal
> eine Bibliothek nachladen, damit überhaupt was funktioniert.

Hast du mal versucht, ein unter Windows lauffähiges, nicht ganz
triviales Basic-Programm auf Linux oder Mac laufen zu lassen? Da hast du
genau dieselben Probleme und sogar noch eines zusätzlich, weil das dort
installierte Basic mit hoher Wahrscheinlichkeit eine andere Syntax hat.

Progbit schrieb:
> A. S. schrieb:
>> […]
>>
>> Nächste Zeile 20 GOTO 10 und Haken an die Schleife. Steilste Lernkurven
>> garantiert.
> genau das meine ich ja. Bei einer Compilersprache kommt dann eine
> Fehlermeldung wegen falscher Syntax

Und in Interpretersprachen (insbesondere auch Basic) gibt es keine
Syntaxfehler? In C ist die Syntax wenigstens einheitlich, so dass
zumindest diesbezüglich kaum Probleme zu erwarten sind.

> Also ich bin im Nachhinein froh, daß ich damals mit Basic angefangen
> habe.

Ich habe ebenfalls mit Basic angefangen, aber weniger, weil die Sprache
besonders einfach ist, sondern weil bei meinem ersten Computer nichts
anderes dabei war.


Um aber wieder auf das Thema zurückzukommen:

Welchen aktuellen Basic-Interpreter bzw. -Compiler würdest du denn dem
TE für sein Vorhaben, 2D-Spiele zu programmieren, empfehlen?

von Progbit (Gast)


Lesenswert?

Yalu X. schrieb:
> Ja, vor 30–40 Jahren war das noch so.
>
>> 10 PRINT "HALLO WELT"
>
> Heute ist Visual Basic .NET hipp. Da führt die obige Codezeile zu einem
> Syntaxfehler.
Tja, auch Basic hat sich leider gewandelt - Du mußt aber nicht gerade VB 
oder PureBasic wählen, die beide eine völlig andere Syntax haben.
Standard ist das alte Microsoft Basic + Derivate und da geht dann Zeile 
10 wieder.

Yalu X. schrieb:
> Hast du mal versucht, ein unter Windows lauffähiges, nicht ganz
> triviales Basic-Programm auf Linux oder Mac laufen zu lassen? Da hast du
> genau dieselben Probleme und sogar noch eines zusätzlich, weil das dort
> installierte Basic mit hoher Wahrscheinlichkeit eine andere Syntax hat.
Der Hersteller des jeweiligen Basic gibt das vorher an auf welchen 
Betriebssystemen es läuft und auf welchen nicht.

Yalu X. schrieb:
> Und in Interpretersprachen (insbesondere auch Basic) gibt es keine
> Syntaxfehler? In C ist die Syntax wenigstens einheitlich, so dass
> zumindest diesbezüglich kaum Probleme zu erwarten sind.
Bei C gibt es auch Verkürzungen in der Syntax und sie ist bisweilen 
gewöhnungsbedürftig.
Außerdem hast Du bei Basic keinerlei Compiler-Instruktionen - für einen 
Anfänger von Vorteil.
Du drückst 'Run' und siehst sofort das Ergebnis

Yalu X. schrieb:
> Ich habe ebenfalls mit Basic angefangen, aber weniger, weil die Sprache
> besonders einfach ist, sondern weil bei meinem ersten Computer nichts
> anderes dabei war.
Dann hättest Du ja auch gleich damals schon mit Assembler starten können 
:-)

von Progbit (Gast)


Lesenswert?

Yalu X. schrieb:
> Welchen aktuellen Basic-Interpreter bzw. -Compiler würdest du denn dem
> TE für sein Vorhaben, 2D-Spiele zu programmieren, empfehlen?
Wenn er denn Basic wählen sollte, würde ich Darkbasic oder Blitzbasic 
wählen, weil diese Varianten auf Spiele ausgelegt sind und es auch noch 
eine Community/Forum gibt.
Oder aber Browsergames mit HTML5 - eigentlich am sinnvollsten.
Wenn er schon etwas C kann, würde ich das mit SDL kombinieren.
Ich kenne ja seinen Wissensbackground nicht und ob es bei Spielen 
bleiben soll oder eben doch mehr?

von Einer (Gast)


Lesenswert?

Progbit schrieb:
> würde ich Darkbasic oder Blitzbasic wählen

Dark-Basic: Aktuelle Version 7.62, Mai 2012

Blitz-Maxx: Aktuelle Version 1.51, September 2015


Meine Frage weiter oben war ernst gemeint:

   Aus welcher Gruft seid ihr entstiegen?

Und nun interessiert mich auch noch:

   Wann steigt ihr wieder zu den Untoten zurück? Nächsten Vollmond?

von Peter K. (Gast)


Lesenswert?

erstaunlicherweise kosten einige Basiccompiler noch gutes Geld.
Also doch zu Freepascal bzw Lazarus :-)
Unter Linux wird das extrem oft eingesetzt und kaum einer weiß es:-)
Viele der Lieblingsprogramme von einigen sind in Pascal geschrieben, da 
die RAD von Freepascal die einzig braachbare Konkurrenz zu MS Visual C 
ist

von Progbit (Gast)


Lesenswert?

Einer schrieb:
> Meine Frage weiter oben war ernst gemeint:
>
>    Aus welcher Gruft seid ihr entstiegen?
das spielt doch keine Rolle, der TE sucht hier keinen beruflichen 
Einstieg oder will Mikrocontroller programmieren, sondern einfach nur 
Spiele.
Für einfache Spiele reicht das und wenn man null Ahnung hat ist eine 
simple Sprache das Beste.
Er kann ja auch Deine Lieblingssprache? Python wählen, aber warum 
eigentlich?
Ich habe gerade mal https://www.python-lernen.de/python-idle.htm
getestet.
Im Terminalfenster idle3 aufgerufen ... bei mir wohl nicht installiert - 
jetzt kann man als Anfänger erst mal wieder vorab System frickeln, damit 
überhaupt was läuft.
Ob mit Deinen Python auf dem Smartphone was läuft, glaub ich eher nicht?

Am besten wäre er mit HTML5 bedient, weil ein Browser so ziemlich 
überall läuft, auch auf dem Smartphone und man nicht noch irgendwelche 
Bibliotheken nachladen muß, damit überhaupt irgendwas geht.

von Progbit (Gast)


Lesenswert?

Progbit schrieb:
> https://www.python-lernen.de/python-idle.htm
Die Seite ist ganz nett und dadurch, daß das nur ein paar Programmzeilen 
sind, spricht das natürlich für Python.
Insofern hast Du ja recht.

von Rolf M. (rmagnus)


Lesenswert?

Progbit schrieb:
> Einer schrieb:
>> Meine Frage weiter oben war ernst gemeint:
>>
>>    Aus welcher Gruft seid ihr entstiegen?
> das spielt doch keine Rolle, der TE sucht hier keinen beruflichen
> Einstieg oder will Mikrocontroller programmieren, sondern einfach nur
> Spiele.
> Für einfache Spiele reicht das und wenn man null Ahnung hat ist eine
> simple Sprache das Beste.

Aber etwas neu zu lernen, das eigentlich schon lange veraltet ist, ist 
wenig zweckmäßig. Es ist wie schon erwähnt eine Sackgasse.
Klar, wenn ich µC-Schaltungen basteln will, kann ich auch erstmal ein 
Flipflop in Röhrentechnik aufbauen. Aber ist das sinnvoll?

> Er kann ja auch Deine Lieblingssprache? Python wählen, aber warum
> eigentlich?

Weil Python zu den meistverwendeten Sprachen überhaupt gehört und damit 
sehr viel Support und Informationen darüber verfügbar sind. Die Doku ist 
ausgezeichnet. Es gibt viele Bibliotheken für alle möglichen Zwecke, es 
gibt fast überall einen Python-Interpreter mit gleicher Syntax. Die 
Sprache ist einfach zu erlernen.

> Ich habe gerade mal https://www.python-lernen.de/python-idle.htm
> getestet.
> Im Terminalfenster idle3 aufgerufen ... bei mir wohl nicht installiert -
> jetzt kann man als Anfänger erst mal wieder vorab System frickeln, damit
> überhaupt was läuft.

Und dein Basic-Interpreter ist inklusive IDE auf jedem erdenklichen 
System bereits vorinstalliert?

> Ob mit Deinen Python auf dem Smartphone was läuft, glaub ich eher nicht?

Aber sicher: https://python-for-android.readthedocs.io/en/latest/
Für ios gibt's sogar eine IDE, die du direkt auf dem Telefon benutzen 
kannst: http://omz-software.com/pythonista/index.html
Aber wie ist das denn mit deinem Dark-Basic? Auf welchen Smartphones 
läuft das?

von Peter K. (Gast)


Lesenswert?

Also Pascal gibt ea auch für Android:-)...

von Progbit (Gast)


Lesenswert?

Rolf M. schrieb:
> Aber etwas neu zu lernen, das eigentlich schon lange veraltet ist, ist
> wenig zweckmäßig. Es ist wie schon erwähnt eine Sackgasse.
> Klar, wenn ich µC-Schaltungen basteln will, kann ich auch erstmal ein
> Flipflop in Röhrentechnik aufbauen. Aber ist das sinnvoll?
das ist wie bei Fremdsprachen - Latein oder Alt-Griechisch spricht heute 
auch niemand mehr, trotzdem kann man damit ein gutes Sprachverständnis 
gewinnen.
Ich muß ja nicht bei Basic verharren, das verlangt ja niemand.

Rolf M. schrieb:
> Weil Python zu den meistverwendeten Sprachen überhaupt gehört und damit
> sehr viel Support und Informationen darüber verfügbar sind. Die Doku ist
> ausgezeichnet. Es gibt viele Bibliotheken für alle möglichen Zwecke, es
> gibt fast überall einen Python-Interpreter mit gleicher Syntax. Die
> Sprache ist einfach zu erlernen.
das mag so sein, nur kann ich das schlecht beurteilen, weil Python noch 
nicht so en detail kenne.
Das müßte man mal im Vergleich sehen - und damit meine ich nicht nur das 
"Hallo Welt" Programm sehen ... so auf den ersten Blick sieht es ganz 
nett aus, auch wenn ich wegen C eine andere Syntax gewohnt bin.

Rolf M. schrieb:
> Und dein Basic-Interpreter ist inklusive IDE auf jedem erdenklichen
> System bereits vorinstalliert?
natürlich nicht, aber es ist eben der Asbach-Uralt Standard, der auch 
noch auf einen ZX81 mehr oder weniger läuft - gut, heute kein Thema mehr 
wegen Python, C++, usw.

Rolf M. schrieb:
> Aber sicher: https://python-for-android.readthedocs.io/en/latest/
> Für ios gibt's sogar eine IDE, die du direkt auf dem Telefon benutzen
> kannst: http://omz-software.com/pythonista/index.html
> Aber wie ist das denn mit deinem Dark-Basic? Auf welchen Smartphones
> läuft das?
bei Dark-Basic gar nicht, eben nur auf Windows, sonst nichts.
Für das Standard-Basic gibt's eine App, 
https://www.heise.de/download/product/basic-80286
damit laufen dann die meisten Basic Programme a la Microsoft-Basic.
Oder https://f-droid.org/de/packages/net.sourceforge.x11basic/
angelehnt an GFA-Basic.
Also auch das wird kein Problem werden - man muß es halt ausprobieren.
Und man muß ja auch nicht auf einer Sprache ewig verharren!
Es geht hier nur um einen leichten Anfang.
Kann ja sein, daß Python eine gute Alternative für einen Anfänger ist - 
je mehr Möglichkeiten eine Sprache bietet desto kritischer wird es ... 
da werden dann endlose if...then...else if-Anweisungen statt switch 
case-Anweisungen verwendet und anderer Spaghetti-Code - ich finde das je 
nach Sprache sehr gruselig.
Die Möglichkeiten vom Standard-Basic sind nun mal sehr begrenzt!
Vorteil von Python, man kann sich dann C und C++ sparen, weil es von der 
Syntax gravierende Abweichungen gibt.
Auf Dauer wird man sich für eine Sprache entscheiden müssen.

von Peter K. (Gast)


Lesenswert?

"Die Möglichkeiten vom Standard-Basic sind nun mal sehr begrenzt!"

Das musst du m ir mal erklären.
Wir reden hier von modernen basic, und du kommst jetzt mit Pascal von 
1980?!?

Wir reden hier von Turbo PAscal 7.0 Oder Delphi ab 
6.0(Freepsdcal/Lazarus)

Und das bietet sicher jedem ausreichend Möglichkeiten , wie aktuelle 
basicvarianten auch. Allerdings würde ich eben auch eher auf PAscal 
setzen.
Basic nutze man weil es einfach war und oft nichts anderes gab.
Als es dann Turbo!! Pascal gab, war Basic auf dem absteigenden Ast

Borland hatte dann den umstieg auf Windows total vermasselt, und das war 
dann die Zeit für C
Vielleicht hätte sich auch ohne diesen Fehler durchgesetzt, schwer zu 
sagen. Aber in der breiten Masse hätte PAscal eine gute Chance gehabt.
Das aufgebohrte Basic von heute ist Pascal vermutlich so ähnlich, das 
man besser gleich auf Pascal setzen sollte

von Peter K. (Gast)


Lesenswert?

was mich am meisten an Basic stören würde..viele Projekte schlafen ein.
Feepascal wird beständig weiterentwickelt.
Und wie gesagt..kostenlos ebenfalls wie C.
Jeder brauchbare Basic Compiler kostet....und bietet dafür keinen 
Vorteil.
Ich ärgere mich immer noch, damals Bascom gekauft zu haben

von Dussel (Gast)


Lesenswert?

Vielleicht wurde es schon geschrieben und ich habe es überlesen oder 
wieder vergessen, aber was spricht Pascal oder BASIC im Vergleich zu 
Python?
Für Python spricht, dass es (laut TIOBE) eine der meistgenutzten 
Sprachen ist. Ich habe in den letzten Monaten und Jahren einige 
Stellenanzeigen gelesen und da wurde öfter mal Python gefordert. An 
Pascal oder BASIC kann ich mich nicht erinnern.

Relativ einfach sind alle drei Sprachen. Der Einrichtungsaufwand sollte 
auch ähnlich sein. Den Bibliotheksumfang kann ich nicht beurteilen, da 
steht aber Python sehr wahrscheinlich nicht hintenan.

von Benny (Gast)


Lesenswert?

Als Polyglotter Hobby-Programmier, der auch mal klein mit BASIC am 
C64-er angefangen hat und sich seitdem aus Interesse an den 
verschiedensten Sprachen in so gut wie alle verbreiteten (plus ein paar 
exotische) Programmiersprachen eingearbeitet hat, würde ich HEUTE jedem 
Anfänger Python empfehlen. Leicht zu lernen, schnelle Resultate und 
unheimlich viele Bibliotheken, die viel Boilerplate-Code, die man in 
anderen Sprachen oft hat, unnötig machen.

Sollte der OP allerdings bereits programmieren können, würde ich 
empfehlen, bei der Sprache zu bleiben, die bekannt ist, und schauen, 
dass man eine dazu passende Spiele-Engine findet.

Wenn tatsächlich ein ernsthaftes Spiele-Projekt angedacht ist, würde ich 
empfehlen, C# zu lernen und das Projekt dann mit Unity auf die Beine 
stellen. Von allen Engines, die ich bisher probiert habe, kommt man 
damit am einfachsten zum Ziel.

von Peter K. (Gast)


Lesenswert?

" aber was spricht Pascal oder BASIC im Vergleich zu
Python?"
Nur, da wir in einem mikrocontroller Forum sind und man damit die Option 
zur Nutzung von Mikrocontrollern offen lässt.
Basic und Pascal gibt es für ARM, AVR 8051 etc pp
Die Python  umestezung bzw ein Spezieller Chip extra dafür...ist halt 
nicht wirklich eine Option.
Rein auf dem PC genutzt, spricht nichts gegen Python

von RustUser (Gast)


Lesenswert?

Als ich vor vielen Jahren mit dem programmieren anfing und auch viele 
Jahre danach, als ich über andere Programmiersprachen nachdachte, hatte 
ich immer den Gedanken "am besten wählt man eine Programmiersprache, in 
die man sich richtig gut einarbeitet. Dann habe ich langfristig was 
davon und werde richtig gut darin."

Heute denke ich eher man sollte sich verschiedene Programmiersprachen 
anschauen und es ist dann nur eine Frage der Zeit bis man durch die 
Erfahrungen und Vorlieben sich seine liebsten Programmiersprachen 
aussucht.

Vergesst dieses "ich wähle jetzt Programmiersprache x, programmiere nur 
noch damit und bin nach vielen Jahren ein Meister darin".

Viele C++ Meister dürfen jetzt sich sowieso mit Rust beschäftigen :D
Freiwillig und manche auch unfreiwillig. Sollte es sich mehr durchsetzen 
werden vermutlich noch viel mehr C++ Meister in ihren Jobs Rust lernen.

„Be water, my friend“ – Bruce Lee :D

von RustUser (Gast)


Lesenswert?

Achja ich empfehle Rust. Schwierig für Programmieranfänger. Genau was 
für echte Männer oder die es noch werden wollen :D
Wer gut werden will muss sich strengen Kriterien stellen.
Das Gehirn von jungen Menschen ist lernfähiger als die von Erwachsenen. 
Man sollte es mit der Kindergarten Mentalität nicht übertreiben sondern 
Kindern und jungen Leuten in ihrer stärksten Lernphase möglichst starke 
Konzepte vermitteln. Es sollte auf keinen Fall leicht sein.

von Progbit (Gast)


Lesenswert?

RustUser schrieb:
> Achja ich empfehle Rust. Schwierig für Programmieranfänger. Genau was
> für echte Männer oder die es noch werden wollen :D
Rust ... die bisher schlechteste Doku überhaupt!
Rust scheitert schon daran:
could not find Cargo.toml in x:\xxx\xxx\xxx or any parent directory

... und dann kann man sich einen Wolf suchen.
Diese Meldung taucht jedenfalls bei mir nach Schnell-Installation auf 
und nach dem Versuch ein etwas besseres als "Hallo Welt"-Programm 
auszuführen.

von PittyJ (Gast)


Lesenswert?

Progbit schrieb:
> Rust scheitert schon daran:
> could not find Cargo.toml in x:\xxx\xxx\xxx or any parent directory
>

Das lässt auf Windows schliesen. Die Basis allen Übels.
Nimm doch einfach was gutes.

von Peter K. (Gast)


Lesenswert?

"
Das lässt auf Windows schliesen. Die Basis allen Übels.
Nimm doch einfach was gutes."
unpassender, unsachlicher  und dummer Kommentar...kennen wir ja nicht 
anders aus der Fraktion....

von W.S. (Gast)


Lesenswert?

RustUser schrieb:
> Achja ich empfehle Rust. Schwierig für Programmieranfänger. Genau was
> für echte Männer oder die es noch werden wollen

Klasse Vorschlag - mal im Ernst: wem sollte man Rust empfehlen? Und zu 
welchem Zweck? Doch wohl nicht für jemanden, der eine Arbeit vor sich 
hat und damit auch noch irgendwann fertig sein soll.

W.S.

von Progbit (Gast)


Lesenswert?

W.S. schrieb:
> Klasse Vorschlag - mal im Ernst: wem sollte man Rust empfehlen? Und zu
> welchem Zweck? Doch wohl nicht für jemanden, der eine Arbeit vor sich
> hat und damit auch noch irgendwann fertig sein soll.
>
> W.S.
Jetzt fehlt eigentlich nur noch Ruby on rails als Vorschlag für den 
Anfänger :-)
https://medium.com/@michellenguy/5-reasons-to-build-your-first-game-in-ruby-as-a-beginner-game-developer-73265dc2c88

von RustUser (Gast)


Lesenswert?

Rust und Spieleentwicklung:
https://arewegameyet.rs/

Progbit schrieb:
> Rust scheitert schon daran

Scheitert Rust oder der Anwender? :D

W.S. schrieb:
> Klasse Vorschlag - mal im Ernst: wem sollte man Rust empfehlen? Und zu
> welchem Zweck? Doch wohl nicht für jemanden, der eine Arbeit vor sich
> hat und damit auch noch irgendwann fertig sein soll

Jetzt reißt dich zusammen man! :D

von Εrnst B. (ernst)


Lesenswert?

Um mal ein reales Beispiel für ein erfolgreiches Spieleprojekt zu 
nehmen:

https://www.tibia.com/

MMORPG, seit 1997 am Markt, macht Millionenumsätze, aktuell >10k Spieler 
online.
GUI davon war in Tcl/Tk erstellt. (in den ersten Versionen, keine Ahnung 
ob das immer noch so ist).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.