
Crush
Mitglieder-
Gesamte Inhalte
2048 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Crush
-
Ein paar Fragen zur Ausbildung zum Programmiere
Crush antwortete auf noli88's Thema in Ausbildung im IT-Bereich
Google findet unter "Algorithmetik" 0 Einträge (also nicht mal als Tippfehler!) hört sich aber toll an - werd´ ich deshalb zur allgemeinen Verwirrung nun öfterer mal benutzen =8-) -
Ich war noch wach und hab etwas mit einem Kumpel gechattet als es los ging. Dann hat´s nen riesen Schlag gemacht und es hat alles gewackelt. Passiert ist nichts, außer daß die Pendeluhr hinter mir verrutscht ist. Adrenalin ist schon ne feine Sache - da wird man gleich wieder richtig fit.
-
Such mal im Forum alles zum Thema Findwindow() und Shellexecute ab, da gibt´s genügend Beispiele.
-
Erfahrung hab ich mit ASM keine, aber es ist auf jeden Fall eine Neuerung von 10G.
-
@Erik_hfr: Eine Formelsammlung ist keine Engine! Folgendes ist meine persönliche Auffassung, aber ich denke, daß 99% der Spieleentwickler meine Sicht zu diesem Thema teilen dürften. Formelsammlungen stellen lediglich das Grundgerüst für die Engine bereit und definieren die Form der Daten im Speicher und deren Verarbeitung. Es gibt auch keine "Formelsammlung" für Kollisionen, sondern nur Routinen zur Kollisionsabfrage und davon meistens sogar mehrere für verschiedene Einsatzbereiche. Die Kollision eines Schusses muß anders berechnet werden als die Kollision des eigenen Raumschiffes auf der Oberfläche, eine Kollision von einzelnen Körperteilen ist wesentlich komplexer und anders abzufragen (wegen Verwundungen oder Splattereffekten) als eine Gesamtkollision mit dem Objekt an sich, welche nicht so genau funktionieren muß und einen "vermutlich Treffer!" liefert - Hauptsache der Gegner fällt tot um oder explodiert =8-) Verschiedene Verhaltensweisen lassen sich nicht so leicht in Formen quetschen wie die 3D-Rotationen und Translationen. z.B. wenn ein Schuß von einem Gegner auf einen abgefeuert wird, muß berücksichtigt werden, daß man sich selbst in Bewegung befindet (gerade bei Weltraumkampfsimulationen) die Richtung des Schusses muß aus der Bewegungsrichtung und Gewschwindigkeit des Ziels abgeleitet werden und den vermutlichen Zielpunkt bei gleichem Kurs anvisieren, sonst würde man niemals getroffen werden, außer bei totalem Stillstand! Die Formeln, die man einsetzt kann man auf einige bestimmte Grundformeln reduzieren. Aber erst der korrekte Einsatz der Formeln im Bezug miteinander in Programmabläufen macht eine Spieleengine im Ansatz wirklich aus. Etwas abstrakt betrachtet kann man sich das etwa so vorstellen: Das Design eines Autos entspricht eher den Formeln, das Benzin sind die Eingabedaten, Levels, Sounddateien, etc., dann wäre die eingesetzte Technik als die Engines in Ihrer Gesamtheit zu Verstehen, wodurch man die einzelnen Teile der Fahrzeugtechnik abstrakt als getrennt entwickelte Engines (Physik-, Grafik-, Sound-, etc.-Engine) ansehen kann und die Gesamtheit des Fahrens als Spiel. Was ist nun die Engine? Eine Engine muß compilierter, ausführbarer Programmcode sein. Er muß effektiv Eingangsdaten wie Objekte, Bilder, Texturen verarbeiten können und diese auf den Bildschirm bringen können. Man spricht zwar allgemein immer von Engine und meint heute dabei meistens die Grafik-Engine. Zur Engine gehören aber auch die KI für die Objektsteuerung, Pathfinding-Algorithmen zur Bewegungssuche von Objekten, Kollisionsprüfung, die Verwaltung von eventuellen Inventories, usw.. Diese sind Teil der Spiele-/Game-Engine. Was in letzter Zeit die Grafikengine immer mehr und mehr bei den Diskussionen verdrängt, ist die Physik-Engine - insbesondere bei Half-Life 2 ist dies das Hauptthema. Diese gewährleistet ein an der Realität möglichst nah liegendes korrektes Verhalten möglichst vieler physikalischer Gesetze der Spielobjekte. Logischerweise fehlt zur Vervollständigung noch die Sound-Engine, die jedem klar sein dürfte (Musik, Effekte, akkustische 3-Dimensionale Raumverteilung). Weitere Sondereffekte wie Muskeln, Gesichtsausdrücke, Lippensynchrone Mundbewegung der Figuren beim Sprechen, lassen sich nicht ganz so einfach in eine Sparte stecken und können eher als Hybridengines bezeichnet werden, weil sie viele Engines parallel beeinflussen. Einerseits simulieren sie die reellen Gegebenheiten (Physik-Engine), andererseits werden sie auf dem Bildschirm sichtbar und müssen dargestellt werden können (Grafik-Engine) oder wirken sich auf die Game-Engine aus, weil sie den Verlauf des Spiels beeinflussen können. Unterteile davon sind eher der Game-Engine oder gar keiner klar zuordenbar, z.B. die Audio-Analyse, die die Lippensynchronität überhaupt ermöglicht. Davon gibt es auch einige Vertreter, wie z.B. Landschafts-/Objektmorphing, Wettersimulation, Inverse Kinematik, Eingabeberäte (Joystick, Mouse, Tastatur), Netzwerkkomponenten wie Gameserver, Netgaming, Chatsystem, ... vielleicht könnte man die zuletzt genannten auch als sowas wie die Net-Engine bezeichnen - das liegt wohl wie immer im Auge des Betrachters. Wer allerdings was wie nennt und welcher Engine zuordnet, spielt an sich keine allzu große Rolle, da Softwareentwicklung heutzutage eh modular abläuft und alles zum Schluß miteinander vernetzt wird. Hauptsache die Engines greifen nahtlos und absturzfrei ineinander, überlassen allen Programmteilen die Zeit, die sie benötigen um "flüssig" Laufen zu können (es gibt Programmteile, die bei jedem Bildschirmframe durchlauft werden müssen, einige regelmäßig alle paar Millisekunden und anderen reicht es aus im Zeitrahmen von 10-30 Sekunden einmal durchlaufen zu werden), bieten sich gegenseitig ausreichende Schnittstellen zur Kommunikation an und ermöglichen dem Spieler auf diese Art und Weise ein angenehmes Spielen in seiner virtuellen Umgebung.
-
Single Player RPG - Euer Liebling
Crush antwortete auf Ragdalfius's Thema in Gaming Club's Allgemeine Themen
Redemption hat alleine doch riesen Spaß gemacht? Online konnte ja einer Dungeon-Master spielen - hat sich interessant angehört, hab ich aber leider nie gespielt =8-( -
Bitmap erstellen--mit C+++ möglich??
Crush antwortete auf noli88's Thema in C++: Compiler, IDEs, APIs
Zum Erstellen der Bitmap brauchst Du ein Mal-/Grafik-programm. Zum Darstellen der Grafik während des Spiels, Animationen und festgelegte Verhaltensweisen brauchst Du eine Programmiersprache. -
Also ich brauch eigentlich gar keinen Optimismus, obwohl ich immer vom Schlimmsten ausgehe, um nicht zu sehr enttäuscht werden zu können, falls das doch jemals der Fall sein sollte. Mein Glück hat mich noch NIE (ohne Witz) enttäuscht und selbst wenn ich hohe Erwartungen hatte, hat das Ergebnis diese fast immer bei weitem übertroffen. Irgendwie wird mir von jemand wohl zugespielt. Nur ein paar seeehr wenige negative Ereignisse (im Sinne der Erwartungshaltung) haben sich allerdings immer im Nachhinein als positive Wendung herausgestellt und mir wieder weitere Vorteile gebracht.
-
Ich habe so eine 3D-Brille (die nur mit NVidia-Karten zusammen arbeitet). Der räumliche Effekt kann wirklich super rüber kommen, allerdings habe ich das Ding auch nicht so oft eingesetzt, weil irgendwann mal ein Wackelkontakt ins Kabel kam (müßte ich mir mal genauer anschauen). Ich fand´s jedenfalls gut und versuche mal das Ding wieder zu reparieren. Zum 3D-Helm: Ich glaube nicht, daß die so gut sind, weil die Positionsbestimmung damit technisch ein echtes Problem und zu ungenau war.
-
Ich habe gehört, daß manche Datenrettungsdienste im Reinraum (Labor) Datenrettungen von Festplatten schon ab ca. 2000 Euros vornehmen. Ob das allerdings stimmt, weiß ich nicht sicher.
-
Gut sind auf jeden Fall noch: Legend of Zelda - Majora´s Mask, Conker´s Bad Fur Day, Banjo-Kazooie, Jet-Force-Gemini (hat aber nur sehr niedrige Frame-Raten), Resident Evil 2, Castlevania (nur Teil 1), Turok 1-3, Rayman 2, Forsaken & Paper-Mario. Vom Legend of Zelda - Ocarina of Time gibt es noch die "Master Quest"-Ausgabe, die dem Gamecube Nachfolger Wind-Waker bei Vorbestellung mit beilag, mit komplett umgestrickten Dungeons, gleicher Story und keine neuen Features.
-
@Crash2001 Pestpatrol ist kommerzielle Software - keine Freeware! Wie gesagt kann man bei Heft-CDs eine alte Version bekommen (meistens ohne automatisches Update der Definitionsdateien und Scan-Engines ... muß man dann von Hand machen ... naja, es gibt auch Tricks =8-) oder aber bei AShampoo läuft gerade eine Aktion, wo die Upgradefähige Vollversion (https://secure.element5.com/esales/cart.html?PRODUCT[542715]=1&languageid=2&affiliateid=76645) für 7.99 zu haben ist. Beim Draufklicken auf den Namen bekommt man eine nähere Produkbeschreibung. Wenn man sie genau am 31.10.2004 käuft und bei der Kasse als Gutscheincode "Ashampoo" eingibt, erhält man wegen 5-Jährigem-Jubiläum sogar noch 55,55% Nachlaß beim Kauf von allen Artikeln was dann ca. 3.60 € sind, die das Programm auf jeden Fall wert ist. Beim Test hat das Programm als einzigstes ALLES was ausgetestet wurde, gefunden. Platz 2 beim Test gerade mal knapp über der Hälfte der Test-Pests. Das bedeutet: Es gibt derzeit keine wirkliche Alternative zu Pestpatrol.
-
DungeonMaster II - Skullkeep
Crush antwortete auf Thias78's Thema in Gaming Club's Allgemeine Themen
Das Spiel ist ein DOS-Spiel. Entweder installiere Dir eine Partition mit DOS und evtl. noch Windows98 oder probiere mal DosBox oder Abandonloader oder auch Dodge (nur Uralt-Maschinen) oder Bochs (relativ kompliziert zum Laufen zu bringen und sehr langsam) oder unter Linux Dosemu. Meine steinalten Spiele habe ich praktisch alle unter Dosbox zum Laufen gebracht. Wenn man richtig Geld hat, kann man auch VMWare oder VirtualPC dazu benutzen. -
@Crash2001 Pestpatrol ist ein Trojaner-, Spyware-, KeyLogger-, Adware-, Dialer-, Exploit-, Firewall Killer- (wichtig!), Mailer-/Mailbomber-, Password Capture-, Sniffer-, Spoofer-, War-Dialer-, Wurm-Scanner & -Killer. Er findet noch vieles mehr (steht Seitenweise alles im Prg zur Auswahl ob´s gescannt werden soll oder nicht, genauso wie die vorher aufgezählten Punkte, selbst riskante Dokumente zu bestimmten Thematiken können detektiert und entfernt werden!). Das Teil hat immer die beste Bewertung unter all diesen Tools erhalten, hat die höchste Aktualisierungsrate, wird in letzter Zeit oft als Vollversion auf Heft-CDs mit verkauft und ich finde es um Längen besser und schneller als Adaware oder S&D (der Scanner findet auch viel mehr, selbst wenn Adaware schon drüber gelaufen ist).
-
Informatiker hat auch eine Menge mit Klischee zu tun. Z.B., dass man gut verdient und ständig etwas Neues lernen kann. Außerdem interpretiert jeder Nichtinformatiker in solche Leute ein unheimliches Sachverständnis und Intellekt. Diese "Anerkennung" (selbst wenn man vielleicht selbst noch gar nichts geleistet hat) reicht vielen bestimmt schon als Entscheidungsgrundlage aus - selbst wenn man noch gar keine rechte Vorstellung davon hat, was einen erwartet. Ohne geht ohnehin kaum noch irgendwas - egal in welchem Berufszweig und Computer können gerade mit Spielen und Internet eine große Faszination ausüben. Aber gerade in diesen beiden Computerzweigen sind die Stellen überpolarisiert, d.h. entweder extrem anspruchsvoll und rar oder andersherum vollkommen überrannt (Stichwort: DotComTod - schade ... gibts leider nicht mehr). Ich persönlich finde die Kreativität, die einem der Computer eröffnet, und der riesige Wissensblock den man sich einverleiben kann total herausfordernd. Ergebnisse der eigenen Arbeit kann man schon während des Entwicklungsprozesses sehen. Das ist motivierend und gibt´s so nicht in jedem Beruf. Hier kann man wie Wissenschaftler noch Dinge erschaffen, die es so bisher noch nirgendwo gab - und somit auch noch den kleinen Forscher in einem animieren.
-
Ich habe schon einige ausprobiert, aber PC-Cillin von Trend-Micro findet mehr Viren/Trojaner usw. im System als z.B. AntiVir (hab ich beim Testen bemerkt) und so nette Features wie die Notfallsperre vom Netzwerk bei entsprechendem Fund und Datenverkehr sind wirklich sinnvoll. Momentan bin ich damit jedenfalls voll zufrieden. Allerdings alleine ist so ein Virenkiller auch nur bedingt gut. Parallel dazu lasse ich noch Pestpatrol laufen, welcher den Virenkiller perfekt ergänzt!
-
(Tailgunner: Heute ist das mit dem Clipping nicht mehr so dramatisch wie vor der 3D-Grafikkarten-Zeit, dafür gibts die Viewing-Frustum, bzw. die Near-/Far-Clipping-Plane) Mal abgesehen davon, daß ein Editor für die Spiele-Umgebung und Scripte usw. oftmals im gleichen Maße aufwendig ist, wie die Spielengine selbst. Bei einem Paradroid-Klon (2D) habe ich z.B. mit ein paar Kumpels gemerkt, daß der Editor-Programmcode - damals noch in purem 68K Assembler - unverhältnismäßig größer und umfangreicher anwuchs als die dazugehörige Spieleengine.
-
Die beiden Fehler ergänzen sich ja hervorragend! Ich frage mich aber wegen der 4. Variable, wieso dann wohl kleine Dateien als 65KB übertragen worden sein sollen??!?! (bzw. 32K widechars)
-
Der VirtualAlloc ist das Problem: Es wird nur im Bereich von einem Wortoffset Speicher reserviert, weil immer maximal innerhalb einer Memory-Page Speicher verwendet wird. Diese sind eben maximal 0x10000 Bytes groß. Das bedeutet, hiermit kommst Du nicht weiter. Mach ein normales NEW oder verwendet mehrere 65K-Blöcke und fülle diese hintereinander auf, dann klappt´s auch.
-
Hallo, wieder hart am Schaffen? Wo tritt der Fehler denn genau auf und was für einen Stringtyp verwendest Du? Eine Zeile Code wäre nicht schlecht um zu sehen, wie Du den Buffer vom String füllst. Wenn ich davon mal ausgehe, daß Du einen CString beschreiben willst, dann kannst Du mit GetBufferSetLength() die Maximalgröße festlegen - der Inhalt geht dabei übrigens nicht verloren. Danach kannst Du den Stringbuffer direkt beschreiben. Das Füllen mit 0ern ist nur notwendig, wenn man den String bis zum ersten 0er als Stringende clippen will. Ansonsten kann man den String wie ein char-Array verwenden, direkt auf den Speicher zugreifen und mit Zeiger durchiterieren, usw. Da Dir die Stringlänge vom Internetfile nicht bekannt ist, kannst Du ja mal mit einem 32 KB-Buffer arbeiten, den String resizen und dann in den nächsten 32 KB Block weiter einlesen. Sobald alles fertig ist die Gesamtstringlänge selber festsetzen oder eben mit ReleaseBuffer() die Stringlänge automatisch passend zurecht schneiden lassen. CString string("=8-)"); // wird nicht verändert beim Resize() des Buffers string.GetBufferSetLength(500000); // hier wird die Größe festgelegt, Inhalte bleiben erhalten ZeroMemory(string.GetBuffer(),string.GetLength()); // mit 0er-Bytes fürs Clippen auffüllen, sofern benötigt memcpy(string.GetBuffer(),"test",4); // irgendein teststring memcpy(string.GetBuffer()+4,"\0test2",6); // hier noch einer, damit man das mit dem 0er richtig sieht // string.ReleaseBuffer(); // clippt den String von links bis zum ersten 0er-Zeichen string.GetBufferSetLength(10); // setzt die Stringlänge "hart" auf die befüllte Größe, damit 0er nicht untergehen // ACHTUNG! Ausgaberoutinen können abstürzen, wenn man so einen String überreicht! string.Replace(0x0,'_'); // Für eine MessageBox z.B. müßte man die 0er vor der Ausgabe ersetzen AfxMessageBox(string); Übrigens: Ich bin heute zu Hause, kannst mich da ja anrufen, wenn Du noch Fragen hast =8-)
-
Ich hab 1999 mit 28 Jahren den FIAE angefangen und war 2001 fertig.
-
In unserer Videothek würd´s für das Geld haagenau 19 Kinderfilme geben, was 19x länger dauert und meist ohne Werbung ist (und wenn schon, dann spult man halt vor) ... mal abgesehen davon, daß die Wahrscheinlichkeit extrem ansteigt, auch noch einen guten Film darunter zu haben. Ob Video oder DVD spielt bei uns keine Rolle, weil´s gleichviel kostet. Übrigens hängt dann auch kein riesen Lulatsch mit Schweißsocken die ganze Zeit vor meiner Nase herum. Ich kann mich noch an die Zeiten erinnern, als 1x Kino 5 Mark gekostet hat und für Kinder nur die Hälfte... =8-)
-
Wie der Titel schon sagt. Ich hab mal probiert, wie schnell ich eine eigene String-Hashmap hinbekomme und bin WESENTLICH schneller als die CMapStringToString, obwohl ich sogar noch eine Multimap eingebaut habe (bei Tests bis zu 2500x schneller, was mich sehr stutzig gemacht hat). Bei kleinen Umfängen ist sie ordentlich einsetzbar, aber sobald man mal mit über 20000 Einträgen arbeitet, fängt die CMapStringToString mehr und mehr an zu kriechen - quadratisch in der Dauer steigend zum Umfang, obwohl ich sie mit einer festen Hashmap-Größe vorbelege (Ein Blick auf den Speicher hat aber gezeigt, daß sie trotzdem ständig reorganisiert wird)! Immerhin arbeitet sie ansonsten zuverlässig. Die hash_multimap (std) ist erheblich schneller (wenn auch noch lange nicht so schnell wie meine Hash-Implementierung), aber irgendwie ziemlich empfindlich. Die "normale" Benutzung (über map[Key]=Value; führt komischerweise zu einem sehr seltsamen Verhalten, genauso wie die map.insert(pair(Key,Value)). Nur eine Variante von .find hat funktioniert. Nach einer kleinen Anzahl Einträge wird die Map nicht mehr erweitert und die Funktionsaufrufe landen im Nirvana ohne jegliche Fehlermeldung! Abfragen zeigen dann immer wieder auf den gleichen Wert. (das kann so doch nicht im Sinne des Erfinders sein?) Ich jedenfalls habe mich entschieden lieber meine Version, die wenigstens ordentlich funktioniert zu nehmen, anstatt die bugbehafteten Standard-Hashmaps. Meine Frage: Ist es tatsächlich so, daß die Standard-Hash-Klassen einfach extrem mies programmiert sind und ich das nur noch nicht mitbekommen habe?
-
Erst heute kam im Radio, daß die "Jungs" da oben die tolle Idee haben, das "Mitversichertsein" - ganz im Sinne der Sparmaßnahmen - abzuschaffen.
-
Selbstbewußt ist gut! Ist den Azubis klar, daß die jederzeit ohne Grund gekickt werden können, weil NIEMAND die Voraussetzungen wie in der Ausschreibung erfüllt. Da kann man dann - wenn nichts explizites Schriftliches besteht - mit den Azubis anfangen was man will. Entlassungsgrund: Vorspielung falscher Tatsachen = Betrug!