This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
z:objekte [2007/07/30 17:21] jjp |
z:objekte [2015/08/23 13:59] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Gameplay-Werte ===== | ===== Gameplay-Werte ===== | ||
- | Schaden, Hitpoints etc. Alle Zahlenwerte müssen als Integer repräsentiert | + | Schaden, Hitpoints etc. Aus Gründen eines deterministischen Spielverlaufs muss dafür Sorge getragen |
- | Für Schaden würde ich vorschlagen, | + | Für Schaden würde ich vorschlagen, |
Line 11: | Line 11: | ||
* Objektbezeichner (string) - interner Identifizierer für den Objekttyp | * Objektbezeichner (string) - interner Identifizierer für den Objekttyp | ||
* Objekttyp (string) - Neutral, Robot, Fahrzeug, Gebäude, Geschütz | * Objekttyp (string) - Neutral, Robot, Fahrzeug, Gebäude, Geschütz | ||
- | * Hitpoints (int) - 0 für unsterblich | + | * Hitpoints (decimal) - 0 für unsterblich |
- | * Panzerung | + | * Anfälligkeit |
- | * Bounding Radius (int) - Begrenzungskreis bestimmt, welchen Platz die Einheit auf dem Terrain einnimmt (für Wegfindung/ | + | * Bounding Radius (decimal) - Begrenzungskreis bestimmt, welchen Platz die Einheit auf dem Terrain einnimmt (für Wegfindung/ |
* Hit Boxes (Quader) - Hitzonen für die Waffenprojektile, | * Hit Boxes (Quader) - Hitzonen für die Waffenprojektile, | ||
Line 19: | Line 19: | ||
==== Roboter und Fahrzeuge ==== | ==== Roboter und Fahrzeuge ==== | ||
- | * max. Geschwindigkeit (int) | + | * max. Geschwindigkeit (decimal) |
- | * max. Turnspeed (int) | + | * max. Turnspeed (decimal) |
* (Beschleunigung? | * (Beschleunigung? | ||
* Schadenstyp (int) - wie oben beschrieben | * Schadenstyp (int) - wie oben beschrieben | ||
- | * Schadenswert (int) - wie viel Schaden die Einheit vom Schadenstyp anrichtet | + | * Schadenswert (decimal) - wie viel Schaden die Einheit vom Schadenstyp anrichtet |
- | * Schwankung Schaden (int) - Absolutwert der Schwankung des Schadens (falls gewünscht) | + | * Schwankung Schaden (decimal) - Absolutwert der Schwankung des Schadens (falls gewünscht) |
- | * Fahrer treffen (int) - Wahrscheinlichkeit, | + | * Fahrer treffen (decimal) - Wahrscheinlichkeit, |
* Schussgeschwindigkeit (int) - die Dauer eines Schussvorgangs(dabei sollte die Animationsgeschwindigkeit angepasst werden). In Gameticks | * Schussgeschwindigkeit (int) - die Dauer eines Schussvorgangs(dabei sollte die Animationsgeschwindigkeit angepasst werden). In Gameticks | ||
+ | * Zeitpunkt des Projektilaustritts (decimal) - der Zeitpunkt innerhalb des Schussanimationszyklus, | ||
+ | * Schusspause (int) - Pause zwischen zwei aufeinanderfolgenden Schüssen, in Gameticks. | ||
* Projektil (string) - Projektilobjekt, | * Projektil (string) - Projektilobjekt, | ||
- | * Reichweite (int) - Waffenreichweite | + | * Reichweite (decimal) - Waffenreichweite |
* zum Schießen stehen? (bool) - Einheit kann nur im Stehen feuern | * zum Schießen stehen? (bool) - Einheit kann nur im Stehen feuern | ||
- | * min/ | + | * min/ |
- | * min/ | + | * min/ |
- | * Drehgeschwindigkeit der Waffe (int) - Wie schnell dreht sich die Waffe? | + | * Drehgeschwindigkeit der Waffe (decimal) - Wie schnell dreht sich die Waffe? |
* Anzahl Rohre pro Schuss (int) - Wie viele Rohre der grafisch definierten feuern gleichzeitig? | * Anzahl Rohre pro Schuss (int) - Wie viele Rohre der grafisch definierten feuern gleichzeitig? | ||
- | * Reparaturgeschwindigkeit (int) - Hitpoints pro Sekunde | + | * Reparaturgeschwindigkeit (decimal) - Hitpoints pro Gametick |
- | Frage: Was ist, wenn eine Waffe eine " | ||
- | |||
- | |||
- | Vorschlag dazu: die Schussgeschwindigkeit ist gleichzeitig die Verzögerung. D.h. der Schaden passiert immer am Ende des Schussvorgangs. Dürfte relativ gut mit den meisten Animationen übereinstimmen und erfordert keine manuelle Anpassung. Komplizierter wäre es einen Wert zwischen 0 und 1 zusätzlich zu definieren der festlegt zu welchem Zeitpunkt relativ im Bezug auf die Schussdauer der Schaden passiert. | ||
==== Gebäude ==== | ==== Gebäude ==== | ||
Line 50: | Line 48: | ||
==== Projektile ==== | ==== Projektile ==== | ||
- | * Projektilgeschwindigkeit (int) - Geschwindigkeit des abgefeuerten Geschosses | + | * Projektilgeschwindigkeit (decimal) - Geschwindigkeit des abgefeuerten Geschosses |
* Projektiltyp (string) - z. B. ballistisch, | * Projektiltyp (string) - z. B. ballistisch, | ||
* Projektilgröße (Quader) - quasi Bounding Box des Projektils im Sinne des Gameplays | * Projektilgröße (Quader) - quasi Bounding Box des Projektils im Sinne des Gameplays | ||
- | * Splash Damage (int) - Schadensbereich | + | * Splash Damage (decimal) - Schadensbereich |
Line 79: | Line 77: | ||
Weiterhin muss definiert werden, von wo aus Schüsse starten (und wie diese aussehen), also Nodes oder Bones als Waffenrohre deklarieren. Dazu braucht es auch noch die Info, ob alle Rohre gleichzeitig (z. B. Psycho) oder abwechselnd (z. B. Raketenwerfer) feuern sollen (aber das ist eigentlich wieder eine Gameplay-Sache). | Weiterhin muss definiert werden, von wo aus Schüsse starten (und wie diese aussehen), also Nodes oder Bones als Waffenrohre deklarieren. Dazu braucht es auch noch die Info, ob alle Rohre gleichzeitig (z. B. Psycho) oder abwechselnd (z. B. Raketenwerfer) feuern sollen (aber das ist eigentlich wieder eine Gameplay-Sache). | ||
+ | |||
+ | ===== Beispiel ===== | ||
+ | Ein Entwurf für eine Beschreibungsdatei für einen Roboter: | ||
+ | |||
+ | <code xml> | ||
+ | <?xml version=" | ||
+ | <robot id=" | ||
+ | < | ||
+ | <!-- Number of hitpoints --> | ||
+ | < | ||
+ | <!-- Damage multipliers to increase or reduce damage taken from a specific damage type --> | ||
+ | < | ||
+ | < | ||
+ | <!-- The bounding radius specifies the space the object occupies on the map --> | ||
+ | < | ||
+ | <!-- Define hitboxes for projectile collision --> | ||
+ | <hitbox x1=" | ||
+ | <hitbox x1=" | ||
+ | </ | ||
+ | | ||
+ | < | ||
+ | <!-- The unit's velocity --> | ||
+ | < | ||
+ | <!-- Turnspeed --> | ||
+ | < | ||
+ | </ | ||
+ | | ||
+ | < | ||
+ | <!-- The type of damage this unit deals --> | ||
+ | < | ||
+ | <!-- The amount of damage the unit deals --> | ||
+ | < | ||
+ | <!-- Variance of the damage dealt --> | ||
+ | < | ||
+ | <!-- Probability that this unit hits the driver of a vehicle instead of the vehicle. --> | ||
+ | < | ||
+ | <!-- Time in game ticks for firing a single shot --> | ||
+ | < | ||
+ | <!-- Relative time after which the projectile is created when firing --> | ||
+ | < | ||
+ | <!-- Time in game ticks between two shots --> | ||
+ | < | ||
+ | <!-- Projectile object to be used with this weapon --> | ||
+ | < | ||
+ | <!-- Range of fire --> | ||
+ | < | ||
+ | <!-- Does the unit need to stand still when shooting? --> | ||
+ | < | ||
+ | <!-- Weapon turning in horizontal: Min/ | ||
+ | < | ||
+ | <!-- Weapon turning in vertical: Min/ | ||
+ | < | ||
+ | <!-- How many of the barrels defined in the rendering section actually fire per shot? --> | ||
+ | < | ||
+ | </ | ||
+ | | ||
+ | | ||
+ | < | ||
+ | <!-- Define nodes to attach meshes etc. to --> | ||
+ | <node x=" | ||
+ | |||
+ | <!-- Define the meshes and their placement --> | ||
+ | <mesh material=" | ||
+ | |||
+ | <!-- Define the unit's states and the animations and particle effects accompanying those --> | ||
+ | <state name=" | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | <state name=" | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | <state name=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | <!-- Declare bones or nodes as weapon barrels, this is where the projectiles will be emerging from --> | ||
+ | <barrel type=" | ||
+ | </ | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | </ |