DEV STATUS UPDATE3 May - dsmart
As it has been over a month since I teased the release of a MAJOR build, I wanted to post a quick word on the latest status.
It's a combination of things; but without getting too technical, here is briefly what's been happening.
GAME DEV IS HARD - EVEN FOR A VETOK, that one was obvious. But it's a lot more complicated than that.
As you know, my plan with this 3.x generation was to improve on the game in a variety of areas including not only in terms of visual improvements, but also in improvements to the AI, gameplay elements, world assets etc. But putting on a coat of paint, can only go so far - especially since I really don't plan on doing another complex game like this. Ever. That's why I created the ACM scenario first, and tested it using the previous engine iteration etc.
Part of the visual improvements involves porting UCCE to use the slightly more advanced engine used in AAW/AOA. This means that I also had to port things like shaders, physics/dynamics, numerous more advanced gameplay elements etc. And of course the more improved world assets from that engine.
As these things go - everything broke. Like, completely. Recently I went through four builds in which the main visual shader (for the entire game world) was just flat-out broken - and I have been tweaking it continuously in order to get it working just right. And it's still not quite there yet.
For example - at certain times of the day, certain objects are darker on one side than they should be. Some of the new assets have compressed normal maps, while others don't - at all. Which means that I have to update the shader to support that so it works for both types of models. Stuff like that.
Another example is that the planetary site textures (with the roads and such) seen in AAW/AOA were designed specifically to work with that version of the PTE (Planetary Terrain Engine Spec 5 - which does not use a procedural terrain generation method like its predecessor). Which means that using them in PTE Spec 4 used by UCCE 3.x isn't trivial. In fact, I tried to hack it in and ran into all sorts of issues whereby they would flicker off|on at some viewing distances, the reported height above ground was incorrect etc.
Part of the problem is that porting the graphics engine over isn't a 1:1 thing because there are features in both which aren't common. e.g. AAW/AOA don't have any space combat; which means that FX like hyperspace, rendering/culling of the larger game world aren't supported etc. So basically I've simply been picking and choosing what changes I can port over, without breaking everything completely.
If you've been following my updates on the Trello board: https://trello.com/b/5p4AlFoL/universal-combat-the-lyrius-conflict and the changelog: http://3000ad.com/ucce30-changelog/ you should have a pretty good idea of what's going on.ASSET MANAGEMENT WOESImproving a graphics engine while not improving on the assets is a pointless exercise. That's why I have also been replacing legacy UCCE assets with newer ones from AAW/AOA. This includes assets like terrain buildings, characters, weapons, vehicles, aircraft etc - everything. Here's the bad part.
Since AAW/AOA are smaller games - and not space, this means that of the 1000+ assets in the UC games, only about 100 of them are used in AAW/AOA. That means a massive number of legacy assets have to be redone at some point down the road or we'd end up with legacy low quality assets running on a improved graphics engine which isn't going to make them look much better than in the old engine.
For example, of the 28 capital ships in UCCE, only the Sentry cruiser was used in AAW/AOA because it was part of the campaign scenario. That leaves 27 to be created to that quality at some point down the road.
Oh, and there are no starstations in those games. So basically if AAW/AOA didn't use an asset, that means a better quality version of it doesn't exist.
It's even worse in other areas. e.g. the character animation engine in AAW/AOA was created from scratch. And it's not compatible with the character models in UCCE. And the latter game has over 24 unique character models, compared to the 6 unique ones used in AAW/AOA. Which means that I can't port over that engine without first having all the character models re-created. The result is that for now I am stuck with the current anim engine and legacy character models.
There's a LOT more going on with this, but it's beyond the scope of this update and would be too long to document.
The good news is that we're still getting a LOT of better quality assets (e.g. weapons, vehicles, aircraft, buildings) from AAW/AOA.
WORLD BUILDING GONE AWRYRemember when I said it was worse? That was an understatement. Here's another piece of the puzzle.
As I mentioned on this Trello card[trello.com], the current planetary scenes are about 1.5kmx1.5km. The new ones (which use the new terrain and site textures) are 8km x 8km.
Guess what happens if I use the old scene models in the new scenes? If you guessed that...
1) some models would be missing
2) the positions would ALL be incorrect
...you would be correct.
If you open up one of the .3DG files located in the current .\MODELS folder, those are the objects used in specific planetary scenes. Each entry references a .3D model at a specific location in the scene. Which means that a model that used to be at a specific XYZ location in the old scene, is now at a completely different position in the new scene. That's not so bad, right? Well, guess what happens if one of the game's scripts either requires a specific object to exist in the scene, or was based on the range the player or NPC have to travel to before they die tired or of old age.
That aside from the fact that some models (e.g. BLDG_CIV01.3D) no longer even exist, having been completely replaced with new better quality ones (e.g. BLDG_GEN01.3D) from AAW/AOA. If the game loads up that .3DG file and doesn't locate the .3D model, that's how we get crashes and failed scripts.
The result? I have to scrap and redo ALL of the 50+ scenes (bases, cities, naval sites etc). And this isn't automated. Each one has to be created MANUALLY in the game's editor (BCSTUDIO) as seen in the Trello card I previously linked. Once that's done, I have to test (luckily I use AI entities to automate this) EACH script to ensure that whatever they reference exists, and where entities are scripted to appear is in the right place and not inside a building, in water etc. I kid you not, this happens. e.g. while I was testing one of the IA scenarios which uses the newer scene I created, one of the scripted NPC units was created in the water because the starting position (in the older scene) on land, was now incorrect; and so that position was now in the ocean - about 2km away. So I had to modify the script to fix that.
Did I already mention the issue with deprecated models? Right. The scripts which rely on them, also have to be updated to reference either the new ones, or replaced with a similar one. For example the Marauder gunship doesn't appear in AAW/AOA, while the Dragonfuly gunship in that game, doesn't exist in UC. Do I add a new gunship to the game, or do I deprecate and retire the old one, then have the new one take its place? It's not that simple. One is an assault gunship with mounted door guns; while the other is an attack gunship. What did I do? Well, the game used to have 5 gunships, now it has 7. LOL!!
Yeah, fun stuff.
The good news is that the assets from AAW/AOA look so much better, even without the graphics engine upgrade. Also, the benefit is that the game now has new assets which it didn't before. e.g. all the new buildings, Dragonfly & Aggressor gunships, the PAS vehicle etc.
RIGHT. SO NOW WHAT?Considering the number of things that are utterly broken, I have decided to
1) split this upcoming build into two or more releases, instead of one big one.
2) use Steam's Beta feature to create a parallel build so that I don't impact the existing version while working through this major update. Since this release is a DLC to a main game, it's a bit tricky to do - and SteamWorks is notoriously unfriendly when it comes to things like this. If it works out, then it will be similar to how I set up our Line Of Defense DSS builds[lodgame.com] which allow you to switch between main and dev branches from within Steam. And if I can't get that to work, I have to decide whether to risk pushing out a build that breaks a bunch of things for a period of time, or just hold off until it's a bit more complete/stable.
That's basically it.
Also, note that unlike Line Of Defense, I am the ONLY dev working on this because this project was never the main focus for my studio. It's just something that I wanted to do as I found time. It's a pretty old game series, and the sales - even when I finish the project - aren't likely to even cover the $1m+ (a huge portion of that is in creating better quality assets for which no version currently exists) everything is likely to cost. So I have this, as well as Line Of Defense (porting to UE4) and Alganon (moving to cloud servers) to manage.
By the middle of next week, I will have a better idea of when the first version of the build will go live. At which time I will post another update.