Skip to content

v1.0

Choose a tag to compare

@Gregorooooo02 Gregorooooo02 released this 19 Jun 21:40
· 147 commits to main since this release

First release of our RTS Engine! ;DD

Changelog for v.0.5.0.1 (17.05.2024)

-[Removed] NoiseTexture drawing in MapScene class.
-[Changed] Invalid field name being used in SceneManager's OnLoad method.

Changelog for v.0.5.0.2 (17.05.2024)

-[Changed] MainPath for non Windows systems to those of Windows.
-[Removed] The different initialization of AvailibleScenes based on system.
-[Fixed] InstanceRenderer's list in Renderer not being initialized correctly.

Changelog for v.0.5.1 (17.05.2024)

[Changed] ModelData class:

-[Changed] Level of detail thresholds now scale with maximum and minimum camera zoom values.
-[Added] Support for custom LOD thresholds.

[Changed] Camera component class:

-[Changed] Corrected camera serialization and deserialization.
-[Added] Proper Inspect method implementation to allow manipulating camera parameters in DEBUG window.
-[Changed] Camera parameters names now follow .NET pattern.

[Changed] Renderer class:

-[Changed] Adjusted shadows to better cover visible area.

Changelog for v.0.5.2 (19.05.2024)

[Changed] Globals class:

-[Added] Basic Paused flag.

[Changed] Layer component class:

-[Added] Proper Inspect method implementation.
-[Changed] Layer type field storing method.
-[Added] Layer component deserialization

Changelog for v.0.5.3 (19.05.2024)

[Added] Puzzle component:

-[Implemented] All component methods
-[Added] Basic puzzle drag and drop mechanic
-[Added] Drawing puzzle pieces and background
-[Added] Puzzle piece snapping logic
-[Added] Win condition detection

[Added] Puzzle piece class:

-[Added] Logic for handling individual puzzle pieces

[Changed] Renderer class:

-[Added] Added puzzle rendering

[Changed] All 2D rendering components:

-[Added] Option to use global position instead of local position for drawing coordinates.

Changelog for v.0.5.4 (20.05.2024)

[Added] FogReveler component class:

-[Implemented] All component methods
-[Added] Fog of war reveler logic in update method.

[Added] FogManager class:

-[Added] UpdateFog method that update fog masks if at least one of the active FogRevelers moved.
-[Added] MakeHole method that create a pixel circle in designeted loaction on the texture.
-[Added] Fog resolution option

[Changed] Game1 class:

-[Added] FogManager initialization;
-[Added] FogManager update.

[Changed] Globals class:

-[Added] FogManager static field.

[Changed] Shaders

-[Added] Fog of War support.
-[Added] Fog of war scale parameter.

Changelog for v.0.5.5 (20.05.2024)

[Changed] MapScene Class:

-[Added] New WorldObject to generate a chunked terrain
-[Deleted] Rendered heightmap sprite

[Changed] SceneManager Class:

-[Changed] If the WorldRenderer isn't null then we add a WorldRenderer to the List of WorldRenderers

[Changed] Renderer Class:

-[Changed] DrawWorld() method now draws all the elements in the WorldRenderers List
-[Changed] Now WorldRenderers list clears itself when the scene changers

[Changed] PerlinNoiseGenerator Class:

-[Changed] Implementation of the GenerateWhiteNoise()
-[Added] CalculateFalloff() method for falloff around the heightmap to create water
-[Added] Falloff for the GeneratePerlinNoise() method

[Changed] Helpers Class:

-[Added] Quick Clamp01() method

[Changed] GenerateMap Class:

-[Added] ExtractSubTextures() method to create subtextures of the main heightmap

[Changed] Terrain_Shader.fx shader:

-[Changed] Structure of the shader
-[Added] Multitexturing technique
-[Revert] Colored and ColoredNoShading; Textured and TexturedNoShading techniques for debug

[Changed] WorldRenderer Component:

-[Deleted] Old structure
-[Added] Chunk generation and drawing
-[Added] Multitexturing the terrain

[Changed] AssetManager Class:

-[Added] DefaultHeightMaps List for the debug and earlier implementation of chunk generation

Changelog for v.0.5.6 (21.05.2024)

[Changed] FogReveler component class:

-[Added] Track public field. It's a small Texture2D object that stores the texture with pixel circle used to render fog.
-[Changed] Reveal radius field from float to int.

