Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Unbegabt83

Frischling

  • »Unbegabt83« ist der Autor dieses Themas

Beiträge: 22

Wohnort: Mörfelden-Walldorf

Beruf: habe ich

  • Private Nachricht senden

1

21.12.2017, 13:20

Hilfe ich weiß nicht weiter (Sammelthread)

Hallo zusammen,

ich brauche eure Hilfe weil ich es einfach nicht blicke.

Frage 1:
Kann ich, ohne Angaben von Entwickler, erkennen mit welcher Sprache, Engine, Bibliothek etc. ein Spiel geschrieben wurde?
Das ich den Quellcode nur einsehen kann wenn der Entwickler diesen freigegeben hat, weiß ich mittlerweile. (auch da bitte Korrektur falls nicht korrekt)

Hintergrund ist, ich habe ein paar alte Spiele bei denen ich mir Teile des Konzepts gerne näher ansehen möchte.
Als Beispiel jetzt mal das Spiel "Dune" (Quellcode ist verfügbar, dient also wirklich nur als beispiel)

Frage 2:
Bisher habe ich nur Consolen Anwendungen geschrieben. Jetzt möchte ich gerne in ein Windowsfenster und mit Simpelster 2D Optik beginnen.
Urpsrünglich dachte ich, nach Erkläung von Herr Kalista, das ich mein Windows fenster selber anfange zu Programmieren aber wieso das Rad neu erfinden
wenn es in VS so einfach ist?!? Also VS Windowsfenster erstellt sieht gut aus passt. Aber wo zum Geier Steige ich mit Main ein? :dash:

Frage 3:
Optisch möchte ich ein schwarzes Fenster (ist ja schon standardmäßig so) mittig kommen nach dem Drücken des Start Buttons 3 weiße Rechtecke mit Schwarzen Zahlen die das Ergebnis ausspucken.
Der Start Button der Beenden Button und ein Feld für die Coin Anzahl soll es auch geben. Brauche ich da wirklich die SDL oder SFML für oder kann man das auch ohne machen? Es soll ja nichts animiert werden etc.

Frage 4:
Wenn ich bisher etwas gelernt habe, habe ich immer ganz vorn angefangen. Beim Programmieren wird aber (fast) immer gesagt nimm doch das und das da ist schon alles drin was du brauchst.
Was aber wenn ich quasi alles, Engine Bibliothek etc. selber schreiben will? Gibt es da auch Bücher für oder ergibt sich das eh wenn man Programmierung verstanden hat? (die Frage bekomme ich nicht besser erklärt)

Mehr fällt mir grade nicht ein, danke für eure Geduld

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

21.12.2017, 13:57

Wenn ich bisher etwas gelernt habe, habe ich immer ganz vorn angefangen. Beim Programmieren wird aber (fast) immer gesagt nimm doch das und das da ist schon alles drin was du brauchst.
Was aber wenn ich quasi alles, Engine Bibliothek etc. selber schreiben will? Gibt es da auch Bücher für oder ergibt sich das eh wenn man Programmierung verstanden hat? (die Frage bekomme ich nicht besser erklärt)

Ich halte es für sinnvoll wenn du dir erst mal etwas fertiges ansiehst. SFML ist da kein schlechter Einstieg. Du hast ja immerhin noch keine Ahnung wie man so etwas aufbauen kann. Danach könntest du dir DirectX, OpenGL, Mantle oder wie sie nicht alle heißen ansehen. Dazu gibt es dann natürlich auch Bücher. Selbst zum Thema Engine Design gibt es Bücher. Oft wird gesagt dass es sinnvoll ist einfach Spiele zu entwickeln. Arbeitest du zum Beispiel mit DirectX so schreibst du dir haufenweise Klassen die dir bestimmten Aufgaben erledigen. Bei jedem Spiel versuchst du Teile des Codes wieder zu verwenden und dafür zu refactoren. Mit der Zeit entwickelt sich dann deine Engine von ganz allein. So wird es zumindest oft propagiert. Ich selbst habe mir die Mühe einer eigenen Engine nie gemacht, sondern einfach direkt auf SFML und Co aufgebaut. Selbst da hat sich mit der Zeit Code ergeben den ich mehrfach verwenden konnte.
Kann ich, ohne Angaben von Entwickler, erkennen mit welcher Sprache, Engine, Bibliothek etc. ein Spiel geschrieben wurde?
Das ich den Quellcode nur einsehen kann wenn der Entwickler diesen freigegeben hat, weiß ich mittlerweile. (auch da bitte Korrektur falls nicht korrekt)

