Artikelempfehlungen, interessante Publikationen o.Ä.

Hier können Artikel, Tutorials, Bücherrezensionen, Dokumente aller Art, Texturen, Sprites, Sounds, Musik und Modelle zur Verfügung gestellt bzw. verlinkt werden.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Chromanoid »

Hier könnt ihr eurer Meinung nach lesenswerte Artikel rund um Spieleentwicklung posten... Am besten natürlich mit kleiner Zusammenfassung!

Achja und zur besseren Übersicht vielleicht folgenden Styleguide einhalten:
Artikelname, Autor, Website/Publisher, Erscheinungsdatum bzw. letzte Aktualisierung
Kommentar/Minizusammenfassung

Code: Alles auswählen

[b][url=http://ArtikelURL]Artikelname[/url], Autor, Website/Publisher, Erscheinungsdatum bzw. letzte Aktualisierung[/b]
Kommentar/Minizusammenfassung
EDIT:
Da ja nicht nur lesenswerte Artikel, sondern auch Konferenzbeiträge etc. sinnvolle Ergänzungen für den täglichen Speiseplan darstellen, hier noch mal der Aufruf interessante Präsentationen, Vorträge usw. zu posten!
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Artikelempfehlungen

Beitrag von Chromanoid »

Eine ggf. unvollständige Liste der geposteten Links. Damit die Links hier aufgenommen werden, bitte das Format (siehe erster Post) einhalten.

No More Wrong Turns, Martin Nerurkar, Gamasutra, 25.08.2009
(Gamedesign)
Der Artikel beschreibt anhand von BeiSpielen Navigationshilfen für Spieler. Es wird dabei zwischen immersiven (in der Spielwelt eingebauten) und von der Spielwelt getrennten Hilfen differenziert. Falls man sich noch nicht so richtig im Klaren ist, wie man seine Spieler durch komplexe Level führen soll, lohnt es sich hier mal hereinzuschauen.
---

Building Buzz for Indie Games, Paul Taylor, Gamasutra, 26.08.2009
(PR/Marketing)
Der Autor beschreibt mögliche Marketing-Strategien für Independent-Entwickler. Der Autor bezieht dabei Wissen aus der Musikszene, eigenen Erfahrungen und den Erfahrungen anderer Entwickler. Auch für Freeware-Titel sind hier sicherlich ein paar sinnvolle Tipps zu finden.
---

Where's The Cash For Flash?, Paul Hyman, Gamasutra, 09.02.2009
(Verwertung/Finanzierung)
Der Autor befasst sich mit den Möglichkeiten Flashspiele zu verwerten.
---

Anatomy of a Combat Zone, Josh Bridge, Gamasutra, 15.07.2009
(Leveldesign/Gamedesign)
Es wird versucht die Kern-Komponenten der Spielmechanik und der Levels eines auf Deckung basierenden Shooters zu erläutern. Das ist - finde ich - auch sehr gut gelungen...
---

A Matter of Luck, Richard Todd, Gamasutra, 10.12.2008
(Gamedesign)
Der Artikel beschreibt analytisch die Möglichkeit für Spieledesigner das Spielerlebnis durch Zufall/Glück zu beeinflussen. Es werden dabei mehrere Qualitätsmaße herausgearbeitet, anhand derer man den möglichen Spaß am Glück im eigenen Spiel beurteilen kann.
---

Fundamental Guild Tools, SOE Influencer Group, Sony Online Entertainment, 14.11.2008
(Gamedesign)
Eine Auflistung wichtiger Funktionen für Gildensysteme in Mehrspieler-Spielen. Das Dokument ist in Kollaboration zwischen der SOE Influencer Group und dem Community Relations Department von Sony Online Entertainment (SOE) entstanden. Interessant für alle, die sich doch mal an ein MMO wagen wollen oder sich einfach theoretisch mit MMO(RPGs) beschäftigen.
---

2009 Digital Distribution Summit - Small Games, Big Market, Film Victoria, Melbourne Australia, September 29, 2009
Es handelt sich hierbei um ein ggf. temporäres Angebot die abgehaltene Veranstaltung "2009 Digital Distribution Summit - Small Games, Big Market" über digitale Vertriebskanäle für Videospiele per Videoaufzeichnung nachzuvollziehen. Besonders interessant empfinde ich die Keynote vom ehem. XBLA Portfolio Manager David Edery, der den Pitching und Publishing Prozess von "kleineren" Indie Titeln auf Plattformen wie XBLA, WiiWare und PSN beschreibt.
---

Deferred Rendering Demystified, Noam Gat, GameDev.net, 12. Juni 2010
Eine gute Einführung zum Thema Deferred Rendering oder wieso Killzone2 so klasse ausschaut. Mir hat der Artikel sehr gefallen, er ist leicht verständlich geschrieben und bietet einen recht guten Überblick über die grundlegenden Prinzipien. einen recht guten Überblick über die grundlegenden Prinzipien.
---

Fünf Irrtümer über Game Design, Dirk Riegert, Making Games, 16.07.2010
Netter Essay über 5 Mythen bezügl. Game Design - gerade in Punkt 2 "Am wichtigsten sind geniale Ideen!" steckt meiner Meinung nach viel Wahrheit.
---

Beej's Guide to Network Programming, Brian "Beej Jorgensen" Hall, 08.09.2009
Eine kurze aber umfassende Einführung über Netzwerkwerk-Programmierung. Zum ersten Einstieg ist dieses Tutorial meiner Meinung nach recht gut geeignet.
---

Game Programming Patterns, Zack Booth Simpson, gotoAndPlay, 24.07.2005
In diesem Artikel geht es um Patternnutzung (speziell MVC) für Spiele.
Soweit ich gesehen habe, sind noch weiter "gute" Artikel/Tutorials auf dieser Seit zu finden.
---

Dynamic-Link Library Security Microsoft, MSDN, 15.12.2010
Aus gegebenen Anlass einige Worte zum sicheren Umgang mit Dlls, sofern diese explizit geladen werden sollen.
---

AspectC++, Kollaboration, The Home of AspectC++, 20th Dec 2007
Eine Seite über Aspect-Orientierte-Programmierung.
Dort gibt es auch den AspectC++-Compiler/PreProzessor.
---

Der Know - how Computer, Wolfgang Back, 2003
Ein Computer, der mit Streichhölzern arbeitet.
---

FeatureC++, Kollaboration, The Home of FeatureC++, 15.08.2010
Eine Seite über Feature-Orientierte-Programmierung.
Dort gibt es auch den FeatureC++-Compiler.
---

Navigation Queries from Triangular Meshes, Marcelo Kallmann, In Proceedings of the Third International Conference on Motion in Games, 2010
Navigation meshes are commonly employed as a practical representation for path planning and other navigation queries in animated virtual environments and computer games. This paper explores the use of triangulations as a navigation mesh, and discusses several useful triangulation–based algorithms and operations: environment modeling and validity, automatic agent placement, tracking moving obstacles, ray–obstacle intersection queries, path planning with arbitrary clearance, determination of corridors, etc.
---

In-Game-Moral, Benjamin Strobel, Daily D-Pad, 30.06.2010
Moralische Urteile in Spielen
---

Principles of Digital Image Synthesis, Volume 1, Andrew S. Glassner, Morgan Kaufmann Publishers, 1995
Principles of Digital Image Synthesis, Volume 2, Andrew S. Glassner, Morgan Kaufmann Publishers, 1995
via Real-Time Rendering
---

DiGRA Digital Library
Hier gibt es die teils sehr interessanten Beiträge zu den Konferenzen der "Digital Games Research Association" zum Herunterladen.
---

The Quest in a Generated World, Ashmore Calvin & Nitsche Michael, Situated Play, Tokyo: The University of Tokyo, 09.2007
Ein Artikel über das Generieren von Quests
---

A Survey of General-Purpose Computation on Graphics Hardware, John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Krüger, Aaron Lefohn, Timothy J. Purcell, Situated Play, Computer Graphics Forum, 2007
Älterer Artikel der technisch schon überholt ist. Postenswert fand ich aber vor allem die Grafik auf S. 89 (10) Figure 5 wie katastrophal MSVC gegenüber dem Intel-Compiler abschneidet.
---

Sample Distribution Shadow Maps,Andrew Lauritzen, Marco Salvi, Aaron Lefohn, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D) 2011, 02.2011
Der gigantische Verschnitt von PSSM hat mich schon immer geärgert, hätte ich Zeit, würde ich das hier auf der Stelle testweise implementieren: (akkurate Partitionierung des Frustums basierend auf dem bereits gerenderten Tiefenbild, d.h. tatsächlich sichtbaren Pixeln)
---

Optimizing software in C++ — An optimization guide for Windows, Linux and Mac platforms, Agner Fog, Copenhagen University College of Engineering, 08.06.2011
Notizen von Krishty
---

Casual Connect Europe
Lectures der Casual Connect sind kostenlos online zu sehen (slides zum runterladen sind auch dabei).
---

GDC Vault - GDC 2011
Eine Menge aktuellen Materials für Spieleentwickler - leider ist eine Menge davon nur als Video verfügbar. Das macht die Konsumierung etwas mühsamer.
---

Fix Your Timestep!,Glenn Fiedler, gafferongames.com, 02.09.2006
Viele Physik-Engines wollen am Liebsten immer einen festen Wert als "delta timestep" übergeben bekommen. Wie kann man das erreichen? Ich finde die Idee mit der Interpolation ziemlich genial.
---

Valve - Publikationen
Von Rendering Wounds in Left 4 Dead 2 bis Valve's Approach to Playtesting: The Application of Empiricism ist alles dabei.
---

Crytek - Publikationen
Vor allem technische Aspekte werden hier vorgestellt.
---

Dice - Publikationen
Alle Gebiete der Spieleentwicklung sind hier übersichtlich aufgeführt und vertreten.
---

Depixelizing Pixel Art, Duncan Geere, wired.com, 28.05.2011
Es wird ein Algorithmus vorgestellt, der 8-Bit Sprites vektorisiert. Die Ergebnisse sind imho ungefähr vergleichbar mit hq4x, nur das man halt hinterher 'ne vorteilhafte Vektorgrafik hat. Das beschriebene Paper stammt von Johannes Kopf und Dani Lischinski (Microsoft).
--