[Changed] FogManager class:

-[Changed] UpdateFog method. Now instead of directly modifying the mask textures it renders the reveal area using Tracks stored in FogRevelers and RenderTarget2Ds. It had to be done this way because direcly modifing textures is way too slow.
-[Added] GetCircleTexure public method that, given radius, generates a small texture with pixelized circle of set radius.
-[Added] IsVisible method that checks if given point in space falls within one of the FogRevelers range.

Changelog for v.0.5.7 (22.05.2024)

[Added] WaterBody Class:

-[Added] Properties for the object to customize it how we want
-[Added] Constructor which sets up the water plane and saves it into the buffers
-[Added] Update() which updates the normal map offset to make an illusion of moving water
-[Added] Draw() method which uses TerrainEffect
-[Added] Up-down movement to simulate waves

[Added] Water texture
[Added] Waves normal map

[Changed] Terrain_Shader.fx:

-[Added] Vertex and Pixel functions responsible for the moving normal map

[Changed] WorldRenderer Component:

-[Added] In Draw() the water bodies are drawn with respective chunks
-[Changed] Update() is now updating the movement of the normal map

Changelog for v.0.5.8 (22.05.2024)

[Changed] All UI related classes:

-[Added] Proper resizing when changing screen size.

[Changed] Globals class:

-[Added] Logic for changing window size.

[Changed] InputManager class:

-[Added] Inputs for resizing the window.

Changelog for v.0.5.9 (22.05.2024)

[Changed] WorldRenderer Component:

-[Added] GenerateVoronoiFeatures() method which creates Voronoi regions with respective points at centroid
-[Added] GenerateRandomPoints() method to generate random points in the diagram
-[Added] ComputeVoronoiDiagram() - this method checks how the sites are positioned and creates respective regions to the diagram (of course with points)
-[Added] ClipVoronoiCells() method which clips the sites of the diagram. so they are close to each other and not far far away
-[Added] PlaceFeatures() method to place the features at the terrain that are in the diagram (you can also add some conditions to make it fancier)
-[Added] PlaceTree() method to place a tree - TODO: create an instanced render GameObject, so it doesn't lag that much
-[Added] DrawFeatures() method which draws the features on the WorldMesh
-[Changed] HeightData field from private to public

Changelog for v.0.5.10 (27.05.2024)

[Removed] Pathfinder component
[Removed] Searchparameters class

[Added] Node class:

-[Added] CurrectCost and ParentNode fields.

[Added] PathfindingManager class:

-[Added] GetNeighbors method.
-[Added] CalculatePath method. This method takes 2 nodes as input (start and goal) and calulates the path between them using A* algorithm.
-[Added] PathToListOfPoints method.

Changelog for v.0.5.11 (27.05.2024)

[Added] BloomSetting class

[Added] Bloom component class:

-[Implemented] All component methods.
-[Added] Bloom logic and drawing.

[Added] Shadars used for bloom.

[Changed] Renderer class:

-[Added] Support for bloom.

Changelog for v.0.5.11.1 (28.05.2024)

[Changed] InstancedRendererUnit component class:

-[Fixed] Frustum culling not working properly.

[Renamed] PathfindingManager class to Pathfinding

Changelog for v.0.5.12 (29.05.2024)

[Changed] Renderer class:

-[Fixed] Instanced models 'bleeding' into other scenes.

[Added] Models:

-[Added] Sawmill model
-[Added] Campfire model
-[Added] Grass model
-[Added] Human house model
-[Added] Tent model

Changelog for v.0.5.13 (30.05.2024)

[Added] MapNode class:

-[Added] Location, NodeCost, Height and Connections fields.

[Changed] WorldRenderer class:

-[Added] MapNodes 2D array field.
-[Changed] LoadHeightData method now additionaly initializes MapNodes and their connections using terrain shape
-[Changed] WorldRenderer now generates terrain in +X +Z space instead of +X -Z space.

[Changed] Pathfinding class:

-[Changed] GetNeighbors method now uses WorldRenderer's MapNodes for genetaing node's neighbors
-[Added] PathToQueueOfPoints method

[Changed] PickingManager class:

-[Added] PickGround method that given cursor screen position returns approximate point on the terrain that cursor point to.

[Changed] Node class:

