Pure Basic und seine Entwicklung im 2D Spiele Bereich

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Job
Beiträge: 13
Registriert: 08.05.2009 10:26

Pure Basic und seine Entwicklung im 2D Spiele Bereich

Beitrag von Job »

Ich beziehe mich hier auf diesen, von mir erstellten Frageblock:

http://www.purebasic.fr/german/viewtopic.php?t=19950

Da es dort Antworten gab, die mich bei meiner gestellten Frage nicht wirklich weiter gebracht haben und es scheinbar Meinungen gibt, daß PB perfekt sei, so wie es ist, habe ich mich entschlossen hier zu antworten.

Sehen wir uns zuerst an, was sich seit 2005, mit der Einführung von Version 3.94 im 2D Spielesektor so alles getan hat:

Code: Alles auswählen

3.94 – Nichts

4.00 - Vollständige Alphakanal-Unterstützung für die Sprite3D Library (über PNG und TIFF)

4.20 - DirectX 9 Subsystem

4.30 - Unterstützung für mehrere Joysticks
           Diverse Befehle für OGRE, jedoch nichts für den 2D Bereich

Sollte ich etwas übersehen haben, so sei es mir verziehen und wird hier, nach Nennung, ergänzt.

Meine Frage nach Timern wurde(frei interpretiert) eigentlich gar nicht beantwortet. Denn die Aussagen, "das kann man programmieren" und "PB ist kein GameMaker", lasse ich hier nicht gelten, denn dann würde sich kein Progeamm und keine Programmiersprache weiter entwickeln.
Wozu freuen sich einige über den 47sten Gadget Befehl, PB kann doch API, also könnte man sich doch alles selbst programmieren und kann dabei seine Freiheit geniessen, alles individuell zu gestalten.
(Hier sei mal angemerkt, daß ein Programm selten nach der Leistung des Programmieres bewertet wird, als viel mehr, welchen Nutzen es hat oder welchen Spaß beim spielen).
Warum gibt es bereits Photoshop V10.xx, war Version 1.0 nicht gut genug, man konnte doch auch damit in Fotos malen und sie bearbeiten.
Warum wird ein Visual Basic ständig weiter entwickelt, konnte man nicht auch schon mit der ersten Version programmieren und sich seine Träume erfüllen?

Wenn ein Programm wie PB so perfekt ist, warum ist es dann ein Nischenprodukt auf dem Markt(was einige hier als Vorteil zu sehen scheinen, weil sie damit zu einem elitären Kreis gehören)?

Viele hier bringen ständig Ideen vor, wie man diese Situation bereinigen könnte und PB populärer machen könnte. Dabei liegt doch die Lösung so nah, für mich ist das perfekte Programm, eins das viel kann und trotzdem übersichtlich und einfach bleibt.

Nehmen wir uns diesen Umstand mal zu Herzen, dann sollte PB möglichst viele Lösungen anbieten und weniger Fragen aufwerfen. Gezielte Auswertung der Foren Beiträge kann viel dazu beitragen.
Welche Fragen werden am häufigsten gestellt, wo hat der Anwender die größten Probleme usw.
Tauchen also ständig Fragen zu Scrolling, Playerbewegung, Kollision, Springroutinen oder ähnliches auf, dann sollte man sich als Entwickler der Sprache mal darüber Gedanken machen, ob es hier nicht Nachholbedarf gibt(an Befehlen, Hilfestellungen, Beschreibungen u.ä.).
Warum nicht mal einen "Jump(Player, Höhe, Weite, Gravitation)" Befehl oder einen "Scroll(Daten, Geschwindigkeit, Bereich, Bild3, ParallaxOn).
Weil ihr euch dann in eurer Ehre gekränkt seht, es besser zu können oder keine "richtigen" Programmierer mehr seid?

Ich habe ja wie gesagt schon länger nicht mehr programmiert, aber ich denke, mit Einführung der OGRE Engine, war das Thema PB und Spiele für Fred erledigt. So frei nach dem Motto, jetzt habt ihr doch alles, um gute Spiele zu machen(wie sonst ließe sich eine Zeit von 4 Jahren, in der keine nennenswerten neuen Befehle für den 2D Bereich dazu gekommen sind, erklären).

Denkt mal an die ganzen BlitzBasic User, die sich hier her verirrt haben, es kam fast immer der folgende Eröffnungssatz, "Spiele gehen in BB einfacher, aber ich wollte mal ein Anwender Programm machen und das kann PB toll". Wenn jetzt noch manche denken, BB macht Spiele besser, weil es dort die besseren Programmierer gibt, der hat den Sinn dieses Beitrags noch nicht wirklich verstanden <)

Zum Abschluß mal folgende Überlegung, warum programmieren wohl so viele Menschen in C und C++, weil es wirklich eine so tolle Sprache ist oder weil es im Netz tausende von Bibliotheken gibt, die uns das Leben leichter machen?

Für die Zukunft wünsche ich mir, daß wieder mehr für Spiele Entwickler in PB getan wird oder Fred soll Farbe bekennen, daß man PB nur für Anwendungssoftware sinnvoll einsetzen kann(damit möchte ich keinenfalls all die Programmierer abwerten, die bisher wirklich tolle Spiele mit und für PB entwickelt haben, sondern es stellt sie nur in ein besonderes Licht, nämlich mit Fleiß und Intelligenz die Schwächen von PB umgangen zu haben).

Noch eins und dann ist wirklich Schluß, Ziel eines Basics sollte es sein, auch Menschen, die keine Genies sind, die Verwirklichung ihrer Ideen zu ermöglichen(ich denke mal, daher heißt es auch Basic) und da können es eigentlich nie zu viele Befehle sein, allerhöchst zu wenige.

*
Wer keine Fragen mehr hat, hat auch das Denken aufgegeben.
Und wer keine Antworten erhält, sollte sich mehr Mühe bei der Fragestellung geben.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Job hat geschrieben:Wozu freuen sich einige über den 47sten Gadget Befehl, PB kann doch API, also könnte man sich doch alles selbst programmieren und kann dabei seine Freiheit geniessen, alles individuell zu gestalten.
Wozu überhaupt 2D/3D Befehle, man kann sich doch jede Graphikbibliothek per DLL in PB einbinden.
Job hat geschrieben:Nehmen wir uns diesen Umstand mal zu Herzen, dann sollte PB möglichst viele Lösungen anbieten und weniger Fragen aufwerfen. Gezielte Auswertung der Foren Beiträge kann viel dazu beitragen.
Welche Fragen werden am häufigsten gestellt, wo hat der Anwender die größten Probleme usw.
Tauchen also ständig Fragen zu Scrolling, Playerbewegung, Kollision, Springroutinen oder ähnliches auf, dann sollte man sich als Entwickler der Sprache mal darüber Gedanken machen, ob es hier nicht Nachholbedarf gibt(an Befehlen, Hilfestellungen, Beschreibungen u.ä.).
Warum nicht mal einen "Jump(Player, Höhe, Weite, Gravitation)" Befehl oder einen "Scroll(Daten, Geschwindigkeit, Bereich, Bild3, ParallaxOn).
Weil ihr euch dann in eurer Ehre gekränkt seht, es besser zu können oder keine "richtigen" Programmierer mehr seid?
Ich denke man hat es dir schon gesagt, PB ist kein BAUKASTEN !!!

PS: Ich hätte gerne einen Befehl Mach3dMMORPGWieIchEsMirVorstelle().
Ich werd mir das jetzt so oft wünschen bis es implementiert wurde!

Ne, im Ernst, jeder hätte gerne den einen oder anderen Befehl gerne nativ und jeder priorisiert einen anderen Bereich. (MEHR Netzwerkbefehle, Netzwerk Threadsafe!!!)

Habe die Ehre, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

ja ja man möchte viel, aber das möglichst umsonst. :mrgreen: und wenn nicht umsonst dann maximal 99 cent :o
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Pure Basic und seine Entwicklung im 2D Spiele Bereich

Beitrag von DarkDragon »

