Hey guys,
Sorry I haven't been able to post any updates in quite a while. As I've mentioned briefly before on the forums previously I've been a little busy with some personal issues and with real life stuff and thank you to those that reached out by email.
So I thought I should give a little context to what’s going on. Making a game by yourself is a huge task and it's very difficult to do every part well and Sky Nations has certainly suffered from that. Especially with those I have no previous experience in. Some of you may know that Sky Nations is the first game I've created and I did so on my own. When I first started working on it the great tools and engines like Unity and Unreal didn’t exist in the widely used form they do now. So much of it is written from scratch, with that came a bunch learning new skills, a bunch of mistakes and a bunch learning from those mistakes.
I originally had thought and hoped with a lot of work Sky Nations could sustain itself financially. So I worked on it as hard as I could through about first year and a half of its life without breaks, holidays or really weekends. This wasn’t quite all doom and gloom as we had some really fun events with players and a bunch of you may of seen me in-game while I was testing things and we had some great conversations and battles. Unfortunately the game sustaining itself financially wasn't the case. I made some mistakes as the developer, the game wasn’t as appealing or fun as I had hoped and there was also a landfall of great indie games to compete with making it very hard to make a dent in the market. So it had to be relegated to being worked on in my spare time and almost all my free time is where any of the updates came from after that. For the most part this kept up the updates pretty regularly with my goal being about every 3 weeks.
Unfortunately in 2017 I just haven't been able to get anything done and the updates dropped off completely and I sincerely apologise for this. Really this is my fault and a combination between a lot of stuff happening in my life and burnout from basically spending 2-3 years working on something constantly without a real break and really no chance of the small success for a game I had poured my heart and so many hours into.
Making it Free and the Source Code Available
So what does that mean for Sky Nations now? While I haven't got much done recently I have been thinking a lot about what is the best thing to do for the game. Unfortunately I can't work on it any more but I've had a few emails asking about access to the source code specifically for individuals that are interested in adding or fixing issues or implementing mechanics. With a lot of cleanup to the project files I think making all the source code and assets(models, textures and such) available on Github or a similar service to everyone to make changes to is a great idea and currently that’s my plan. There's obviously a lot of suggestions and ideas on the forums people would like to make. Some fit with what I would've liked to have done and some are completely different and great in there own way. With the source code and C# knowledge people interested in those things can implement anything they like or use parts of the code as a learning platform to build similar projects. The code isn’t pretty as it represents a few years of learning rendering, sound, physics and C# so there is certainly some very messy implementations and problematic code, but it is viable to add more things for those that are interested in digging deep into it.
The second thing it means is that I’m going to make the game free. There’s no point having an open code base if you have to pay to play it and I want to make sure everyone can carry on playing the game if they’d like to. This does mean I’m going to have to make some changes to the game first, so that you can play without the game requiring any kind of external account service to identify you for game servers like it does currently. However it does still need a way for you and only you to be able to be identified to a game server for your given in-game character. To that end the current plan is for when players join a specific game server for the first time it asks them what username they’d like and also a password. This is unique to only the game server you’re connecting to and there’s no backend required. This means regardless of if the Sky Nations website is up or not you can login to a game server hosted by yourself or anyone else and it also means servers compiled from the source code can do the same.
The source code and changes to make the game free won’t happen immediately. I still have to fit time into both cleaning up the project files and dependencies so anyone can compile it straight from the repository, which is a very large task and the changes I mentioned above to the core game.
Community Server
The community server isn’t hosted by me, it’s very kindly hosted by a player named FaceWound. I spoke to him about a month ago and he said he is happy to keep hosting the server. Just as a backup though I’ll upload a server backup available for anyone to download so people's creations aren’t lost or if you’d like to start a server from those files. I’m going to be uploading a recent backup from this shortly.
Updated - Teleporters, Nation Spawns and Capital Guests
Hey guys, a new update has been released.
In this update you can now setup default respawns for your Nation members using Nation Respawn Chamber block. These work similar to traditional Respawn Chambers. However you do not need to bind to them. They act as default spawns for players unbound to Respawns. However you can only have one active one per Nation.
You can also now visit the Capitals of other Nations. In the Nation Window(K by Default) you will find a new tab called "Guests". Here you can add users by username to the Guest list. Anyone on this list can visit your Capital so long as you have a Nation Teleporter block in your Capital. This is where they will arrive when visiting. They will also need their own Nation Teleporter block to visit any Capital they are a guest of. Removing them from the Guest list while they are in the Capital will result in them being respawned.
Teleporters are now also available to move around within a system. Teleporters can be placed and named individually in a System and can be used to teleport the player between them. Making it easier to traverse large structures. However they only work within the System they are placed. For example a Teleporter cannot be used to travel to a Teleporter in a different System.
For a full list of changes check out the change log below.
How do I update?
The client will be automatically updated. The server files will be available shortly here.
Change log
Changes
Added Guest list to Nations. Guests can be added to Nations via the Nation Window. Guests can visit your Nations capital via the Nation Teleporter block but are limited by same permissions as in a claim.
Added Nation Teleporter. Only one can be active inside the Capital. The Nation Capital block allows you to visit other Nation Capitals you are a guest of and is where guests of your Nation are teleported to.
Added Nation Respawn Chamber. Creates a default spawn point for Nation members who do not have their spawn bound to a normal respawn chamber. A Nation can only have one at a time.
Added Teleporter which allows you to teleport to other Teleporters in the same system. They can be named individually so it’s clear which is which.
Dramatically reduced Server memory used by unloaded systems. Servers with a lot of systems will benefit the most from this.
Optimized Energy relay line drawing.
Scan Nodes now show guide lines to help align them when activating them.
All block icons have been updated with a better camera angle.
Fixes
Fixed a server crash caused by missing block ID’s when calculating weight.
Fixed a mixup in the Heavy Cannon upside down IDs.
Fixed a crash caused by using Crafting Window before the game has fully loaded.
Fixed a crash that happens when steam cloud data is corrupted.
Text input no longer allows non-supported language characters which would crash the client entering them if the game cannot display the characters.
Update - Wedges, Moon and Weight Adjustments
Hey guys, a new small update is up.
A new moon has been added to replace the omninous floating sphere placeholder. New Wedges and Horizontal Wedges(H-Wedges) are available for most of the blocks that didn't have them before(see change log for a list). Quite a lot of weights have been changed for weaponised blocks and power related blocks; such as cannons and other types of guns. They are now much heavier across the board. Smaller ships in some cases will require more power and thrusters to compensate for being armed and larger gun heavy ships will obviously require more thrust or risk being slower to compensate for being decked out.
An issue with the Merchant King boss that made the asset files become corrupted/incorrect in some cases which made his texture and offset wrong has been fixed. A similar issue was also happening with loot crates and has also been fixed.
For the full change log see below.
How do I update?
The client will update automatically, the server files will be available shortly here.
Change log
Changes
Added a new moon.
Added Ice Wedge and H-Wedge.
Added Dirt Wedge and H-Wedge.
Added Stone Brick Wedge and H-Wedge.
Added Sand Wedge and H-Wedge.
Added Iron Wedge and H-Wedge.
Added Red Brick Wedge and H-Wedge.
Added White Brick Wedge and H-Wedge.
Added Ancient Brick Wedge and H-Wedge.
Added Ancient Slab Wedge and H-Wedge.
Added Copper Strut Wedge and H-Wedge.
Red Lanterns now place turned On.
White Lanterns now place turned On.
Missiles now do 60 damage instead of 70.
Missiles fire every 10 seconds rather than the previous 5 seconds.
Missile Pods within firing range of Gates are now disabled.
Ammo Crates now weigh 15.
Storage Crates now weigh 10.
Artillery Cannons now weigh 12.
Iron Cannons now weigh 14.
Mass Generators now weigh 6.
Battered Power Cells now weigh 12.
Mounted Repeaters now weigh 4.
Flare Launcher now weigh 10.
Laser Cannons now weigh 20.
Clamps now weigh 15.
Gravity Sprint/Well now weigh 30.
Fixes
Fixed texture and model offset being wrong on Merchant King
Fixed a crash caused by missing assets on Loot Crates.
Fixed texture sampling on damaged blocks being blurry.
Fixed copper telescope resetting to wrong sensitivity.
Update - Relay Jump Drives
Hey guys, I've uploaded a new update which adds in Relay Jump Drives. Relay Jump Drives allow you to jump to relays(as written on the tin). Jump Relays are schematics that are built on land. If you own the area via a claim, the Relay Jump Drive will allow you to jump there. They cannot however be built in Capitals. They simply provide you a fast way to get to somewhere but not necessarily to get back. The Relay Jump Drive functions very similar to the existing Jump Drives however they are slightly more expensive to build as it requires Blue Cores and will not activate if you have a Container of Syphon on board. You must still carry it back manually from system to system.
Ships now fully stop when ramming into objects, by this I mean their thrust is automatically set to 0. This makes much easier to maneuver when docking or colliding with something instead of having to manually power down your thrusters via braking which leaves you stuck against the obstacle for a short amount of time. To see a full list of changes and fixes see the change log below.
How do I update?
The client will be automatically updated via the launcher or Steam. You can download the server files here. They will be available shortly. Make sure you backup existing server files before overwriting them with the new ones.
Changelog
Changes
Added Jump Relay schematic allowing new jump drives to jump to claimed areas when buiilt in them.
Added Relay Jump Drive which can be used to jump to systems with Jump Relays in(not capitals). Will not work with cargo container schematics on the ship.
Polling for the culling is now much faster. Very fast rotation should no longer mean you see chunks switching non-visible to visible.
Players now have a command /unbound to unbind from spawns.
Cores now drop their own item rather than reverting to Burntout Cores.
When colliding with a land mass or other ships, ships now lose their speed rather than pressing against the object making it difficult to maneuver out of collisions.
Optimized vertex memory usage greatly. Vertices are most of the memory usage, so game should use 30%+ less memory in very densely populated places.
Updated energy core descriptions and prices.
Fixes
Fixed a client crash caused by destination/next system missing when route is set.
Fixed a crash when drawing markers in a very specific situation.
Fixed a crash on viewing actor preview caused by very specific timing when loading into a server.
Fixed a crash due to missing block definitions in player collision when player edits tiles.
Fixed a crash when trying to deposit fuel before character has properly loaded.
Fixed a crash caused by entering an invalid port number when using direct connect.
Fixed an underflow on withdrawing from Refineries.
Fixed item price recouping from underflowing some item prices if the server is live for a very long time.
Fixed Mining Syphons working in Capitals.
Fixed a crash caused debug hot keys that should be disabled.
Update - Laser Cannons and Constructor Changes
Hey guys, a new update is up. The update adds Light, Medium and Heavy Laser Cannons. These are a new type of ship weapon which shoot more accurately than normal Cannons. Since they're shooting short laser Beams they only hit single bocks, however they are high damage and the Medium to Heavy varieties come with block penetration. Penetrating up to one block to damage internal workings of ships. These can also be placed upside down to go on the ceiling or the bottom of ships.
Cannons have also received a small damage boost from 40 to 60 against blocks(player damage remains the same).
Ship Constructors have had a fundamental change to go with Yellow, Green and Blue Cores introduced in the previous update. Since these Cores are only attaintable from refining Syphon, items produced with them such as the new Laser Cannons require the cores when being constructed from a plan.
Now when creating ships from the Ship Constructor, it will require the amount of Yellow, Green and Blue Cores used in the items the ship consists of. It will also tell you this before you build the ship. For example if I have no Laser Cannons on a ship, it will just work as normal with it being made up of the wealth of items you have in a crate. However, if I have a Light Laser Cannon on the ship, it will cost the normal wealth + 3 Yellow Cores, as part of the recipe of the Light Laser Cannon is 3 Yellow Cores.
How do I get the update?
The client files will be downloaded automatically when you next start the game. The server files will be available shortly from the website downloads page. Make sure you backup your files before overwriting them with your new server files.
Change log
Changes <*>Added Light Laser Cannon. Has 2 second charge up time before firing and 1 second cooldown between shots. Inflicts 40 damage at a max range of 64 blocks.
<*>Added Medium Laser Cannon. Has a 3 second charge up time and a 2 second cool down. Penetrates 1 block with a damage of 60. The second block it hits is 25% of the damage. With a range of 40.
<*>Added Heavy Laser Cannon. 4 second charge up, with a 3 second cooldown. Inflicts 70 damage with a 50% damage on the second block. With a range of 32.
<*>Increased Cannon Ball damage to blocks to 65.
Reduced Iron cannon power usage to 30 from 50.
<*>Added Beacon Light.
<*>Ship Constructors now require Yellow,Blue or Green Cores if a block used in the ship plan contains something crafted with these Cores. For example if the ship has a Light Laser Cannon it will require 3 Yellow Cores, as well material costs.
<*>Yellow, Blue and Green Cores no longer count toward the coin wealth for construction(see above).
<*>The UI has been updated to show Yellow, Blue and Green Cores requirements in windows related to ship construction/pricing.
<*>Iron Cannons, Flare Launchers, Gravity Well/Springs and Artillery Cannons now play a sound if you do not have enough energy to fire them.
<*>Jump Drives now use Green Cores instead of Burnout Cores.
Fixes
Fixed client crash caused by out of range colours for Item Kit palette.
Fixed Camera meshes that were flipped 180.
Fixed Lantern meshes that were flipped 180.
Fixed Small Syphon Miners fuel entity being at wrong offset.
Fixed Resources being visible without prospecting for some players.
Fixed a bug where in some instances syphon containers could not output syphon to refineries if it was loaded in a different zone before travelling to the refinery.
Fixed a bug with containers where in some specific instances they could go to negative syphon when offloading to Refineries.
Fixed depth being messed up on Item Kit preview.
Fixed missing formatting on Build Ship message box.
Fixed alignment issues on Build Ship message box.
Update - Syphon Changes and Map Updates
Hey guys, a new update is now available. Syphon fuel has been changed to work a bit differently in this update. There are now two types of Syphon Miners, the original Syphon Miner is now a "Large Syphon Miner" and a new one has been added called a "Small Syphon Miner", which is a cheaper alternative that produces Syphon slower and is primarly constructed out of Copper. The colour of Syphon mined is now seeded randomly across the map, rather than previously using the Biome. Rarer Syphon colours such as Blue will appear further away from the spawn. Previously Syphon had created resources based on the Biome it came from, which in reality is not very useful for both a starting nations and one a very established one with a lot of resources. When refined the Syphon fuel now creates a new item called a core. There are Blue, Green and Yellow cores as well the preexisting Burnout Cores. These are created from the colour relative to it(Red makes Burntout cores). Other than the Burntout Cores which is already used in a lot of current recipes, the new cores will be required to make a lot of future high tier/more effective items. This should help owning claims becoming more vital to Nations as you'll have to hold some territory to produce these resources. The cheaper miners also make for a substantially smaller loss when losing these claims compared to their much more expensive counterparts. In coming updates claim defenses will be changed and made a lot weaker to allow for more attacks/skirmishes on these claims however there will be some other ways to defend those claims. So be aware of that when setting up your claims!
The Prospector block has also been changed, it will now show you the colour of a Systems Syphon after scanning it. This will also be left on your map so you can check on it easily in the future without the need to rescan it.
A few additions have been made to the map. It will now show claims of your own Nation and other players as a territory overlay around them, with green representing your own and red representing others. Making it easier to see in a zoomed out state. An icon for biomes is also now revealed when you have visited a system once, so you no longer need to manually remember what each system is.
Since the last update I noticed a few players were having an Effect.Dispose error being thrown when trying to start the game. It took a bit of investigating but it turns out their Graphics Cards did not support shader model 5, so I've also moved back the game's shaders to use SM4 again so you should no longer experience this crash, sorry about any inconvenience and thank you to Concord Dawn for helping me figure that through answering my questions!
There's also been a pretty huge set of bug fixes, you can check them out in the change log below.
How do I update?
The client will be updated automatically for you. The server files will be available shortly. Make sure you backup your server first, then copy the new files over your existing server files.
Change log
Changes
Claimed systems on the map now have a territory overlay.
Systems you have visited now show as an icon representing their biome.
The game now opens on Display1 instead of in the middle of two monitors when using more than one monitor in Window mode.
Added Small Mining Syphon.
Large improvement to memory consumption and gc generation.
Prospector now shows the syphon fuel type for the system. It now takes 5 seconds to scan a system. The Prospector no longer requires turning on/off when moving to new system to scan it.
The Map now shows Syphon colours once they’ve been Prospected by the player.
Syphon Fuel is now seeded differently. Colours are now rarity, rather than linked to Biome. Based on their distance from spawn + a random modifier.
The Refinery now makes different coloured Cores(Green,Blue,Yellow, Burntout) from the Syphon fuel rather than random resources based on where they come from. These will be used to make higher tier stuff in the future.
Changed some shaders back to SM4 from 5. For players who do not have GPUs that support newer shader models.
Fixes
Fixed a client crash caused when deconstructing ship.
Fixed a client crash caused by docked ships loading before their parents
Fixed a client crash caused by crafting before the menu has loaded.
Fixed a client crash caused by Magmasite Queen Spikes updating before receiving network info.
Fixed a client crash caused by the debug export mesh hot key being hit accidentally by users multiple times.
Fixed map bookmarks causing a crash if they listed a system that no longer exists.
Fixed a client crash when using the Generator the menu before the player has fully loaded.
Fixed a server crash caused by the server trying to tell the client about a docked ship that is currently not loaded.
Fixed a server crash caused by chunk sending state when it’s been destroyed.
Fixed Schematic preview being black for some players.
Fixed Schematic projection being black for some players.
Fixed a client crash caused by missing effect parameters for Syphon Miners.
Fixed a client crash caused by Ammo Crate when trying to drag an empty item slot.
Fixed a bug preventing the Item Kit dialog from popping up.
Fixed a text input problem on signs.
Fixed a client crash caused by interacting with a crate when entering a zone before player data is correctly loaded.
Fixed a crash caused by players deleting Skins folder then launching Options menu.
Update 0.999 - Monogame Port
Update 0.999 is now available on Steam and via the launcher. The Monogame port is now available without opting into the beta branch with a bunch of fixes and changes based on bugs found from the Steam beta branch. If you'd like to know more about the MonoGame port and what that means you can checkout my previous post here. A lot of changes have been made internally to Sky Nations to work more efficiently with DirectX11 and MonoGame over the update period too, although there might be some lingering bugs from the port I haven't found in my own testing, most of the major issues are sorted.
Although this update was mostly about getting final parts of the port done, so the game has better, update-able and fixable base for the future. I've also added a small gameplay change which effects a lot of things potentially. Ships jumping through beacons will now have a shield protecting them from damage when they land on the other side. This shield will exist until they move in which case it will be removed. This should stop players being destroyed by defenses, players exploiting undefended player ships and mobs such as Magmasites while the game is loading the zone for the player, which is a wholly unfair way to die! There might be some changes to quite how this works in the future. This is currently telegraphed by a shield surrounding the ship but this may change also.
I've also added a new cleanup system for ships to Sky Nations which is something that's been requested for quite a while. Especially for those with lower end GPU/CPUs who have trouble rendering lots of rafts. This will clean out all ships automatically at set intervals, after experimenting with a few different subtler methods of detecting which ships are likely abandoned, it was a bit to tricky to define in a way that would be clear to players. Where you could easily say "my ship will be removed if [x]". So I've opted for a more clear and concise clean up method. Ships will be cleaned at a set time at most once per day(settable or disable-able in CleanupSchedule.xml by server admins). Ships not in claimed or capital systems will be deleted at a set time per day that are below a certain mass. This mass is settable by admins. For example: the Community 1 server will be set to remove ships below 50 mass on Wednesdays and 100 mass on Sundays at 12:00 server time. This should help remove a lot of the raft build up that ends up dotted around. By default clean up is off on fresh servers.
A couple of changes have been made to make it easier to remove mods also, although it was possible to remove mods that had blocks in the world previously, they are now automatically set to empty and the server will do it's best to deal with special block data either ignoring it or deleting it.
Finally some changes to the server have been made where ship states(information about their position/rotation) were being dropped and causing stuttering a little on the client side making ships sometimes jump a little while flying has been made to help smooth normal movement out. This also includes changes to the steering wheel making it's rotation based on player input again rather the ships rotation movement, which didn't make a lot of sense!
How do I update?
As usual the game client will be updated via Steam or the Launcher. To update a server just overwrite your files with the new files. Make sure to backup first!
Changelog
0.999 - MonoGame Port Changes
Game has been ported to a whole new API. It’s now using MonoGame with DirectX11.
Added automatic ship cleanup. Ships are cleaned at automated intervals by the server. These intervals are settable by the server admin in CleanupSchedule.xml file.
Blocks are now automatically removed if they no longer exist in Tiles dictionary.
Ships jumping from beacons are now invincible until they move a small distance from the point they jumped too. This is represented by a shield around the ship.
Ship Steering wheels now reflect player input rather than ship rotation itself.
Improved networking on ships/npc states when many are being sent at once and dropped.
Added automated crash logging to the client so users no longer have to post crash logs.
Fixes
Fixed Missile Pods not being rendered when re-entering a system.
Fixed Missile Pods network proximity mode.
Fixed economy missing entries for non-sellable items giving them a 0 price from Merch Cat.
Fixed Blip effect crash.
Fixed actor preview crash.
Fixed an npc crash.
Fixed Power Clamp placement being flipped Z Axis.
Fixed some texture filtering issues with MonoGame differences.
Fixed a crash caused by several stereo sound effects.
Fixed Crash logs saving in main server directory instead of their folder.
Monogame Build Available
Monogame Build
The test version of Sky Nations using MonoGame is now available via the Betas tab on Steam(including Sky Nations demo). This is a pretty lengthy port of the game to a new API that should increase rendering performance, allows for 64bit and better stability. You can check out the deeper explanation here.
Since it's a lot of changes to the code I've released it as this Beta branch as there's likely some unforeseen kinks to work out. If you encounter bugs or crashes for this build, it would be great if you could post them so I can fix them as quickly as I can and update the Beta branch.
How to Install
You can switch to it by right clicking Sky Nations in your Steam game Library. Then clicking Properties. This should bring up a Properties Window. In the Properties Window click the Betas tab and choose "Monogame -". This will set the game to this new build. You can switch back at any time until it's fully released on the main branch.
MoreBlocks on Community 1 and MonoGame Port
Hey guys, I've just added the MoreBlocks mod to Community 1.
MoreBlocks
MoreBlocks adds a bunch of extra decorative blocks and alternative materials for existing blocks types. You can check out the mod page here and even contribute to it if you want(there's also a list of all the contributors there so be sure to thank them). There's also a thread on the forums for it. It's really cool to see players adding new stuff via mods. You can also grab it and install it to your own servers. Thank you to everyone who contributed or will in the future contribute to this mod. It's pretty cool! Just as a side note, some of the blocks might be replaced over time by Vanilla equivalents as some of the blocks in the mod are planned in the game. So just be aware of that.
Here's a list of some of the blocks you'll see on the server due to this mod:
Decking: Steel, Copper, Titanium, Iron, White Carpet
Platform: Titanium, Steel, Iron, Copper
Railings: Titanium, Iron
Steps (lower): Titanium, Steel, Iron, Copper, Glass, Hard Glass
Steps (upper): Titanium, Steel, Iron, Copper, Glass, Hard Glass
Struts: Titanium, Steel, Iron
Doors: Steel, Wood, Titanium, Iron
Wall tiles: Titanium, Steel, Iron, Copper, Wood
Hatch: Titanium, Steel, Iron, Copper, Wood
Shutters: Titanium, Iron, Copper
Wedges: Copper Strut, Iron Strut, Steel Strut, Titanium Strut
MonoGame Port
Over past few weeks I've been working on a experimental port of Sky Nations client to MonoGame. MonoGame is essentially the modern and open source successor to the API Sky Nations uses which is XNA. XNA became unsupported in around 2013-2014 by Microsoft but over time it's served us well. It's what I learned to make 3D games in and provided a good abstraction to rendering, sound and content loading that other APIS and engines provide a much less flexible alternative for. But it's showing its age now and some parts of it are just plain limiting in 2016 and the benefits are too big to ignore MonoGame now. Recently MonoGame released their 3.5 version, which basically has all the features Sky Nations required of XNA that were missing in MonoGame's previous releases(such as instanced rendering).
The main benefits for Sky Nations are a release from a 32bit prison and a much faster rendering abstraction. XNA only has 32bit binaries, which means we can only address about 1.5GB of memory, no matter how much RAM your PC has installed. For a game about building, this is problematic but we've managed. You may of noticed the odd OutOfMemory exception mostly when alt-tabbing, the game has to rebuild the chunks(32x32x32 block groups) when this happens as they are discarded from video memory, this caused it to tip toe over this memory limit quite often as this is a significant amount of data. This also happened in other places in-game and has been annoyance across the board, especially since PC's now have a lot more than 1.5GB of RAM. MonoGame supports 64bit, which means we can spread our wings and consume more memory. As much as the hardware allows. While I don't plan on huge extra memory use, this helps stability with above issues a lot. Especially since most PC's now are 64bit and have 4gb of memory at least.
As stated above, rendering(drawing objects to screen) is also a whole lot faster in MonoGame. This due to a few reasons:
MonoGame's abstraction of rendering API's is much better.
Modern Shader compilers are a lot better at optimizing shaders. In fact it optimized things I didn't realise I wasn't using in some of Sky Nations shaders.
MonoGame uses DirectX11 which has some significant performance gains on DirectX9(which XNA uses).
From a basic rendering test of drawing a very dense Capital with 200 or so complex ships as well as buildings on land in both current Sky Nations and the MonoGame port. On my hardware there's a difference of XNA Sky Nations running at 40FPS and the MonoGame port running at about 110FPS for the same area with the same content. This is a pretty big leap!
There's also a lot of gains in terms of stability and upgrades, there's bugs in XNA that I couldn't fix since the source was never available. These bug's don't exist in MonoGame to start with and the bugs I do find may be complex but are fixable, since it's open source and has a pretty big community of contributors. The contributors also keep upgrading and refining MonoGame. Much like a fine wine, it's got better over time.
The MonoGame port won't be released like a normal update, my plan is to make available under the Betas tab in the Properties window for Sky Nations on Steam. Which allows people to switch to it and switch back, so it can be used by a bunch of people to help find any issues. MonoGame is a little different to XNA and there's a lot of changes to the code, they'll probably be a lot smaller things such as an object being red instead of blue. Or a very specific action crashing the game, so it might take some eagle eyes to figure them out. The port won't be available yet, but hopefully within the next week or so. Porting something like Sky Nations isn't easy, there's a lot of code of that does a lot of stuff and I'm currently re-writing some parts that have no alternative in MonoGame such as the character animation. But it's certainly worth it to get all round better performance, easier development and less inbuilt bugs I had no way of tackling. I'll make a news post when it's available in the betas tab.
Update 0.995 -
Hey guys, update 0.995 is now up. It comes with many small changes as well as some bigger ones.
Many of the models and how they are rendered has been significantly improved with ambient occlusion baked into them made possible by the MagicaVoxel tool which allows the AO(ambient occlusion) to be exported with the model mesh itself. Although it isn't true ambient occlusion, it essentially means the interior corners are darkened. For most of Sky Nation's model that means they look significantly better as it helps much better to define their shape when looking at them. You can see a few comparisons below. This effects most meshes(but not all) in the game. Blocks like Clamps, Fuel Hoppers, Merchant Horn, Entities like the Steering Wheel and Mobs like the Magmasite Queen. There's still some to be converted such as the Merchant King. As the task involves more than just re-exporting the models. But it should make a nice visual difference. On top of this all the block meshes have received fix that has sorted incorrect lighting them, which may of not been immediately noticeable but certainly makes a difference.
Click the comparison to enlarge them.
I've also added a smaller light source that doesn't take up quite as much room as full-sized Lantern and works much better in-interior settings. Which is from the decorations suggestion thread. It produces a slightly smaller radius of light but can be hung up on the walls, ceiling and placed on the floor.
The final major change is to the Economy, I've received a bunch of feedback and suggestions regarding it being too easy to produce blocks/wealth in the game. Both via the constructor and mining Ice and selling it to Merchant Cat. Originally I had thought to inflate the economy quite a bit via these methods so it was much easier to build larger ships which could be spent in battle. However, it hasn't worked out that way. So it's being switched on it's head a little with a couple of changes.
Merchant Cat's prices now go up and down per item based on what is sold and bought from him. This means for example, selling him lots of Sand or Ice to him will drive down the price considerably making it untenable. The opposite is true for buying items from him, the price will go up. Since this is based on quantity, selling your junk and one shot items in most cases will change the price very minorly. His prices will also recoup over a very long time period back to their original prices. Since every item sold alters the price the UI for Trade Stations has been updated to show you the price with this in mind when selling stacks. Rather than telling you what amount you'll get for [amount] x [price]. It will calculate the diminishing price for you. There's likely a lot experimenting for the price fluctuation to get the figures right and they probably won't be right straight off the bat, so the server will also track all the transactions into a excel file so I can then take it into spreadsheet and stare at it meaningfully and work from there.
The second change to the Economy, is to the other major contributor of it; The Ship Constructor. As mentioned above, it seems most don't like the equivalent exchange system it provides and it makes everything a bit too easy and gives another reason to not leave the Capitals. While ship prices are still based on the default value of items(not Merch Cat's variable prices). Materials used to build them are now worth 40% of their default value when used in the Ship Constructor. This means converting materials now substantially more expensive for the most part. However, Coins are un-affected by this and remain their base value of 1 for Ship Construction. Crates and the Ship Constructor itself have had their UI updated to show you both the normal wealth and the 'construction wealth' to make this a bit easier to follow. Much like Merch Cat's prices, the percentage may not be perfect off the bat and may need go up and down based on the results.
These changes together should mean more actively visiting the map from Capitals to gather different resources to trade with Merchant Cat and to help build ships.
The UI has also been updated across the board to solve alignment, size and some text issues. The item count on item slots has also been updated to be much clearer and easier to read than it has been previously.
As a side note: We're getting close to version 1.00. The version number for Sky Nations is just what I use internally, both to track certain changes and to allow the updater to track versions. Version 1.00 won't be the finished game, but will most likely mark most of the internal backend stuff being done.
There's actually quite a few small changes and many fixes in this update. So check them out in the change log below.
How do I update?
The client will update itself. The server will be available shortly here. Remember to back your server up first. Before overwriting the files with the new ones.
Change log
The change logs too long to fit in the Steam news post character limit. So it check it out on the SN forums:
0.995 Change Log