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

chrisslfissl

Treue Seele

  • »chrisslfissl« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

1

01.01.2013, 22:24

Maßstäbe in Spielen

Servus liebe Spieleprogrammierer Community. ;)

Ich habe einmal eine frage, die mir schon länger unter den Fingernägeln brennt.
Wie werden die Maßstäbe in einem Spiel festgelegt?
Werden dafür Figuren genommen die das Maß aller dinge darstellen?
Wie wird in einem Spiel 1m festgelegt, und wer sagt, dass das alles so stimmt?
Woher wissen die 3D Artisten, wie groß die Figur oder das Gebäude werden soll?


Beispiel:

Man erstellt eine Map, die normalerweise recht klein ist.
Um zu ermöglichen, dass die Map größer wirkt, macht man einfach die Spielfiguren usw kleiner.
Dann hat man ja Theoretisch auch wieder eine große Karte oder?


Würde mich auf eure Antworten freuen. ;)
MfG Chris (:

Bu1

Frischling

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

2

01.01.2013, 22:31

Ich kann jetzt nichts dazu sagen wie das in professionellen Spielen gemacht wird, aber ich denke, dass einfach ein Massstab festgelegt wird und der dann überall benutzt wird. Und wenn sachen zu groß sind kann man sie ja beliebig verkleinern. Vergrößern geht ja nichts so gut, da man da irgendwann die Kannten an den Objekten erkennen kann. :P

Frohes Neues

Bu1

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

3

01.01.2013, 22:41

3D Modelle sind ja sowas wie Vektorgrafiken in 3D, das ist überhaupt kein Problem die zu skalieren. Man kann beispielsweise einfach sagen, eine Einheit entspricht einem Meter und die Modellieren liefern die Modelle so, dass der Maßstab passt.

Das einzige Problem das Auftritt, ist die begrenzte Genauigkeit von Fließkommazahlen. Wenn die Zahlen zu groß oder zu klein (zu nahe an 0) werden, geht Genauigkeit verloren, im Extremfall kann das zu hässlichen Problemen führen. Man muss also einen Maßstab wählen, bei dem man mit Zahlen in vernünftigen Größenordnungen hantiert.
Lieber dumm fragen, als dumm bleiben!

chrisslfissl

Treue Seele

  • »chrisslfissl« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

4

01.01.2013, 22:53

Dann könnte ja Theoretisch immer und bei allen Spielen genau der selbe Maßstab genommen werden können oder?
Bei Spielen wo man dann z.B einen Rießen spielt, braucht man ja dann nur die Spielfigur größer machen?

Also vereinfacht gesagt.
1m in einem Spiel != 1m in einem anderen Spiel. Oder?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

01.01.2013, 22:57

Zitat

Dann könnte ja Theoretisch immer und bei allen Spielen genau der selbe Maßstab genommen werden können oder?

Und was ist mit Spielen in sehr großen Räumen bei denen man Probleme bekommen würde wenn der Maßstab 1m wäre? Z.B. im Weltraum? Es hängt vom Spiel ab wie das festzulegen ist. Und damit stimmt

Zitat

1m in einem Spiel != 1m in einem anderen Spiel. Oder?

auch :)

chrisslfissl

Treue Seele

  • »chrisslfissl« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Bavaria

  • Private Nachricht senden

6

01.01.2013, 23:16

Okay danke für eure Antworten. (:

Um zum Schluss zu kommen.
Wenn man ein Spiel entwickelt, dann Modeliert man als erstes etwas, was im Spiel gerne verwendet wird.
Z.B. einen Menschen. Und an dem Passt man dann die Welt an.

Oder liege ich da falsch?



Mich wundert es ja, dass es da nicht mehr Themen darüber gibt.
Bei Google hab ich gar nichts zu diesem Thema gefunden.

7

01.01.2013, 23:29

Weil es im Grunde genommen trivial ist.

Natürlich kann man alle Objekte einzeln erstellen und dann so lange skalieren, bis alles zueinander passt. Viel einfacher ist es aber, wenn man vorher wirklich einen Maßstab festlegt. So kann der Grafiker beispielsweise vorher festlegen, dass ein Mensch eine Höhe von 1,80 hat und ihn dann so exportieren, dass er danach nicht mehr von Hand angepasst werden muss (wobei natürlich Fehler passieren könnten). Auf diese Art kann man auch ganze Gebäude oder gar Landschaften in einer realistischen Größe modellieren (solange man weiß, wie groß sie in der Echten Welt sind) und muss sich später keinerlei Gedanken über die Anpassung machen.
Lieber dumm fragen, als dumm bleiben!

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

02.01.2013, 10:24

Das einzige Problem das Auftritt, ist die begrenzte Genauigkeit von Fließkommazahlen. Wenn die Zahlen zu groß oder zu klein (zu nahe an 0) werden, geht Genauigkeit verloren

Das stimmt so nicht. Es können sehr wohl sehr große, als auch sehr sehr kleine Zahlen nahe Null sehr korrekt dargestellt werden. Jedenfalls so korrekt, wie das in einem Binärsystem mit begrenzter Bitzahl eben möglich ist. Da sind weder besonders große, noch besonders kleine Zahlen schlechter oder besser darstellbar als die anderen Zahlen dazwischen. Probleme treten erst dann auf, wenn man sehr große und sehr kleine Zahlen gleichzeitig braucht, denn die Mantisse an sich ist begrenzt (üblich sind 7, bzw. 15 Ziffern).
Ob man aber 1.456763E+15 oder 2.459128E-15 hat, das ist egal. Beide lassen sich darstellen. Eine Addition beider würde aber auf die erste Zahl hinauslaufen, eben weil die Mantisse nicht genug Stellen bietet um das Ergebnis erfassen zu können.
Genauigkeit geht also nicht verloren, wenn Zahlen sehr groß oder sehr klein sind, denn die Genauigkeit ist immer dieselbe, abhängig von der Anzahl Bits für die Mantisse und den Exponenten. Genauigkeit geht erst dann verloren, wenn man sehr große und sehr kleine Zahlen gleichzeitig in einer numerisch instabilen Rechnung verwendet. Wie bei Addition und Subtraktion. Bei Multiplikation ist das Problem z.B. ebenfalls nicht (in diesem Maße) vorhanden, denn Multiplikation ist stabil.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

03.01.2013, 14:18

Um zum Schluss zu kommen.
Wenn man ein Spiel entwickelt, dann Modeliert man als erstes etwas, was im Spiel gerne verwendet wird.
Z.B. einen Menschen. Und an dem Passt man dann die Welt an.

Oder liege ich da falsch?


Im Allgemeinen bietet 3D Software Metriken an, so das du deine Modelle in einem bestimmten Maßstab modellieren kannst. In der Engine wird das ebenso gehandhabt, z.B. entspricht die kleinste Einheit in der Engine 1 cm, d.h. aus Maya/3d Max/... muss das Modell entsprechend skaliert exportiert werden.
@D13_Dreinig

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

10

05.01.2013, 23:34

Wer Genauigkeit will, sollte sich im Bereich von -1.0 bis +1.0 bewegen. Die Dichte an darstellbaren Zahlen ist dort so ziemlich am höchsten, wenn ich mich recht entsinne. Ansonsten lassen sich einige Integer verlustfrei in Floats/Doubles packen - ein Trick, den Lua nutzt. In ein Float passen verlustfrei Integer von -65535 bis +65535, wenn ich mich nicht irre. Ich würde den Bereich von etwa -5000 bis +5000 nutzen, wenn's genau und groß sein soll und den Meter irgendwo bei 0.1 oder 0.01 - je nach Bedarf - ansiedeln.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige