Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Zur Vorstellung von Komponenten und Units für Lazarus
Bemi
Beiträge: 14
Registriert: So 7. Jan 2024, 15:02
OS, Lazarus, FPC: XP, 7, 10, 11/ 3.8 /3.2.2
CPU-Target: X86-64
Wohnort: Eckental

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Bemi »

falls jemand zu OpenGl was zum schmökern sucht...: https://delphigl.com/

Benutzeravatar
six1
Beiträge: 837
Registriert: Do 1. Jul 2010, 19:01

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von six1 »

Kommt ja immer drauf an, was es werden soll. Man kann auch ohne spezielle Unterstützung Spiele programmieren.
Ich habe hier: viewtopic.php?t=13459 und hier: viewtopic.php?t=13468 in kurzer Zeit etwas erstellt.
Gruß, Michael

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Mathias »

Bemi hat geschrieben: Sa 22. Feb 2025, 19:35 falls jemand zu OpenGl was zum schmökern sucht...: https://delphigl.com/
Auf dieser Seite ist leider nr noch tote Hose, dort war ich früher recht aktiv.
Da bleibt fast nur noch dies als Ausweg: https://community.khronos.org/
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Mathias »

Mathias hat geschrieben: Sa 22. Feb 2025, 13:11 Mir ist auch mal eine Idee durch den Kopf gegangen. Die Konfiguration für ein Games in einer LCL-App machen und sobald man Run drückt wird die Konfiguration in eine Datei gespeichert. Anschliessend startet man ein SDL-Programm im Vollbildmodus, welches die Konfiguration aus der Datei holt. Und sobald gameover ist, beendet sich das SDL-Programm und man ist wieder im LCL-Programm.
So ist man im reinem Spiel die ganze LCL-Last los und man kann SDL voll ausreizen.
Das nutzen viele alte Spiele. :)
Genau daher bin ich auf diese Idee gekommen.
doomsday fährt auch einen ähnlichen weg, natürlich viel professioneller.
Wen ich mich zurück erinnern mag, startete doomsday frühe mit einem Windows-GUI Fenster, wo man vieles einstellen konnte und dann konnte man Run klicken.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

jammernich
Beiträge: 25
Registriert: Di 5. Nov 2024, 22:36
OS, Lazarus, FPC: Win11, Lazarus 3.8
CPU-Target: x86_64bit

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von jammernich »

Ja, solange man nicht die Zeit hat die Einstellungen im Spiel anzubieten. Es gibt auch Spiele die den Weg gehen und im "windowed mode" über eine SDL-App alles einstellen lassen. So ein Launcher kann ganz schön umfangreich werden, wenn SDL und OpenGL konfiguriert werden sollen, muss aber nicht. Also dazu die LCL dazu zu nutzen finde ich sehr hilfreich. Btw: @Mathias hast du ein Beispiel, wie man mit den neuen SDL3-Properties umgeht. Das ist ganz anders als bei SDL2 gelöst.

zwei Beispiele für schicke Launcher
SongsOfSyx.png
SongsOfSyx.png (163.98 KiB) 6371 mal betrachtet
Screenshot 2025-02-23 093426.png
Screenshot 2025-02-23 093426.png (234.48 KiB) 6371 mal betrachtet
https://songsofsyx.com/
mbw.jpg
mbw.jpg (170.69 KiB) 6371 mal betrachtet
https://www.taleworlds.com/en/games/warband

das sind natürlich hochprofessionelle Spiele.. und nicht von mir!

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Warf »

Wenn man das Spiel von Grund auf baut macht das auch Sinn nur das einzubauen was wirklich notwendig ist. Ein schönes und funktionales UI zu bauen ist nicht so trivial. Aber da kommen halt auch wieder Engines ins Spiel, sobald man einmal eine Engine gebaut hat mit einer vernünftigen UI Bibliothek geht das ganze auch ohne "Medienbruch".

Es gibt spiele wo das immer noch Sinn macht, z.b. runden basierte Multiplayer spiele bei denen man einen Client als Fenster offen haben möchte Falls einen Freunde einladen wollen, aber man nicht unbedingt einen Exclusive Fullscreen drin haben will.
Das gesagt, heutzutage erwartet man da auch grafisch aufwendigere Menüs die auch im Grafikstil des Spiels sind, und keine Standard Win32 Forms Anwendung.

Generell zum Thema LCL und Spiele, egal ob jetzt als Menü, oder Spiele mit LCL controls, ja klar kann man das machen, und zum Experimentieren auch voll in Ordnung, wenn man aber ein richtiges Spiel basteln will was man der Welt präsentieren möchte ist das halt definitiv unter den Standards die man normalerweise so erwartet.
Insbesondere da mit engines wie Unity heutzutage Kinder ohne vorige Programmierer Erfahrung besser polierte und aufbereitete Spiele in ihrem Kinderzimmer basteln können
(Was ich, fürs Protokoll, übrigens super finde, je einfacher es ist coole Dinge programmieren und Erfolgserlebnisse zu haben desto besser)

jammernich
Beiträge: 25
Registriert: Di 5. Nov 2024, 22:36
OS, Lazarus, FPC: Win11, Lazarus 3.8
CPU-Target: x86_64bit

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von jammernich »

Das ist ein aber ein hoher Anspruch für den "Hobbybereich" der Spieleentwicklung. Für ein Spiel ist man quasi auch als Grafikdesigner gefordert, nicht nur als Programmierer. Das timmt schon. Es soll doch alles etwas ansprechend aussehen, eine Stimmung vermitteln. Das finde ich sehr schade, dass z.B. Michalis der die Castle GE entwickelt, dafür kaum Ressourcen hat, aber das sieht man auch beim CGE Editor(sieht aus wie Lazarus). Mir geht es halt nicht anders, wenn ich keinen GrafikDesigner engagieren kann.. Ich finde z.B. Retro-Pixelgrafik in vielen IndieSpielen sehr schick. Auch etwas von Hand zu Zeichnen vermittelt eine ganz andere Stimmung (z.B. Portraits und Icons). Und ein UI muss halt auch halbwegs stimmig sein. Das ist auch wieder eine Frage der Ressourcen und der Zeit die man da reininvestieren kann. Als Einzelperson ist man da doch sehr limitiert.

jammernich
Beiträge: 25
Registriert: Di 5. Nov 2024, 22:36
OS, Lazarus, FPC: Win11, Lazarus 3.8
CPU-Target: x86_64bit

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von jammernich »

Das ist für mich eine große Quelle der Inspiration, beide Spiele sind für Pascal und nutzen SDL1(?), mit quellcodes für Console oder mit eigener GUI :
https://github.com/jwvhewitt/gearhead-1
https://github.com/jwvhewitt/gearhead-2
Die neueste Folge der Serie wird glaube ich mit Python und SDL entwickelt, hier kann man sich das anschauen: https://gearheadrpg.com/

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Warf »

jammernich hat geschrieben: So 23. Feb 2025, 10:35 Das ist ein aber ein hoher Anspruch für den "Hobbybereich" der Spieleentwicklung. Für ein Spiel ist man quasi auch als Grafikdesigner gefordert, nicht nur als Programmierer. Das timmt schon. Es soll doch alles etwas ansprechend aussehen, eine Stimmung vermitteln. Das finde ich sehr schade, dass z.B. Michalis der die Castle GE entwickelt, dafür kaum Ressourcen hat, aber das sieht man auch beim CGE Editor(sieht aus wie Lazarus). Mir geht es halt nicht anders, wenn ich keinen GrafikDesigner engagieren kann.. Ich finde z.B. Retro-Pixelgrafik in vielen IndieSpielen sehr schick. Auch etwas von Hand zu Zeichnen vermittelt eine ganz andere Stimmung (z.B. Portraits und Icons). Und ein UI muss halt auch halbwegs stimmig sein. Das ist auch wieder eine Frage der Ressourcen und der Zeit die man da reininvestieren kann. Als Einzelperson ist man da doch sehr limitiert.
Gibt eine ganze Reihe von Indy spielen die nur von einer Person entwickelt werden. Zum einen gibt es Asset Stores von vielen Game engines in denen man viele assets und Designs finden kann. Zum anderen gibts auch Grafik stile die weniger aufwendig sind. Pixel Art z.b. etwas das man mit einem vernünftigen Editor auch ohne großes Talent im zeichnen oder co erlernen kann (ich kann asesprite empfehlen).

