Schnellere Formel gesucht
Übersicht

![]() |
FirstdeathmakerBetreff: Schnellere Formel gesucht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guten Abend, ich hätte da mal eine Frage die ich in den Raum stellen möchte:
Ich bastel gerade an einer Kampfengine für ein Strategiespiel in dem viele Raumschiffe aufeinander treffen. Die Gefechte werden dabei simuliert, d.h. berechnet. In dieser Gefechtsberechnung gibt es einen kleinen Teil, der, bei großen Mengen an Schiffen, recht langsam wird. Der Teil berechnet, ob die Schiffskanonen eines Schiffstypes der einen Flotte (a) Schiffe eines anderen Types der Flotte b treffen und das gleiche dann auch noch mal umgekehrt für die andere Flotte. Ab Schiffszahlen von <500k sind jedoch teilweise 1mio Kanonen zu berechnen, was die Angelegenheit <1 Sekunde dauern lässt, da er ja alle in der For-Schleife durchgeht. BlitzBasic: [AUSKLAPPEN] a_new_schusstreffer=0 Meine weitere Forschungsrichtung war jetzt, zu sehen wie die Trefferquoten dabei aufgebaut sind, hab mir also ein kleines Programm geschrieben und folgenden Test gemacht: 0%--------------------------------100% Getroffen Also, was ich suche, ist eine Möglichkeit, die oben Zitierte Berechnung zu beschleunigen, dabei aber gleichzeitig die gleichen Trefferquoten zu erreichen. Ich häng hier mal noch den Testcode für die Trefferquote an: BlitzBasic: [AUSKLAPPEN] ;Jäger |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
An der kannst du nicht wirklich etwas beschleunigen ...
Du berechnest halt extrem viele Daten. Was du tun kannst ist nicht pro Schuss sondern pro Schiff oder pro Waffentyp auf einem Schiff (sofern du das hast) zu berechnen ... oder mit realistischen Raumschiffzahlen arbeiten. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, pro Schuss muss schon sein. Weil, ein großes Raumschiff mit 2 enormen Kanonen wird nie eine gute Chance gegen 500 Jäger haben, weil es pro Kampfrunde höchstens 2 Jäger erwischen kann. Deshalb rechne ich mit Kanonen/Treffern/Schüssen anstatt mit einzelnen Raumschiffen. Ich hab das ganze rechenmäßig ja schon ziemlich drücken können, aber dieses Problem oben blieb ja noch bestehen.
Ne weitere Idee von mir ginge so weit, eine Funktion zu finden, welche diese Quotenkurve die sich beim abspielen des Testprogrammes ergibt, nachsimuliert. Diese Funktion müsste also den Extrempunkt (und Hochpunkt) errechnen und darum in einem bestimmten noch festzustellendem Warscheinlichkeitsmuster eine abfallende Trefferrate generieren. Dann hat man schonmal das Warscheinlichkeits-Grundmuster, welches man für eine Funktion braucht die eine Zahl# zwischen 0 und 1 zu diesen Warscheinlichkeiten zuordnet, und dadurch die Anzahl der Treffer ausgeben kann. Hmm... theoretisch hab ich´s jetzt, nun brauch ich nur noch die Formeln dazu entwickeln. HILFE! ![]() |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn auch nicht die gewünschte funktion für den graphen aber du könntest zum beispiel auch rand(0,100) anstatt rnd(0,1) nehmen, kommt doch in etwa aufs selbe raus aber mit integern bist du schonmal sehr viel schneller als mit floats. | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habs mit Integern ausprobiert, ist nicht schneller. Hab ein paar Testdurchläufe gemacht, folgendes Ergebnis:
Integer: 4474-4542 Millisec Float: 4012-4056 Millisec Aber mit einer gemeingültigen Formel würde das ja keine Rolle mehr spielen. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group