-[Fixed] Contructor incorrectly initializing CurrentCost field if ParentNode was set to null.

Changelog for v.0.5.14 (01.06.2024)

[Added] AgentState abstract class:

-[Added] Initialize and UpdateState abstract methods
-[Added] State field

[Added] Idle agent state class:

-[Implemented] Initialize method that tries to initialize Wander state if it's not initialized yet
-[Implemented] UpdateState method that increments timer and if it reaches alloted idle time it changes state to the state that invoked this Idle state.

[Added] Wander agent state class:

-[Implemented] Initialize method that tries to initialize Idle state if it's not initialized yet
-[Implemented] UpdateState method that paths to random place around the agent, walks there and then changes state to idle.

[Added] Agent component class:

-[Implemented] All component methods
-[Added] AgentStates dictionary and _currentState fields
-[Added] Updating _currentState in update method

[Changed] Pathfinding class:

-[Changed] Pathfinding class and all it's methods to static

[Changed] PickingManager class:

-[Added] InterpolateWorldHeight method.

Changelog for v.0.5.15 (02.06.2024)

[Added] AgentsManager class:

-[Added] Units and Enemies agent lists.

[Changed] Wander agent state class:

-[Added] AngleDegrees method that given to Vector2s return the angle between them.
-[Added] A cap on how many times wander can attempt to repath

[Changed] Agent class:

-[Added] MoveToPoint method that, given destination point and speed, moves agent towards the point while snapping to terrain shape and rotating it so agent faces the moving direction.
-[Added] Failsafe for situation when no WorldRenderer is present
-[Moved] Many agent parameters to it's own class

[Added] AgentData abstract class:

-[Added] Hp, MaxHp fields
-[Added] Inspect DEBUG method

[Added] WandererData agent data class:

-[Added] All fields needed by Wanderer NPCs.

Changelog for v.0.5.16 (02.06.2024)

[Changed] Button Component:

-[Added] TOGGLE_ACTIVE action, when the button is pressed
-[Added] TOGGLE_ACTIVE_PARENT action, to toggle the parent active or not
-[Added] New property GameObjectName to find a gameObject by the given name in the Inspector

[Changed] GameObject Class:

-[Added] _wasActive property to check the previous active state of the GameObject
-[Added] SetChildrenInactive/Active methods to activate and deactivate children from the parent object
-[Added] ToggleGameObjectActiveState(string) to toggle the given GameObject state (you just give its name)
-[Added] ToggleParentActiveState() method to activate and deactivate parent GameObject

[Changed] BaseScene.xml:

-[Added] UI options for exiting the scene - it also has a confirmation window
-[Added] Basic meat counter and puzzle counter - need to be linked with variables in the GameManager Class

[Changed] Menu.xml:

-[Changed] Whole UI - it now has a title of the game and three buttons: Play, Settings, Exit

Changelog for v.0.5.17 (02.06.2024)

[Added] CivilianStart agent state class
[Added] UnitStart agent state class

[Added] Flee agent state class:

-[Implemented] UpdateState method that attempts to 'flee' by moving agent away from the alarm source. It stops if the distance away from target is high enough.

[Changed] Idle agent state class:

-[Added] Transition to Flee state in UpdateState method

[Changed] Agent component class:

-[Added] CheckFieldOfVision method. It's called if agent AgentLayer is set to ENEMY. It checks if any player unit is in agent's vision and increases alert value accordingly.

[Added] PlayerUnitData agent data class:

-[Added] All fields needed by Player Units.

[Added] SoldiertData agent data class:

-[Added] All fields needed by hostile enemies.

[Changed] WandererData agent data class:

-[Added] All additional fields needed by Wanderer NPCs.

Changelog for v.0.5.18 (03.06.2024)

[Changed] Animations Class in Animation Project:

  • [Changed] All variables are now public
  • [Changed] Animations constructor is now public, not internal

[Changed] CpuAnimatedVertexBuffer Class in Animation Project:

  • [Changed] Naming convention

[Changed] AnimationsProcessor in Animation Project:

  • [Changed] Deleted 'var' keywords; now using type variables

[Changed] AnimatedMeshRenderer Component:

  • [Added] _currentAnimation variable for current animation
  • [Added] Enum for process type of animation (CPU or GPU)
  • [Added] CloneAnimations() method for cloning the animation to fix the problem with animations overlapping each other