Es gibt schon Möglichkeiten. Du kannst anfangen das Spiel mit einem Hex Editor zu betrachten. Möglicherweise findest du so schon Informationen darüber womit gearbeitet wurde. Viel wirst du damit aber nicht anfangen können.
Eine weitere Möglichkeit wäre mit einem Disassembler zu arbeiten. IDA ist da ein Beispiel für. Das ist aber eine extrem anstrengende Arbeit und du kannst davon ausgehen dass du nicht unbedingt viel von der Logik des Spiels verstehen wirst. Ich wollte es nur für die Möglichkeit in den Raum werfen.
Ansonsten gab es grad einen Artikel bei Heise. Der Service war gestern total überlastet und ich hatte noch keine Zeit das Teil selbst zu kompilieren. Die Idee ist Programme in Quelltext zu überführen. Wie gut das am Ende wirklich geht kann ich aufgrund fehlender Tests nicht sagen. Laut dem Artikel geht da so einiges. Kannst du dir vielleicht einfach mal ansehen.

Ansonsten hast du halt die Möglichkeit dir Bücher über Spieleentwicklung zu besorgen, Quellcodes von Open Source Spielen anzusehen, Quellcode von Engines zu lesen oder eben einfach selbst haufenweise Spiele zu entwickeln. Selbst wenn du am Anfang nicht so den Durchblick hast wirst du mit der Zeit immer besser werden. Eben deshalb ist es auch nicht dumm wenn du mit einer fertigen Engine beginnst und dich erst mal nur ums Spieleentwickeln an sich kümmerst, und dich eben erst danach an grafische Grundlagen und Engines setzt. Am Ende musst du da aber deinen eigenen Weg finden.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Tobiking

1x Rätselkönig

  • Private Nachricht senden

3

21.12.2017, 16:31


Frage 1:
Kann ich, ohne Angaben von Entwickler, erkennen mit welcher Sprache, Engine, Bibliothek etc. ein Spiel geschrieben wurde?
Das ich den Quellcode nur einsehen kann wenn der Entwickler diesen freigegeben hat, weiß ich mittlerweile. (auch da bitte Korrektur falls nicht korrekt)

Oft reicht ein Blick in das Spielverzeichnis um bereits einige Sachen herauszufinden. Da Spiele ohne Voraussetzungen lauffähig sein sollen, wird in der Regel alles an DLLs und Redistributables mitgeliefert. Open-Source Bibliotheken werden häufig sogar explizit in einer Textdatei aufgelistet. Mit etwas Hintergrundwissen lässt sich auch schon anhand Verzeichnisstruktur und/oder Paketformat auf Engines schließen.

Was das Decompilieren angeht, kommt es stark auf die verwendete Sprache/Technologie an. Bei Java und C# ohne Obfuscator kommt man z.B. relativ nah an den originalen Quellcode (ohne Kommentare). Und falls sich das nicht geändert hat, ist es bei Verwendung von Unity nur begrenzt möglich einen Obfuscator einzusetzen. Bei C und C++ trifft aber das zu was Schorsch geschrieben hat.

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

4

21.12.2017, 18:38

Was aber wenn ich quasi alles, Engine Bibliothek etc. selber schreiben will? Gibt es da auch Bücher für oder ergibt sich das eh wenn man Programmierung verstanden hat?


schaue Dir an was in der demoscenelos ist. Du musst verstehen, wie du pixel zeichnen kannst, dann kannst du Dir bild formate wie PNG anschauen und deinem Programm beibringen, wie du solche dateien rauslesen kannst um die Pixel zu zeichenen, die demo scene kann das aber vermutlich auch ohne bildformate.

für 3d kannst du zum verständnis in das simple 3d format OBJmal reinschauen, da siehst du wie einfach ein modell im code aufgebaut ist

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