Event Based Components: Architektur von Software in neuem Licht, Golo Roden, Heise Developer, 12.05.2011
Einleitung zu eventbasierten Komponenten
---

Event-Based Components – Der nächste Schritt der Komponentenorientierung?, Ralf Westphal, 21.02.2010
Einstieg in das Thema Eventbasierte Komponenten
---

Steckspiele - Event-Based Components verbinden, Ralf Westphal, 22.02.2011
Beschreibung des Zusammenspiels der Komponenten
---

Mustergültig – Event-Based Components aufbohren, Ralf Westphal, 23.02.2011
Ein Muster für EBC
---

The Architecture of Open Source Applications, Amy Brown & Greg Wilson, Lulu.com, 2011
Die Architektur von quelloffenen Anwendungen erklärt; von Eclipse & LLVM bis Audacity.
---

DirectX Tutorials, Chad Vernon, 2004
Tolle DirectX-Tutorials, vergleichbar mit den alten ZFX-Artikeln - aber DX9 und nicht 8.
---

Loop Recognition in C++/Java/Go/Scala von Robert Hundt, Google, 2011
Notizen von exile
---

The Computer Language Benchmarks Game, Brent Fulgham
Compare the performance of ≈24 programming languages for 4 different combinations of OS/machine.
---

You don't want to work in the games industry, Simon Roth, The Average Gamer, 24.06.2011
Nachteile einer Beschäftigung in der Spieleindustrie.
---

Interactive Indirect Illumination and Ambient Occlusion Using Voxel Cone Tracing, Cyril Crassin, Fabrice Neyret, Miguel Sainz, Simon Green, Elmar Eisemann, Siggraph 2011 Talk, 06.2011
We [die Autoren] present a novel algorithm to compute indirect lighting in real-time that avoids costly precomputation steps and is not restricted to low frequency illumination. It is based on a hierarchical voxel octree representation generated and updated on-the-fly from a regular scene mesh coupled with an approximate voxel cone tracing that allows a fast estimation of the visibility and incoming energy.
---

A trip through the Graphics Pipeline 2011, part 1
Eine Erklärung, wie die Draw-Calls zur GPU rieseln. Weitere Teile sind hier gelistet.
---

