I always wanted to be a real fighter pilot wanted to experience the view from inside the cockpit. So I decided, I’ll make a game where you are a human pilot, and you can board the jet, taxi it to the runway, takeoff, fire a few missiles, land again, taxi to parking, and get out of the cockpit, all while in first person view.
I have experience with making a first person character controller, but I’m confused about the jet. I could make it arcade or physics, but with my ideal requirements, I dont think arcade will cut it, and I have no idea how to make a physics jet.
My Ideal requirements:
Allow a state machine for stable flight mode and dogfight mode.
Allow 3D thrust vectoring control for increased maneuverability.
Allow guided missile launching.
Allow dumb bombs and hitscan machine gun.
Allow playing animations, like cockpit open/close, flaps, stabilizers, etc
The ideal movement:
WASD to move, mouse to look if out_of_cockpit, maybe click to interact.
WASD to pitch/roll, mouse to look if in_cockpit, click to fire loaded ammo, scroll to select various ammo.
Note that pitch/roll adjusts the jet, while the mouse will affect pilot’s head. so you can do things like going straight ahead, but looking back.
I’m really confused about this and I’ve still got a lot to bore you with. I’m just asking for suggestions and help related to this.
There’s this game — it’s actually quite old — called LockOn: Modern Air Combat. It’s the most accurate jet fighter simulator available right now. Well, the only thing missing is the ability to get out of the cockpit. It was developed by a team that creates real flight simulators for pilots. To make a game like this, you need a thorough understanding of both aerodynamics and aircraft design.
Start with an arcade-style game. Then add elements of realism.
Yeah, I think it’s good to start from a simple arcade prototype. but the concern for thrust remains that needs to be solved when laying out the foundation. for example, if i wanted to make a character that doesnt go forward because the player wants it to, rather it goes forward because something pushes it forward (maybe a backpack thruster, or a magic push).
Can you tell me how to achieve that push effect in godot? because once I can ‘push’ a body forward in the world, then just changing its rotation will change its direction, I think.
One more thing, is the default code for movement already an implementation of the ‘push’ I’m talking about? (sorry, i dont understand a lot of gdscript)
If you’ve got stuck with this, you need to start with something much much simpler than a flight sim, even an arcade style one.
It’s simple. If you don’t calculate the velocity every frame depending on input, the body will continue to be “propelled” in the direction of the velocity. So you need to do exactly nothing to “push it forward”, other than call move_and_slide()
Thanks! That actually changes my draft code for velocity control. Had I not read this, I probably would’ve stayed up late debugging why my aircraft moved like a car, lol.
I made a very basic flight simulator some time ago for Godot. It’s ment to be like a template that you can build up on. It has a Cessna 172 as a base model. But you can change it to use a fighter jet too.
It uses JSBSim a very good flight dynamics modeling framework and Godot 4 as basis.
Have a look if you like to. But be warned it’s not exactly a project for someone with no programming experience. I’m also working on a project I call ProVPilot. I’m currently working on getting an A-10 Warthog into the game there.