Ich hab mir jetzt nicht den ganzen Thread genau durchgelesen, aber um das problem der mehrfachvererbung zu umgehen könnte man auch ein Entity-Component-System benützen.
Ich hab mir jetzt nicht den ganzen Thread genau durchgelesen, aber um das problem der mehrfachvererbung zu umgehen könnte man auch ein Entity-Component-System benützen.
Ja, das ist sicher ein sehr kompliziertes und schwieriges Unterfangen. Ich habe es mir auch vorher sehr sehr genau überlegt, ob ich mir wirklich all diese Arbeit machen möchte.
Aber ich denke, dass solch ein Projekt eine ganze Menge Potential hat; besonders wenn man bedenkt, dass sich ein ordentliches Produkt sogar international vermarkten lassen könnte.
Was den Vergleich zum RPG-Maker angeht so muss ich sagen, dass ich mit vielen "Features" des RPG-Maker sehr unzufrieden bin. Meiner Meinung nach wurde an mehreren Stellen nicht so sorgfältig gearbeitet wie es hätte getan werden können. Ich versuche vor allem eine sehr offene und dynamische Engine zu bauen und es den Entwicklern leicht zu machen auch andere Spiele als simple RPG's leicht zu erstellen.
Das bin ich auch.
Es gibt gottseidank kein Problem der Mehrfachvererbung in meiner Datenstruktur. Mehrfachvererbung ist in der Programmierung nur dann ein Problem, wenn eigene Methoden geschrieben werden können; das kann bei mir aber nicht passieren. Es werden nur Datenhaltungs-Container geschrieben, selbst die Scripte sind im Grunde nur delegierte Methoden-Objekte, ein Strategie-Muster wenn man so will.
Damit wird eine ganze Menge Ärger vermieden und die gesamte Struktur des Programms bleibt immer stabil.
Oh eine Sache die ich auch noch für wichtig halte. Falls du es noch nicht getan hast, würde ich dir raten ma ein richtiges Spiel zumachen. Nicht nur theoretisch sondern tatsächlich. Dadurch siehst du erst was so eine Engine braucht und was Ballast ist. Wie zeichnest du Teile einer Grafik? Welche Render Technologie will du verwenden (Ganz Ehrlich, wenn du nicht libGDX als Basis nutzt, wäre ich fast schon enttäuscht), wie verarbeite ich Sound (Midis in Java sind z.B. kein Ding das man mal eben "sich aus denken und gut vorplanen kann"). Wie speichere ich Werte damit sie global verfügbar sind? Wie sende ich Informationen über Veränderungen an verschiedene Modelle (Ja, MVC ist ein tolles Format für Spieleentwicklung, besonders weil man View und Control zusammenfassen kann). usw. usw.
Wie gesagt, sich das auszudenken ala: "Mh, wenn ich ein Spiel machen, brauche ich das und das..." kommt man nie auf die Sachen die man wirklich braucht. Auch wird das noch erschwert durch die Tatsache, das die Engine ja für 2D Spiele allgemein gelten soll. Kein leichtes Unterfangen sowas... :/
Viele Sachen kannst du abererledigen indem du dir einfach andere Engine anguckst. Auch am besten nicht nur Drag-and-Drop-Engines sondern auch, solche die nur als Render Engines oder minimaler Startpunkt dienen. Die haben oft Konzepte die ziemlich Klasse sind (impact.js *hust*).
@Maker
Für was der Maker wollte (2D RPGs erstellen), war er sehr gut in vielen Dingen. Klar war er nicht offen, aber er war dynamisch und ist es auch (und eigentlich in gewissen Maße auch offen, siehe XP usw.). Wie gesagt, sollte man immer das mitnehmen, was gut funktioniert hat. Und der Maker hat zumindest meiner Meinung nach einer tolle Sachen, die ich auch in anderen Engines immer mal wieder finde.
Das alles sind natürlich nur Tipps und Hinweiße, was du am Ende machst, sei dir überlassen![]()