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

21

13.05.2013, 12:43

Hallo Endgegner,
das mit Colobot sieht ziemlich interessant aus. Das war sicherlich einiges an Arbeit von den Programmierern einen Debugger und Quelltexteditor in DirectX8 zu implementieren (wenn ich da an meine GUI denke :) ).

Das errinnert mich auch an das Half Life 2 Mod "Garry's Mod". Da gibt es eine Erweiterung namens "Wiremod" die Sensoren, Prozessoren usw. erlaubt. Also ich möchte auf jeden Fall interaktive Elemente einbauen. Ob ich das jetzt mit Quellcode mache oder mit visueller Programmierung weiß ich noch nicht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »bsf_mistau« (13.05.2013, 21:25)


22

13.05.2013, 21:46

Hallo Endgegner,
was mir da noch einfiel: Zerstört das Programmieren nicht den Spielfluss? Ich wir sehen ja in den letzten Jahren einen Trend dazu das die Steuerung der Spiele immer einfacher wird. z.B. gab es früher in jedem Spiel Medipacks die man aufsammeln musste, heute regeneriert sich die Gesundheit oft automatisch.

Also geht da nicht total die Spannung verloren, wenn man ein Quellcodeeditor öffnet?

florenz1337

Frischling

Beiträge: 30

Beruf: 3D GameArtist & Game Programmierer

  • Private Nachricht senden

23

16.05.2013, 17:34

Hallo,

frage:

wieviele Polygone verträgt deine Sandbox maximal???

Kommt es an Unity3D, Unreal Development Kit oder Hero Engine ran?

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

24

16.05.2013, 18:29

Ziemlich sinnlose Frage florenz. Was bringt es dir irgendwelche Polygonzahlen miteinander zu vergleichen, wenn hier vollkommen unterschiedliche Ziele mit den Engines erreicht werden wollen. Die Sandbox hier ist mehr oder weniger voxelbasiert und hat überhaupt nicht das Ziel sehr detaillierte Modelle darzustellen.

Übrigens sehr schönes "Spiel" und schöne Technik.

Bezüglich der Baupläne und Rezepte stell ich mir allerdings die Frage, wie übersichtlich das wird, wenn du für alle Baumöglichkeiten ein Item im Inventar hast. Möchtest du, dass man solche Rezepte später aufsammeln kann, oder ist sowieso alles von Anfang an vorhanden? Dann macht es eventuell wenig Sinn die Pläne als Items darzustellen. Da würde sich dann eine Enzyklopädie oder so besser eignen, die man im Spiel aufrufen kann.

florenz1337

Frischling

Beiträge: 30

Beruf: 3D GameArtist & Game Programmierer

  • Private Nachricht senden

25

16.05.2013, 19:53

xD ahh xD sry nich gelesen das es auf Voxel basierend is xD^^

26

17.05.2013, 00:24

Es sind üblicherweise 200 - 400 Tausend Polygone in einer Szene zu sehen. Intern sind es etwa 3-5 Millionen (ich muss alle Polygone im höchsten Detailgrad erzeugen, wegen der Physikengine).

Zu den Rezepten:
Es werden alle Rezepte am Anfang in das Inventar eingefügt. Aber so eine Enzyklopädie ist eine gute Idee. Man könnte die Rezepte in Tools, Baumaterial, Technik usw. aufteilen. Vielleicht ein hierarchisches Inventar (ich möchte schon das man später Rezepte einsammeln bzw. handeln kann, aber der Spieler startet definitiv mit einer Menge von vordefinierten Rezepten).

27

18.05.2013, 16:00

Zitat von »bsf_mistau«

Hallo Endgegner,
was mir da noch einfiel: Zerstört das Programmieren nicht den Spielfluss? Ich wir sehen ja in den letzten Jahren einen Trend dazu das die Steuerung der Spiele immer einfacher wird. z.B. gab es früher in jedem Spiel Medipacks die man aufsammeln musste, heute regeneriert sich die Gesundheit oft automatisch.

Also geht da nicht total die Spannung verloren, wenn man ein Quellcodeeditor öffnet?

Ich schätze, das hängt sehr von der Umsetzung der In-Game-Programmierung ab. Wenn die Programmierung beispielsweise rein visuell stattfindet, indem man vorgefertigte Verhaltensweisen oder Module in einem Graphen per Drag & Drop miteinander verknüpft, unterbricht das den Spielfluss nur wenig. Wenn man aber Code eintippen muss, könnte das schon anders aussehen. Dann kommt es wohl vor allem darauf an, welche Bedeutung die Programmierung im Spiel haben soll.

In dem Spiel trAInsported geht z.B. darum, Züge in Lua so zu programmieren, dass möglichst viele Fahrgäste ihr Ziel erreichen. Die Programmierung findet außerhalb des Spiels in einem beliebigen Codeeditor statt. Den Wechsel zwischen Spiel und Editor nimmt man hier eigentlich gar nicht als störend wahr; schließlich ist die Programmierung ja auch das Hauptelement dieses Spiels. :)

Wenn der Programmierung aber nur eine Nebenrolle zukommt, ist es wahrscheinlich besser, das Ganze visuell und möglichst einfach zu halten. Roboter könnten ein Standardprogramm enthalten, das der Spieler bei Bedarf (und Lust) modifizieren kann. Für Spieler, die noch tiefer eingreifen wollen, könnte man die Möglichkeit bieten, eigene Module zu schreiben, auf die man im visuellen Editor dann zurückgreifen kann.

28

21.05.2013, 14:15

Hey Endgegner,

