Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Biome Defense: An RTS fought between the animals of earth's biomes

Discussion in 'Works In Progress - Archive' started by Venryx, Jun 7, 2015.

  1. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * New obstruction-map exists, where cells are marked as 'taken' by a unit whose radius-circle contains its center (or whose center is contained by its rect), and 'touched' by units whose radius-circles intersect its rect. (also tracks cells 'taken' and 'touched' by static-obstructions)
    * Dynamic path-finder uses the new obstruction-map to avoid finding paths that would cause two units to 'take' the same cell. (rather than looping through nearby units and checking for radius-overlaps)
    * By the above change, dynamic-pathfinder's path-finder-time is reduced to ~40% of prior. (yes, exciting stuff! it's getting fast enough now that the game is playable even with a fair number of units hitting into each other (though it probably can't handle army-sized groups yet))
    * Path-finder now successfully finds paths through friendly gates; in case of enemy gate, cached path-finder will find a path through it, but the issue will be noticed before it's used, and the dynamic path-finder will be called instead.
    * New setting exists: Developer>showObstructionMap
    * Using the "set melee attack" or "set pierce attack" cheat codes no longer causes error.
     
  2. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    New obstruction map system, with visualization enabled. (cells are colored: red if taken by static-obstruction, yellow if touched by static-obstruction (for, e.g. openable-rects of gates), green if taken by dynamic-obstruction, blue if touched by dynamic-obstruction)
     
  3. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * For the dynamic path-finder, if the target pos is covered by an obstruction, it tries finding a path to a cell just next to the obstruction-blob.
    * If player right-clicks an allied unit, the game interprets that as a move-to command. (rather than nothing)
    * Obstruction-map-visualization is updated each data-frame-tick, rather than each view-frame-tick. (positions are only updated for/during data-frame ticks)
     
  4. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * New static-obstruction 'blob' system exists, where open regions are tracked and 'linked' with each other, letting one quickly determine whether a path exists between point A and point B.
    * For the cached path-finder, if the target pos is blocked by a static-obstruction (e.g. water, plant, structure), it finds a path to the nearest reachable cell. (found by querying the reachable blobs for their closest-to-target cell) [the dynamic path-finder will also do this if it fails the normal way]
    * Cleaned up a whole lot of core code concerning node-attach-points and node-paths. (it's actually fairly major; I've been delaying it for months)
    * New object-type exists: projectile (replaces the 'others' object-type, as that was too ambiguous)
    * Stone and Salt are categorized as 'plants'. (they're basically the same functionally)
    * Units placed in map-editor can build structures again.
    * Console>Flags panel replaced with a more advanced Console>Quick panel. (allows entering bools, ints, doubles, or strings, and only shows rows for entries that have been requested by C#-side code)
    * The debugger can now break on exceptions, without also breaking on intentional/info-passing exceptions. (for an intentional exception, just use the Exception_Silent type, and the debugger won't launch for it)
    * Terrain-hover-info is displayed at bottom-left of live-viewer-panel. (rather than bottom-left of whole screen, since that blocked the ui)
    * The constraint properties of UI spinners are now fully enforced. (enforcement applies to all spinners automatically instead of just marked ones, and now successfully discards values not matching the given 'step'/interval)
     
  5. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    The new blob and blob-slice system, with visualization enabled. (each area is: colored by which blob it belongs to, darkness-alternated by which blob-slice it belongs to, linked with white to neighbors in same blob, linked with black to neighbors in different blobs)

    Also shows the improved placement (and information) of the terrain-hover-info label just above the action-bar.


    Me using the majorly improved path-finding to invade the enemy... city, and split it in two with a wall of my own. (though I cheated once with the console, to break his gate open since I set its hp way too high...)
     
  6. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Last week's productivity report: http://plus.google.com/+StephenWicklund/posts/MSbYePvqq8Y (using an Android app I made!)

    Updates:
    * Modules page added, where you can design your own AI using visual scripting!
    * When a match is live, its AIs' module-instances show up on the Modules page. (letting you modify the AI on-the-fly/while-in-match)
    * New Module>right-panel>Debug panel exists, which shows up if the selected module is within the live match, and has these buttons: Pause/Resume (pauses/resumes the live match), Save as Type (saves this in-match module-instance as a regular module-type) [meaning on-the-fly AI changes can be saved back into the source (or a new) AI type]
    * New VScript trigger exists: "after data-frame tick, run #"
    * Relative VDF path is successfully found for, e.g. Module>scripts[?]>selectedCall. (find-path-to-object method had a bug)
    * Data-frame ticks no longer 'buffer up' while match is paused.

    Now off to develop the game's first AI!
     
    Last edited: Feb 8, 2016
  7. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    New Modules page. ("AI" is the main module type, but in the future I plan to add some others, such as unit behavior modules)


    Shows me editing an in-live-match AI module. (as you can probably tell, a good portion of creating the first AI will be expanding the properties/functions available in the side-bar)
     
    Last edited: Feb 8, 2016
  8. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * VDF+Node system can much more robustly handle complicated node-paths. (e.g. data for a map unit, hosted within a map/dictionary somewhere else but using the unit itself as the storage's map key, but storing that key by reference, while also allowing references that point to data in the map value)
    * Properties are now split into three types: 'script properties' (the some-day default, for when properties can be auto-added based on typing), 'module properties', and 'global properties' [and they have their own sections in the Properties panel]
    * Nodes of the form "after x, run y" now accept multiple nodes/values for their y-input. [order of input-nodes is determined by their y-pos: the higher on canvas, the earlier it's run]
    * A VDF map/dictionary can now have keys of a more-specific type than the map's declared key-type. (i.e. type-notation works for map keys now) [meaning the vsData hosting code is substantially cleaner/simpler now]
    * ModuleUI>Properties panel now remembers the selected vs-data, category, or property. (rather than just the selected property)
    * UI active-tab-indexes are saved on program close again. (and other small UI fixed/improvements, e.g. Modules>Scripts>CallPanel having padding)
    * Better support exists for generic-types in JS.
    * VSInit methods are now auto-called if they have a [VSInit] tag attached. (e.g. "[VSInit] static void VSInit()")
    * The module delete button works.
    * Right-clicking on a link successfully opens the context-menu for that link, rather than the node. (context menu system had click-through/priority bug)
    * Program now cancels saving of file-system-data (when the program exits), if any of the startup data fails to load. (rather than just the MainData.vdf file's data)
     
    Last edited: Feb 10, 2016
  9. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    Shows the new categorization in the Properties panel, and the new branching option for the nodes (i.e. nodes can have multiple follow-up nodes, running in order from top to bottom).
     
    Last edited: Feb 10, 2016
  10. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Work is started on the game's first AI, named "Dynamix". (specifically, the code/nodes to calculate how 'good for purchasing' each unit-type is, is in place)
    * An embedded data-path can reference something relative to its prop's node-root.
    * User-created properties are successfully marked as user-created. (which makes them allowed to be deleted)
    * Property delete function works again. (used to be trying to delete the prop by-value, whereas now it removes it by-key, since props are stored in dictionaries)
    * VUI control-types can be applied through code, and with an 'options' object passed. (as in JQuery)
    * ModuleUI>Nodes panel's scroll-offset is loaded and saved.
    * Scripts now start out with a prop 'script' which references the script itself.
    * Scripts are only allowed to have one output type. (although that output type can still be a tuple/set-of-values) [really need to implement some kind of overload system, so a method-name can have variant argument-handlers/implementations, though]
    * ModuleUI>Properties and ModuleUI>Call panels show and work with the active active-value type, rather than the simplification of it. (e.g. List(VObject) has its special properties show up, rather than just the IList's generic ones)
    * Properties panel shows props from ancestors for the given type or instance.

    VScript updates:
    * New global props exist: objects (gets list of object-types), new # (creates a new instance of the given type), new list, random integer from # to #, random double from # to #
    * New int/double props exist: [plus/minus/times/divided-by] [int/double] (used for doing math op without manual casting; I realize it's too long/verbose (there should at least be supplemental shorter versions), it's just a temporary solution)
    * New IDictionary props exist: get #, set # to #
    * New VObject props exist: speed, attack types, defense types, wood cost, stone cost, fruit cost, grain cost, salt cost
    * New List(VObject) props exist: plants (filters items to those of type 'Plant'), structures, units, projectiles
     
  11. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots:
    ==========

    First component of the AI, the code to determine the relative value/good-for-purchasing-ness of the available unit-types.

    I realize the node system is still messy, but I wanted to let readers in on the whole AI development process this time, (including clean-up of the base tools), instead of not posting anything for weeks until it all became ready. (if for no other reason, this tends to motivate me to work harder, when I can post my progress on a shorter-term basis)
     
  12. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Scripts can be parented/childed in the Properties panel. (just for organizational purposes for now)
    * A property can have its type manually set (in the Properties panel).
    * The "Delete call chain" right-click-menu option successfully deletes internal collapsed-nodes.
    * Properties can be created for the 'selected-node's active-value-type' subtree.* A Node that is an input for another Node can be successfully deleted.
    * Properties panel remembers whether the selected-vs-data was selected by the selected-call tree-node. (rather than its normal node)
    * Nodes panel less often fails to draw the node link-lines.

    VScript updates:
    * New double props exist: to integer (merges 'floor to integer' and 'round to integer', by way of whether its 'round' argument/detail is specified/set-to-true)
    * New IList props exist: add #, remove #, order by #
    * New List(VObject) props exist: for biome # (filters items to those which can be built by the given biome)
    * New Player props exist: biome
     
  13. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    Shows the new hierarchy/parenting possible for scripts (in the Scripts panel).
     
  14. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Last week's productivity report: https://plus.google.com/+StephenWicklund/posts/1Y4bSms5F84

    Updates:
    * Properties panel shows object-hosted props as well. (rather than just type-hosted props) [meaning scripts can reference data in/attached-to other scripts now]
    * Module auto-adds props for each of its scripts. (so scripts can reference each other, and data within each other)
    * Nodes with embedded nodes can again be deleted.
    * A depth-2 (i.e. doubly-embedded) node can now be added, so long as the depth-2 node does not have any inputs.
    * A prop dragged onto the node-panel creates a node at the correct position. (used to be offset to the right)
    * Various 'retriever scripts' are correctly categorized as action-scripts. (action scripts are scripts which cause side-effects/do stuff other than compute and return a value)
    * Scripts panel's rename, delete, and clone buttons get disabled when no script is selected.

    VScript updates:
    * New global props exist: 'every # seconds, run #'
    * New int/double props exist: increase by #, decrease by #, multiply by #, divide by # [equivalent to: +=, -=, *=, /=]
    * New Map props exist: objects, plants, structures, units, projectiles
    * New List(VObject) props exist: of player #
     
    Last edited: Feb 15, 2016
  15. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    Shows how an arbitrary object can host properties now, as well as the ui for specifying a property's type (which was added last update-post).

    Also shows the new approach I'm taking for the AI design. (the design doc has the full plan, this is just a part of it--I'm implementing the features needed for it, as I go)
     
  16. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * New ClusterFinder system exists, which uses the KMeans[++][PDN] algorithm (i.e. the KMeans algorithm, with two extensions: the first for finding better initial cluster-centers, and the second for finding the optimal number of clusters).

    VScript updates:
    * New Map props exist: get threats for # (finds enemy-unit clusters, with configurable max-cluster-size)
     
    Last edited: Feb 17, 2016
  17. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    The brand new ClusterFinder testing/development scene. Shows the sample data after running the cluster-finder, and coloring each resulting cluster's points.
     
  18. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * New right-click menu exists for the nodes-panel, letting you create custom 'subscripts'. (they're the equivalent of functions/methods) [the regular scripts are now called 'page-scripts', and are the rough equivalent of classes]
    * Custom retriever-script and action-script props can be created. (rather than just raw-value props)
    * By default, dragging a node also drags its descendants. (you can hold shift to move only that one node)
    * Nodes panel middle-mouse-drag uses the drag-background approach, rather than the regular gradually-scroll-in-direction-of-mouse thing. (drag-background approach is faster and more precise)
    * Input circle successfully shows as red when no node/value is given.
    * Node system no longer serializes or triggers PreAdd-and-such methods on Property children. (it only does so for Field properties now)
    * When node with selected-call inside it is deleted, the selected-call prop is successfully nullified.
    * When node-chain containing selected-call is deleted, the selected-call is successfully nullified.
    * ModuleUI successfully saves the sizes of the left and right panels.
    * Nodes panel less often fails to load the scroll offset.
    * Error no longer occurs when: leaving Maps page, without having opened the Scripts tab

    VScript updates:
    * Global prop 'for each item in #, have # become item and run #' renamed 'for each item in #, store as # and run #'.
    * Global prop 'new #' renamed 'create #'.
    * New global props exist: output # (called at the end of a script, outputting/returning the given value to the script's caller), output # as #, type #
    * New Threat props exist: objects
    * New VObject props exist: dps against #, health
     
    Last edited: Feb 20, 2016
  19. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    A portion of the in-progress AI that uses the new 'subscripts' feature (they're the visual-scripting equivalent of methods).
     
    Last edited: Feb 23, 2016
  20. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Last week's productivity update: https://plus.google.com/+StephenWicklund/posts/VBqupUNHp7S

    Updates:
    * VSNode trees can be copied and pasted. (including between scripts)
    * New call menu-option exists: remove input X
    * If a call's prop-name doesn't match any found prop, output type is just considered "object". (no longer causes error; eventually, call's text should also show up red)
    * A call does not have its non-required details/inputs added/shown at creation.
    * When a subscript has its "store as prop #" value set, its name is auto-set to that of the property.
    * When a property's type is changed, each node that references it has its active-value-type (and other prop-derived data) updated.
     
    Last edited: Feb 23, 2016
  21. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Properties can be renamed. (with script nodes auto-updated)
    * Units can be placed into formations. (only usable by AIs for now; also, doesn't actually affect unit shapes/movements, it's just a conceptual/organizational object atm)

    VScript updates:
    * Int/double props 'is or is less/more than #' renamed 'is at most/least #'. (it's shorter, while remaining perfectly clear)
    * New IList props exist: first, list
    * New Player props exist: create formation from #
    * New List(VObject) props exist: min task-count (props like these will be replaced at some point by inline, lambda-function-like call-chains)
    * New Formation props exist: units, attack threat #

    I know the update list above is pretty sparse... I'm posting now mostly since this marks the first point at which the AI actually makes decisions that are manifested in-match--or would be doing so, anyway, if not for the bugs that still need fixing.

    Next update should fix the bugs, and show an AI successfully moving its units and attacking the enemy! (kinda pitiful, but it's the start : P)
     
    Last edited: Feb 24, 2016
  22. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    The "attack launcher" script--the first iteration capable of performing actual/in-match-manifested decisions/moves/attacks. (should succeed by the next update, where I'll have fixed the script-system bugs--which have built up since I haven't been running the scripts in-match for a while)
     
  23. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * AI is able to control its units to attack the enemy! (when it thinks it has enough of an advantage against a threat/enemy-unit-group)
    * Path-finder can find a path to an enemy unit again. (path-finder would only correct the path-finder target when there was a static-obstruction, rather than for a dynamic obstruction as well)
    * For an in-match module, Call panel shows the last-value of the selected-call. (super useful for debugging)
    * A saved module has less text, since these props are no longer written if they're at their default value: Call>passiveValue, Call>activeValueTypeInferred, Call>pauseInDebugger, VSNode>thenExtension_node, VSNode>hasOwnBox, VSNode>position
    * Error fixed on call-input evaluation. (required/unnamed script-inputs wouldn't have their names initialized, e.g. to "unnamed_0")
    * Error fixed on calling a primitive-value's prop.
    * Error fixed on trying to find enemy threats, with a 'max clusters' value higher than the enemy-unit count.
    * Error fixed on AI run. (threat>handledness prop would get initialized to an int value, rather than a double value)
    * Error fixed on running a custom-script/subscript. (C#-side would overwrite prop's getter-setter value with the subscript itself)
    * Error fixed on running a custom-script/subscript. (script-run-stack would be initialized to null on program launch, rather than an empty list)
    * Error fixed on running a custom-script/subscript. (code would try to run the "start #" node, rather than the nodes it references)
    * A newly-created subscript property is marked as user-created and replaceable. (meaning user/scripts can actually set its veeding value!)
    * An "output #" node successfully adds its output to the newest frame of the call-stack. (rather than the oldest--C#'s Stack.Last() method gives the oldest, which I wasn't expecting, though can understand)
    * Error fixed on running "order by #". (code was trying to get the (non-existent) second generic-argument of the list-type, rather than the first (and only) one)
    * String literals can be successfully entered. (for setting passive-value, code would accidentally trim all characters, instead of just the first and last quote-marks)
    * Error fixed on running "order by #". (code was trying to create a result-list with item-type set to the prop-type of the input, rather than the item-type of the subject/source-list)
    * Error fixed on running FindClusters_Auto on a list of only one-or-so items.
    * Error fixed on AI trying to attack a threat that no longer has any (still existing) units.
    * New custom-thrown exception exists (for calls with a prop not marked as 'can run on nothing'): "Cannot get or set props on a subject-value of 'nothing'."
    * 'Nothing' counts as a valid 'object'. (i.e. it's type is considered 'object' rather than null, so is valid as input-value for, e.g. the "is #" script)
    * Player is taken to have lost if they have no units, and no unit-producing structures. (rather than no unit or structures at all)

    VScript updates:
    * New global props exist: skip this item (equivalent to a 'continue' statement)
     
  24. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    My last unit a few seconds before being defeated. (Yay! I sort of helped the enemy get enough courage by deleting all my other units, but still... it's cool to have a first AI iteration that actually does something.)
     
  25. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * When a structure is being built, it 'transitions in' using a dissolve-shader. (in reverse, i.e. it starts fully black and gains color from the ground up) [currently transitioning also happens when a building is being destroyed--will probably instead have fires or something later on)
    * Info-circle changed back to an info-box. (realized that a rectangle has greater clarity-for-its-size, i.e. obstructs fewer pixels while remaining visually distinct/precise) [a bit sad since I liked the look of circles, but oh well]
    * An animation (from a VModel file) marked as auto-start, loops like it used to. (would only play once for reimported models)
    * Objects page's bounds-override bounds-drawer has +1.3 z-offset to match with mesh. (was wondering why they always seemed off!)
    * Mill bounds-override matches with ground.
    * Duplicate game-objects do not get added to the BiomeDefense>Objects>Models>Static_Generated tree, when a VObject's model is reimported.
     
  26. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    The new transitioning effect for buildings under construction. (also shows the reversion back to health/energy bars)

    By the way: does anyone know how to get anti-aliasing/sub-pixel-width-and-height for UI elements? It's really bugging me that the health/energy bars have to switch so sharply between 1-pixel and 2-pixels high.
     
  27. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Last week's productivity update (I am ashamed :(): https://plus.google.com/photos/photo/108415649882206100036/6256669298066717314

    Updates:
    * New VObjects exist: Lettuce (crop)
    * New crop-placement painting-tool exists in-match for quickly planting/removing crops.
    * A VObject only 1 meter long on the x (left-right) or y (backward-forward) axis has its override-bounds properly aligned. (as relative to model-center)
    * A plant/structure with a width/height that's non-even, gets correctly positioned on map. (i.e. without .5x.5 offset)
    * Objects added on Maps page have their health shown in the UI in matches. (without having to get damaged first)
    * New VObject props exist: canBeWalkedThrough
     
  28. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    Shows the new Lettuce crop, as well as the fields of crops now able to be planted using the crop-painting brush. (doesn't look very interesting now, but should become so down the line once there are dozens of crop types with different build times, yield rates, natural reseed chances, etc. that are specific to their biomes)
     
  29. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Console>Profiler>[Call Paths] works again.
    * Data-frame-time reduced to ~80% of prior, by caching more Components.
    * View-frame-time reduced to ~50% of prior, by caching more Components.

    Pretty minor update, but I wanted to finish with one before taking a short break to work on something. (an update to the Productivity Tracker app making it so users can join a 'group' where member's graphs are shared with each other--the idea being to make 'getting work done' competitive and fun)
     
  30. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Set up main website for game: biomedefense.com
    * Set up wiki website for game: 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.
     
    Last edited: Mar 31, 2016
  31. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Objects page preview-animation feature works again
    * Human unit exists, for DtH minigame (a soldier/hunter with a knife).
    * Middle-mouse scrolling no longer scrolls below ui in Unity.
     
  32. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    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. :cool:

    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)
     
    RavenOfCode likes this.
  33. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Looks pretty cool, love the original approach of the original idea, so i hope this new idea will make you motivated to finish that one as well : )
     
  34. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Yeah, I hope so too.

    I don't mention this in the official description (since it may turn out to be impractical), but I actually intend to work on this project for the rest of my life, making the greatest RTS that I can. What's been described so far is just my best attempt at a "minimum viable product" from which I can support myself, for the future.

    Sidenote: This game project is one of a few things I'm hoping to continue till I pass away someday : ) Death isn't really a negative thing for me, (in fact, overall I'm glad of it), but I like the idea of continuing a project all the way up to that point, since to me it's really inspiring--and it fills me with wonder thinking about the potential people have to accomplish things if they work at it with passion and diligence. There have been wonderful people to come before, this lifetime is my turn to try to make something worth experiencing. (the game project isn't my main project, but it's the one I'll be focusing on most for some time, since I need some sort of income before anything else)
     
  35. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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!
     
  36. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    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)
     
  37. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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 cascading ui system exists. (with keybindings)
    * Minimap displays full-screen, but only when space is held.
     
  38. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Object console panel exists, for showing logs (and eventually allowing commands to be sent), specific to the active object (first selected object)
     
  39. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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.
     
  40. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    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)


    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)
     
  41. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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
     
  42. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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)
     
  43. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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)
    * 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)
     
  44. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Main menu map/scene exists (e.g. shows terrain, plants, walls, units, and game title)
    * 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
     
  45. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    New screenshots
    ==========

    The new Main Menu map/scene. (a major improvement over the just-an-ocean background it used to have)


    The new Terrain>Flatten tool being used to easily create ledges.
     
    manpower13 and RavenOfCode like this.
  46. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    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
     
    RavenOfCode likes this.
  47. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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
     
    RavenOfCode likes this.
  48. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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
     
    RavenOfCode likes this.
  49. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * Walls no longer flatten the terrain under them.
    * A human-owned unit with move-task displays line to target
    * VObject's PostChangeBounds method only updates stuff when our pos on .1-meter grid changes [better framerate, at slight loss of quad-tree and obstruction-map precision]
     
    RavenOfCode likes this.
  50. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Updates:
    * 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