Im 3D Bereich gibt's low poly stile, z.B. superhot ist ein Spiel das viele Preise gewonnen hat mit einem Stil der definitiv auch für Anfänger erreichbar ist.

Ein paar Spiele die von einer einzigen person entwickelt wurden und mittlerweile sehr bekannt sind:
Vampire survivors
Undertale
Papers please
Stardew Valley
Minecraft

Es ist sehr gut möglich für ein Personen Teams ohne budget wunderschöne Spiele in der Freizeit zu basteln

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von Mathias »

@Mathias hast du ein Beispiel, wie man mit den neuen SDL3-Properties umgeht. Das ist ganz anders als bei SDL2 gelöst.
Was meinst du mit Properties ?
Properties gibt es viele. Da wäre von Vorteil, wen man wüsste, was du einstellen willst.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

schoschy
Beiträge: 56
Registriert: Di 18. Okt 2022, 15:46

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von schoschy »

Kurz mal noch zu dem Thema Ressourcen in großen Projekten.

Ich habe vor ~5 Jahren einmal mit Unity einen Videoguide gemacht, welcher von Unity selbst war - kostenlos.
Man hat halt wirklich vieles, was dort einfach abgebildet ist. Oft eher schlecht als recht, wenn man Performance einmal in Betracht zieht. Fällt aber nicht auf, bei der Leistung, welche die heutigen Computer mitbringen. Im Guide wurden irgendwelche Objekte über den Launcher selbst mit kleinen Skripten versehen und man hatte nach ca. 1h ein fertiges spiel. Hintergrund, Gravitation, Musik, usw. war alles dabei implementiert.

Zum Thema Performance selbst, hat sich bei Unity extrem viel getan durch das Spiel "Escape from Tarkov", welches viel zu groß für die damalige Engine war (und höchstwahrscheinlich noch ist). Tarkov ist anfänglich von 5 Russen entwickelt worden, welche keinerlei Programmiererfahrung hatten und das Entwicklerstudio hat nun permanent Mitarbeiter von Unity im eigenen Haus, die nur die Engine gegen das Spiel debuggen.

Die Performance ist der Grund, warum nahezu alle großen Entwicklerstudios nicht zu Unity greifen, sondern eher mit Unreal oder einer eigenen Engine arbeiten.
Daher ist bei der Unreal-Engine auch noch einmal mehr Kapital im Hintergrund vorhanden, was mehr Ressourcen mit sich bringt.

Schlussfolgernd dazu, fehlen die Ressourcen natürlich im fpc Bereich, weshalb man hier eher den Hobbybereich ausfüllt, welcher "nie" von Menschen betreten wird, welche sich nicht mit fpc auskennen.

Ich habe mir die Castle-Engine noch nicht angesehen, daher kann ich dazu nichts sagen.

TSchnuckenbock
Beiträge: 118
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: Spieleprogrammierung mit Pascal - Nützliches und nicht so Nützliches

Beitrag von TSchnuckenbock »

Durch Zufall habe ich eben ein Video (fast 2 Stunden Länge) über die Castle Game Engine gefunden. Das Video ist auf dem Embarcadero-Kanal, dem Hersteller von Delphi zu finden:

"Coding games using Castle Game Engine and Delphi - Michalis Kambureli"

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

Antworten