Job hat geschrieben:Zum Abschluß mal folgende Überlegung, warum programmieren wohl so viele Menschen in C und C++, weil es wirklich eine so tolle Sprache ist oder weil es im Netz tausende von Bibliotheken gibt, die uns das Leben leichter machen?
C/C++ hat standardmäßig garkeine großartigen Bibliotheken, außer für diverse Algorithmen und Datenstrukturen. Für GUI hat es garnichts, es sei denn du willst an Microsoft gebunden sein und nimmst MFC. Alle anderen Bibliotheken, die man extern bekommen kann, kann man auch zu 90% in PureBasic einbinden, wenn man sich etwas Mühe gibt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Pure Basic und seine Entwicklung im 2D Spiele Bereich

Beitrag von Kaeru Gaman »

Job hat geschrieben:Warum nicht mal einen "Jump(Player, Höhe, Weite, Gravitation)" Befehl oder einen "Scroll(Daten, Geschwindigkeit, Bereich, Bild3, ParallaxOn).
Ein "Scroll"-Befehl würde entweder bedeuten, einen vorhandenen Grafikbereich zu manipulieren,
oder eine riesige Bibliothek an Bildinformationen vorher in ein spezielles Bildsystem einzubinden.

ersteres wäre völlig fruchtlos, da die Grafikausgabe eines 2D-Games in jedem
Frame komplett zusammengesetzt werden muss.

letzteres entspräche der Einbindung einer kompletten Tileengine mit
zig Layern und Parallaxenverwaltung.


ein "Jump"-Befehl würde bedeuten, dass man eine Art Timer implementiert,
denn der Befehl müßte ja mehrere sekunden lang eine Aktion ausführen,
würde aber ja wohl nur ein einziges mal angesprochen werden.


soll ich dich also so verstehen, dass du gerne eine komplette Game-Maker Library in PB drin hättest?



Also, ich persönlich nicht, weil diese Library garantiert ein paar Sachen völlig anders macht als ich das gern möchte.

Diese Funktionen ganz spezifisch für ein spezielles Game zu programmieren, ist furchtbar einfach.

Diese Funktionen möglichst allgemeingültig zu programmieren, dass sie in eine
Bibliothek aufgenommen werden können, ist schon wesentlich komplizierter.
das ist so viel Aufwand, dass es sich praktisch nicht lohnt.
in der Zeit könnte man drei Spiele schreiben, und nachher meckern nur
hundert Leute rum, was das Ding alles nicht kann.

das siehst du schon bei etwas so relativ einfachem wie einer Sprite-Animation.
dafür gibt es eine Lib von Danilo, über die die Meinungen wesentlich auseinander gehen.


Auch OGRE ist keine Engine, die Fred selber programmiert hätte,
sondern ein Fremdprodukt, das er eingebunden hat.
Ich bezweifle, dass er die Zeit und Arbeit geopfert hätte,
selber eine zu schreiben.
und ich bezweifle sehr stark, dass er die Zeit und Arbeit opfern würde,
für eine Oldskool-Technik, die sich drei Leute wünschen und die nachher
dreiunddreißig Leuten nicht gefällt.
[/size]
Zuletzt geändert von Kaeru Gaman am 16.05.2009 14:27, insgesamt 3-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Zum Abschluß mal folgende Überlegung, warum programmieren wohl so viele Menschen in C und C++, weil es wirklich eine so tolle Sprache ist oder weil es im Netz tausende von Bibliotheken gibt, die uns das Leben leichter machen?
Das ist genau der Punkt: Für bestimmte Dinge sind externe Bibliotheken einfach sinnvoller. Es ist cool, daß es in PB schon so viele brauchbare Libs gibt, aber Befehle wie "Jump" oder "Scroll" gehören da wirklich nicht rein (auch wenn ich mir gut vorstellen kann, daß das lediglich absolute Extrembeispiele darstellen sollten). Dafür sind externe Libs einfach geeigneter. Bei der Sprache selbst sollten nur solche Libs dabei sein, die möglichst allgemein und sehr "definiert" sind, also Dinge, "die so gemacht werden und nicht anders". Alles, was spezieller wird, sollte dort nicht unbedingt rein.
Zuletzt geändert von ZeHa am 16.05.2009 14:07, insgesamt 1-mal geändert.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Pure Basic und seine Entwicklung im 2D Spiele Bereich

Beitrag von Thorium »

Job hat geschrieben: Meine Frage nach Timern wurde(frei interpretiert) eigentlich gar nicht beantwortet. Denn die Aussagen, "das kann man programmieren" und "PB ist kein GameMaker", lasse ich hier nicht gelten, denn dann würde sich kein Progeamm und keine Programmiersprache weiter entwickeln.
Wozu freuen sich einige über den 47sten Gadget Befehl, PB kann doch API, also könnte man sich doch alles selbst programmieren und kann dabei seine Freiheit geniessen, alles individuell zu gestalten.
(Hier sei mal angemerkt, daß ein Programm selten nach der Leistung des Programmieres bewertet wird, als viel mehr, welchen Nutzen es hat oder welchen Spaß beim spielen).
Warum gibt es bereits Photoshop V10.xx, war Version 1.0 nicht gut genug, man konnte doch auch damit in Fotos malen und sie bearbeiten.
Warum wird ein Visual Basic ständig weiter entwickelt, konnte man nicht auch schon mit der ersten Version programmieren und sich seine Träume erfüllen?
Die Frage ist einfach wie es mit dem Aufwand-Nutzen-Verhältniss aussieht. Es gibt von der Seite einfach keinen wirklichen Grund eine native Timerlib zu implementieren. Ich meine das is ja keine komplexe Sache und eine Forensuche bringt massig Ergebnisse. Es würde eigentlich garkeinen Unterschied machen ob es nun nativ verfügbar wäre oder nicht. Dafür wäre dann der Aufwand da die Lib für jedes OS anzupassen und zu testen. Steht meiner Meinung nach nicht im Verhältnis.
Job hat geschrieben: Wenn ein Programm wie PB so perfekt ist, warum ist es dann ein Nischenprodukt auf dem Markt(was einige hier als Vorteil zu sehen scheinen, weil sie damit zu einem elitären Kreis gehören)?
PB ist nicht Perfekt. Es fehlt aber an eher elementaren Dingen wie Unsigned Variablen.
Job hat geschrieben: Viele hier bringen ständig Ideen vor, wie man diese Situation bereinigen könnte und PB populärer machen könnte. Dabei liegt doch die Lösung so nah, für mich ist das perfekte Programm, eins das viel kann und trotzdem übersichtlich und einfach bleibt.
Ach klar, warum is da sonst noch keiner drauf gekommen. Ist ja auch super einfach umzusetzten: Eine Programmiersprache die alles kann und dazu noch übersichtlich und einfach ist. :roll:
Das Problem fängt ja schon dabei an das die Meinungen auseinander gehen was übersichtlich ist. Und erst recht dabei was eine Programmiersprache alles können sollte. Die eierlegende Wollmilchsau ist nicht ganz so leicht zu züchten, wie du dir das vieleicht vorstellst. Wenn PB so wäre wie du dir es wünschst, dann muss es noch lange nicht so sein wie andere es sich wünschen. Es werden nie alle zufrieden sein mit einem Produkt.
Job hat geschrieben: Nehmen wir uns diesen Umstand mal zu Herzen, dann sollte PB möglichst viele Lösungen anbieten und weniger Fragen aufwerfen.
Das funktioniert nicht. Mit jeder Lösung wird werden auch wieder Fragen aufgeworfen. Nehmen wir mal die Timer. Wenn PB für jedes Timerproblem fertige Lösungen bieten würde, dann würde der User vor einem Haufen von Funktionen stehen und sich fragen: "Welche soll ich nun davon nehmen?" Um diese Entscheidung treffen zu können, muss er sich wieder intensiver mit der Materie beschäftigen. Hat er das getan, kann er sich den Timer in 3 Zeilen auch selbst schreiben. Womit die Timerlib wieder überflüssig wird.
Job hat geschrieben: Zum Abschluß mal folgende Überlegung, warum programmieren wohl so viele Menschen in C und C++, weil es wirklich eine so tolle Sprache ist oder weil es im Netz tausende von Bibliotheken gibt, die uns das Leben leichter machen?
Hauptsächlich programmiert jeder in C++ weils jeder macht. Was jeder macht muss gut sein, also macht mans auch. Gild immer und überall. Das sich C++ aber so halten kann liegt natürlich noch an vielen anderen Faktoren. Die Massen an Sourcecode und Libs die man bekommt, spielen natürlich auch eine Rolle. Aber auch die Komplexität der Sprache, das sie für jedes OS verfügbar ist, das man Treiber damit schreiben kann (Kernel API verwenden). Das sie unzählige Optimierungsmöglichkeiten bietet. Nicht zuletzt die hochoptimierenden Compiler, gibt für keine Sprache besser optimierende Compiler.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Pure Basic und seine Entwicklung im 2D Spiele Bereich