21.12.2017, 18:42

schaue Dir an was in der demoscenelos ist. Du musst verstehen, wie du pixel zeichnen kannst, dann kannst du Dir bild formate wie PNG anschauen und deinem Programm beibringen, wie du solche dateien rauslesen kannst um die Pixel zu zeichenen, die demo scene kann das aber vermutlich auch ohne bildformate.

Das hat hier doch überhaupt nichts mit der Demoszene zutun. Und normalerweise nutzen die keine externen Daten. Da können andere hier aber mehr zu sagen. Wir haben ja ein paar Leute die sowas machen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

6

21.12.2017, 19:38

OK vermutlich kann directX schon bilddateien lesen, ich habe hier eine bild rausgesucht, also wenn TE nicht SDL möchte, kann er noch eine stufe lower gehen und DirectX lernen

(Link)

ich frage mich ob framebuffer nur linux ist, gab es das nicht auch bei Command&conquer also bei MS-dos?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

21.12.2017, 19:42

Guckst du hier.

Zitat


Das Linux Framebuffer Device (kurz fbdev) ist eine hardwareunabhängige Abstraktionsschicht unter Linux, um Grafiken auf der Konsole bzw. mit X-Window (xf86_fbdev) anzuzeigen. Dabei setzt das Framebuffer-Device nicht auf systemspezifischen Bibliotheken wie der SVGALib oder dem X Window System auf und ist somit eine ressourcensparende Alternative zum weiterverbreiteten X-Server, auf dem heute die meisten grafischen Oberflächen für Linux aufbauen. Es ist seit der Linux-Kernelversion 2.1.107 für alle Plattformen im Standardkernel enthalten.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Unbegabt83

Frischling

  • »Unbegabt83« ist der Autor dieses Themas

Beiträge: 22

Wohnort: Mörfelden-Walldorf

Beruf: habe ich

  • Private Nachricht senden

8

22.12.2017, 10:14

also wenn TE nicht SDL möchte, kann er noch eine stufe lower gehen und DirectX lernen


Ich habe ja nicht gesagt das ich nicht damit Arbeiten will, die Frage war ob es den möglich wäre.
Ich möchte ja, erstmal, ausser 2 Buttons, 1 Jeton oder Coin Anzeige und 3 nicht Simulierten Bildern nichts anzeigen.
Da kam mir dann die frage ob ich dafür dann dennoch SDL & Co. benötige

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

9

22.12.2017, 10:20

Ich denke dein grösstes Problem gerade ist dass du alles auf einmal lernen und machen willst. Das geht aber nicht. Du kannst keine 20 Jahre Wissen und Erfahrung auf zwei Zeilen Foreneintrag eindampfen.

Meine Idee wäre, fang an einem Ende an, der Rest ergibt sich dann nach und nach. Und dann lösen sich auch viel Fragen von selbst :)
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

Unbegabt83

Frischling

  • »Unbegabt83« ist der Autor dieses Themas

Beiträge: 22

Wohnort: Mörfelden-Walldorf

Beruf: habe ich

  • Private Nachricht senden

10

22.12.2017, 10:42

Ich denke dein grösstes Problem gerade ist dass du alles auf einmal lernen und machen willst. Das geht aber nicht. Du kannst keine 20 Jahre Wissen und Erfahrung auf zwei Zeilen Foreneintrag eindampfen.

Meine Idee wäre, fang an einem Ende an, der Rest ergibt sich dann nach und nach. Und dann lösen sich auch viel Fragen von selbst :)


Nein will ich eigentlich nicht.
Ich habe halt derzeit das Problem was vermutlich viele ungebildete (Studium-, Ausbildung- in der IT) haben wenn sie C++ lernen und nicht in Unity & Co. starten möchten das ich
vor dem Problem hänge wie ich jetzt mein Konsolengeschrieben Slotmachine in ein Windows fenster bekomme und das mit möglichst wenig Grafik. 2 Buttons eine Jeton/Coin anzeige und 3 Felder die das Ergebnis ausspucken.

Die anderen Sachen sind eher nice to know und für die Zukunft.

Werbeanzeige