Difference between revisions of "AI War 2:Earlier Than Early Alpha"

From Arcen Wiki
Jump to navigation Jump to search
Line 21: Line 21:
  
 
* Added the immobile Shield Generator units, for both human and AI use.
 
* Added the immobile Shield Generator units, for both human and AI use.
 +
 +
* Added Plasma Guardians and Plasma Turrets, which are the main counters to heavily shielded formations. Later, with other starships, will be the Siege Starship, which also uses plasma weaponry.
 +
** For now these use the MLRS Guardian/Turret graphics.
  
 
== Version 0.111 ==
 
== Version 0.111 ==

Revision as of 20:11, 13 March 2017

Starting State

Okay! So the title of this document is somewhat-facetious, but it gets at the intent behind this first phase. This earliest phase of the alpha is not about being able to play end to end and thumb your nose at all the suckers who are waiting for a later build for no particular reason.

"Earlier than early alpha," in this case, means that we're getting you in place to see what is going on absolutely ASAP. There are some folks who will relish this opportunity, and who have specifically requested it -- they then get to help shape the balance and details of our implementation of the game from the earliest days.

Ever hear developers say "well it's too late in the process for us to change that now" and feel frustrated that you weren't consulted earlier? This is us consulting you super early. Nothing is too late in the process, because this is "earlier than early."

To someone coming to this first build without that context, they may go "holy cow, what hot mess is this." This is not your typical alpha. We'll be to that point in a month or two. If you want the typical alpha experience, then feel free to register your steam key now and just wait around for the go-ahead from either other alpha players or Arcen staff to get a more typical experience.

On the other hand, if you want to be in there from minute one... well... welcome! We're sure glad to have you, and excited to show you what we've been up to. :)

If you're one of the many who struggle with playing the game such an incomplete state, check out the instructions

We also have a blog at https://blog.arcengames.com for dev diaries and other fun topics.

Also, here's Chris's todo list.

Version 0.112

(Not yet released -- we're still working on it!)

  • Added the immobile Shield Generator units, for both human and AI use.
  • Added Plasma Guardians and Plasma Turrets, which are the main counters to heavily shielded formations. Later, with other starships, will be the Siege Starship, which also uses plasma weaponry.
    • For now these use the MLRS Guardian/Turret graphics.

Version 0.111

(Released March 13th, 2017)

  • Fixed a race-condition bug when regenerating maps.
    • Thanks to BadgerBadger for reporting
  • Put in some error catching code to hopefully prevent unhandled exceptions on secondary threads, which may have been causing the linux build to die prematurely in some cases.

Version 0.110 Modding Overhaul And Unity Upgrade

(Released March 13th, 2017)

  • Overhauled XML mod support: instead of having each xml data directory support an "Override" subdirectory, now:
    • In the base game directory there is an XMLMods subdirectory.
      • In XMLMods there's an ExampleMod subdirectory.
      • In ExampleMod there's a GameEntity subdirectory, just like GameData/Configuration/GameEntity.
      • In that GameEntity there's an ExampleFile.xml file.
      • In ExampleFile.xml there's a single record, with the same name as the Ark, using the new is_partial_record flag, and only setting one value (speed tier).
    • In PlayerData there is a XMLLoadingOrder.txt file (you'll need to run the game once for that to be created). When loading the xml data the game will look at each line in this file:
      • "_Vanilla" (without the quotes) tells it to load the vanilla data from GameData/Configuration/
      • Any line composed entirely of whitespace, or whose first two non-whitespace characters are // (a common symbol in code for "commented out"), is ignored.
      • Any line containing any character other than a letter, a digit, the space, the underscore, and the minus sign is rejected with an error message, to avoid clever folks using this to read from files in some remote part of the filesystem. If you want more characters whitelisted, please let us know.
      • Any other line causes the game to trim off any leading or trailing whitespace and then to try to load the data from "XMLMods/" + that line + "/GameEntity/*.xml" (for GameEntity data; similar for other types)
    • So to create your own xml mod, just create a sibling copy of ExampleMod, add the name of that copy as a line at the end of XMLLoadingOrder.txt, and include whatever partial records (or just normal records, for stuff you're adding from scratch) you want in the copy's directory.
  • The version of unity in use has been upgraded from 5.5.0p3 to 5.5.2p2.
    • This has a variety of internal bugfixes to the engine, and may in particular fix -- or at least shed some light on -- a crash bug we're having on linux in certain circumstances at the moment.
    • We'll only be on this build for a few weeks, most likely, before shifting up to 5.6. The first non-beta build of that unity version is scheduled for March 31st, last we heard.
    • Note for staff/contractors: be sure to update your MonoBuild_MachineSpecificSetup.bat to the new location for the new version of unity, presuming that you're installing it alongside the current build of unity.
    • This would typically mean something like changing SET unityPath=D:\Program Files\Unity550p3\ to SET unityPath=D:\Program Files\Unity552p2\

Version 0.109 Special Forces And Modding

(Released March 9th, 2017)

  • The Special Forces Have Arrived.
    • The composition and target-planet selection are defined in AIWarExternalCode/src/AI/SpecialForces.cs , if you want to meddle. There are also a few new relevant constants at the bottom of GameData/Configuration/ExternalConstants/KDL_VanillaConstants.xml .
  • Now if you use the Scout All debug button you have vision on all planets until you quit that game.
  • Waves can no longer pick high mark ships from the very beginning; highest available mark is roughly 1 + (AIP/150).
  • The external modder/gui project is now ready for players to use, and we're also going to be doing our own gui images through that project, too.

Version 0.108

(Released March 9th, 2017)

  • The default launch of the windows build of the game is now back to being OpenGLCore. Since it doesn't have to decompress the BC7 textures on load, it's incredibly faster to load than DirectX9.
    • The problem with DX9 not working properly as an override in 0.106 was a misconfiguration in the steam launcher settings on 64bit windows, which we've now corrected. Now it can actually run either build, but unless overridden it will use OpenGLCore.

Version 0.107

(Released March 8th, 2017)

  • The basic fighter model has had some heavy visual work to get its emissive maps looking better, to tone down its normal maps, and to add an attractive metal map.
  • Now when a claim/repair operation is being slowed due to lack of metal, the line draws kind of orange.
  • Fixed a race-condition index-out-of-bounds bug in the visual layer stuff working with ship-to-ship lines.
  • Created a new PBL-based LOD2 shader that is now in effect, which keeps more consistency with the LOD0 and LOD1 values that are presently there.
    • LOD3 remains vertex-colored only, given it is so very far away and thus would have no point.
  • Removed the highlighting that happens on ships in a squad when the squad is selected. That just didn't look right.
  • All of the ship models now use the PBR rendering path rather than the rim-lit one.
    • Some will require a bit further hand-tuning, and in general there are still a few bits we're working on here. But in general, things already feel more lively.
  • A great deal more information is now shown about the current platform in the output.log startup log when the game starts. This will help us with debugging.
    • Thanks to Dar SelLa for inspiring this change.
  • The game no longer tries to do script debugging connections, which previously it was doing (as of 0.104).
  • A bunch of check code has been added for looking at the ship models and their setup, and finding and fixing any issues that would cause problems with them being selected or hovered-over or whatever other circumstance. It also helps to automatically correct a variety of other issues that might be found.
  • The game now has the furthest-in zoom at 11 meters lower than before, which lets you really see the ships up close and personal.
  • The windows build of the game is now once again DirectX9 by default, since it causes crashes for some folks when it's anything else.
    • We'll have it run in OpenGLCore mode as the secondary run mode that steam can invoke, rather than the other way around.
    • Thanks to Dar SelLa for reporting.

Version 0.106

(Released March 6th, 2017)

  • Fixed a potential render-texture-too-large error in the "there was an error" window.
    • Thanks to BadgerBadger for reporting.
  • The planet tooltip resource listing is now in a consistent order, rather than sorted from highest to lowest.
    • Thanks to BadgerBadger for suggesting.
  • Fixed the broken serialization issue that Keith noted in the prior version. Chris had meant to ask how to handle that for one particular line of code, but forgot, so that had broken saves. Hotfix is thus releaed.

Version 0.105

(Released March 6th, 2017)

  • In multiplayer each player is now issued a separate ark, and can only select (and therefore control) their own units.
  • Thanks to Unity actually now having support for detecting lost/gained focus (woohoo!) the game now suppresses input events like edge scrolling when the game window does not have focus.
    • Thanks to daktaklakpak for suggesting.
  • Patrolling enemy guardians no longer bum-rush you from across the planet. Instead you have to get within their patrol range (currently 1/4 the system diameter) or damage them in some way. Similarly, they won't deploy their internal ships until these things happen.
    • On the minus side, from your perspective, when you antagonize these patrol ships in this way they won't just come after you, they're _freed_ as threat and will devote the remainder of their existence to your demise. Isn't that sweet of them?
    • Note: as before, if you come in with a whole ton of force it may free all guardians on the planet. If you really overdo it, those guardians may just retreat to rain on your parade later.
  • The "give orders to units produced by me" toggle had tons of bugs and in general it's a very difficult concept to communicate correctly with the terribad placeholder UI, so it's been temporarily removed from the interface.
  • Planetary resources are now shown in the galaxy map tooltip for planets.
  • The AI's initial defense budget is now spent more on guardians and less on fleet ships and turrets.
  • Fixed a null-exception bug.
    • Thanks to BadgerBadger for reporting.
  • Reworked the revisions to planet mark levels, specifically for the surroundings of the human and ai homeworlds. Now some of their neighbors will be markI and markV again (respectively), and the next layer around that set (homeworld + I/Vs) is markII and markIV, respectively, and the next layer around that is a mix of roughly half-and-half 3s and 2s/4s (respectively).
  • Reworked initial AI defense population to be based on a number of guardians, caps of fleet ships, and caps of turrets. Before, with the non-linear growth in guardian strength but linear growth in fleet-ship/turret-strength it was very difficult to achieve the desired density of each.
  • Added Seed button to the game setup meu, so you can regenerate a different random map of the same type quickly.
  • It is now no longer possible to scrap the Ark.
    • Thanks to BadgerBadger for reporting.
  • Fixed an issue preventing the build queue from updating when a non-looping queue finished an item (so the item would just keep showing on the interface, despite being completed and thus removed).
    • Thanks to BadgerBadger for reporting.
  • Fixed an issue causing a "cannot build this now" situation to remove non-looping queue items; for instance if you hit the cap it would just remove the item even if it wasn't complete. The item should not continue producing in that case, obviously, but it should stick around to be fulfilled if/when there's room in the cap.
    • Thanks to BadgerBadger for reporting.
  • Reworked how button-set elements in the UI (like on the build menu) work so that they don't flicker as much and don't let mouse-clicks "through" if you click right as they're updating in response to you queuing something new, etc.
  • Fixed a bug where selecting a different planet and then starting the game would lead to your ark not having the pre-built build queue.
    • Thanks to Burnstreet and BadgerBadger for reporting.
  • Fixed a bug where pausing a unit like the Ark would stop all its resource production in addition to its unit construction.
    • Thanks to Dragondraikk for reporting.
  • Fixed an arithmetic underflow bug that was leading to the repairs of very expensive units taking inordinately long below certain health levels.
    • Thanks to gavin144 for the report and save.
  • Fixed a race-condition index-out-of-bounds bug in the UI.
    • Thanks to Toranth for reporting.
  • On windows, the game now uses OpenGLCore as the default rather than DirectX9. We'll see if we need to make any adjustments to that, and you can still override that to get DX9 using command line arguments if this new approach doesn't wrok.
    • Interestingly, this gives the same result of wormholes being a ring that we were seeing on Linux -- so apparently, that was an OpenGL/DirectX issue rather than a platform-specific issue.
    • This switch may result in better or worse performance -- we're not sure at the moment, and thought it would be interesting to experiment.
    • Either way, we've now also put in options in Steam that allow for you to select either mode directly from within Steam at launch.
  • ALL of the old starfields have been completely stripped out and replaced.
    • The new approach is using actual skyboxes (cubemaps), which uses more VRAM than before, but gives a higher-quality result.
    • However, it's also a bit more efficient in a few other ways, and uses 100MB less of disk space for all the color variants we now have, as well as using less general system RAM.
    • This is something we wanted to do simply for stylistic/quality reasons -- making the game look better.
  • Created a custom variant of the unity 6-sided skybox shader that allows for rotation in all three axes rather than just one axis, and that allows for HSV shifts, and that doesn't bother with exposure multipliers.
    • This allows for us to have a simple set of four overall skyboxes for starfields, and then recolor them in realtime on the GPU as needed.
    • Given the efficiency of even a kinda-okay modern-ish GPU, this is not a giant trouble for it. However, it (again) allows for a better result without a ton more system RAM usage.
  • The planet in the game view has been shifted to now be a part of the "space background" camera, so it will never intersect with anything in the game field anymore (not the Ark, not wormholes, nothing).
    • Thanks to gavin144 for reporting.
  • Adjusted the glow post-processing effects fairly substantially to work better with the new space skyboxes. The new glow processing is a bit more intensive, but it shouldn't make too big of a difference even on weaker GPUs.
    • If it does, then we can introduce options to take this back down to 3 mip levels instead of 6, and to use a lower-quality detection for glowing elements. This just doesn't seem to be enough of the typical load to warrant those options at the moment, though.
    • Overall this leads to a very different look for certain elements in terms of how they glow. The squad icons are most notable in this respect, but those are in the process of being reworked anyhow, so they're considered temporary at this point.
  • A couple of the ships -- fighter (kinda), bomber (fully), forcefield generator (fully), and space dock (fully) have been adjusted to use PBR lighting rather than custom rim lighting.
    • This is something we're experimenting with still, and it's basically a WIP on all fronts there. We likely won't have anything definitive in this area until Thursday at the earliest.
    • Overall this is letting us do a bit more with visual fidelity, but we're still experimenting on that.
  • The raycast distance has been increased for when you're trying to click things in the galaxy map or the main view, so that something is never too far away for you to hover over it.
    • Additionally, the clickable/hoverable area of planets on the galaxy map has been increased so that they are easier to click in general.
    • Thanks to BadgerBadger for reporting.
  • In the default control scheme (which later can be remapped anyhow), the arrow keys now work for controlling the cameras just as well as the WASD keys do.
    • Thanks to dfinlay, jerith, and BadgerBadger for suggesting.

Version 0.104

(Released March 3rd, 2017)

  • Fixed a null reference bug with the build queue buttons that could cause the buttons to go blank.
    • Thanks to dfinlay for reporting.
  • Fixed a bug where units like space docks still in the process of self-building could themselves repair other units, etc.
  • Fixed an issue where possibly some of the DLLs were out of date on the linux build, or something of that nature -- at any rate, everything is synced up now.
    • Thanks to BadgerBadger, RabidSanity, and gavin144 for reporting.

Version 0.103

(Released March 2nd, 2017)

  • Fixed a bug where squads were being prematurely killed if their current ship count was zero but a replacement ship was on its way. This could lead to invisible squads until you tab out and back into a planet.
    • Fixed a related issue where a nullref exception could happen if the replacement ship got there and the squad was already removed.
    • Thanks to BadgerBadger for reporting.
  • Planet mark level assignment now mostly avoids planets being more than one mark away from any of its neighbors.
  • Fixed a bug where ships scrapped while under shields would damage the shield rather than die (though the squad would be reduced to one due to another part of the logic).
    • Thanks to Zogheen for reporting
  • Fixed a bug where loading a save would not actually try to do any visual updates of units, so you'd just not see them at all even though you had vision and the game was running, etc.
    • Thanks to BadgerBadger, treyra, Toranth, and bladeravinger for reporting.
  • Reimplemented the pause feature as literally "the game keeps running, but instead of each sim frame being 10% of a game second, it's 0% of a game second" with a few small bits of code excluded from running at all (like "try to fire the guns").
    • This avoids a whole class of problems like placeing or scrapping stuff while paused not updating your net power, etc.
    • Thanks to Zogheen for inspiring this change.
  • Actually implemented the logic for "click on a planet in the lobby and that becomes your new starting place"
    • Note that this involves regenerating the map, so you don't start on a MkIV or whatever.
    • Thanks to BadgerBadger for badgering us about this function.
  • Reworked the X map type since the old one was doing weird things with many planets being placed on the same spot, etc.
    • Thanks to gavin144 for reporting.
  • Added a button to the game-setup phase for exiting back to the main menu.
    • Thanks to dfinlay for suggesting.
  • Now during game setup the planets no longer show their marks and what key units are there.
  • Fixed a few bugs that could cause the game to go bonkers if you switched through map types really rapidly in setup.
    • It will still be a bit weird because clicking the button means "switch to the map type after the one that generated last" and so if you mash it three times really fast it will wind up at the same one as if you'd only pressed it once. This will be fixed when we add a proper dropdown for this, rather than relying on a primitive spinner-type button.
  • A number of internal scripts were added that makes it much faster for Chris to push builds. Down from 5-15 minutes depending on the nature of the build, to instead 30 seconds to 2 minutes depending on the nature of the build.

Bleeding Edge Graphics Test (Linux In Particular Please Try!)

Basically, if you look inside your game folder you will now see a BleedingEdgeTest subfolder. If you go in there, there are a few executables. Please run the one that is for your OS, and let us know what happens.

From the whatisthis.txt file inside that folder:

  • You may notice that this isn't AI War 2 at all, in this folder. This is just a simple little scene that you open and look at, and it does nothing. HOWEVER -- it's running on a newer version of Unity than the game itself (5.6), and it's using Vulkan on windows and linux where possible.
  • The idea is to use this as a simple benchmarking tool to say "can this even run?" on various machine configurations, particularly on Linux. This has no bearing on performance or anything of that nature; it's just a matter of "will this launch and actually show the screen without barfing out a blue screen on linux."

Version 0.102

(Released March 1st, 2017)

  • Added some internal code that helps Cinth do live-testing for LODs, which thus lets us get better results from them. Right now our initial LODs were way too cut off, which was one thing that was leading to such unexpectedly good performance most likely.
  • LOD adjustments on smaller scaled models to make them more visible and attractive at standard game zooms and sizes.
  • Team color brightness adjustments, pattern change on red.
  • Adjusted the size on the numerals to help with flickering at ultra far zoom.
  • Updated the game to no longer allow for drag-resizing the window, since that can wind up really confusing things when you're trying to click near the edge of a window.
    • Thanks to Thalone for reporting.
  • New lower poly gimbals for the Fighter, Bomber, Missile Corvette, Laser Turret, MLRS Turret, and Needler Turret.
  • Completely redid the gimbal shaders from the ground up so that they are now more efficient, view-direction independent, and less neon-blinding-you.
    • No fresnel effect is used at all anymore, and normals/uvs are completely ignored, with it instead using part of the tangent data as the uv channels and then feeding that into a two-color emission blend mixed with an underlying diffuse texture that is mostly used for value (but also a bit for hue).
    • TLDR: Much nicer results, less work on the GPU (not that it was expensive before, terribly), and also easier to configure.
  • 13 New Team Colors
    • Cinth made these to look more flat
  • Fixed a bug where resizing the game window during runtime would not properly reinitialize the UI.
    • Thanks to daktaklakpak and others for reporting.
  • Game now shows the current version in the upper-right corner under the hide/show gui toggle.
  • Changed the behavior of the "Try to Capture" toggle to not prevent _direct_ attack orders on an enemy controller or warp gate.
    • Thanks to many of you for inspiring this change.
  • The game no longer uses unity-style "performance profiles," but instead uses our own settings under the hood for the following, which you can now edit in your settings.dat file:
    • IsFullscreen (actually used now!)
    • FullscreenWidth and FullscreenHeight (actually used now -- when in fullscreen mode only!)
    • WindowWidth and WindowHeight (actually used now -- when in windowed mode only!)
    • VSyncCount (valid values of 0, 1, or 2 -- please, please use 0 for the sake of performance).
    • UseSoftParticles (valid values of false or true, default false; doesn't make a big difference either way; last build this was true, though).
    • BillboardsFaceCameraPosition (valid values of false or true, default false, was true last build, doesn't make a big difference either).
    • AnisotropicMode (valid values of Disable, Enable, or ForceEnable; default is ForceEnable, same as last version).
    • AntialiasingMode (valid values of Off, x2, x4, or x8; default is x2, down from x8 last build).
    • TextureQuality (valid values of Full, Half, or Quarter -- this will make things look absolutely terrible if reduced from Full, but can be useful for truly ancient GPUs; probably nobody should use this).
  • Whenever the graphics settings are updated, it now writes to your output log to say what it did. It does them all in one batch whenever the game flags there as having been changes, which helps keep things efficient.
  • Fixed a bug during game setup where regenerating a map (from changing the map type) could lead to the game trying to re-draw the map before generation was done, leading to chaos.
    • Thanks to Dominus Arbitrationis, daktaklakpak, and Jeremiah921 for reporting.
  • Fixed a bug in some map types (notably Wheel) where the mapgen would fail due to not being able to find a planet X hops away from the human starting point and Y hops away from the AI homeworld.
  • Fixed a bug where doing multiple map generations would not properly remove the remains of the previous generations and would try to draw them when you started the game (i.e. Ghost Arks).
    • Thanks to Zogheen for reporting.
  • Tightened up the time between giving a move order and it taking effect. The main difference will come in tightening up the visualization layer to react more quickly, but this should help in the meantime.
    • Thanks to Cyborg, Zogheen, and many others for bringing this up.
  • Added an Exit Game button to the in-game "escape" menu (opened from the upper-right "Menu" button) that dismantles the game and puts you back at the main menu.
  • Added an Exit Game button to the main menu that closes the application.
  • Fixed a bug where switching between various build menus, etc, would not properly clear the previous menu's buttons out.
  • Now when an error occurs in the game, it shows it to you clearly with three options: open the log file, ignore the error, or ignore the error and prevent this window from opening again during this run of the application.
    • Previously you didn't know there were errors unless something obviously bugged out or you checked the log file. No wonder players thought the game was so stable! (just kidding... mostly)
  • Fixed a bug where trying to connect to a remote host, and then trying to start your own game, would throw errors because the game had not switched out of MP-client mode.
    • Thanks to Cyborg and waylon531 for reporting.
  • Now when a ship dies or enters a wormhole, any shots it had already fired but were visually delayed (so that you could tell there was more than one shot) skip the rest of their visual delay so you don't see a continuing stream of shots from the now empty space in cases of stuff like MLRS with very high rate of fire.
    • Thanks to Zogheen for reporting.
  • Now when the game ends (i.e., you lose) you now get vision and intel on all planets (previously it would look like everything despawns when you die).
    • Thanks to Cyborg for inspiring this change.
  • Removed several old debugging keybinds, including some that could break the game if you pressed the wrong key.
    • Thanks to Cyborg and Zogheen for reporting.
  • Replaced the Snake map type (which was generating maps that filled way too much space) with the Spiral map type; looks different but has exactly the same topology.
    • Thanks to Dominus Arbitrationis and Lakshata for inspiring this change.
  • Improved several map types to be way less likely to have two neighbors at the same "angle" such that the wormholes to those two neighbors exactly overlap.
  • Added a new DisableShipFlameTrails settings option that lets you turn off flame trails on ships if you wish. For the super low end hardware, this may be a big deal, we'll see. The batching is really good on them, but for the lowest-end hardware it might make a notable difference just beause of how many pixels can get drawn.
  • Added the ability for windows machines to use OpenGLCore if needed, instead of being forced into DirectX9.
  • A ton of new settings have been added for letting you control the speed and responsiveness of both the galaxy map camera and main game camera. All of this is still just in the xml at the moment.
  • Mouse edge scrolling can now be turned on or off, and is on by default.
  • Expanded ship tooltips, both in the information shown and in the space used.
  • Added tooltips to build buttons for ships.
  • Fixed a bug that was making the UI update much less often than intended (was supposed to be every 333ms, and was closer to every 700ms), and since that still felt a bit sluggish in testing it now updates roughly every 100ms.
  • The game is now properly using dev builds that allow us to get proper stack tracks from you. That means it will be saying "DEVELOPMENT BUILD" down in the lower right corner in an annoying way we can't control, but it greatly speeds development.
  • The default window state of the game is now windowed, with the window size being 3/4 the size of whatever your screen is. You can change this in settings, but it makes for a pretty pleasing first size for most people, most likely.
    • It won't go any smaller than 1024px wide or 768px high in terms of the initial default, by the way -- but you can set it lower than either if you feel you must. ;)