Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Krycztij last won the day on February 5 2018

Krycztij had the most liked content!

Community Reputation

3 Neutral

About Krycztij

  • Rank
    Brig. General
  • Birthday 09/05/1981

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I did some experiments going from MSBuild to makefiles, but so far it was a disaster
  2. Just now switching to Windows 10, and already noticed git and 7-Zip being 2–3× faster when Windows Defender is disabled.
  3. https://steamcommunity.com/app/283350/discussions/0/558754899440360527/#c558754899464661954
  4. The preferred approach would be: Write a plugin that can parse data from FSX (table-based) or implements the dynamic simulation from X-plane (open source, just feed in its code) When TFXplorer calls the plugin to simulate a plane, get from TFXplorer parameters like AoA, speed, … table lookup or dispatch to X-plane Forward results to TFXplorer Some adjustments would need to be made for time delta. TFXplorer currently runs with a fixed 240 Hz simulation rate, which is bad for many many reasons, and this would need translation to the rate of other simulations. More adjustments would need to be made for keyboard/joystick controls (I guess FSX has a few hundred more functions than TFXplorer has now). Visuals would be a different beast. But this way we could use any flight physics from any system we care to implement.
  5. I doubt they suit our needs. Ace Combat and Project: Wingman having relatively small maps is probably a direct consequence of their using single-precision floating-point numbers, and then there was the Unity-based 80s flight simulator clone over at SimHQ that vanished for the exact same limitations.
  6. I haven’t investigated that yet – all I know about AC7 data is, it’s in standard Unreal formats with AES encryption applied. Standard formats are normally not as efficient as data formats specialized on flight simulations, so this might be a factor. Related: Project Wingman has its own city generator now. https://www.kickstarter.com/projects/rb-d2/project-wingman/posts/2590840
  7. It’s a lot of guesswork, hardly any "real" physics. Drag may be the actual problem (it sure is to the spinning). Drag is defined for three axes and I just tweaked until it was to some degreee useful …
  8. Yeah, HUD is broken. After spawning, hit the same buttons to start the engines like on the F-22. I don’t know if joystick throttle works, but hit numpad max-afterburner for maximum throttle. Worked for me :-) I think thrust is just way too low for this one. Maybe you can find the constants in the code to give it more kick … You can see thrust indirectly via contrails at great altitude. Contrails are generated from fuel burnt, so if you see any, the engines must be running.
  9. It’s just the old F-22 code from TFXplorer before we reversed TAW’s code, and all handling characteristics slowed down. Go to TFXplorer.cpp (2671) and change asInt("F22 ") to asInt("K135"). You will realize the F-22 uses to crash on spawn because it spawns in the KC-135’s place. It’s a pain to even get it to take off and on stall it will enter an infinite loop and crash (not the program, the plane actually doing loopings until it crashes into the ground), so enjoy with caution ;)
  10. I’ll rather rename it to equivalentAirspeed in the physics source, keep the name indicatedAirspeed in the HUD source, and comment the assignment indicatedAirspeed = equivalentAirspeed as willful. I think so; I never bothered to analyze. Exactly. No drag computation so far, because I’d have to consider lift as well, and it gets arbitrarily complex from there. And we haven’t even gotton to radar cross section yet …
  11. I didn’t play Ace Combat 7 and my primary impression was via playthroughs. Nonetheless, I found this analysis by Argonbolt extremely interesting. It’s very long (2h), but it’s about the shift of focus in video game industry over the past years; about standards in storytelling and scriptwriting; about technology and schedules; about economy and logistics in the worlds you create. While I don’t agree with everything, and without knowing much about Usea and Osea and that other Strangereal stuff, I think the videos taught me a lot about game development. Mostly about how to NOT design your stories
  12. Good question! I just got lost in Wikipedia’s airspeed articles, so please check for me. The number is computed via TAW’s code. Have a look at TFX F22.hpp (1084) : void updateSpeeds_5FFFDC() { globalVelocity_BUGGY = rotation(velocity, &planeToWorld_xAxis); globalVelocity_BUGGY = globalVelocity_BUGGY + changeInSpeed; newVelocity_BUGGY = inverseRotation(globalVelocity_BUGGY, &planeToWorld_xAxis); squaredAirSpeed = squared(velocity.x) + squared(velocity.y) + squared(velocity.z); if(0.001 > squaredAirSpeed) { squaredAirSpeed = 0.001; } airSpeed = sqrt(squaredAirSpeed); indicatedAirspeed = sqrt(currAirDensity / airDensityAtSeaLevel) * velocity.x; // <<<<<<<<<<<< THIS GOES TO THE HUD groundSpeed = sqrt(squared(globalVelocity_BUGGY.x) + squared(globalVelocity_BUGGY.y)); currDragFactor = currAirDensity * 0.5 * squaredAirSpeed; // first part of drag equation machNumber = airSpeed / currSpeedOfSound; trackAngle = wrappedToRange(0.0, atan2(globalVelocity_BUGGY.y, globalVelocity_BUGGY.x), twoPi); } Is indicatedAirspeed misnamed? Please consider air temperature and humidity in the bottom-left corner. While TAW had a completely static air temperature and humidity, TFXplorer’s varies with time of day and altitude. This, in turn, has an influence on the Mach number. If you hit SHIFT+S to jump two hours forward, you should actually see your airspeed and Mach number changing. Check out UAW weather.cpp for computation of temperature and humidity. Oh boy, you can spend weeks tuning this. I remember spending two evenings trying to get information on relative humidity of the stratosphere, until I gave up, guessed, and returned to actual programming Of course these hard-coded numbers would, for a start, be provided on a per-terrain basis – so that EF2000’s Norway is colder than TAW’s Red Sea – and eventually be simulated in a grid, maybe from real weather data. But for now it’s enough to have the planes use an API for it. Please also consider that temperature/humidity drives the contrail simulation, which is very, VERY CPU-demanding in itself. I.e. your contrails will be thicker in the morning, and I still didn’t manage to extend this level of detail to all 2000 planes currently in flight over the Red Sea.
  13. No launching yet, but they take part in weight distribution. See UAW Objects F22.cpp (2325). You can, for example, change UAW::WeaponType::none, 0, 0 to UAW::WeaponType::agm65g, 3, 1 for an AGM-65G triple pylon where one missile is actually mounted. Or 3, 3 to mount all three. If you do this on the left wing only, your touchdown should become very rough (consider View -> Debug -> Wheels & Suspension to display actual wheels instead of the wrong wheels hard-coded into the TAW model). See UAW Scenario.cpp (2225) for the masses. Shouldn’t be; I’ll check. This probably broke when I made the tile size variable instead of constant because the place names had a very special rendering path (they need software screen projection). I’ll check it out as well.
  14. No change so far. The biggest challenge is finding an abstraction for the spacial structure: You want to keep this nice tile layout for Total Air War and other TFX games, which are really just a 400×400 tile flat grid. But you also want to keep open the opportunity to add an Earth-like spherical mapping for our new terrain. Additionally, the flat grid is easy to handle, but very slow for huge sizes. We really need something hierarchical there. The good news is, vehicle logic does not have anything to do with all that. I.e. we can change it without having to adjust flight dynamics.
  15. Mike, in TFX Rasterizer.cpp (716) you find glide.desiredTexture = glide.whiteTexture; // else, untextured shapes render wrong Please replace it with // Leaving textures enabled causes glitches with untextured shapes. if(glide.isTexturingOn) { glide.isTexturingOn = no; glide.desiredTexture = glide.whiteTexture; } to fix more glitches.
  • Create New...