Thursday, February 29, 2024
HomeIndie GameScifi flightsim prototype

Scifi flightsim prototype


A very long time in the past I made a decision to attempt making a easy flight sim, and I did. Then I misplaced the challenge recordsdata and forgot about it. However lately I’ve been having that itch once more so I made a decision to take it slightly extra severely this time! This may not be a full recreation, only a proof of idea, a prototype. However I felt like logging the progress so right here it’s the devlog.


Flight simulators are nice. Even non pilots love to fireside one up, load no matter default airplane accessible, take off, do some loops, and crash attempting to land. Then most individuals cease enjoying as a result of actual life is kinda boring. I imply severely, the world is mainly flat! you might have 6 levels of freedom and no obstacles forward. That is why everyone seems to be drawn to buildings and bridges to fly shut or below. So I made a decision I needed to make a flight simulator, as convincing as potential, however in one other world, the place flying is difficult and fascinating as a result of cities occupy giant 3D volumes you might want to fly inside. On this recreation you play as form of a truck driver, however a pilot. You fly inside cities, decide up contracts to move containers, take them to their vacation spot and so forth. The cash is used to pay for gasoline.

it is not one big metropolis however a big world. And whereas flying inside cities may be difficult, you might want to fly between cities, which is simple. That is when it can save you the sport. You place up the autopilot to take care of altitude and velocity and go to mattress to save lots of.

Anticipating the technical challenges of constructing open world video games I made my life easier with some backstory. This planet is the results of a failed terraforming course of and the inhabitants is the cussed remaining of the colonization efforts, who had been born and constructed a life there. THEREFORE the planet is roofed in fog  Corny Laugh

Is not fog nice? I would like totally different ranges of fog. I would like the fog to be a variable to think about when planning your routes. So the densest fog is the place giant flying predators cover. Making the fog considerably dynamic ought to present for good stress. You begin the journey with a trajectory that’s shut by a big dense fog quantity and go to mattress hoping you do not unintentionally enter it. Possibly you determine to land someplace to attend within the much less dense however nonetheless harmful fog. Possibly that backfires and you end up having to cross a bit of harmful fog! Possibly the burden of your present load is an excessive amount of to fly over it and also you determine to flush your cargo out to outlive. Yeah, I can see alternatives for juicy gameplay dramas to naturally happen.

So, to sum it up, on this recreation you: fly a airplane, load the ship, handle cargo house, refuel, handle cash, make lengthy journeys the place you sleep to save lots of, keep away from monsters in dense fog.

Execution plan
Clearly I am not going to make a AAA recreation with sensible graphics. Besides that does not restrict a lot the world of potentialities, and no matter’s left can nonetheless be an excessive amount of work for single dev prototype.

Concept 1: The immersive sim philosophy. First particular person view and freedom to maneuver contained in the ship. Need to transfer that crate to the facet? go there and transfer that crate to the facet.
I could make the prototype with easy boxy graphics, no downside. However that also leaves some challenges to beat, like physics scale. The flight dynamics makes use of the physics system, the FPS view will even be physics pushed, however the two scales must be saved separate… most likely. The airplane is large and flies quick. To make that clean it requires scale to be set with small numbers and a system that resets the basis of the remodel earlier than giant numbers begin to mess the simulation up. My instinct is screaming to go away the FPS half separate from the airplane physics. A participant collider with 0.01 items of top might be problematic, the inside of the ship filled with tiny containers inside a airplane flying at 200 un/s will certainly not work.
So that is the problem there. Separating scales.

The size downside could be current in different facets of the sport if I hadn’t made the planet foggy. As a result of the planet is large compared to any metropolis, a metropolis is large compared to a single block and so forth. Because it’s all foggy I can simply have two scales: one planet huge scale that tracks the participant’s place and the close to neighborhood is loaded with easy procedural era. The separation of the airplane and the FPS and airplane components will not be solved that simply.

Concept 2: I actually love the immersive sim method however I really feel it may be too bold. One other chance is to go in a very totally different (and presumably authentic) path; a top-down isometric view with 2D artwork. The transition from 3D cockpit view to inside 2D view might be completely jarring. I by no means noticed anybody do that, with good motive. However I will be damned if it would not spike my curiosity.

That might be rather a lot simpler to implement and I am going to be capable of concentrate on the extra summary facets of the sport.

