Die Suche ergab 236 Treffer
- 20.02.2015, 12:44
- Forum: News und Ankündigungen
- Thema: Blobby Volley KI Contest auf spieleprogrammierer.de
- Antworten: 8
- Zugriffe: 9819
Re: Blobby Volley KI Contest auf spieleprogrammierer.de
Wie wirst du prüfen ob nur 100MB allokiert wurden? Ich breche die Frage auf ein paar cases runter: 1) Meine Klasse macht nichts anderes als einmal bei Konstruktion malloc(1024*1024*100) . OK? 2) Meine Klasse macht nichts anderes als einmal bei Konstruktion void* p = malloc(1024*1024*100) . OK? 3) F...
- 19.02.2015, 21:45
- Forum: News und Ankündigungen
- Thema: Blobby Volley KI Contest auf spieleprogrammierer.de
- Antworten: 8
- Zugriffe: 9819
Blobby Volley KI Contest auf spieleprogrammierer.de
Hallo, wollte euch nur kurz darauf aufmerksam machen, dass ich zur Zeit einen kleinen KI Contest hier veranstalte: https://www.spieleprogrammierer.de/32-programmier-contests/23889-17-blobby-volley-ki-spezial-1-runde-endet-sonntag-22-02-2015-23-59/ Es geht um eine KI für ein einfaches Spiel. Die Beis...
- 09.02.2015, 15:03
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557263
Re: Jammer-Thread
Ich musste gerade auch die Visual-C++-Runtime doch wieder in eine DLL einbinden, weil diese anscheinend für v-tables benötigt werden. Irgendwie schade, zumal die DLL per Hook in jeden Prozess geladen wird.
- 16.01.2015, 15:05
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557263
Re: Jammer-Thread
Erstens: WIe groß muss "a certain software company" sein, dass Microsoft durch den Reifen springt. Wenn meine Programme nicht laufen kann ich nicht bei Microsoft anrufen und fordern, dass sie was am Betriebssystem oder Compiler ändern. Ich denke es kommt nicht darauf an, wie groß die Firm...
- 28.10.2014, 15:31
- Forum: Algorithmen und Datenstrukturen
- Thema: Referenz auf temporäre Spielobjekte
- Antworten: 33
- Zugriffe: 19192
Re: Referenz auf temporäre Spielobjekte
Bei Splatter habe ich alle Objekte anhand einer ID in einem Container. Meine Objektreferenz ist dann eine kleine struct { Zeiger* z; ID id; }, die beim Zugriff das aktuelle Objekt aus dem Container holt und den Zeiger vergleicht, ob es noch dasselbe Objekt ist. Ich habe nämlich festgestellt, dass Z...
- 27.10.2014, 20:29
- Forum: Algorithmen und Datenstrukturen
- Thema: Referenz auf temporäre Spielobjekte
- Antworten: 33
- Zugriffe: 19192
Re: Referenz auf temporäre Spielobjekte
@Sternmull Du tust jetzt so, als ob es tausende solcher Pointer gibt, die auch schwer zu finden sind. Ich habe mal gerade in den Source von einen tatsächlichen Spiel geschaut, das den Ansatz verwirklicht, den ich hier vorgestellt habe. Und es gab genau eine Stelle im ganzen Spiel, in dem ein Objekt ...
- 27.10.2014, 16:15
- Forum: Algorithmen und Datenstrukturen
- Thema: Referenz auf temporäre Spielobjekte
- Antworten: 33
- Zugriffe: 19192
Re: Referenz auf temporäre Spielobjekte
Moment, was genau heißt das? Wie kann ein shared_ptr denn auf mehr als eine Instanz zeigen? Oder meinst du, dass alle shared_ptr die auf ein Objekt zeigen, jeweils eine eigene kleine Heapallokation machen? Wofür wäre die? Seine Aussage ist nicht allgemeingültig. Ein "shared_ptr" besteht a...
- 27.10.2014, 14:38
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557263
Re: Jammer-Thread
WM_PAINT wird ja auch nicht gesendet oder gepostet, sondern bei Bedarf direkt in GetMessage generiert. Wofür brauchst du das denn?
- 26.10.2014, 22:50
- Forum: Algorithmen und Datenstrukturen
- Thema: Referenz auf temporäre Spielobjekte
- Antworten: 33
- Zugriffe: 19192
Re: Referenz auf temporäre Spielobjekte
Ein shared_ptr hat den weiteren Nachteil, dass er pro Instanz auf die er zeigt eine kleine Heapallokation machen muss. Auch musst du gut darauf achten, dass keine zirkulären Referenzen entstehen und die Dinger zu debuggen macht auch keinen Spaß. Ich würde dir die Nummer 4 empfehlen: 4. Spielobjekte ...
- 05.10.2014, 23:00
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: C++ - Verdecken einer virtuellen Funktion
- Antworten: 6
- Zugriffe: 2226
Re: C++ - Verschatten einer virtuellen Funktion
Das geht nicht. Überladene Funktionen dürfen sich nicht ausschließlich im Rückgabetyp unterscheiden.
Wofür brauchst du das denn?
Wofür brauchst du das denn?
- 01.10.2014, 16:05
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557263
Re: Jammer-Thread
Leider darf man das schon... Nur sie dort auch zu definieren ist wenigstens nicht erlaubt.Spiele Programmierer hat geschrieben:Du darfst in einer Funktion einfach keine Funktion deklarieren. Aus. Da ist eigentlich nichts unlogisch daran, dass ist einfach so und macht auch Sinn.
- 25.09.2014, 14:07
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [MSVC 2013] Function local static zero-init
- Antworten: 6
- Zugriffe: 2876
Re: [MSVC 2013] Function local static zero-init
Nachdem mir Cat nochmal die Grundzüge von zero-init erklärt hat, bin ich momentan bei folgendem Konstrukt: foo() { static std::atomic_flag lock = ATOMIC_FLAG_INIT; // zero-init, keine race-condition while (lock.test_and_set(std::memory_order_acquire)) {} // spin static void* ptr = expensiveInit(); ...
- 25.09.2014, 13:49
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C++] Try/Catch -> Objekt anlegen
- Antworten: 25
- Zugriffe: 5410
Re: [C++] Try/Catch -> Objekt anlegen
Naja das ist schon ein Problem, das BeRsErKeR da beschreibt. Und es gibt schlicht und einfach keine gute Lösung. Exceptions und konsequentes RAII haben halt nicht nur Vorteile. Meiner Meinung nach sogar mehr Nachteile als Vorteile. Ich würde Exceptions vermeiden, wenn es geht.
- 11.09.2014, 20:14
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [C++] SmartPointer
- Antworten: 23
- Zugriffe: 5130
Re: [C++] SmartPointer
Smart Pointer zu benutzen, nur damit man Smart Pointer benutzt, ist Quatsch. Man kann auch mit Smart Pointern in C++ viel Quatsch machen. Deshalb würd ich dir einfach empfehlen, keine zu benutzen. Mit der Zeit wirst du dann automatisch ein Verständnis dafür bekommen, vielleicht mal selbst einen Smar...
- 21.08.2014, 17:52
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [Visual C++] Besseres _malloca()
- Antworten: 6
- Zugriffe: 2055
Re: [Visual C++] Besseres _malloca()
Das gefällt mir wesentlich besser als _alloca(). Die Funktion sollte meiner Meinung nach verboten werden. Man sollte vielleicht noch erwähnen, dass dein Code nicht mehr funktioniert, sobald TYPE einen Konstruktor hat. Außerdem würde mich ein wenig stören, dass dann auf dem Stack Platz für 2 Pointer ...
- 09.08.2014, 17:59
- Forum: Allgemeines Talk-Brett
- Thema: Jammer-Thread
- Antworten: 7534
- Zugriffe: 1557263
Re: Jammer-Thread
Neuen Monitor angeschlossen und ZACK, Internet funktioniert nicht mehr. Selbst nach stundenlangem Treiber neuinstallieren, neue Netzwerkkarte einbauen und etlichen Neustarts wollte es nicht laufen. Musste schließlich Windows neu installieren.
- 17.07.2014, 14:23
- Forum: Algorithmen und Datenstrukturen
- Thema: Scrollen mit Word Wrap
- Antworten: 55
- Zugriffe: 15642
Re: Scrollen mit Word Wrap
Hm... müsste das nicht doch gehen? Man müsste halt rückwärts suchen, bis man entweder genügend Wörter zusammen hat, um eine Zeile vollzumachen, oder bei längerem Wort als Zeile den ersten möglichen Umbruch findet. Und in letzterem Fall müsste man dann halt das Langwort über Zeilen verteilen und rec...
- 17.07.2014, 10:43
- Forum: Algorithmen und Datenstrukturen
- Thema: Scrollen mit Word Wrap
- Antworten: 55
- Zugriffe: 15642
Re: Scrollen mit Word Wrap
Nun, angenommen du hast eine sehr lange Datei, die so endet: ...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxgggiiiiy Und dein Editor stellt das dar: _ _ _ |iiiiy| | | | | |_ _ _| Was soll nun angezeigt werden, wenn eine Zeile hochgescrollt wird? Es ist unmöglich das zu entscheiden, ohne den gesamten...
- 16.07.2014, 21:48
- Forum: Algorithmen und Datenstrukturen
- Thema: Scrollen mit Word Wrap
- Antworten: 55
- Zugriffe: 15642
Re: Scrollen mit Word Wrap
Aber das ist noch nicht das Ende. Das war jetzt Scrollen nach unten . Der Benutzer kann auch hoch scrollen – und dann läuft die verdammte Chose rückwärts ab! Also wird der Quelltext erneut kopiert, und die dritte Version formatiert von hinten nach vorne. Macht genau das Gleiche, aber der Quelltext ...
- 28.06.2014, 11:18
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [Win32]PeekMessage und MsgProc
- Antworten: 9
- Zugriffe: 2265
Re: [Win32]PeekMessage und MsgProc
SendMessage umgeht in bestimmten Fällen die Nachrichtenschleife und ruft direkt die Windowsprozedur auf. Zum Beispiel in dem Fall, wenn DefWindowProc WM_CLOSE bearbeitet und über DestroyWindow WM_DESTROY sendet. Wenn du Nachrichten von einem Fenster abfangen willst kannst du z.B. SetWindowSubclass v...
- 17.05.2014, 18:59
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Ja, man sollte wohl wirklich aus dem bool ein std::atomic<bool> machen. Aber solange man Visual Studio verwendet reicht auch volatile.
Gibt's zu Win32 Events eigentlich auch ein Pendant in der Standard Bibliothek?
Gibt's zu Win32 Events eigentlich auch ein Pendant in der Standard Bibliothek?
- 17.05.2014, 14:42
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Kein Problem.
Allerdings solltest du noch die ersten beiden Zeilen in WaitForAllThreads() vertauschen, um ne Racecondition beim Zugriff auf TestRunning1 zu vermeiden. Du solltest vielleicht auch noch TestRunning1 volatile markieren, damit der Compiler das nicht selber vertauscht.
Allerdings solltest du noch die ersten beiden Zeilen in WaitForAllThreads() vertauschen, um ne Racecondition beim Zugriff auf TestRunning1 zu vermeiden. Du solltest vielleicht auch noch TestRunning1 volatile markieren, damit der Compiler das nicht selber vertauscht.
- 17.05.2014, 10:28
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Ups, da war noch 'ne kleine Racecondition drin. Hier korrigiert: HANDLE TestEvent1, TestEvent2; bool TestRunning1 = false; std::atomic<int> ThreadCounter = 0; void WaitForAllThreads() { HANDLE NextEvent = TestRunning1 ? TestEvent2 : TestEvent1; if (ThreadCounter.fetch_add(1) == THREADCOUNT - 1) { Th...
- 17.05.2014, 10:18
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Dass ist nett, dass du ein minimales Beispiel gemacht hast. Du brauchst allerdings mindestens zwei Events. Die Racecondition hast du ja schon selber erkannt. Ohne Mainthread ist das etwas tricky, aber es geht so: HANDLE TestEvent1, TestEvent2; bool TestRunning1 = false; std::atomic<int> ThreadCounte...
- 16.05.2014, 20:09
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Der Mainthread kann dann über ein zweites Event wieder alle Threads aufwecken. Wenn ich es so mache, wie schlafen sie? Auf ein Event wartest du mit WaitForSingleObject. Die Funktion habe ich ja auch schon erwähnt. Warum SuspendThread böse ist kannst du hier nachlesen. Und dass busy wait nicht perfo...
- 16.05.2014, 16:32
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
Versteh ich das richtig, dass alle Workerthreads gleichzeitig anfangen zu arbeiten und der Mainthread darauf wartet dass alle fertig werden und dann wieder alle Workerthreads mit was neuem anfangen? Die einfachste Lösung wäre dann tatsächlich WaitForMultipleObjects. Dann musst du die Threads aber fü...
- 16.05.2014, 14:15
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Effiziente Synchronisation von Threads
- Antworten: 34
- Zugriffe: 5826
Re: Effiziente Synchronisation von Threads
ResumeThread() und SuspendThread() sind nicht zur Synchronisierung gedacht und sollten auch nicht dafür verwendet werden. Warum nutzt du nicht einfach CriticalSections? Wenn die zu langsam werden gibt es noch andere Tricks, aber erstmal sollte man die verwenden. Auch verstehe ich wie Schrompf deinen...
- 26.02.2014, 01:11
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [gelöst]Verdammtes std::list::erase des letzten Elementes
- Antworten: 13
- Zugriffe: 2844
Re: [gelöst]Verdammtes std::list::erase des letzten Elemente
@joggel
Bei deiner Variante wird "eineBedingung" nicht für jedes Element der Liste aufgerufen, falls ein Element mitten in der Liste gelöscht wird.
Bei deiner Variante wird "eineBedingung" nicht für jedes Element der Liste aufgerufen, falls ein Element mitten in der Liste gelöscht wird.
- 25.02.2014, 21:22
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: [gelöst]Verdammtes std::list::erase des letzten Elementes
- Antworten: 13
- Zugriffe: 2844
Re: Verdammtest std::list::erase des letzten Elementes
Das mit dem Rückwärtsiterieren ist ne gute Idee, werd ich mir merken!
- 18.02.2014, 20:26
- Forum: Programmiersprachen, Quelltext und Bibliotheken
- Thema: Funktionen weiterleiten ohne die Parameter zu kennenn
- Antworten: 9
- Zugriffe: 1903
Re: Funktionen weiterleiten ohne die Parameter zu kennenn
Es ist nicht nur eine Sprunganweisung. Die Funktion muss erst die Funktion aus der richtigen DLL laden, falls das nicht schon geschehen ist. Außerdem hab ich keine Ahnung, wie man Assemblercode einbindet, aufruft, wie das in Kombination mit Makros funktioniert und wie man da globale Variablen anlegt...