[Changed] Camera Component:

  • [Added] _keyboardControl boolean
  • [Added] _mouseControl boolean
  • [Added] _scrollControll boolean

[Changed] Content.mgcb

  • [Added] New fonts: extra light, light, medium, regular
  • [Added] Minion textures and minion model file
  • [Added] UI sprites (meatCounter, pauseButton and exitButton)

Changelog for v.0.5.19 (03.06.2024)

[Added] SoldierStart agent state class

[Changed] AgentData abstract class:

-[Added] DealDamage method

[Added] SoldierPatrol agent state class:

-[Implemented] Initialize method that tries to initialize Idle state if it's not initialized yet
-[Implemented] UpdateState method that paths and moves agent along delegated patrol path.
-[Added] UpdateIndex method

[Added] SoldierAttack agent state class:

-[Implemented] UpdateState method that paths and moves agent toward the target and, if it's close enough, deals damage to the target.

[Added] SoldierIdle agent state class:

-[Implemented] UpdateState method that increments timer and if it reaches alloted idle time it changes state to Patrol.

[Added] PatrolPathCotroller class:

-[Added] GetPathByIndex and GetPathByName that finds revelant PatrolPath and returns it's points
-[Added] PatrolPaths list field

[Added] PatrolPath component class:

-[Implemented] All component methods
-[Added] GetPathPoints methods that iterates through all ParentObject children and return the list of their global positions

[Changed] Pathfinding class:

-[Added] PathToListOfVectors static method

[Changed] SoldierData class:

-[Added] Additional needed fields

Changelog for v.0.5.20 (03.06.2024)

[Changed] AgentsManager class:

-[Added] SelectedUnits list field
-[Added] CheckForOrders method that manages the logic of selecting units and giving them orders to attack and move

[Changed] Pickable component class:

-[Added] PickableType enum
-[Added] Type PickableType field
-[Added] Option to change Type in DEBUG window

[Changed] Game1 class:

-[Added] Call to CheckOfOrders method of AgentsManager in Update

[Changed] PickingManager class:

-[Added] PickEnemy method that checks if player clicked on the enemy with RMB. If yes return Pickable of this enemy
-[Changed] PickUnits method to allow multiple unit selection

[Removed] Pathfinder component class
[Removed] PathfindingManager class

Changelog for v.0.5.21 (04.06.2024)

[Changed] AgentsManager class:

-[Changed] Added ability to give 'move' order in CheckFogOrders method

[Added] UnitAttack agent state class

[Added] UnitIdle agent state class:

-[Implemented] Initialize method that tries to initialize Move and Attack states if they are not initialized yet
-[Implemented] UpdateState method just waits for something to change so it can change to different state. Possible states to change to are Move and Attack

[Added] UnitMove agent state class:

-[Implemented] UpdateState method path and moves agent to designeted position.

[Changed] PlayerUnitData agent data class:

-[Added] Added fields to store move data like destination

Changelog for v.0.5.22 (04.06.2024)

[Changed] Camera Component:

-[Added] ImGui checkboxes for keyboard, mouse and scroll controls
-[Added] Serialization of those booleans

[Changed] TextRenderer Component:

-[Added] List of selectedVariables that should be linked into the TextRenderer
-[Added] Dictionary of variables from GameManager Class
-[Added] UpdateContentFromVariable() method to update the content of the TextRenderer based on the selected variable
-[Added] ImGui options for selecting the variables

[Changed] Content.mgcb:

-[Added] Placeholder for sand patch
-[Added] Button Hovered sprite
-[Added] Button Normal sprite
-[Added] Puzzle Counter sprite
-[Added] Width window sprite

[Changed] Game1:

-[Added] ImGui options for showing up the cheat menu

[Added] GameManager static class:

-[Added] Meat number variable
-[Added] Puzzle number variable
-[Added] CheatMenu() method for debug options

Changelog for v.0.5.23 (04.06.2024)

[Changed] AgentsManager class:

-[Changed] CheckForOrders method now passes attack target to all selected units properly

[Changed] CivilianFlee agent state class:

-[Changed] UpdateState method now uses the closest points to path as start and end points of pathing

[Changed] UnitAttack agent state class:

-[Implemented] UpdateState method that paths and moves agent to selected target, and if in range deals damage to it