Physically-Based Real-Time Lens Flare Rendering.
Matthias B. Hullin, Elmar Eisemann, Hans-Peter Seidel and Sungkil Lee.
To appear at SIGGRAPH 2011. Patent pending.
---

Deferred Screen Space Directional Occlusion.
Yuriy O'Donnell, graphics programmer at Creative Assembly UK.
Published online.
---

Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs.
Nathan Whitehead and Alex Fit-Florea, NVIDIA Corporation.
Published online.
---

Realisierung verschiedener KI-Techniken in einem Computerspiel, Alexander Rudolph, Webseite, Fund am 20.08.2011
Implementierung verschiedener KI-Techniken, wie sie häufig für Spiele eingesetzt werden.
---
Zuletzt geändert von Chromanoid am 21.08.2011, 16:57, insgesamt 15-mal geändert.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von kimmi »

Deferred Rendering Demystified, Noam Gat, GameDev.net, 12. Juni 2010 Eine gute Einführung zum Thema Deferred Rendering oder wieso Killzone2 so klasse ausschaut. Mir hat der Artikel sehr gefallen, er ist leicht verständlich geschrieben und bietet einen recht guten Überblick über die grundlegenden Prinzipien.

Gruß Kimmi
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von kimmi »

http://www.beej.us/guide/bgnet/output/h ... index.html Brian "Beej Jorgensen" Hall, Eine kurze aber umfassende Einführung über Netzwerkwerk-Programmierung. Zum ersten Einstieg ist dieses Tutorial meiner Meinung nach recht gut geeignet.
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von jgl »

Hab hier auch gerade etwas gefunden.
In diesem Artikel geht es um Patternnutzung (speziell MVC) für Spiele.
Soweit ich gesehen habe, sind noch weiter "gute" Artikel/Tutorials auf dieser Seit zu finden.

http://www.gotoandplay.it/_articles/200 ... tterns.php
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von kimmi »

Dynamic-Link Library Security MS,MSDN
Aus gegebenen Anlass einige Worte zum sicheren Umgang mit Dlls, sofern diese explizit geladen werden sollen.

Gruß Kimmi
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Aramis »

Dazu faellt mir ein dass ich relativ bald nach Erscheinen des optionalen Updates zum Schliessen der CWD-Sicherheitsluecke (http://support.microsoft.com/kb/2264107) selbiges installiert habe und auch den entsprechenden Registrykey gesetzt habe, nur um festzustellen dass Microsoft durchaus Recht hat: die Luecke ist unfixbar, jedes fuenfte Programm kam bei mir nicht mehr hoch oder nervte mit DLL Fehlermeldungen. Vielleicht haetten sich etwas mehr Entwickler die DLL Sicherheitsrichtlinien durchlesen sollen.
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von jgl »

Ich hatte sie schonmal bei dem Thread geposted, passt aber auch bestimmt gut hier!
Also:
AspectC++, Kollaboration, The Home of AspectC++, 20th Dec 2007
Eine Seite über Aspect-Orientierte-Programmierung.
Dort gibt es auch den AspectC++-Compiler/PreProzessor.

FeatureC++, Kollaboration, The Home of FeatureC++, 15.08.2010

Eine Seite über Feature-Orientierte-Programmierung.
Dort gibt es auch den FeatureC++-Compiler.
joggel

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von joggel »

NFAA, Styves,GameDev.Net, 25.08.2010

Es wird eine "neue" Technik für Antialiasing beschrieben.
Vielleicht interessiert das hier jemanden.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von eXile »

Mmmh im höchsten Maße interessant!

Allerdings bin ich von der Ergebnissen doch ein wenig negativ überrascht, ich hätte mir vorgestellt, der Ansatz könnte besser zwischen Kanten und Nichtkanten unterscheiden. Aber trotzdem nett ;)
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Krishty »

Ist das nicht das gleiche wie hier (Intel) und hier (AMD)? :)

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von eXile »

Die Paper gehen so weit ich das jetzt gesehen habe sogar erheblich weiter. Allerdings konnte ich mich bisher immer vor deferred rendering drücken, darum ist mein Wissen auf dem Gebiet sehr beschränkt. Das im obigen Link als "Normalmap" zu bezeichnen, finde ich auch etwas merkwürdig.
joggel

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von joggel »

