![]() |
|
IL-2 Sturmovik: Cliffs of Dover Latest instalment in the acclaimed IL-2 Sturmovik series from award-winning developer Maddox Games. |
![]() |
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
![]() Quote:
Btw never done any web programming, but its sad you cant hold up a argument vs a 18 year old... Last edited by Heliocon; 01-27-2011 at 04:50 PM. |
#2
|
||||
|
||||
![]() Quote:
|
#3
|
|||
|
|||
![]()
I dont give a damn about your experience whether it is true or false (well we already know something about that I guess). I do give a damn about you bsing me and saying I dont know what I am talking about, but you are not able to give a coherent or even articulate an argument / point to contest my observation with. I will not be contacting you so that you can save face, sorry.
|
#4
|
|||
|
|||
![]()
I havent coded in like 20 years, but mazex is spot on. People who think creating a game engine that can make proper use of 2/4/8 or more threads is easy need to do some reading. There is a reason most software today barely scales beyond 2 threads. Heliocon, maybe you should just try it.
What I am curious about is the physx claim, that it would be useless for flightsims. I dont know about the API, maybe that is useless, but calculating the physics (rather than PhysX) does seem something that could benefit greatly from GPGPU (CUDA or OpenCL). |
#5
|
|||
|
|||
![]() Quote:
Also physx (which I never mentioned btw as someone implied I did) is mainly geared to particles and cloth/hair etc. It would certainly work for stuff like clouds and smoke that interact with planes passing through, but I dont know of its effects on flight models. CUDA is meh. |
#6
|
|||
|
|||
![]() Quote:
That doesnt mean its not usable for physics simulation like aerodynamics. Surely you've seen all the hydrodynamics simulations. If it works for water, I dont see why it couldnt work for air: |
#7
|
|||
|
|||
![]() Quote:
The main difference is Physx is not really a mechanic focused on physics as much as it is focused on solving and then "presenting" the effects. Its also GPU tied which needs to be rendering. Physx is great, but unless you have a dedicated card its better to buy a second card then have a non physx gpu. Atleast thats what people seem to think on the EVGA forums. |
#8
|
|||
|
|||
![]() Quote:
![]() The bigger problem though is this: the flight dynamics engine is the core of any flight sim. You cannot rely on proprietary solutions like PhysX because you have to make sure it works for everyone, and also the same for everyone. It is much harder to debug, it is additional work even if only parts of the calculations are moved to the GPU and you run the risk of ending up with a dead solution should nVidia decide to drop it one day or maybe go out of business. |
#9
|
||||
|
||||
![]() Quote:
Well, I did write a long example with pseudo code and all in my second post in this thread but deleted it as it was to long winded. I realize that you actually think you are right and then naturally think that I'm just talking bull so let's try to sort this out then. I think that the problem is that you have maybe confused threads and cores in some way. When you write a Windows program it will run in a process and if you do no not create more threads yourself in the code it will just run on a single thread. That thread in it's turn can only run on one CPU or Core (and the OS assigns that if you don't mess with that yourself which really should not be done) . So a game that does not create additional threads will run on one core... It will do calls to the OS that will use other threads for that but generally it will just load one core itself. Then to use the other cores you have to create new threads from your code and start them yourself in the code. The OS can then let them run on one of the other cores or CPU:s if available or chop the time on the CPU between the threads if you have only one CPU/Core. OK - so the threads run in the same process but one of the problems is that if they are going to access shared memory (variables like the state of the me 109 in front of you) they may try to update the same shared memory (like an array of detected enemies that is a private variable in the CFighterPlane object) and that's a no no. Therfore you have to make sure that the thread that is going to update that shared variable get's exclusive access to the variable while updating it - which is essential if you are going to write thread safe code (handled by identifying these critical sections and make sure to exclusive access that memory while updating it so no other thread does that at the same time). The problem is also that both the AI thread (if you create a thread for that in your code and the OS then assigns that thread to run on a core.) and the code for the Collision detection might want to update the number of enemies detected by that specific enemy plane object as the collision detection code has just "killed" that same enemy plane that crashed into a mountain in classic IL2 way ![]() /Mazex |
#10
|
|||
|
|||
![]() Quote:
I understand the differance between threads, cores, processes etc Also the reason I hate programming is debugging because I accidently put a comma or a mistype somewhere and the whole damn thing goes nuts and spams me with errors and I cry into my keyboard as I spend the next day going through 1 hour of code to find the mistake ![]() |
![]() |
|
|