Warnung: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant VB_FRAMEWORK - assumed 'VB_FRAMEWORK' (this will throw an Error in a future version of PHP) in ..../includes/functions.php (Zeile 8101)

Warnung: Use of undefined constant archive_postsperpage - assumed 'archive_postsperpage' (this will throw an Error in a future version of PHP) in ..../archive/index.php (Zeile 456)
Austins Träume [Archiv] - X-Plane Schweiz

PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Austins Träume



Hermann
03.10.2010, 10:11
a note on the internal structure of X-Plane 10:

As X-Plane grows in scope to be a world simulator, not just a flight simulator, with many process to fly airplanes by air traffic control, drive cars along the roads and highways, and build forests and cities according to Interesting little algorithms, all at the same time, it becomes clear that the organization of the code is becoming absolutely critical to handle all of these many processes at once without introducing extreme complications and bugs from countless interdependencies. Weather controls absolutely everything that is going on from the deer and birds to the hot air balloons to the rain and snow and ice to the type of instructions you get from air traffic control. Forests are actually planted in front of you on secondary CPUs's as you fly, and cloud puffs, radar images, and even the flight models of other airplanes are running on secondary CPUs at the same time. There are countless processes all running at once to drive this virtual world, and if each process is not well-d esigned and insulated from the others, then crashes, bugs, and chaos will ensue.

So, how do we deal with this? The answer is object oriented programming. Here is how it works: each entity in X-Plane (say, for example, the deer that run across the runways from Time to time) is it's own little object of code. This object is it's own little bit of instructions and memory, and this object is not allowed ( and in fact does not know how) to access the functions or memory of any of the other objects in the X-Plane world. Each object contains it's own logic and instructions, and I can safely forget how each object works when I am done coding it, because it is an insulated unit that cannot effect anything else. For example, the deer object will look at where you are so they can run and bound about at whatever airport you are near, using their own little primitive brains to decide where to run based on the size of the airport, weather, time of day, and your location, but the deer object does not know how to change the location of your airplane... Because your airplane is, of course, a totally different object. Since the brains, memory, commands and accessors for each object live within that object, they are not easily messed up by any other object. (a command for an object might be: "deer object! Run out onto the runway! I command you!", and an accessory for an object might be "deer? Where are you? I need to know your location to plot you!") you will notice that neither the command nor accessor is actually allowed to get inside the logic or memory of the deer object... That would be dangerous because it kith mess the deer object up. Instead, there is a firewall around every single object in X-Plane that keeps one object from messing up another, and only allowing commands (which the object can follow if it deems fit) and accessors (which the object can provide safely)...other object cannot go through this firewall to mess with the internal logic of each object. This object-oriented programming is what makes something as complex as X -Plane 10 possible. In the movie "the matrix", it was clear that the virtual world was complete, and made of countless computer programs all running at once... And this is where we are going with X-Plane 10: a virtual world, not just flight sim, where countless things are all happening at the same time. Now, one obvious fallout of this is that you will want your commuter to have processors. Lots of them. With my 8-CPU, 16-core Macintosh, I saw over 100 frames per second (with no scenery) with 20 planes all flying at on e yesterday. Try setting the number of planes to 20 in X-Plane 9 and see how fast it runs. The difference is that X-Plane 10 has each airplane as it's own object, and each object running on a different CPU, all at the same time. Multiply this by the ever-growing forest (the trees have to be planted in front of you as you fly... You do not have the ram to memorize them all) animals, cars, air traffic controller, boats, ever-changing weather, and you start to s ee why it will take a lot of CPUs to run this whole world. But, an interesting thing is that with no scenery, I am seeing X-Plane 10 run much faster, and use less ram, than X-Plane 9... This is because the objects are all packed so efficiently with minimum ram use, and run many at the same time to give more speed. (note: this ram check wax done before I finished installing the new weather system. The new weather system, when complete, may cause the total ram use to be slightly greater in the won-scenery-case... We will see when the weather system is done. Interestingly, the system that determines what the weather is in X-Plane 10 uses almost zero memory!!! This is because the weather is stored as a fiendishly-clever little algorithm that tells X-Plane what the weather is at any given location and then promptly forgets what it just said. This gives all the variation in the weather we could want, but without using any ram at all! It does use memory, however, to memorize where to draw t he clouds. The drawing part must be memorized for speed, because the video card can only do it's work fast if you hand it the whole world of clouds to draw at one time... Not one little cloud-puff at a time. So, for speed, we must use memory to store the location of every cloud-puff in the sky, but not the weather tat caused those cloud-puffs to exist: that part was done by the weather making object and it's own internal algorithm.

Another nice thing about this object-oriented system is that it makes it much easier to track down and solve bugs without causing new bugs to appear by solving old ones. Because each object has it's own logic and memory, any bug should, in theory, be traceable back to the object that is malfunctioning, where it can be fixed without affecting any other objects.

So, while X-Plane has been gradually broken down into objects for some years now, with version 10 we are really making it all object-oriented internally, and combined with the multiple-threading, the results are really quite impressive.

austin


8-CPU, 16-core und 2011, 16-CPU, 32-core usw ;)