I am curious to listen to ideas. Subsequent publish may have some gifs.

« Final Edit: January 23, 2020, 03:55:03 PM by diegzumillo »


I used to be doing this 60 days levelthon of apple and worm (signature). At day 30 I made a decision to take a fast break and work for per week on one thing else. Properly, this was the challenge I labored on! My overly bold scifi flight sim.

I loved this rather a lot so I’m going to proceed working some extra. Possibly switching tasks each month is a good suggestion, as a result of I actually do not feel like resuming apple and worm but.

This challenge is large and overwhelming, so group is essential. There are two paths in entrance of me proper now: shortcutting to a working prototype or implementing issues that make me excited and I wish to see in motion.

Possibility one is essentially the most wise. Do not waste time on one thing you do not know will work, get the thought working as quick as potential and so forth. That might imply implementing (utilizing a single coordinate system) an infinite and easy procedural metropolis (finished), easy airplane inside, flight dynamics (finished) with hovering performance, and two or Three touchdown pads with stuff to do on foot, like transferring crates, and, lastly, some interplay scheme that lets you decide up jobs, deliveries and so forth. And an excellent primary steerage system. OK, I feel that is all I want for the essential prototype. Due to rounding errors in a single coordinate system, these touchdown pads/ports can’t be too far aside.

That is rather a lot. What places me off engaged on that is that a number of this might be hacked along with spit and should be reworked ultimately, with a purpose to embody the opposite parts.

The second path now. I’m itching to get began on planet-wide navigation. This requires organising two coordinate programs. It’s on this coordinate system that metropolis limits and zones will be outlined. I do not know why I’m so drawn to work on this however possibly I ought to observe my nostril.

Here is a gif with my new metropolis era scheme. The previous means was horribly laggy and dumb. An a distinct method to fog as effectively. I attempted utilizing volumetric lights, from HDRP and one other from the Adam demo. Each labored however are too advanced. I want a less complicated resolution and I discovered one. This fog shouldn’t be mine, somebody made (hyperlink right here later), and it mainly simply replaces the usual unity fog however as an alternative of pixels fading to a selected shade, they fade to the present skybox. This opens up some fascinating potentialities, like within the second coordinate system, the broader one, I can render some fascinating fog based mostly on the environment, utilizing rendertocubetexture (or regardless of the perform is named)

Possibly I ought to not less than sprinkle a number of touchdown pads round and take a look at flying from one to the opposite. Additionally, hovering mechanics will not need to be reworked ever so doing that now can also be interesting.

« Final Edit: June 10, 2020, 08:00:07 PM by diegzumillo »


I remembered I performed with a multi-scale system earlier than. My very personal shocking and extremely easy resolution. Here is a gif with 3 ranges of scales. Floor, planetary, photo voltaic. 20 traces of code.

It’s too easy, truly, however on this challenge I solely want two ranges. In an area recreation excessive speeds are additionally a priority which may be solved with a extra sturdy multi-scale system, like setting velocity to zero within the primary body and the following body inherits, or shops, the remaining velocity. None of that is of my concern. In reality I can exhausting code many of the recreation proper now with this. Primary stage generates terrain and buildings in a small radius, and likewise resets the origin when needed. Second stage is round a sphere, it takes place and velocity and applies it in spherical coordinates (horizontal velocity in primary body is tangential velocity in excessive body). Because the world is roofed in fog I do not even have to stack cameras, you solely see what’s close to you. However I do wish to render a pleasant dice texture for use as a skybox, and that is finished within the excessive body. The excessive body defines the world, geography, place of cities and locations of curiosity.

Until this seems to be problematic. A planet continues to be too giant to place, say, a touchdown pad. We’ll see.

All proper that is my evening job now. I’m positive there are issues with this I am not seeing but.



I needed to search out the best resolution to a global-scale recreation world. Paradoxically I spent the final 3 nights cracking my head over it. Paradoxically as a result of possibly it could be finished already if I simply selected a path as an alternative of attempting to suppose 1000 strikes forward for each micro choice. Since writing about my issues tends to assist me, listed here are my ideas up to now.

Absolutely the easiest potential resolution: The world map is a airplane with its sides related. Think about a sq., you attain an edge and are available out the opposite edge, simply so you do not hit invisible partitions. Unrealistic however straightforward to implement. I can outline the geography of the world on this map, scatter all of the issues I would like there and so forth. Translating this scale to the precise native scale, the place the motion occurs is trivial. Enjoyable truth, not solely this is not a sphere as its topology is that of a doughnut. The geometry continues to be euclidean.