[Changed] UnitMove agent state class:

-[Changed] UpdateState method now uses the closest points to path as start and end points of pathing

[Changed] SoldierAttack agent state class:

-[Changed] UpdateState method now uses the closest points to path as start and end points of pathing. Fixed pathing while to close to the target

[Changed] SoldierPatrol agent state class:

-[Changed] UpdateState method now uses the closest points to path as start and end points of pathing

[Changed] Agent component class:

-[Added] GetFirstIntersectionGridPoint method that given the location and direction return position of grid point that is nearest direction line

[Changed] Pickable component class:

-[Added] Type field serialization and deserialization

Changelog for v.0.5.23.1 (04.06.2024)

[Fixed] UnitAttack and SoldierAttack agent state classes:

-[Fixed] Attack delay timing

Changelog for v.0.5.24 (05.06.2024)

[Added] Building Component:

-[Added] PuzzleCost and UpgradeCost variables
-[Added] OnClick() method
-[Added] CheckAndActivatePuzzle() method which activates the puzzle child object

[Changed] Pickable Component:

-[Added] Serialization of pickableType

[Changed] Puzzle Component:

-[Added] PuzzleCompleted event
-[Added] When Puzzle is closed when player cancels the puzzle - reset the PlayerBuildingPickingActive flag

[Changed] TextRenderer Component:

-[Added] Serialization of the selectedVariables

[Changed] GameObject Class:

-[Added] HasComponent generic method

[Changed] PickingManager Class:

-[Added] PickBuilding method for picking buildings
-[Added] CheckForBuildingSelection() method to check if the picked building is pickable

Changelog for v.0.5.25 (05.06.2024)

[Changed] Button Component:

-[Added] SelectAndDeselect() method to change the ButtonVisual based if the button was clicked (confirmed) and after it was confirmed it can be also declined

[Added] MissionSelection Component:

-[Added] OnClick() method which activates mission window
-[Added] CheckIfWindowClosed() method

[Changed] Pickable Component:

-[Added] MissionSelect PickableType

[Changed] WorldRenderer Component:

-[Added] Serialization
-[Changed] Made some terrain and water corrections
-[Added] Tree generation

[Added] New sprites:

-[Added] chandelierNormal and Selected
-[Added] shelfNormal and Selected
-[Added] wardrobeNormal and Selected

[Changed] InputManager Class:

-[Added] CONFIRM and DECLINE GameActions

[Changed] PickingManager Class:

-[Added] PickMissionSelect() method
-[Added] CheckForMissionSelection() method

[Changed] SceneManager class:

-[Added] CreateMissionScene method
-[Changed] CheckForSceneChanges method to check and if needed create mission scene using CreateMissionScene method

Changelog for v.0.5.26 (05.06.2024)

[Changed] SolderPatrol agent state class:

-[Changed] _currentPathId field from int to string for easier serialization

[Changed] Agent component class:

-[Implemented] Serialization

[Changed] AgentData abstract class and all it's child classes:

-[Added] Serialization

[Changed] SceneManager class:

-[Added] Civilian spawning during mission generation

Changelog for v.0.5.26.1 (06.06.2024)

[Fixed] Building, Button and MissionSelection classes:

-[Fixed] Puzzle having some issues when completing

[Fixed] Globals class:

-[Fixed] Windowed resolution not being in 16:9 aspect ratio even tho it was assumed it was

Changelog for v.0.5.27 (06.06.2024)

[Added] Mission_UI scene to make the UI

[Added] UI prefab

[Changed] BaseScene Scene:

-[Changed] Position of the puzzleCounter

[Changed] Content.mgcb

-[Added] smallShelfSelected and Normal sprites
-[Added] chairSelected and Normal sprites
-[Added] candleSelected and Normal sprites
-[Added] taskComplete and Incomplete sprites
-[Added] taskViewer sprites
-[Added] minionBar and HP sprites
-[Added] heroBar and HP sprites
-[Added] alarmBar and Meter sprites

Changelog for v.0.5.27.1 (08.06.2024)

[Fixed] Some Release mode issues

Changelog for v.0.5.28 (08.06.2024)

[Changed] Puzzle component class:

-[Added] Resizing with screen size
-[Added] Better puzzle background to show puzzle grid
-[Fixed] Puzzle snapping not working properly

[Changed] All AgentData classes:

