Biome Defense
  • Home
  • Overview
  • Media
  • FAQ
  • Blog
  • Forum
  • Wiki

Updates - 2016-07-15

7/15/2016

0 Comments

 
Screenshots
​==========
Picture
New FirePulse projectile and movement-lines.
Picture
New trees.
Picture
New Maps>General panel. (on right)
Picture
New object VDF options.
Picture
New Objects page options. (with new plants marked on left)
Picture
New Live>Info panel. (and new outlining used to show that unit is a prototype)
Picture
UI to set match starting-age.
Picture
New Profiler>[Last data-frame] options.
Picture
New Profiler>[All data-frames] run-counts and Clear button.
Picture
New dev-settings.
79 updates
​==========
​General/Gameplay:
* Resources are collected from a plant by "attacking" it (i.e. knocking produce out)
* Proto units move at half-speed
* Deleted protos have a delay (10s) before being recreated
* Combat-types apply to object by default (rather than requiring defense-type entry)
* New combat type exists: energy (like pierce, but works on more things)
* Child clones again have slowdown applied
* Protos again have slowdown applied
* Health system is based on doubles (with armor being deflection percent)
* New ability exists: fire pulse [for now, all units have it]
* New global ability exists: AirStrike [for now, all biomes have it; fake one for testing]
* Proto units again default to NoAction stance

Content/Modding:
* New plants exist: Banana Tree, Banana Tree 2, Banana Tree 3, Banana Tree 4, Banana Tree 5, Cupuacu Tree 1, Jatoba Tree 1, Kapok Tree 1, Palm - Ground 1, Palm 2, Palm 3, Palm 4, Palm 5, Palm 6, Palm 7, Palm 8, Palm 9, Palm 10, Palm 11, Palm Bush 1, Palm Bush 2, Papaya Tree 1
* Building combat-type renamed "Impact"
* New "Create standard objects" Map setting exists, letting you disable the creation of the standard start structures/units
* New VObject>model>shaderOverride prop added
* Objects with UnitySource model can have vertex-colors auto-generated for AFS shader
* AFS shader can be set to double-sided (the new default)
* Object>General panel lets you set a "Height" prop, which scales the model during import
* New TreeCreator shader is added to shader-list for shader-override prop. (has better wind animation than AFS shader)

Fixes:
* Cloning proto no longer errors
* Towers no longer fire before being built
* ApplySoils (based on biome-at-start data) works again
* Cloning a map in a subfolder no longer puts clone in root folder
* Structures no longer fail to build.
* Projectiles no longer sometimes error on collision.
* Projectiles correctly stop moving after match-end.
* Projectiles whose target is destroyed while moving, get destroyed at target-pos anyway
* Objects are aligned to grid, even when the grid-size isn't 1
* Using the "FireProjectile_FirePulse" ability no longer errors

UI/Visuals:
* BottomBar>Info panel exists, showing object info (from both type and instance)
* Plant collect-health is shown in bar
* Proto units shown by white border around health-bar (rather than white outline around model) [outline dropped gpu fps too much]
* Biomes>Hotkeys>General renamed [Globals], and shows grid
* BottomBar>Globals panel exists (and its hotkey series works)
* Matches page lets you set the starting-age
* Arrow has fire effect at back, to make it easier to see
* Visualization for a path uses line-segments, rather than dots
* Data-frame-profiler lets you toggle profiling of outside-data-frame and inside-data-frame code
* Console>Profiler>[All Frames] panel has Clear button
* Maps>Maps panel has side-panel showing map info
* Objects>General panel has new "Show bounds" option
* New Objects>General>[Refresh Model] button exists
* UI exists for setting LOD values (making tweaking faster)
* New Objects>[Show Grid] option exists
* New Objects>[Show reference] option exists (shows translucent 5'11" man)

Framework:
* When error occurs in v-script, the call-path/vs-stack-trace is logged
* Stack trace is preserved better when called through Node.CallMethod
* VObject game-objects are categorized by type in scene
* VModelImporter has new UnitySource model-loading system. (letting model auto-processing occur, and letting vdf files reference differently-named models)
* VModelImporter transforms speed-tree models to be static-batchable
* VModelImporter transforms UnitySource models with AutomaticLOD comp to be static-batchable (swaps AutoLOD comp with native LODGroup, which works with static-batching)
* CacheL3 models are ignored if asset backing them is destroyed (i.e. cache item is invalid)
* LODs are automatically generated for objects, using method that works with static-batching (LODs can be configured in Main.vdf file)
* VObject class split into two classes: VObject (base type), and VObject_Type (holding the props that only type's have). (meaning: classes are smaller, and have clearer/narrower roles)
* "Proto build speed multiplier" setting exists
* "Attack speed multiplier" dev-setting exists
* NotTo[...] exclude-prop-from-serialization system cleaned up. (combined into one NotTo attribute class, and with better handling code)
* Profiler_AllFrame system also records and shows run-count

Performance:
* Data-frame-time reduced to ~80% of prior, by making-so:
* 1) Apply-transform-time reduced to ~12% of prior, by having Transform props be set directly (rather than through Change system)
* Data-frame-time reduced to ~80% of prior, by making-so:
* 1) CallJS-time reduced to ~50% of prior, by having the stack-trace only generated when capture-stack-trace is enabled in the Console>Calls panel.
* VDF deserializing run-time reduced to ~80% of prior, by making-so:
* 1) VDF.ParseTokens run-time reduce to ~72% of prior, mostly by using a switch statement instead of else-if's.
* VDF serialization run-time reduced to ~83% of prior, mostly by replacing some calls to Contains with a call to IndexOfAny
* Player serialize-time reduced to ~66% of prior, mostly by optimizing the VDFNodePath.ToString() method.
* Base VScript run-time (e.g. for two "every # seconds, run #" nodes) reduced to ~2% of prior, mostly by caching the GetNodesOfType results.
* VObject.Manifest run-time reduced to ~33% of prior, by having objects created during post-core-map-init run-path not refresh the blob-slices.
* VDF serialization-time reduced to ~66% of prior, by caching the pre-serialize/serialize/etc. method-lists.
* VObject.health and VObject.hasProduce.health are now traditional properties, rather than using the Node/Change system.
* Object health-bars are only repositioned if the unit's pos-on-screen changed.
* Calling VConvert.FinalizeVDFOptions no longer GC-heavily clones VDF alias Dictionaries.
* Static batching works for plants and structures
* Object cloning/instancing (e.g. during plant-generation) run-time reduced to ~33% of prior (map launch-time reduce to ~40% of prior), by making-so:
* 1) VObject_Type cloning saves to a VDFNode, caches it, then loads from that. (rather than doing a full to-string serialization cycle each time)
* 2) Less data is copied into instances from type; instead, instances just reference the type's data. (basically, any data in the type that stays the same, is just referenced)
* Object cloning/instancing (e.g. during plant-generation) run-time reduced to ~33% of prior (map launch-time reduce to ~40% of prior), by making-so:
* 1) Path-finder-cache is only calculated once at end of core-map-init.
* 2) Unnecessary Change calls are not occuring during VObject add-to-map.
0 Comments

Updates - 2016-06-10

6/11/2016

0 Comments

 
New screenshots
​==========
Picture
At the bottom-left: New BottomBar>Console panel, showing logging from path-finder specific to the unit, as well as the in-game code evaluator. (for debugging)

At the bottom-right: New proto-queue system shown at the top of the units panel, with a "prototype" of the given unit type created whenever the progress bar for one completes. Prototype units are non-working, non-fighting units from which you can "clone" to create child units. Child units are are weak and slow, but will after some time become adult units--your standard working and fighting force.
Picture
New BottomBar>Units panel, showing the new grid system they're layed out in, with a unit's info-popup showing.
Picture
One of the "child" units. Also shows the "general actions" panel at the bottom-left, and the "plants" panel at the bottom-right.
Picture
The Hotkeys panel, where plants, structures, and units can be aligned to grids. These grids are used both to lay out the items in the ui, as well as to determine what hotkey triggers them. (top left is triggered by the "Q" key, the one to its right by the "W" key, etc.)
Picture
About the same as the above. Lets you align "general actions" and structure-specific "abilities/technologies" to grids. The general actions consist of things like "Set Stance - No Action", "Stop", or "Self Destruct". The abilities/technologies consist of special building-based attacks (none added yet), as well as technologies the given structure can research.
33 updates
==========
​* Data-frame-time reduced to ~20% of prior. (i.e. FPS greatly improved)
* Console/log panel has textbox to run arbitrary code on the active object, and button to include/exclude the "Console" (output) log-category
* Enemy non-firing buildings are considered passive-threats (and attacked as such, rather than completely ignored)
* Enemy buildings that can shoot arrows are considered active-threats (along with enemy units)
* If trying to open map-dependent tab, but no map is selected, default back to first tab
* Player color is used for in-ui health bars (to match the overlay ones)
* Profiler_CurrentRun works the same as Profiler_AllRuns (uses same Block structure)
* Player can select objects even while paused
* Units do not show the black-and-white fade/dissolve effect for their health
* Transform functionality of VObject moved to own component (part of refactor, since VObject class was getting huge)
* Mesh functionality of VObject moved to own component (same as above--part of refactor)
* A unit does not show the black-and-white fade/dissolve effect for its health
* Info popup for a plant, structure, unit, or tech shows up (showing name, health, attack strength, etc.), when hovering over its button on the Live>Action panel
* Biomes page shows defenseTypes and attackTypes contents
* Walls no longer flatten the terrain under them.
* A human-owned unit with move-task displays line to target (if setting enabled)
* VObject's PostChangeBounds method only updates stuff when our pos on .1-meter grid changes [for better framerate]
* All "lodge" structures removed (making way for new unit-build approach)
* Energy system removed (making way for the simpler "ability cooldown" approach)
* Draft system removed (making things simpler, and emphasizing baked-in harvesting abilities of certain units)
* Buildings produce unit prototypes rather than regular units
* A prototype is created for each unit-type, as that unit-type becomes unlocked
* Prototype objects are outlined, and can't work/attack [will soon be used for "cloning" to create non-prototype working-fighting-and-such units]
* Habitat Center's model changed to the old Grazer Lodge model
* New proto-queue system exists that the user can add to (creates new proto-units on timer)
* Unit production buttons are now used for prototype-creation-queue
* Grid system used also for structures
* Proto-queue system auto-adds unit-type when empty (by count, then by order on keyboard)
* UI exists for modifying object grids
* Objects missing from object-grids are auto-added
* Biomes tech-tree panel no longer deselects object in middle-mouse scroll
* Object-grid cells have working hotkeys (for now same as clicking buttons)
* "Fruit/vegetable" resource replaced with "Sugar", "Grain/protein" resource replaced with "Starch"
* Objects>Hotkeys panel exists for setting Action cells and structure Ability/Tech cells
* Abilities/Tech panel exists for selected-units' abilities and active-structure's abilities/techs
* Actions use the new grid system
* Plants use new grid approach
* Prototype unit can be "cloned" to create new unit of that type
* "Clone" units start smaller and slower, work slowly, and can't attack
* "Clone" units that are children turn into adults after X seconds
* Action cells enabledness updates based on whether action can be run
* Hotkeys do not run if ui has keyboard focus
* Camera-rects-from-ui are expanded by 1 pixel to ensure no rounding-errors/white-lines
0 Comments

Updates - 2016-05-15

5/15/2016

0 Comments

 
Updates:
* Main menu map/scene exists (e.g. shows terrain, plants, walls, units, and game title)
* Terrain>Flatten tool exists
* Placing a building on non-flat terrain, flattens the terrain (or makes a platform or something)
* VSNodes can be disabled (i.e. making-so trigger-nodes are not run)
* Action panel lets you set a unit's stance: no-action, or stand-ground
* New VDFProp prop exists: defaultValue (used to mark which value is the default, and therefore shouldn't be serialized)
* Terrain_Resize tool works again
* Browser console works again. (added workaround for issue with latest Chrome, where console freezes if the native Map function is overwritten (and kept overwritten))
* Scroll-views use the drag-based scroll approach by default.
* A match now (as intended) continues, if the player even has just a structure capable of producing units.
* Alt+? no longer triggers menu-bar items in Unity editor. (doing so would cause the game to lose focus, which was super annoying, and made the global hotkeys much less useful)
* Unit always faces its target when building/collecting/attacking
* Switching from-to Objects page no longer sometimes causes camera error
* Terrain height-testing succeeds even for high hills. (terrain areas above first chunk)
* Fog-of-war doesn't affect pages other than the Live page.
* Path visualizations don't show up on Maps page. (even if paused/game-finished)
* Node/Call panel shows: the selected-node's id
* Call panel renamed to 'Node/Call' panel. (since it now shows data for both the selected-node and the selected-call)

New screenshots
​==========
Picture
The new Main Menu map/scene. (a major improvement over the just-an-ocean background it used to have
Picture
The new Terrain>Flatten tool being used to easily create ledges.
0 Comments

Updates - 2016-05-06

5/6/2016

0 Comments

 
Updates:
* New cascading ui system exists. (with keybindings)
* Minimap displays full-screen, but only when space is held.
* Object console panel exists, for showing logs (and eventually allowing commands to be sent), specific to the active object (first selected object)
* Attack-system/path-finder finds path around peers (to target) when group-attacking
* If unit-A is attacking unit-B, and unit-B moves, unit-A spawns a new move-to subtask to get close enough to attack again
* Dev-setting exists that makes-so player can command ai units
* On-screen-labels are positioned better (perhaps just under selected-object-icons)
* Console/log panel has an auto-scroll checkbox
* New VObject props exist: set health to #
* Path-through object again actually gets used by dynamic path-finder.
* The Object_Attack task updates its move-to-target path, if the target moves.
* Lines are correct on first loading of scripts ui.
* In browser, buttons exist on Live page for selecting map objects (plants, structures, units).

New screenshots
==========
Picture
​The new cascading UI system. As evident, the controls/hud now take up *much* less space on screen. Of course, the cost is that not all the buttons can be visible at once. A new hotkey scheme makes switching between panels pretty quick, though, so I think the change is a good one overall. (one bonus is that it opens up a good spot for extra development panels, such as the Console/Log panel shown above)
Picture
​The new "minimap" system--hold space, and while you're doing so, the minimap displays full-screen. I'd like to later update it to be partially see-through, so you can see the battle in front of you, while also getting an overview of world events from the minimap overlay. (also, the icons for structures and units need to be brighter and/or larger)
0 Comments

Updates 2016-04-18

4/18/2016

1 Comment

 
* New General>Select tool exists, letting you select objects in a map.
* New Map>Object panel exists, letting you modify properties of the selected objected.
* Objects in a map can have a name/id set.
* A unit trying to attack, but being stuck somewhere, no longer continues showing its run animation.
* An AI unit, when attacking, moves toward the target's actual location again!

New screenshots
==========
Picture
​The new Object panel, allowing you to set an ID for an object. (so it can be referenced by the map's scripts/trigger system)
1 Comment

Updates 2016-04-04

4/4/2016

0 Comments

 
Updates:
* Objects page preview-animation feature works again
* Human unit exists, for DtH minigame (probably a hunter)
* Middle-mouse scrolling no longer scrolls below ui in Unity.

New screenshots
==========
Picture
The new human unit. Why did I suddenly add a human, when all the units so far have been animals?

Because the human unit is the bad guy in the "Defend the Hill" minigame I'm now shifting my focus toward. 

Basic idea: You play as the animals, and defend a hill in the center of the map from hordes of humans that spawn from the map's four corners. The enemy forces will grow at an increasing rate, so it's basically an arcade game where you try to last as long as you can.

Reason I'm shifting focus toward this: A full RTS experience will take some time to mature, because it requires its components to be well fleshed out (e.g. good path-finding, formations, and ai/multiplayer).

I'd like the game to be playable and fun before that, though, so I'm cutting back for the first phase to something relatively simple and easy to test.

With newfound organization (e.g. website, wiki, and task tracker), excitement, and a smaller scope, I hope to push forward quickly and bring a playable build to you guys within a few months. Assuming it succeeds, I'm hoping it'll give some enthusiasm for the project. 

From there, I can then begin incremental development based on user feedback. Which for me at least, makes things a whole lot more fun. (I've always loved the idea of having a community where my time invested can bring real improvements to the end-user's game experience, and I really like hearing people's thoughts on how things could be designed differently)
0 Comments

Updates - 2016-03-30

3/30/2016

0 Comments

 
​Updates:
* Set up main website for game: biomedefense.com
* Set up wiki website for game: http://biomedefense.mwzip.com
* Set up social media websites for game, on YouTube, Google+, Facebook, Twitter, IndieDB
* Maps are listed in tree-view mode. (rather than thumbnail mode)
* The new-map dialog lets you select the map size.
* Dialog text is not all-uppercase.
* New Profiler_AllRuns class exists (replacing the VDebug.S method system), making it easier to track the run-time of init methods and such.
* Serializer escapes single-quotes in keys.
* When a map is created, it's placed in currently-selected category/folder.
0 Comments

    Author

    Indie game-dev from Seattle.

    Archives

    July 2016
    June 2016
    May 2016
    April 2016
    March 2016

    Categories

    All

    RSS Feed

Powered by Create your own unique website with customizable templates.
  • Home
  • Overview
  • Media
  • FAQ
  • Blog
  • Forum
  • Wiki