I’ve a few issues with this method. First, I got down to make a practical flight simulator. It appears the least I can do is make the world spherical. Second, I’m not able to ditch the likelihood to attain orbit across the planet. Orbital mechanics is superior, and I’d like to have some orbiting bases for the participant to dock in. Going the airplane route mainly scratches that future chance.

What I do like about it’s that it is easy and simple. And I ought to know higher, I actually ought to. The one factor hampering my tasks, all of them, is rising complexity to overwhelming and unmanageable ranges. Is orbiting the planet actually possible or that necessary? It is a flight simulator! planes do not go to house! In addition to, coding remoted functionalities is one factor however I do have to prioritize those I really need.

So the opposite method is to make a spherical planet. The principle scene consists of two sub-scenes; the native scale and the planet scale. The direct enter controls the participant within the native scene, which passes any displacement and rotation scaled as much as its planetary scale counterpart, which in flip feeds the native scene with terrain knowledge and gravity path. Because the planet is roofed in clouds and fog, rendering is not a difficulty. I need not mix views, though that would not be that a lot of an issue. The native terrain must pattern top from the principle texture of the planet, combining with some deterministic random bumps for element.

All of that is possible, however it could nonetheless not be sufficient to permit orbital movement. When reaching orbit we begin coping with very excessive velocities, which require particular methods of dealing with. Giant numbers and floating level precision don’t have an effect on solely place, excessive velocities are additionally an issue. In order that argument above about wanting orbit sooner or later form of will get a fart to the face, would not it? I imply, possibly it is not that arduous both. It is the equal to floating origin however with velocity. When the participant crosses a selected velocity, it zeroes out however the planet-scale counterpart retains that extra velocity for secure protecting.

To place some numbers. Participant is transferring at 300 u/s (items per second). The planet-scale counterpart is scaled in such a means that it strikes at a 0.3 u/s. The enter circulation is all the time local->giant. However when the rate will get to 301 u/s it resets to 1 u/s, however the planet-scale counterpart is holding 0.301. Which suggests the enter circulation is now two-way. The speculation is ok, however the implementation looks as if it could deliver me a brand new shock surprising facet impact day-after-day.

All proper. Finish of wall of textual content. Did I determine something?

Godammit.  Lips Sealed Hand Shake Right I am going to simply code no matter.



For the sake of your personal sanity, don’t do that.

Take it from me, as somebody who has gone nuts with attempting to handle this similar multi-scale system that you’re attempting to.

In my case I’ve a number of layers. Terrain engine to maintain spherical terrain, native planetary coordinates saved in double-precision, a floating origin system to reset the participant so they do not transfer too removed from the engine origin, one other layer of double precision above that for interplanetary motion (after which one other one on high of that for interstellar)

It most likely sounds means simpler than all of the space-warp stuff in Apple however I guarantee you, it’s absolute quicksand. Possibly I am further jaded as a result of I’ve finished it 3 times over, although.

Oh no, I consider you 100%. This has all of the marks of quicksand. I do know as a result of I are inclined to get caught on these rather a lot.

Nevertheless (that is the place the drug addict will get slightly defensive throughout his intervention) if I ditch the expectation of eventual orbital stuff I can reside with two layers solely. With the fog factor I discussed earlier than there could be no want for fancy decision altering terrain and so forth. It is mainly only a strategy to have a spherical world map, actually. I truly tried actually exhausting to get a spherical world map in some easier means however the easiest resolution does appear to make use of two layers in scale. You progress across the sphere in a single scale and the opposite scale is simply you transferring round a small patch of terrain, occluded by fog.

However I am open to strategies! When you’ve got an thought on how to do that some other means I’m all ears. I thought-about defining the worldwide map on a airplane with a spherical metric, however I am positive that can include simply as many issues as this methodology, just like the singularities on the poles, or alignment points as a result of the spherical metric is slightly difficult, and with out the advantage of having been carried out by others for comparability.




Please enter your comment!
Please enter your name here

Most Popular

Recent Comments

Arnavsijapati on Planet of Lana – Beta Demo
Jai Kishor Upadhyay on Planet of Lana – Beta Demo