-[Changed] Default repath time from 2 to 0.5 seconds.

[Fixed] UnitAttack and SoldierAttack agent state classes:

-[Fixed] Agent rotation while attacking

[Changed] CivilianFlee agent state class:

-[Changed] Civilians now try to slightly change direction to avoid map border

[Changed] CivilianWander agent state class:

-[Changed] UpdateState method now uses the closest points to path as start and end points of pathing

[Fixed] PickingManager class:

-[Fixed] Game no longer crashes if player select terrain outside of map border

[Changed] Some shadars parameters are now hardcoded into shaders

[Changed] Renderer class:

-[Added] Support for terrain shadows and fog of war

Changelog for v.0.5.29 (10.06.2024)

[Deleted] Old Animation Pipeline

[Added] New Animation Pipeline:

-[Added] AnimationChannel Class, which represents a channel from the whole animation e.g. "walk"
-[Added] AnimationClip Class, which gets all the information about the current animation channel, like name and duration
-[Added] AnimationController Class - controls the playing animation and also controls all the bones in the SkinnedModel; other options in this class which can be set are interpolation modes for translation, rotation and scaling, speed, playback mode, looping and cross fade between the animation clips
-[Added] SkeletonController which controls the skinned model based on the weights it has
-[Added] SkinnedModel which represents the .fbx model loaded from the Content - it also has the animation and rig from the .fbx file
-[Added] SkinnedModelBone Class to get every bone from the rig and transform it based on the current frame
-[Added] Reader classes for AnimationClip, SkinnedModelBone and SkinnedModel
-[Added] AnimationChannel, AnimationClip, AnimationKeyframe, SkinnedModelBone and SkinnedModel Content Classes to get the information from the .fbx file through the Content Builder

[Deleted] Dude model, because it didn't work and it's no longer needed

Changelog for v.0.5.30 (10.06.2024)

[Changed] Renderer class:

-[Added] Full support for flood outlines for selecting units and enemies

[Added] Outlines shader to render outline masks
[Added] MergeShader shader to apply outline postprocess effect

[Changed] Pathfinding class:

-[Changed] Node cost function from Euclidian to Manhattan distance

[Fixed] Waterbody class:

-[Fixed] Water not rendering correctly

[Changed] Agent component class:

-[Added] Prototype agent separation

Changelog for v.0.5.31 (11.06.2024)

[Fixed] Puzzle component class:

-[Fixed] Puzzles sometimes crashing the game due to sprite depth problems

[Fixed] Civilian behaviors:

-[Fixed] Civilian behaviors no longer cause immense framerate drops

Changelog for v.0.5.32 (11.06.2024)

[Added] AnimatedModelData Class - implementation based on ModelData

-[Added] AnimationController in the AnimationModelData
-[Added] ActiveAnimationClip Variable to the animation knows, which animation it should play.
-[Fixed] Crossfading between animations not working properly

[Added] Textures for the minion.fbx model

[Changed] PBR_Shader.fx:

-[Added] BoneTransforms matrix
-[Added] BoneIndices and Weights in the VertexInput
-[Added] New VS method called PBR_Skinned, so it updates the vertices of the model based on the loaded animation

[Changed] ShadowMaps.fx:

-[Added] BoneTransforms matrix
-[Added] ShadowMap_Skinned Vertex Shader
-[Added] ShadowSkinned technique to render shadows from skinned models

[Changed] Renderer Class:

-[Added] ShadowSkinned technique as the current technique when rendering shadow maps for the animated objects
-[Added] In DrawShadowMap() method for animated renderer we pass the BoneTransforms parameter into the shader

Changelog for v.0.5.33 (11.06.2024)

[Changed] UnitMove agent state class:

-[Changed] Player units now try to avoid other player units using separation

[Changed] Agent component class:

-[Changed] Agent separation is now a little better

[Changed] Pathfinding static class:

-[Changed] Closed nodes limit from 50000 to 20000

[Changed] WorldRenderer component class:

-[Changed] Water height from 5 to 2.5

[Changed] Renderer class:

-[Changed] Ally outlines from dark green (0,100,0,255) to white (255,255,255,255)

Changelog for v.0.5.34 (12.06.2024)

[Changed] Renderer class:

-[Changed] Enemy outlines from dark red (100,0,0,255) to red white (255,0,0,255)

