Jump to content
ZoltanTheHun

SkyHussars R7 is out

Recommended Posts

Hi everyone, please let me know if this is not the right place of discussion, I don't want to spam the forum, with news about my little toy.
 
Soooooo, SkyHussary R7 is out!
 
A rocky release, further information and download is available here: https://github.com/ZoltanTheHun/SkyHussars/releases/tag/R7
 
The gist of the release notes is that I had to update the engine to jMonkeyEngine 3.1.0-beta1, and I won't be able to fix all issues that came with that. I had to update the engine version because of 2 reasons: 1 is a nasty sound bug, the other is that the dependencies for 3.0.10 were not available only, so noone could build the project if bothered.
 
There are some good things do: decoupling of the render thread from the logic thread had great progress. AI was moved and I solved an issue with the copying of screen data from the logic thread to the render thread. All the changes had the effect that i can do 30 fps easily with 250 planes on screen. This was useful for testing the polygon rendering capabilities, because that is one concern about using Java. Surely the recorded video is only 12 fps or below that, because of the recording program.
 
A few words about the modelling: I use a so called lock step model. The idea here is that the game logic is updated n times per second. Every logic update does the following: it updates the physics for the planes and their positions, the ai makes decisions, there is collision check and so on. Whenever the rendering starts, it will consult the game logic about the current status and it copies over the necessary information: positions and transformations.
 
There are a lots of good things coming out of it:
- We have at least 2 threads running. So multicore CPUs are utilized. But better, because the nature of these updates, like physics for planes are easy to make parallel, with the right use of Java, 4 or 8 core CPUs are utilized now.
- Updates are independent of framerate. Each logic update has the same time change between them, so if the screen freezes for a second, the simulation remains stable(drawback, that it won't provide hard real time situation,de clock ingame will deverge from real clock)
- It will help with replay and multiplayer development: every logic step is associated with a growing counter. Each input is associated with one such update, and clients need only to exchange these inputs. More info on this later.
 
The other improvement is in the plane descriptor file. Here is an example:
 

{
"name" : "Lockheed P-80A-5-LO Shooting Star",
"engineLocations" : [ {
"engineDescriptor" : {
"name" : "Allison J33-A-17",
"thrustMax" : 17792
},
"location" : {
"x" : 0.0,
"y" : 0.0,
"z" : 0.0
}
} ],
"massEmpty" : 3593.0,
"massTakeOffMax" : 6350.0,
"massGross" : 5307.0,
"internalTank" : 1609.0,
"airfolDescriptors" : [ {
"name" : "WingLeft",
"cog" : {
"x" : -2.0,
"y" : 0.0,
"z" : -0.2
},
"wingArea" : 11.035,
"incidence" : 1.0,
"aspectRatio" : 6.37,
"damper" : true,
"dehidralDegree" : 0.0
}, {
"name" : "WingRight",
"cog" : {
"x" : 2.0,
"y" : 0.0,
"z" : -0.2
},
"wingArea" : 11.035,
"incidence" : 1.0,
"aspectRatio" : 6.37,
"damper" : true,
"dehidralDegree" : 0.0
}, {
"name" : "HorizontalStabilizer",
"cog" : {
"x" : 0.0,
"y" : 0.0,
"z" : -6.0
},
"wingArea" : 5.0,
"incidence" : -3.0,
"aspectRatio" : 4.2466664,
"damper" : false,
"dehidralDegree" : 0.0
}, {
"name" : "VerticalStabilizer",
"cog" : {
"x" : 0.0,
"y" : 0.0,
"z" : -6.0
},
"wingArea" : 5.0,
"incidence" : 0.0,
"aspectRatio" : 4.2466664,
"damper" : false,
"dehidralDegree" : 90.0
} ],
"gunGroupDescriptors" : [ {
"name" : "6x .50 M3 Browning",
"gunLocations" : [ {
"gunDescriptor" : {
"name" : ".50 M3 Browning",
"rateOfFire" : 20.0,
"bulletDescriptor" : null,
"muzzleVelocity" : 890.0,
"spread" : 0.5
},
"roundsMax" : 300,
"location" : {
"x" : 0.5,
"y" : 0.0,
"z" : 2.0
}
}, {
"gunDescriptor" : {
"name" : ".50 M3 Browning",
"rateOfFire" : 20.0,
"bulletDescriptor" : null,
"muzzleVelocity" : 890.0,
"spread" : 0.5
},
"roundsMax" : 300,
"location" : {
"x" : -0.5,
"y" : 0.0,
"z" : 2.0
}
} ]
} ]
} 

More on a file format later, but I hope the intent is clear: easy to use human readable format. 

 

However here are 2 important proposals for the future:

- An opensource mod server will be added. Players can start their own mod server or join one, and can download new planes, missions,everything.

- Mods will be versioned and credited. This way it is going to be easy to keep installations up-to-date and in sync.

- Long loadtimes will be avoided by preprocessing the text files at first run.

 

So these are some minor ideas around modding. 

 

Important to know, that the airfoils and engines are stored as a list, and any number of these can be added, depending on their position and other parameters they will affect the flight.

 

Here is a video from the release, the framerate is slow because of the capturing device and the 250 planes flying around, and it is without LOD at the moment.

 

The release is available here:

https://github.com/ZoltanTheHun/SkyHussars/releases/tag/R7

 

A few words about the requirements: Java8 and a card supporting OpenGL 2 is must, a dual core CPU is useful, but I was unable to test the game on weaker hardware than my own config.

 

If you like the game, or you are interesting in more text with better quality, videos and more, please consider supporting me on Patreon. Even 1$ matters.

 

https://www.patreon.com/skyhussars

 

Time to go to sleep. Cheers everyone.

 

  • Like 4

Share this post


Link to post
Share on other sites

Zoltan it's your game/engine? Interesting... and congratulations!

Share this post


Link to post
Share on other sites

Thanks Stary, the engine is jMonkeyEngine. It provides many useful 3D facilities, it also supports input, sound, and so on. It is not as advanced as Unity or Unreal, but I wanted to code in Java,  and I wanted to do it full open source, and this was the only option which full-filled both.

 

I write the physics, the gameplay, the menus, datastructures and so on. I don't want to write the 3D code, the rest gives enough work to do, but hopefully as the project matures, I can give back a few things to the engine developers. 

  • Like 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use, Privacy Policy, and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..