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

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

1

05.01.2010, 13:35

Data Oriented Design

Eben einen sehr interessanten Artikel auf Twitter mitbekommen und dacht mir, dass er vielleicht auch Andere interessieren könnte:

http://gamesfromwithin.com/data-oriented-design
<< an dieser Stelle ist eine Signatur verstorben >>

Lerikson

Alter Hase

Beiträge: 412

Wohnort: nördlich von Hamburg

Beruf: Schüler

  • Private Nachricht senden

2

05.01.2010, 19:54

bin noch nicht ganz durch, sieht aber sehr interessant aus!
Errare est humanum. -Windows ist menschlich ;-)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

05.01.2010, 21:42

habs nur überflogen. große überraschung OOP ist relativ langsam und speicherlastig. wenn ich für nen iPod programmiere, programmier ich anders als für einen rechner mit 4x3,5ghz und 32gb-ram.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

05.01.2010, 23:17

Nunja....mir fehlt da irgendwie die praktische Anwendung, weil, ich gebes es offen zu, ich mir das nicht wirklich vorstellen kann.
Z.B. ist meine Anwendung wirklich eine Baumstruktur, aber für jedes Unterelement ist das Ergebnis des übergeordneten Elements beim Updaten von entscheidender Wichtigkeit. Alternativ müsste ich für jedes Objekt alle Tests durchführen. Beim einen habe ich eine Updatestruktur, die ab einer gewissen Tief abbricht, beim anderen muss ich alle Objekte prüfen...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

5

06.01.2010, 12:49

Ich brauch da auch mal ein Beispiel. Wirklich was damit anfangen kann ich noch nicht.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

06.01.2010, 13:09

Ich finds auch ganz interessant. Nox ich denke in deinem Fall wäre die Frage ob man durch das neue Design mehr Geschwindigkeit rausholen kann, als das Überprüfen kosten würde, das sollte ja nicht allzu teuer sein. Ich frage mich aber ob das Prinzip in großen Projekten nicht eher Chaos verursacht.. Aber mal ein kleines Projekt in beiden Varianten programmieren und dann benchmarken würde sich sicher lohnen..

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

06.01.2010, 15:56

Also ich stelle mir das einfach so vor, dass nicht jedes Objekt nacheinander seine Sachen macht (z.B updating), sondern eben man eine Sache macht und das gleich auf alle Objekte.

Sprich anstatt sowas:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class enemy
{
 points;
 life;
 speed;
 position;
 ...

 update ()
 {
   if (..) points += 1;
   if (..) life -= 1;
   position *= speed;
   ...   
 }
}


sondern eher so etwas:

Quellcode

1
2
3
4
5
6
7
8
update ( array<enemy> enemys )
{
  foreach e in enemys
     if (..) e.points += 1;
  foreach e in enemys
     if (..) e.life -= 1;
...
}


Allerdings bezweifle ich irgendwie auch, dass der Code dadurch besser wartbar und verständlicher wird. Rein vom Optimierungspotenzial glaube ich das durchaus, dass es was bringt, aber naja.. man müsste es wahrscheinlich schon mal richtig vergleichen.

Werbeanzeige