Mmmhh, okay. Sorry... ich kenne mich halt zu wenig aus mit Grafikprogrammierung.
Hatte das nur im IRC aufgeschnappt, und dachte mir, dass das was ganz Tolles und Neues ist.
Aber die von dir verlinkten Papers sind da noch besser, soweit ich das eben beurteilen kann ;).

Gruß ...
antisteo
Establishment
Beiträge: 852
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von antisteo »

Der Trick mit der Edge detection zum Antialiasing ist alt, aber sauschnell.
Es kommt vor allem darauf an, womit man blurrt und wie gut man die Kanten erkennen kann. Im Endeffekt ist aber jeder PostProcess ein gewisser Informationsverlust für das Bild.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Alexander Kornrumpf »

Das kam gerade über twitter rein, und da ich weiß dass mindestens Thomas sich mit sowas beschäftigt, geb ich es einfach mal weiter ohne es selbst gelesen zu haben:

Navigation Queries from Triangular Meshes
http://graphics.ucmerced.edu/papers/10-mig-navq.pdf
Tejio
Establishment
Beiträge: 107
Registriert: 11.11.2010, 11:33

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Tejio »

anonym
Beiträge: 79
Registriert: 15.07.2009, 07:35
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von anonym »

Principles of Digital Image Synthesis, Volume 1, Andrew S. Glassner, Morgan Kaufmann Publishers, 1995
Principles of Digital Image Synthesis, Volume 2, Andrew S. Glassner, Morgan Kaufmann Publishers, 1995
via Real-Time Rendering
Zuletzt geändert von Chromanoid am 01.02.2011, 18:57, insgesamt 4-mal geändert.
Grund: an Template angepasst
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Chromanoid »

DiGRA Digital Library
Hier gibt es die teils sehr interessanten Beiträge zu den Konferenzen der "Digital Games Research Association" zum Herunterladen.

Ein Artikel den ich interessant finde:
The Quest in a Generated World, Ashmore Calvin & Nitsche Michael, Situated Play, Tokyo: The University of Tokyo, September, 2007
Ein Artikel über das Generieren von Quests


Kleine Anmerkung: Bei Links bitte wenigstens den Titel des ganzen mit angeben, sonst wird das so chaotisch. Am Besten einfach das Template im ersten Beitrag benutzen...
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Alexander Kornrumpf »

A Survey of General-Purpose Computation on Graphics Hardware

http://www.idav.ucdavis.edu/publication ... pub_id=907

Älterer Artikel der technisch schon überholt ist. Postenswert fand ich aber vor allem die Grafik auf S. 89 (10) Figure 5 wie katastrophal MSVC gegenüber dem Intel-Compiler abschneidet.
TheBenji
Establishment
Beiträge: 129
Registriert: 07.01.2011, 17:59

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von TheBenji »

Sowas in der Art haben wir tatsächlich auch mal in der Berufsschule benutzt.
Es nannte sich dort "Bleistiftcomputer".
Es war ein Blatt papier was aber sonst im Prinzip genauso funktioniert hat, wirklich schön um die grundfunktionen darzustellen.
Aber heutzutage ist der unterschied zwischen der einfachheit dieses papiercomputers und einem higth-tech laptop wohl einfach zu krass als das sich jeder was darunter vorstellen kann.
Ich persönlich fand das eine super Idee mit dem Bleistiftcomputer (und es war auch sehr unterhaltsam) aber ich habe auch da schon gemerkt das es für eingie einfach zu hoch ist *lach*
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von CodingCat »

Der gigantische Verschnitt von PSSM hat mich schon immer geärgert, hätte ich Zeit, würde ich das hier auf der Stelle testweise implementieren:
http://visual-computing.intel-research. ... ions/sdsm/ (akkurate Partitionierung des Frustums basierend auf dem bereits gerenderten Tiefenbild, d.h. tatsächlich sichtbaren Pixeln)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Krishty »

Optimizing software in C++ — An optimization guide for Windows, Linux and Mac platforms
http://www.agner.org/optimize/optimizing_cpp.pdf

Leider in einigen Teilen überholt, aber vieles hat weiterhin seine Gültigkeit. Meine Notizen:
  • „Pointers versus references“ auf Seite 36 ist oberflächlich. Natürlich sind Zeiger und Referenzen an sich gleich schnell; allerdings: In dem Augenblick, in dem ich eine Variable zu einem Zeiger statt einer Referenz mache, ist ein nullptr-Zustand explizit erlaubt und ich muss – im Gegensatz zur Nutzung einer Referenz – auch Arbeit aufwenden um diesen entsprechend zu behandeln. Ob ich mit Zeigern oder Referenzen arbeite hat eine fundamental unterschiedliche Semantik und kann es mir selten frei aussuchen, auch, wenn die Rohleistung gleich ist.
  • „7.10 Arrays“ auf Seite 38 ist unvollständig. Statt ein Array-Attribut mit memset() zu nullen, kann ich Default-Konstruktion erzwingen (:a() in der Initialisierungsliste), die bei PoD-Typen immer in Nullinitialisierung resultiert. Da dem Compiler deren Auswirkung – im Gegensatz zu einem memset()-Aufruf – als der Sprache inhärente Eigenschaft bekannt ist, kann es mindestens gleich gut optimiert werden, wenn nicht gar besser.
  • „Use inline functions“ auf Seite 48 ist Unsinn. Das inline-Schlüsselwort hat nichts damit zu tun, ob der Compiler eine Funktion inlinet. Außerdem entscheiden das aktuelle Compiler völlig eigenmächtig (bei Visual C++ mit LTCG weiß ich das sicher, bei GCC aus zweiter Hand).
  • „Use fastcall functions“, Seite 49: Unsinn. Mit globalen Optimierungen entscheidet der Compiler die optimalen Aufrufkonventionen eigenständig; wenn man überall __fastcall reinhaut macht man ihm das eher noch kaputt. Für x64 gilt es sowieso nicht.
  • „7.21 Runtime type identification (RTTI)“, Seite 54: „Runtime type identification adds extra information to all class objects and is not efficient.“ Komplett falsch. Information wird nicht Instanzen hinzugefügt, sondern Typen, und zwar nur solchen, die bereits polymorph sind (also bereits über virtuelle Funktionen verfügen; dort geschieht die Typbestimmung über die eh vorhandene Virtual Function Table). Ein Spezialfall sind Instanzen, die im Zuge einer Ausnahme geworfen oder gefangen werden – aber auch wirklich nur die (nicht alle Instanzen ihres Typs) … und wenn ich aufzählen würde, was der Compiler bei Ausnahmen außer RTTI noch alles an Informationen dranhängt, würde den meisten schlecht werden. Außer zusätzlichen Bytes Read-Only-Daten hat RTTI so gut wie keinen Einfluss auf die Programmleistung und erledigt seinen Zweck üblicherweise besser als es selbergebaute Lösungen tun.
  • „Do not make a destructor if it is not necessary“ auf Seite 55 kann ich nur unterstreichen – gerade Visual C++ hat extreme Probleme mit der Optimierung von D’toren, selbst, wenn sie leer sind.
  • „7.25 Bitfields“ auf Seite 55: Was nicht erwähnt ist, ist, dass der Compiler für Zugriffe auf Bit Fields mehr Maschinentext erzeugt und man vorsichtig sein muss, dass dieser Mehrverbrauch den gespeicherten Platz nicht wieder aufbraucht.
  • Über „7.30 Exceptions and error handling“ auf Seite 60 lässt sich auch streiten – es gibt viele Beispiele, in denen Exception Handling weitaus performantere Programme liefert als herkömmliche Fehlerbehandlung (u.A. den schon leistungskritischen PlayStation 2-Emulator PCSX2) weil die Mehrkosten für Stack Unwinding durch gesparte Sprünge bei der Auswertung von Rückgabewerten, höhere Lokalität und besseren Programmentwurf mit Leichtigkeit ausgeglichen werden. Gegenteile Benchmarks kommen in der Regel von Leuten, die Fehlerbehandlung mit Nichtstun gleichsetzen. Wer Exception Handling verinnerlicht hat, wird damit üblicherweise leistungsfähigere Programme schreiben; wer noch in der Return Value-Mentalität festhängt, wird über Leistungseinbußen fluchen. (Wie es mit Structured Exception Handling aussieht, weiß ich nicht – aber das brauchen sowieso die wenigsten Programme.)
  • Funktionen throw() zu deklarieren, wie auf Seite 61 empfohlen, ist vergebene Liebesmüh’. Ich habe es mit 400 gemacht und es hat nicht ein Bit Unterschied bewirkt; offensichtlich kriegt Visual C++’ LTCG das ganz gut alleine hin. Die einzige Stelle, wo es lohnt, sind Deklarationen von Funktionen aus dynamischen Bibliotheken, die LTCG nicht kennen und analysieren kann – aber sowas hat man eh eher selten an leistungskritischen Stellen. Ganz abgesehen davon, dass es kein vertretbarer Wartungsaufwand ist.
    Eine Ergänzung zu __restrict auf Seite 76: Bei Visual C++ hat es keine Auswirkung mehr, weil LTCG Aliasing mittlerweile sehr gut ausschließen kann; selber dekorieren lohnt nicht mehr.
  • „Keywords that work on all C++ compilers“, Seite 81: register hat schon lange keine Wirkung mehr und const hat so gut wie keine Auswirkung auf Optimierungen. Man nutzt es, um Wirkungen zu kontrollieren, und nicht, um Optimierungen zu steuern.
Die wirkungsvollste Optimierung ist also im Augenblick, globale Optimierungen / Whole Program Optimization / Link-Time Code Generation / Wieauchimmereseuercompilerherstellernennt zu aktivieren.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Chromanoid »

Lectures der Casual Connect sind kostenlos online zu sehen (slides zum runterladen sind auch dabei):
http://europe.casualconnect.org/content.html
Benutzeravatar
Schrompf
Moderator
Beiträge: 4831
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Schrompf »

Eine Menge aktuellen Materials für Spieleentwickler findet sich unter http://www.gdcvault.com/free/gdc-11 - leider ist eine Menge davon nur als Video verfügbar. Das macht die Konsumierung etwas mühsamer.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Top-OR
Establishment
Beiträge: 330
Registriert: 02.03.2011, 16:32
Echter Name: Jens H.
Wohnort: Esslingen/Dessau
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Top-OR »

@Schrompf: Danke für die Quelle. Da sind ja ein paar sehr interessante Schätzchen dabei. Besonders die "klassischen" Videos/Folien über Doom oder Maniac Mansion hab ich wirklich genossen. Seeeehr schön, dankesehr!
--
Verallgemeinerungen sind IMMER falsch.
Benutzeravatar
donelik
Beiträge: 56
Registriert: 28.11.2006, 17:49
Benutzertext: Will releasen!
Kontaktdaten:

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von donelik »

Viele Physik-Engines wollen am Liebsten immer einen festen Wert als "delta timestep" übergeben bekommen. Wie kann man das erreichen? Herr Fiedler erklärt das m.E. ziemlich gut:

http://gafferongames.com/game-physics/f ... -timestep/

Ich finde die Idee mit der Interpolation ziemlich genial.
Ach hör' auf ...
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4252
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von Chromanoid »

Übersichtsseiten zu Publikationen verschiedener Firmen:

Valve
Von Rendering Wounds in Left 4 Dead 2 bis Valve's Approach to Playtesting: The Application of Empiricism ist alles dabei.

Crytek
Vor allem technische Aspekte werden hier vorgestellt.

Dice
Alle Gebiete der Spieleentwicklung sind hier übersichtlich aufgeführt und vertreten.
Benutzeravatar
RustySpoon
Establishment
Beiträge: 298
Registriert: 17.03.2009, 13:59
Wohnort: Dresden

Re: Artikelempfehlungen, interessante Publikationen o.Ä.

Beitrag von RustySpoon »

Depixelizing Pixel Art

Es wird ein Algorithmus vorgestellt, der 8-Bit Sprites vektorisiert. Die Ergebnisse sind imho ungefähr vergleichbar mit hq4x, nur das man halt hinterher 'ne vorteilhafte Vektorgrafik hat.

Bekommt man doch gleich Bock, das SNES mal wieder rauszukramen.
Antworten