danke für die Informationen. Ich wusste nicht das es so viele Spiele gibt, in denen man programmieren kann. Das ist auf jeden Fall sehr interessant. Ich wollte mir eigentlich von der Schnittstelle und Bedienung her Simulation von Robotern zum Vorbild nehmen. Im Roboterlabor der Universität Ulm hatten sie eine CORBA Schnittstelle mit der sie dann transparent
entweder den realen oder den simulierten Roboter ansprechen konnten. Aber so etwas ist natürlich nichts, wenn man ein kleines Programm für ein Entity in einem Spiel schreiben möchte.


Ich bin jetzt übrigens gerade dabei den Einstieg in mein Spiel mit Hilfetexten, Dokumentation und InGame Elemente zu vereinfachen. Ich habe jetzt eine Schnittstelle eingebaut die jeweils einen Text im HUD anzeigt, wenn eine bestimmte Aktion ausgeführt wird.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

29

22.05.2013, 15:52

Bei dem von Endgegner erwähnten Spiel handelt es sich um ein Programmierspiel, wie beispielsweise auch AntMe oder Robocode (es gibt noch einige mehr).

Wenn ich dich richtig verstanden habe, soll die Programmierung nur einen kleinen Teil des Spiels darstellen. Mir fallen da ein paar Möglichkeiten ein, wie man das für den Spieler so weit vereinfachen könnte, damit das für ihn nicht lästig erscheint und kein solcher Wechsel entsteht.
Eine Möglichkeit wäre es, eine Oberfläche innerhalb des Spiels zu implementieren, die vgl. wie in Kodu ein sehr umfangreiches Skripten ermöglicht. Dies wurde allerdings so vereinfacht, dass im grunde auch Kinder damit umgehen können sollen (ist auch der fall, wie sich bereits auf einem Mini Jam zeigte).
Eine andere wäre es, wenn dem Benutzer eine "Platine" gegeben wird, worauf er Bauteile platzieren und diese mit Drähten verbinden kann. Diese Platinen können wiederum entweder einfache logische Bauteile sein oder aber komplexere Vorgänge kapseln. (Dies wird so ungefähr bereits in einem Spiel verwendet, welches auf Greenlight vorgestellt wurde.)
Weiterhin, sollte der Teil der Programmierung nur sehr klein sein, kann man die Programmierung noch weiter abstrahieren und dem Benutzer Rätsel vorsetzen, deren richtige Lösung dazu führen, dass sich Elemente im Spiel richtig verhalten und er im Spiel weiterkommt. Dabei kann es sich wieder um alle möglichen Rätsel handeln, sofern man diese mit der Programmierung auch nur im entferntesten in Verbindung bringen kann. Ein konkretes Beispiel wäre, wenn man ein Raster hat, auf dem man Elemente mit Leitungen platzieren kann (bspw. von links nach rechts, von rechts nach oben oder 2 Leitungen je Element), womit man dann mehrere Punkte richtig miteinander verbinden muss. Oder man hat ein "Puzzle", bei dem man die elektronischen Bauteile richtig zusammensetzen muss (im Sinne von dass es nur 1 richtige Lösung gibt).
Weiterhin ist Minecraft durchaus erwähnenswert. Da es in Minecraft wesentlicher Bestandteil ist, die Welt um sich herum zu verändern, passen die Redstone-Schaltungen sehr gut hinein (man muss sie auf die gleiche Art herstellen und aufbauen).

Da ich nicht weiß, wie viel die Programmierung in deinem Spiel ausmachen soll, kann ich auch nicht sagen, welche dieser Wege am ehesten deinen Vorstellungen entsprechen oder wie man diese noch anpassen müsste.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

30

25.05.2013, 09:24

Also ich habe meinen bisherigen Entwurf mal etwas überarbeitet. Zuerst möchte ich mal die Ziele meines Programmiersystems formulieren:
  • Das Spiel soll auch ohne
    Programmierung verwendet werden können.

  • Programmierung bietet zusätzliche
    Gestaltungsmöglichkeit

  • Je mehr Programmierung desto mehr
    Flexibilität.
Daraus habe ich mir folgende(Schwierigkeits-) Stufen überlegt:
  1. Keine Programmierung: Hier werden nur vorgefertigte Einheiten wie Truhen, Drehtüren, feste Lampen (also nicht deaktivierbar) verwendet.

  2. Entities: Jedes Entity hat Ereignisse, Methoden, Eigenschaften. Entities werden mit Namen identifiziert und können sich gegenseitig triggern. Dies ist stark dem System ähnlich, das in Egoshootern für die Entities bzw. dem Gameplay verwendet wird (z.B. in Quake). z.B. könnte die oben genannte Türe sich öffnen, falls sie durch einen Button getriggert wird.

  3. Programmierbares Modul mit Lua: Es gibt ein spezielles Modul / Entity, das sich programmieren lässt und andere Entities steuert/kontrolliert. Dies kann ein seperater Computer sein oder auch eine AI in einem Monster.

  4. „Traditionelles“ Modinterface mit Mono und C#. Damit lässt sich dann alles verändern. Weltgenerator, Spielemodus usw.

Der Spieler könnte dann selbst entscheiden, bis zu welcher Stufe er die Programmierung einsetzt. Bei der 2. Stufe (Entities) bin ich mir allerdings bzgl. des Editors nicht sicher. Man könnte da z.B. einen grafischen Editor machen.

Natürlich wird das Ganze unheimlich kompliziert durch den Fakt das jeweils nur ein Teil der Welt geladen wird (z.B. ein Knopf wird gedrückt, der eine Tür öffnen soll, die ist aber noch geladen). Ich hatte mir überlegt alle Entities im Spiel in einem „economy“ Modus laufen zu lassen, wenn sie nicht geladen sind. Aber dann ist natürlich die schöne Skalierbarkeit futsch! Und manche Entities kann man gar nicht in einem Economymodus versetzen, falls sie die Physikengine benötigen.

Werbeanzeige