[Changed] SceneManager class:

-[Fixed] Player unit spawning in mission on Mac

[Changed] MapNode class:

-[Added] AllyOccupantID and EnemyOccupantID fields to support Nav Mesh implementation

[Changed] Pathfinding static class:

-[Changed] Closed nodes limit from 20000 to 5000
-[Changed] GetNeighbors method now accounts for Nav Mesh node occupancy

[Changed] Agent component class:

-[Added] Logic for occupying map nodes for Nav Mesh implementation
-[Removed] Agent seperation logic as it's no longer needed

[Changed] UnitMove agent state class:

-[Changed] Pathfinding is now performed in parallel

Changelog for v.0.5.35 (13.06.2024)

[Changed] UnitAttack agent state class:

-[Changed] Rewriten state to use pathfinding in parallel

[Changed] AgentsManager Class:

  • [Added] Clapped variants of the enemy types lists (killed) for quality progress updates in tasks
  • [Added] Initialize() method which offsets the sprites of the characters, so they are properly placed on the UI
  • [Added] In CheckForOrders() we now change sprites if the picked unit is selected or deselected

[Changed] Agent Component:

  • [Added] Child objects for the UI (main UI, health bar, health status, icon)
  • [Added] In Update() - health bar is scaled based on the percentage of the HP

[Changed] Building Component:

  • [Fix] When Puzzle is active - campfire picking is disabled

[Changed] SpiteRenderer Component:

  • [Added] SelectAndDeselect() method to change the sprite if it's selected or deselected
  • [Added] CompleteAndIncomplete method to change the sprite if it's status is completed or incomplete - mainly for tasks

[Added] Task Component:
This component is responsible for creating customs tasks for the game. User can modify it's progress, goal, reward type, it's description, target (civilian, soldier or building) it's status and also a reference to the TextObject, which is a child by default.

[Changed] Transform Component:

  • [Added] SetLocalPositionX() which changes the position of the object on the X-axis
  • [Added] SetLocalScaleX() which changes the scale of the object on the X-axis

[Added] New minion animation - COMPLETED

[Changed] InputManager Class:

  • [Added] New GameActions: SELECT, DESELECT, COMPLETE, INCOMPLETE

[Added] Updated Chair prefab
[Added] Updated UI prefab

Changelog for v.0.5.36 (13.06.2024)

[Added] Emitter component class:

-[Implemented] All component methods.
-[Added] Logic for sound effects
-[Added] Support for 3D sound effects

[Added] Listener component class:

-[Implemented] All component methods.

[Changed] AssetManager class:

-[Added] Support for sound effects

Changelog for v.0.5.37 (13.06.2024)

[Fixed] CivilianWander agent state class:

-[Fixed] Pathing on map border
-[Added] Logic for selecting nearby free map node if target point is not available

[Changed] Pathfinding static class:

-[Added] GetNearbyFreePoint static method that searches for available map node nearby

[Changed] SceneManager class:

-[Added] RemoveScene that removes scene while properly deloading all assets used'

[Fixed] UnitAttack agent state class:

-[Fixed] Units sometimes abandoning their attack targets

[Cleaned] All agent state classes

[Fixed] Renderer class:

-[Fixed] Some rendering problems with 2D rendering

Changelog for v.0.5.38 (14.06.2024)

[Added] ProjectileManagert class:

-[Added] ActieProjectiles list and _queuedProjectiles queue fields
-[Added] AddProjectile method that creates new projectiles and adds them to _queuedProjectiles
-[Added] UpdateProjectiles method that adds projectiles to active scene from _queuedProjectiles and deletes inactive projectiles

[Added] Projectile component class:

-[Implemented] All component methods
-[Added] Projectile flight and damage dealing logic

Changelog for v.0.5.39 (15.06.2024)

[Changed] UnitAttack agent state class:

-[Added] Support for projectile attacks

[Changed] PlayerUnitData and SoldierData agent data class:

-[Added] Parameters for projectile attacks

[Changed] SoldierAttack agent state class:

-[Changed] Pathfinding is now performed in parallel

Changelog for v.0.5.39 (15.06.2024)

[Added] Task Component - responsible for controlling the tasks on the mission

[Changed] GameManager Class:

  • [Added] CheckTasks() method to check the completed tasks