Beitrag von Kaeru Gaman »

Job hat geschrieben:Ich beziehe mich hier auf diesen, von mir erstellten Frageblock:

http://www.purebasic.fr/german/viewtopic.php?t=19950
und warum schreibst du nicht im dortigen topic weiter? /:->

da waren grad mal zwei postings, du hast es nicht mal für nötig befunden, zu antworten.

jetzt befindet der sich im Mülleimer.

ich bin mal gespannt, ob du dich herabläßt, in diesem thread hier zu antworten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Also ich würde mich für einen Kompromiss zwischen euch und Job entscheiden.

Unter berücksichtigung des englischen Forums finde ich, gibt es viele sinvolle Feature Requests, bei denen die gewünschten Befehle nicht so spezifisch sind, dass sie nur auf ein spezielles Spiel oder Program passen, wie hier gesagt wird. Das fänd ich auch unschön. Aber Requests, deren Befehle allgemein gehalten sind, find ich meistens schon ganz praktisch.
Als kleines Beispiel seien Thoriums "unsigned Variablen" oder auch der triviale Wunsch nach einem optionalem Parameter für 'Position' bei FindString() genannt. Doch wo wurde dieser Parameter optional? Bei Mid(). Und überhaupt, warum gibt es Mid() und ganz besonders Left()? Das kann man doch nun wirklich mit einem PeekS() umsetzen und es bliebe nach wie vor ein Einzeiler. Bei sowas frage ich immer nach dem Sinn solcher "Neuerungen". Sinnvollere Neuerungen wie mehrzeichen-unterstützung als Separator für StingField() werden jedoch mit dem Vermerk "kannste locker selber machen" abgelehnt und erscheinen, wenn überhaupt, erst in PB 5.95.

Auch wenn ich eher einer der Anwendungs-Typen bin, so habe ich doch ein Einsehen mit den Game-Entwicklern von PB, die sich manchmal über die 'mageren' Updates in ihrem Sektor 'wundern', gelinde gesagt.

Auch, wenn dies schon vielfach diskutiert wurde, vielleicht wäre es doch nicht so schlecht, wenn sich die PB-Führungsspitze aufteilen würde in je einen Programmierer für den Anwendungsbereich, den 2D- und 3D Bereich und evtl. einen für die IDE und den VD. So kann sich jeder auf seinen Bereich konzentrieren, was besonders Sinn macht, seit PB immer mehr externe Produkte implementiert hat: OGRE, Scintilla, expat, und PCRE.

Dies würde eine solide Basis bilden. Jeder Bereich bleibt abgedeckt, sodass er sicher upgedated wird. Zusammen mit dem bis heute Erreichtem hat PureBasic es nicht länger nötig, ein Nischenprodukt zu bleiben: Mächtige Libs wie XML und RegExp, Unicode, neue Datentypen (Quads, Integer, Double), 64-Bit Unterstützung und das interne Updatesystem, das es Fred erlaubt, neue Versionen für alle 3 Plattformen gleichzeitig zu veröffentlichen (hat er mal irgendwo erwähnt). Mit zunehmender Popularität könnte man sich es sicher leisten, notfalls einen 2. Programmierer einzustellen. Wie auch immer. Bleibt PureBasic selbst überlassen, wie es seine Zukunft gestaltet.

Hab sowieso schon zu viel geschrieben. Aber was soll's. Zerfleischt mich. :)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Gibt's überhaupt schon ein paar gängige Spielfunktionen als Userlib oder so?

Ich denke da weniger an einen "Baukasten" aber halt einfache Dinge die immer wieder gleich in Spielen vorkommen (Intro Fade, Highscore, Springen, Ducken, ...).
PB 6.21 | Win 11
Antworten