Die Stromrechnung wird natürlich immer kleiner und wie glücklich muss man sein, wenn man 100 Fleugzeuge sehen kann und weit über 100 Frames
hat ;)
Von all den Inovationen, die Austin im Kopf hat, bleibt vielleicht auch etwas für uns übrig!
Wie schön wäre es, wenn die Flüsse den richtigen Weg finden würden und, und.............. >:(

Bernhard60
03.10.2010, 11:28
Danke fürs Mundwässrig machen :D

Träumen wir einfach auch davon, dass endlich die 25nm Sichtbegrenzung fällt - je nach Rechner, so wie es ja jetzt schon bei schwächeren Systemen unter 25nm runterfährt könnts ja bei flotten Systemen auch gern mal weiter sein - Träum* :)

Und vielleicht auch davon, dass er sich nicht zu arg in Spaceshuttle, Marslandschaft, Hunde auf der Runway, ... verrennt* ;D

LSZB67
03.10.2010, 12:10
Also ich finde Hunde toll, leider hat er seinen Labrador noch nicht im X-Plane verewigt. Er spricht auch in diesem Text nicht explizit darüber.

Spannend finde ich zwei Aspekte:

Dass im X-Plane 10 alles wie Legosteine aufgebaut werden soll, welche zwar zusammen ein Ganzes darstellen sollen aber einzeln keinen zwingenden Einfluss auf die Nachbarobjekte haben werden. Ist grundsätzlich eine tolle Idee. Dies soll dann die Rams schonen. Andererseits erlaubt dies uns selber weitere Objekte einsetzen zu können. Positiv daran war eigentlich, dass er eine deutlich höhere Leistung gegenüber dem 9er feststellen konnte. Gefährlich finde ich aber, dass Austin den 10er nur mit seiner persönlichen Legoplatte ohne Bausteine (vielleicht mit veralteten Mesh für Flüsse und Täler) testete und möglicherweise seine Legoplatte nicht auswechseln wird.

Das Zweite, was mir jetzt erst deutlich wurde, ist, dass Austin sich mit einem 12core Mac ausgestattet hat. Hieraus stellen sich mir zwei Fragen:

--> Wenn er den 10er mit der Mac-Rakete aufbaut, was passiert dann bezüglich Leistungsmerkmale mit allen "Win-dows" aufgemotzten Haushaltsgeräten?

--> Wenn Mac der massgeschneiderte Tisch für seine Lieblingsplatte Mac OS X ist, was passiert dann mit dem Support und die Kompatibilität mit Duplo-Platten (Windows) und Eisschollen (Pinguinplatten)?

Will man die absolute Mac-Rakete kaufen, so liegt der aktuelle Preis in der Schweiz bei rund 12'000.- SFR. .

Allen ein gespanntes Wochenende.

Beste Grüsse

Pasquale

Cedric Loup
03.10.2010, 12:28
........

Will man die absolute Mac-Rakete kaufen, so liegt der aktuelle Preis in der Schweiz bei rund 12'000.- SFR. .

Allen ein gespanntes Wochenende.

Beste Grüsse

Pasquale


Tja ich werde meiner Pensionskasse diese Projekt schmackhaft machen und eine X-Plane Hypothek aufnehmen.

Eine erste und für die dann kommende elfte Version eine Zweite. ;D

DuckUndWeg

Cedric