Well, its been some time since we last updated and wrote a blog, but fear not, it hasn’t been without its advantages which you are all about to find out.
So much has changed and happened in the past month work and previous months that its given me RSI just to write this information out. But i believe all users will be happy with the results of the changes and hope to receive as much feedback as possible so that we can finally release a v1.0 skyline to the public and exit Beta status for good. Hooray!
Since so much has changed in the past month, we have had to create a write up about the these changes.
While we were developing the new end game for Gen2, we came across a problem when we got to storing multi level information and the answer was to abstract another level of skyline that can run as a container to the rest of the levels. This is called the game manager and it is so so easy to use!
What it allows is to script at a lower level as your game is running, for example, when a scene is loaded; a function in the game manager script is called at the start of loading and at the end of loading. This enables you to change loading screens per scene without having to have other scenes to handle the inbetween stages like we previously had to.
At the same time, we had the thought; “how do handle a load and save system if all we have was the sceneScript as the lowest level?” This brought the problem of duplicating code per level and having to load and save data as we move from scene to scene which would just become a management nightmare.
And so, the game manager saved our bacon again as we have 2 simple functions that allow you to save a JSON file into the Users Documents folder that takes a single array of data to output and read back in in less that 50 lines of code. The default pause menu has all the menu code built in and all the hooks that any game manager using the default script will be able to take advantage of.
Because of the game manager, it also simplified the whole process of exporting a game as before on Gen1, every time you wanted to export the game, you had to enter the game details, such as game name, window title, icon for the game and of course what scenes needed exported…. everytime you say.. what a pain! The game manager stores all this data into a single file that is loaded when a level is loaded allowing an infinite amount of levels and games to be exported by any number of game managers.
To make it easier, we also created a brand new Panel in the main editor for creating and managing your game manager files. You set the data up, save, then continue editing or export your game… super simples! XD
Its been a while since we could run any scene in any external player for skyline, and once again we can… phew!!!
It has not changed since gen1 with how you engage the player. Simply load your level and hit the player icon on the end of the main toolbar.
When the player kicks in, the editor will slow down its processing to offer as much performance as possible.
The player is also a lot more stable than it used to be. When shutting down.. (Ctrl+F4 at the moment), it no longer hangs or crashes as all clean up routines are in place correctly to manage and unload the data efficiently.
To edit the player options, the pause menu will be used… ( This release has a slight bug, so for now, editing the “CustomSettings.ini” & “SkylineSettings.ini” found in the Win32 / Win64 folders after running it once. ).
End Game Exporter and Resource Collection
After what feels like an eternity developing Gen2, you can finally export your games to standalone executables that are smaller than ever.
In gen1, to export a single release folder of Win32 set you back around 140mb of space and closer to 200mb if you were running 64 bit. Now the Win32 standalone game is only 60mb for all the exe’s and dll’s which means less HDD space wasted and better running efficiency as the Game is not bloated with all the editor side code.
The Required assets for the game have been halfed in HDD usage and all files have been updated with the latest changes to shaders, post fx etc…
We have also made it easier on ourselves by automating the creation of our .pak files and placing them in the correct directories which means there is less
chance for creating an error; not saying there won’t be an error though as the end game being back in is pretty new and fresh still.
Exporting the games has required an upgrade to the resource collection system as the old way did not work too well and with the newer resource management that allows non-unique names such as mymesh.mesh and mymesh.mesh in another folder, it means we couldn’t use it the same way. So to get around this, all resource group paths are hashed into a simple ID that is then used in the name of the .zip or .pak files when the game is exported.
Note: Loose files and folders are not yet working! Best to use zips if you want to pass your assets with the game, or use the .pak files for encrypting the assets for more security.
All game managers and pause menus are placed into a Game.zip or Game.pak and is the first port of call after the required assets have been loaded.
This is too ensure all data and game manager scripts are running as the game is booting.
Everything else is placed into Data_[Hash 0x….] names which allows us to know what resource group they are and belong to.
One of the issues we faced in Gen1 and faced again in Gen2, was the ability to load a GUI from an archived folder which before they always had to stay loose, which didnt help when you wanted to protect all your assets lol 😛 Now you can though and all GUI’s are created into their corresponding resource group rather than all together which brings us to the next point…
Loading / Unloading of assets:… Even though this part is still a WIP, well for unloading anyway. In gen1, all assets were loaded at game boot time which made a scene take forever to load as it loaded the entire games assets into memory.. this is no longer the case and assets are loaded as an when they are required, which means its fast to boot your game and more efficient on your GPU’s VRAM and main system RAM.
Also, we have created a new Splashscreen for the end games which will be able to be disabled in the Studio Pro versions:
To make it easier for everyone to get a main menu up and running, our good friend and user PlanetX designed an awesome GUI menu interface that has become the skyline default menu, it contains all the necessary features of a menu including, continue, New, Save, Load, Graphics options, performance tweaking and of course exiting and restarting a game.
We have wrote a full menu script which will serve as a great starting point for any user to get going in the engine when it comes to making their game.
We have heard your cries and the skyline goddess has answered. We now have a full weapons library that interfaces with the Editor Weapons to get and control that crucial data when creating your own weapons, magic or tools for your game.
Here’s a quick pic of the Third person shooter that uses this new library and new sets of scripts:
Visual Module Stability
The visual modules have seen a vast improvement in stability surrounding the editor, clearing graphs and of course entering into a sub module and editing which makes the graphs much simpler and tidier to interface with. Visual modules can fully hook with lua commands and can call into lua or modules can be called from lua.. giving you even more power and scope for creating your AAA mechanics.
Its been requested a load of times and we have needed it ourselves, Skyline now supports video playback through the use of libtheora, libogg and libvorbis which allows you to load .OGG or .OGV files for playback of video and audio, and boy is it cool to see in skyline.
The end game utlizes this for the starting splashscreen which runs in 32 bit and in 64bit supporting the same OpenAL audio source library for sound.
Now, I know you all want to get in and start loading your videos, but we have not yet created the interface for creating, loading and playing videos in game even though it is possible and will be added over the next subsequent updates.
You know it, you feel it… 64 bit is here and hopefully to stay this time…
Note: We have experienced some issues with the 64 bit on certain machines, but make sure you are running latest drivers and everything should run ok.
DirectX11 & OpenGl 3+ with 4.0 features
Woooh, its taking some writing, but here’s a feature we have been pestered about since the start of Gen2….. drum roll please….
We have rewritten all the shaders and systems so skyline is now fully DX11 compliant as well as fixing issues like skyboxes from before where blitting was a problem. There have also been fixes to the blitting of regions of textures which was needed for terrain to work.
So give it a try, see what you find and be amazed at the performance increase of DX11 over OpenGL. It’s pretty mind blowing…
You might find the odd crash and we are of course working on it still, but we say that it is stable enough and error free enough to start developing with.
So enjoy. Skyline is now a 2 renderer engine that is working in both renderers for the first time ever!!!!!
Please let us know what you find and how you find it.
p.s. With DX11, we can also now integrate the microcode cache which will store all the shader generations, so next time you boot, it will minimize popping and juddering as shaders are generated. Instead they would just be loaded from the cache. One other cool point about this is the fact that you could pass the cache’s out to your end users of your games as DX11 shaders caches are the same across all PC’s unlike Opengl which only works on the current PC.
Again, this still need to be implemented.
On top of all these cool features, we have also managed to get upgraded shadow qualities that give the scene that crisper look.
The shadow frustum is as tight as possible now reducing the artefacts on an indoor level where the sunlight shows on the creases.
The shadow edging itself is also tighter and higher quality close up and further away. On top of this, we have got one other very cool addition that improves shadows that one step further; in PSSM, all the splits are blended to reduce the line that appears as the shadow quality reduced for the next split and at the very end of the PSSM split, it fades out instead of abruptly stopping and creating a hard edge.. lets hear what you think anyway.
Low quality shadows are back and faster than ever. If your machine is not too powerful, then this shadow setting is for you as it will increase the performance of your scene up to 2x as point lights are now lower resolution as a bug has been fixed for the depth pools in engine.
Skyline Project Rework, New Product Versions and New Server
Here’s where things get interesting, you already know of the scene changes from the last update, but this time, everything has changed.
This is too make the install directories much easier to find things and remove repetitive patterns and of course, skyline is no longer just
the commercial indie engine. Its project has been designed now from scratch to support the new Lite, Pro and Studio Pro versions, each with their own downloads, licenses and of course auto updates( excluding Lite of course 😉 )
So lets run over some of the changes: (for these examples, we are using “C:\Aurasoft UK\Skyline Game Engine” as root install.)
- In the Install directory, you will now see a “Bin” folder, this stands for Binaries and is where you will located the editor exe’s, Data folder and of cource Win32 and Win64
- To make it easier to support steam and keep our development directory production ready, we have renamed the “Win32_Release” to “Win32″ and “Win64_Release” to “Win64″.
- The data folder is the same as before apart from the location change.
- All URL’s and links to websites have been upgraded since we have….
- a new server for a new age: We finally managed to get a server together that is both powerful and cheap enough to run through the use of a VPS. Its multi core, got 16gb of ram and plenty of space to fill and of course means no more www.chi-ad.com domain for any of our sites or download links.
- With our server, we are now using secure connections through https and SSL certificates to adhere to the new Data protection act starting in may 2018.
- As mentioned before, skyline licensing has changed to a mult tier pricing structure with releases of Skyline – Lite, Skyline – Pro & and Skyline – Studio Pro.
- To get production ready, we have had to spend some time working on batch scripts to try and automate as much as possible that can do all the hard work of creating the install directories and zipping of content aswell giving a list of what changes have been made, so auto updates can be made quicker.
This all leads nicely onto the next factors,
To make it easier to differentiate between different exe’s of skyline, we have given the editor, player and game a different set of icons.
This is not all though as we have also given icons to standard files like meshes, materials, car files, presets and lua scripts. More of this in the installer
We have created 3 new installers based on the back of the Gen2 private alpha installers and of course these are for the Skyline – Lite, Skyline – Pro and Skyline – Pro Studio releases.
Each have their own colour and look so we and the users can tell the difference between the versions:
To back these new installers up, we have also fixed a few of the issues users have found with the previous installers. most notably
- on uninstall, the installed location was not cleaned efficiently, leaving rogue files. This has been fixed and all files and folders whether they are empty or not will be forcibly removed.
- Icons now stay as before the icons were pulled from windows cache, now they are pulled from the install directory to ensure you always see the best side of skyline :P.
- Also, with the new installers, it adds the ability to right click a scene file and open or edit directly within skyline. Or double click and open it 😛
DLC Has Begun!
Along with skyline and its myriad of features, we have also begun creating the DLC packages that will be sold on our store and on the steam store once we have released to each of them.
So here’s a quick first pic of the Zombies DLC pack:
Licenses and activation
All licenses have been reset and their versions changed. All users who purchased the £40 version of skyline are recieving the Studio Pro version which is of course a value of £199.99
Also all the updates for the first year are officially starting on 1st december 2017 and will end on the 1st december 2018 as promised. If we take longer to get a release, then these will be adjusted accordingly.
To use the new versions of skyline, all licenses need to be reactivated with the serial and email accounts used when you purchased skyline.
Since the store is down as we are upgrading it and you don’t know your serial, then please contact us with as much information as possible and email
email@example.com and we will help you through this.
Qt Upgrade and Integration Updates
Skyline is now using an updated version of Qt which was upgraded from 5.3 to 5.8 which of course has added its own sets of issues that need to be fixed.
Also, most integrations have been upgraded and written for 64bit support now and are running the latest releases where possible.
Anyway, here is all the changes that we managed to log while developing the engine: