Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

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

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

  1. ensiferum888

    ensiferum888

    Joined:
    May 11, 2013
    Posts:
    264
    That wood looks amazing!

    I'm not sure but I seem to be noticing the same thing, whether I snip a screenshot directly or use Application.CaptureScreenshot. Altough it seems to be much more worse in Photo Viewer than it is on a web browser.

    I think it's a really nice concept you have going right now! Keep it up!
     
  2. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    I noticed the same thing with Windows Photo Viewer. It looks worse in it than in the web browser, or other programs. That seems odd though, since I thought pixel colors were distinct, and were pushed through the rendering pipeline pretty much the same way for each program.

    Thanks! It's a lot more fun to develop when you get to have the short-term rewards of sharing progress with other developers. When you mix that in with the interest of seeing other projects grow, it becomes, in my opinion, more fun than actually playing them! (though that is, of course, still a huge part of the enjoyment)
     
  3. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new unit: Crocodile
    * Fixed that units would sometimes get stuck (on the target object) while trying to build or attack things. (the slower the unit's movement, the more likely it was too occur)
    * Made colored ring under units (for marking the owner) a little thinner. (.3 instead of .4 meters)
    * Fixed that fast-moving units could "jump" over the target position and begin a ping-pong effect, thus never reaching it.
    * Fixed an extremely annoying issue with the exporter, where having an animation/action selected that was not empty/equal-to-the-rest-pose would use that animation's pose as if it were the rest-pose. (so I'd have to make an empty animation for each model, and select it before export each time, to get around the issue)
     
  4. Venryx

    Venryx

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

    New Crocodile unit.


    Its attack animation being previewed on the Objects page.
     
  5. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Maps can now specify their own player list. (e.g. allowing 2 to 4 players, with the first player required to be the human)
    * A structure can now have an owner specified when placed in the map editor.
    * Units can now be placed in the map editor.
    * The Maps>Tools panel is now the Maps>Tool panel, and now it only displays the settings for the active tool.
    * The Matches page now shows the full list of available player slots, which can just be disabled/unchecked if not wanted to be active/played-as-by-someone in the game.
     
  6. Venryx

    Venryx

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

    Shows the better-focused/less-cluttered Tool panel on the left, the in-map-editor units in the middle, and the new Players panel on the right.


    The new Matches page UI for removing/disabling and adding/enabling players.
     
  7. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new structure type: Palisade Wall (after making the necessary changes to the model-loading and object-placement systems)
    * Added new object placement modes: Line (letting you, as expected, drag over a length of terrain to place objects along it), and Auto (uses Line mode for walls-and-the-like, and Basic mode for everything else)
    * Added object properties: auto-place-type and can-be-rotated (in preparation for wall objects)
    * Fixed that List and Dictionary properties of VObjects were being saved for the objects in a map, even though the items were identical to their type's.
     
  8. ensiferum888

    ensiferum888

    Joined:
    May 11, 2013
    Posts:
    264
    Wow you're really plowing through this! Tip of my hat to you! Are you working on this full time?
     
  9. Venryx

    Venryx

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

    A Palisade Wall enclosure in the map-editor.


    Shows me dragging over an area for the unit to start building a new wall.
     
  10. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Well, sort of. I'm living with my parents currently (oh, the shame... :p), so I try to spend most of my free time on it. That amounts to about 2 to 6 hours on most days. (I'd guess)

    That's a rough estimate... actually I'll check that Rescue Time app I've been using.

    Okay, the previous week I spent about 24 hours apparently, split among:
    * Visual Studio: 13:23
    * Blender: 5:19
    * Unity: 4:24
    * Notepad++: 0:54

    So about 3.43 hours a day for that week. In total time, it's probably somewhat higher than that base number though, since some of the time is spent conceptualizing/planning different components, reading documentation online, etc.

    P.S. The 5 hours in Blender was not from building models, by the way. I was working on tools to make the workflow easier. (e.g, setting up added-on-startup global variables and functions for the Python console, and making some "operator" functions for some project-related modeling tasks I expect to keep coming up)
     
    Last edited: Jul 12, 2015
  11. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    For a mix of personal reasons, the last 2 weeks have had much less development.

    Oh well. Keep moving forward.

    Updates:
    * Added new structure type: Palisade Gate
    * Added new object properties:
    . . . diagonalRects (list of rectangles that specify the areas of space taken by the object, when placed diagonally (since diagonally-placed objects sometimes use a different submodel (e.g. for Palisade Gate), rather than just rotating the main submodel))
    . . . canReplace (list of object-types that the given object can replace, e.g. a Palisade Gate can replace Palisade Walls)
    . . . canBeOpened (with properties: rects_open, rects_diagonal_open)
     
  12. Venryx

    Venryx

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

    New Palisade Gate structure being placed in the map-editor.


    Elephant unit passing under the gate of its biome, causing it to open.
     
  13. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    I think it might be good to start on optimization work soon. I've delayed it for a good while so I could focus on implementing the core features, but I think it's to the point now where having a smoothly running game would help the development process quite a bit.

    Probably the first thing I'll do is work on improving the start-up speed. It takes a good 15 seconds or so in all, and it adds up over the day (especially when you're doing lots of testing and debugging).

    Anyway, thought I'd mention this as it could mean fewer screenshot-visible features for a while.
     
  14. Whiteleaf

    Whiteleaf

    Joined:
    Jul 1, 2014
    Posts:
    728
    Ah, good ole AOE 2. :) My favorite was Age of Kings, that was the stuff. AOE II is still my favorite RTS game to date currently; glad to see you're taking influence from it!

    From the screenshots it looks as if this game is coming along very well. Can't wait to see what comes down the road!
     
    Venryx likes this.
  15. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Reduced the startup time by about 3 seconds, and increased the frame-rate by about 66% (from ~15 fps to ~25 fps--still bad, I know), by fixing that the materials within a VObject's model were never shared.
    * Fixed that a player could "build over" another biome's walls with their gate.
    * The "Log startup times" feature now has more detail/shows a wider and deeper tree. (e.g. lists biomes, technologies, self/extra-times (for tree-nodes with children), more object-loading details/nodes, etc.)
    * Added a level-3 cache system to the object-loading pipeline, improving object load speed (in the editor, at least). (level 1 trims the VDF and saves mesh data as binary, level 2 saves the entire object as an Asset Bundle (binary), level 3 saves the entire object as a project asset (binary and pre-loaded-in-editor))
    * Reduced the time-taken for resizing textures to about 80%, by switching from [Get/Set]Pixels to [Get/Set]Pixels32.
     
    Last edited: Aug 1, 2015
  16. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Screenshot
    ==========

    The startup-info time tree, now showing some additional nodes/information.
     
    Last edited: Jan 11, 2016
  17. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new unit: Deer
    * Reduced the startup time by about 300 ms by having the maps-page's loading happen after all the other page's loadings. (maps reference other data more often, so having them load after means we reduce the use of 'lazy-loading')
    * Fixed that the Objects page's selected object would start its animation on page show, even if the "Preview animation" setting was disabled.
    * A unit's move-to task is now canceled if a path isn't found on the first attempt. (fixes massive slowdown that would come from path-finding re-attempts being made every frame--in the future, may bring re-attempts back, but with a delay/retry-interval and a max-attempts limit)
     
  18. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    New screenshot
    ==========

    New Deer unit.
     
    Last edited: Aug 12, 2015
  19. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new unit: Camel
     
  20. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    New screenshot
    ==========

    New Camel unit.
     
    Last edited: Aug 13, 2015
  21. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new units: Rabbit, Lion
    * Fixed an extremely enraging rotation import bug, where animations would have certain joints, during certain segments, rotating in opposite directions.
    . . . It took a few hours to track down (it would bring up bad memories to explain why), and it ended up being a one-line fix. I had to change:
    . . . . . . rotation = VVector4.Quaternion_Inverse(rotation);
    . . . to:
    . . . . . . rotation = -rotation;
    . . . It had to do with--yes--my not understanding/being-used-to-using Quaternions enough. I started writing an explanation of the issue... but then thought, "You know, I don't know for sure if I've got this down yet--I better just keep quiet and be glad the Quaternion code seems to be behaving now.".
     
  22. Venryx

    Venryx

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

    New Rabbit unit.

    New Lion unit. (I bet you thought it was a penguin...)
     
    Last edited: Aug 12, 2015
  23. Whiteleaf

    Whiteleaf

    Joined:
    Jul 1, 2014
    Posts:
    728

    Loving the models. :)
     
  24. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    The interesting part will be when the more exotic creatures are being added, and I have to either start modeling them myself, or hiring someone for them. I think it'll be fun learning more 3D modeling techniques (like how to make such nice-looking/realistic/smoothly-transitioning texture maps/skins for animals), though realize it could take some time before those modeling attempts begin to be useful.

    In any case, I'd definitely like to become proficient at 3D Modeling at some point. It's one of my main life-long activities/pursuits (two others being programming and attempted book writing), and it's nice that it's also very useful in the game-dev world! (as opposed to hobbies that are disconnected from one's finances, lifetime goals, and each other)
     
  25. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new units: Zebra, Giraffe
     
  26. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    New screenshot
    ==========

    New Zebra and Giraffe units, as part of a lineup of all the unit types added so far.
     
  27. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new units: Rhino, Boar, Wolf, Grizzly Bear, Asian Elephant
     
  28. Venryx

    Venryx

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

    The five new units. (Rhino, Boar, Wolf, Grizzly Bear, Asian Elephant)


    The new unit lineup, as seen from the wall/gate.
     
  29. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Greatly reduced the path-find duration by fixing a crucial loop bug. (along with some smaller changes)
    * Greatly reduced the path-find duration by implementing a dual-layer path system. (first a rough path is found, then a detailed path is found between points along the way)
    * Fixed that a unit's predicted-points would continue into a target plant/structure, causing units behind it to think it will soon be out of the way, leading to them moving into each other.
    * Fixed that a unit would sometimes move into another while following an evasion path around it.
     
  30. Venryx

    Venryx

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

    Shows a group of 4 units successfully group-collecting from a Salt object. (in the past, half the units would get stuck because of path-coordination issues; it's still not perfect, but the coordination system works a lot better now) (note that formations are not yet implemented, though, so they still don't find any shared paths)
     
  31. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Fixed that right-clicking a build-pending structure would not cause the selected units to start building it.
    * Resource collection now requires units to drop the resources off at a compatible structure, rather than it instantly being added to the player's resources.
    * Added tabs for different Log categories to the Console page. Disabled categories don't have significant overhead, so more persist-past-debug-session logging calls can be set up.
    * Fixed that unit-a would sometimes get stuck trying to move away from next to an object, even though a path was open to an open grid-point, since the "start-block" would be within one of those nearby objects.
    * Fixed that unit-a would sometimes delay before starting to follow a valid other-unit-evasion path.
    * Fixed that path-l2's were created toward the *position* of path-l1 nodes, rather than the centers (which is what's used for everything else).
    * Fixed that path-l2's sometimes could not be found, because units were/would-be clustered around the target-object (but it would work out in the end because of stopping-before-getting-to-object's-center).
    * Merged resource-collection-speed variables into one (resourceCollectionSpeed). (having separate values would make it too complicated, given the number of units--there may be collection-speed differences between resources added later, but that would be global rather than per-unit)
     
  32. Venryx

    Venryx

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

    A group of five units working merrily on the stone-collection task I gave them. (they successfully collect, move to base, deposit, and return, without user intervention (they don't yet find a new target once the first one runs out, though))


    The new tabs used for categorizing Log messages. (I know it looks a little messy with two tab-bars, but that was the easiest UI to implement for it)
     
    Last edited: Aug 22, 2015
  33. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new object property: canAcceptResources (lets you specify which resources a structure accepts, as opposed to it being part of a hard-coded list)
    * Added new structure: Lumber Camp (wood resources can be deposited at it)
     
  34. Venryx

    Venryx

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

    A wolf bringing wood resources to a just-built Lumber Camp.
     
  35. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new structure: Mill (Fruit and Meat resources can be deposited here)
    * Model animations with the suffix "[AS]" are now started automatically when the object is placed.
    * Fixed that a selected animation would start playing after opening the Objects page, even if the "Preview animation" option was disabled. (fixed for real this time)
     
  36. Venryx

    Venryx

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

    New Mill structure. (and the blades are animated, yay!)
     
  37. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new structure: Mining Camp
    * Added a bit more debug info for exceptions that occur during model-loading.
     
  38. Venryx

    Venryx

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

    New Mining Camp structure. (Yeah, it's kind of bland right now. I'm trying to keep things simple for now, till the core structures and units and features are in place. Then I'll start making occasional 'spruce-up' passes where old models like this are improved.)
     
  39. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Another break in development, although this time I was working on something else:


    It doesn't have to do with this project, but I thought I'd post it anyway. (to substantiate my excuse, as well as just to show some more people what I worked on for the week)
     
    Last edited: Sep 5, 2015
  40. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added Fog of War to matches. (as an option)
    * Fixed that move-to-location tasks would sometimes fail, with the unit 'jumping past' the target location over-and-over.
    * Added info popups to the unit build buttons (in a selected-structure's Build panel).
    * Fixed that if there were too many items on the Biomes page, they would stack vertically, rather than being placed horizontally for scrolling to.
    * Fixed that an object's classes would show up as blanks, rather than their names.
    * The Object>General panel of the Biomes page now shows object properties more compactly. (e.g. showing all resource-costs on one line)
    * Fixed that the Console>Log>Clear button wasn't working.
     
  41. Venryx

    Venryx

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

    Fog of war! (I forgot to fix that enemy object markers still showed in unexplored areas [now fixed])


    Build/production item info popups.
     
    Last edited: Sep 5, 2015
  42. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Fixed that object decorations/interactions (radius circles, markers, colliders for right-clicking on, etc.) would show/be-enabled for FOW-hidden objects.
    * Fixed that minimap-marker points would not show for objects existing in the base map (i.e. not added during-or-after match launch).
    * Unit movement paths are now a bit smoother. (level-2 paths are found 'along' level-1 paths, rather than directly from level-1 path-point to path-point)
    * Fixed that the mouse cursor would change when over an object, even if the mouse was also over the UI.
    * Fixed that certain objects' property-combos (e.g. melee armor + pierce armor) would show up twice in info popups, if in the second column.
    * Improved performance during unit move tasks by having the CS side not send the positions and rotations to the JS side every frame. (the JS side doesn't even use those properties)
    * Fixed that structure animation would stop after switching-to-and-back-from another page.
    * Fixed that player-color markers would show for objects on the Objects page.
    * The Objects>Place tool's 'owner' property is now remembered between launches (per map).
     
  43. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new plant/crop system, where each Biome has its own crops with various properties. (rather than a generic Farm structure or the like)
    * Added new plant: Corn (crop)
    * Removed the Water Supply/Usage system. (and the Well structure along with it)
    * Replaced the "Meat" resource type with "Grain/Protein". (to work with the new crop system)
    * Categorized structure types into Economy and Military.
    * Added better Wood and Fruit resource icons.
    * Object preview images are now generated with less of a margin. (fills ~90% of the image diameter, instead of ~50%)
     
  44. Venryx

    Venryx

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

    The new resource icons at the top-left, the new Corn crop in the center, and the added categorization tabs in the bottom-left "action" panel (as well as larger preview images).
     
  45. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added a new map tool: Terrain>Resize (which does as you imagine--adds or removes chunks at the edge of the terrain, which can then be shaped)
    * Reduced terrain build-time to ~50% of prior. (overall map build time isn't reduced quite that much, though)
    * Map objects are now loaded at the same time the chunks underneath them are loaded. (so it's more visually appealing, matching with the incremental load system for terrain chunks)
    * The load-order of terrain chunks is now based on their distance from camera. (so it's more visually appealing, loading out radially from the user's viewpoint)
    * The view can now be changed during map loading. (The UI can also be used, though!--which needs to be fixed. Doing it like this for now for development purposes. (saves a tad bit of time being able to move while a larger map is loading))
    * The Tool panel is now hidden if a map is not loaded/selected.
    * Fixed that the Terrain>Shape and Regions>Paint tool sub-panels were too large, allowing slight scrolling off-screen in UI (using middle-mouse scroll).
    * Fixed that the Terrain>Shape tool would sometimes create holes/missing-sections while adding/extruding. (fixed the main way this occurred, anyway)
    * When adding/extruding terrain, chunks now take turns updating their mesh, rather than having one updating much more frequently (and thereby leaving gaps between the two).
     
  46. Venryx

    Venryx

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

    The new Terrain>Resize tool's UI. (and a four-times-as-large terrain that was created by way of it)
     
    NickHaldon likes this.
  47. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Updates:
    * Added new Map>Region settings by which plants can be set up to be 'generated on top of' the region's application areas. (makes it much easier to populate large areas with trees, in a flexible/easy-to-modify-after-initial-creation way)
    * Reduced frame-time to ~30% of prior (!), when a typical match is live, by using less reflection to call object update code.
    * Fixed that a just-cloned map's generated preview image would not show up in the UI.
     
  48. Venryx

    Venryx

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

    The new Map>Region plant generation settings.


    Just a demonstration that performance is getting better! The 14 units here run about as fast as 4 or 5 did just a day ago.
     
  49. Ronald_McScotland

    Ronald_McScotland

    Joined:
    Jul 30, 2014
    Posts:
    173
    Are you going to be doing networked multiplayer for this? I've been investigating the feasibility of doing a multiplayer RTS with unity, and there seems to be a lot of hurdles such as Unity's non deterministic physics engine and floating point errors making a lockstep simulation very difficult. I think I've figured out a way it would be possible to do a 2 player RTS with up to 200 units (which is what I'd need for my game idea) without using lockstep, but if you've given any thought as to how you'd do multiplayer I'd love to hear it.
     
  50. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    442
    Once the gameplay is solid (and interesting) for single-player, I will definitely attempt to add multiplayer.

    The non-deterministic physics isn't too much of a problem for this game, since the Physics system (e.g. colliders) is currently only being used to enable raycasting. As far as I know, that part of it is deterministic; if not, it shouldn't be too hard to replace the PhysX raycasting with a raycast system as part of the quad-tree network that's already being generated.

    As for floating point errors, that could be annoying, but from what I've read (looked into it for a few hours on a couple occasions) there are ways of fixing it (the steps can vary depending on language and platform, it seems), after which it should work fine. So an annoying step, but not a long-term barrier.

    So yeah, my intention is to implement multiplayer by means of a lock-step simulation once the time comes. (as for the data transfer, it should be helped along quite a bit by the synchronization/shared-data-tree system already in place for communicating with the UI and saving/loading data to/from disk)

    P.S. As for 'backup systems' if lock-step gets broken somehow during a game: I'd choose the route of games like 0a.d. that resolve dis-synchronies by just picking a client and using their version of events (the sooner the better, to get everyone on the same track again), rather than the Age of Empires II approach (which I hate) of instantly shutting down the entire multiplayer game and making everyone rejoin a re-hosting of it (if it even managed to save the game data before closing) [a super annoyance of mine with the AoE lock-step simulation system--most people would rather keep playing than lose a game over the possibility of some units jumping to a different location because of dis-synchrony correction].