[Changed] InputManager Class:

  • [Added] New GameActions: NONE, INCOMPLETE, GAME_OVER and also WIN

Changelog for v.0.5.40 (15.06.2024)

[Changed] WorldRenderer

-[Changed] Pathfinding nodes are no longer generated in water

[Fixed] UnitAttack and SoldierAttack agent state classes:

-[Fixed] Some AI problems

[Fixed] Renderer class:

-[Fixed] Shadow map problems

Changelog for v.0.5.41 (16.06.2024)

[Changed] WorldRenderer class:

-[Changed] Terrain generation is now better. Mountains are taller and beaches more steep eliminating Z-fighting with water
-[Changed] Water height from 2.5 to 3
-[Changed] Made water into one big plane istead of smaller individual planes for each chunk

[Fixed] PickingManager class:

-[Fixed] InterpolateWorldHeight method taking values from wrong place

[Changed] Renderer class:

-[Changed] Clear color from dark gray (32,32,32,255) to black (0,0,0,255)

[Changed] CivilianFlee agent state class:

-[Changed] Pathfinding is now performed in parallel

Changelog for v.0.5.42 (17.06.2024)

[Added] Assets:

-[Added] Barrel model
-[Added] Sand pile model
-[Added] 3 variants of rock model
-[Added] Signpost model

[Fixed] Agent component class:

-[Fixed] Unit portrait healbars not scaling properly with screen size
-[Added] EnemyBuilding agent type and all it's logic
-[Added] Logic for buildings map node occupancy

[Added] BuildingStart agent state class
[Added] BuildingData agent data class

[Fixed] Pathfinding static class:

-[Fixed] Generating node neighbors not working properly

[Added] AttentionBarController component class:

-[Implemeneted] All component methods
-[Added] Logic for managing global attention bar state

[Changed] AnimatedMeshRenderer component class:

-[Changed] It now uses IsPaused flag to stop progressing animation

[Changed] AgentsManager class:

-[Added] Move order marker logic

[Added] Marker component class:

-[Implemented] All component methods
-[Added] Logic for moving and dissabling move order marker

[Changed] Projectile component class:

-[Added] Projectile now faces the flight direction

[Changed] SceneManager class:

-[Changed] CreateMissionScene method now utilizes Loading screen while generating mission scene in parallel

[Changed] WorldRenderer component class:

-[Changed] Added support for parallel world generation

[Changed] AnimatedSpriteRenderer component class:

-[Added] Scaling relative to screen size

[Changed] Camera component class:

-[Changed] Camera now follows terrain shape while moving

[Changed] WaterBody class:

-[Changed] Water is now affected by Fog of War

Changelog for v.0.5.43 (18.06.2024)

[Fixed] Renderer class:

-[Fixed] Fog rendering affecting other rendering

[Changed] Building component class:

-[Added] Logic for building structures in camp

[Added] BuiltBuilding component class:

-[Implemented] All component methods
-[Added] Logic for upgrading buildings in camp

[Fixed] Marker animated model

[Changed] AnimatedMeshRenderer component class:

-[Added] Proper serialization

[Fixed] CivilianFlee agent state class:

-[Fixed] Game no longer hang if civilian tries to flee outside of the map

[Changed] Shadow map resolution from 4k to 8k

[Changed] MeshRenderer and AnimatedMeshRenderer component classes:

-[Added] Option for the model to not be affected by Fog of War

Changelog for v.0.5.44 (19.06.2024)

[Changed] PickingManager class:

-[Added] Support for animated models picking

[Added] Minion animated model

[Fixed] Sand Pile model pivot point

[Changed] All player unit agent state classes:

-[Added] Changing animation according to agent state

[Changed] All civilian agent state classes:

-[Added] Changing animation according to agent state

[Added] Assets

-[Added] dmgPuzzle sprite
-[Added] healthPuzzle sprite
-[Added] Civilian animated model

[Added] Healthbar component class:

-[Implemented] All component methods
-[Added] Logic for displaying healthbars above

[Changed] PickingManager class:

-[Added] CalculatePositionOnScreen method to get screen position of point in 3D scene

[Changed] Shadow map resolution from 8k to 4k

[Changed] Renderer class:

-[Changed] Outline rendering from Jump Flood to just Sobel

[Changed] Agent component class:

-[Changed] Enemies are now hidden in fog
-[Added] Death frame synchronization with game logic