Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    6
  • comments
    0
  • views
    294

Last quarter additions

Sign in to follow this  
Paszq

421 views

Haven’t written for a while, but I have been working on the project tirelessly 🙂

I managed to implement a different animation system for weapons, each one can have a unique animation (instead of predefined by very broad weapon type). Here’s an example – Slingshot for Ranger:

Slingshot – the first weapon of every Ranger character got unique animations 😉#gamedev #indiedev #lowpoly #indiegames #unity3d pic.twitter.com/mFR8x0iofi

— Arpago (@ArpagoGame) October 16, 2018

I completely remade buffs/debuffs system – replaced it with Aura Controller, each aura can have its own icon, effect, length, etc… all affected by player/enemy stats. And it is all visible on the hud 😀

Minor improvements to the debuffs UI 🙂#gamedev #indiedev #indiegames #unity3d #lowpoly pic.twitter.com/mcIatOEYge

— Arpago (@ArpagoGame) October 30, 2018

…as well as a few new particle effects, here are some examples:

Stun:

New visual effect of being stunned ⭐🦊⭐#gamedev #indiedev #indiegames #lowpoly pic.twitter.com/cStG9Okf45

— Arpago (@ArpagoGame) November 4, 2018

Haste:

Changed the effect of haste, and fixed the animation#gamedev #indiedev #lowpoly #unity3d pic.twitter.com/drOiMR13NJ

— Arpago (@ArpagoGame) November 23, 2018

Armor buff:

Tweaked Armor buff spell effect a bit#gamedev #indiedev #lowpoly pic.twitter.com/KHX5nAGD7X

— Arpago (@ArpagoGame) November 24, 2018

Invisibility:

Fixed invisibility effect for all races 🙂#gamedev #indiedev #lowpoly #madewithunity pic.twitter.com/IaOWEXcs2D

— Arpago (@ArpagoGame) November 20, 2018

I implemented Pause functionality, as well as a bunch of in-game settings (which are saved, yay!)

Bunch of new options – sensitivity, font type, font size 🙂#gamedev #indiegames #indiedev #lowpoly #screenshotsaturday pic.twitter.com/dQj717qpcZ

— Arpago (@ArpagoGame) November 11, 2018

Added Death system – for now, a short message is shown for a few seconds, and then you get teleported back to the last camp you rested at. Later, I plan on healing all enemies around the player who died, to remove possibility of rushing back after respawn again and again:

Slightly improved the visibility of the "You are dead" text#gamedev #indiedev #lowpoly #unity3d pic.twitter.com/j7g1CfpeAO

— Arpago (@ArpagoGame) November 26, 2018

Created a ship that will be present in the game’s intro sequence:

…with fully modelled interior, which serves as main menu + character creation hub:

Character creation / Load game menu progress 🙂#gamedev #indiedev #lowpoly #indiegames pic.twitter.com/5Xk7KErqdS

— Arpago (@ArpagoGame) December 13, 2018

Completely redesigned loading system – now with added level-specific loading screens and progress bar:

Starting up the game and loading a character 🙂🦊#gamedev #indiedev #indiegames #lowpoly pic.twitter.com/NP5Uqs9oFk

— Arpago (@ArpagoGame) December 20, 2018

Split-screen multiplayer functionality added to main menu + improved co-op specific interface + fixed a TON of issues with it:

A bit of co-op gameplay 🦊🐸#gamedev #indiedev #lowpoly #indiegames pic.twitter.com/7vxQMH6crn

— Arpago (@ArpagoGame) December 23, 2018

Implemented varied environments within one “level” – like getting into a cave without a loading screen

Getting in a cave!#gamedev #indiedev #indiegames pic.twitter.com/Qv89ggbrfQ

— Arpago (@ArpagoGame) December 27, 2018

Entirely new Fog of war (map discovery) controller – now it’s pretty slick, and it’s saved together with each player character separately. I really like it 😀

Remade fog of war for the game's map – now it looks better, saves, and loads with the character! 🙂#gamedev #indiedev #indiegames #lowpoly #madewithunity #screenshotsaturday pic.twitter.com/bFhREJk7m8

— Arpago (@ArpagoGame) December 28, 2018

Also added collision blocks to prevent players from falling into the abyss or walking outside of the level

Added some collision blocks to create invisible walls, so that players won't fall out of the map 🙂🦊🗺pic.twitter.com/rVwahXXmuO

— Arpago (@ArpagoGame) January 6, 2019

…and currently I am working on dialogues and quests. Here’s a little walk around the Dagis village, and a dialogue with farmer Ferk, who’s probably the first person you’ll meet there.

A short stroll around the village + checking the new (more complex) dialogue 🦊🐸⚔pic.twitter.com/Zjp5SoSrI0

— Arpago (@ArpagoGame) January 16, 2019

In case you have any questions or remarks, feel free to write here 😀
…or visit project’s Twitter https://twitter.com/ArpagoGame/
…or visit its website – http://arpago.eu

Thanks!

The post Last quarter additions appeared first on Arpago.


View the full article

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • What is your GameDev Story?

    In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

    (You must login to your GameDev.net account.)

  • Blog Entries

  • Similar Content

    • By Sambo Hobbs
      Hi there,
      I'm new to gamedev.net, but I have a question.
      If I don't have all OS types, but I know that I can build to all of them.
       
      How do I know what are the min and recommended specs to tell Steam?
      My game Super Kittens is a game developed in Unity engine and it will be released on 28th Feb 2019.
       
      It is a family friendly first person game.
       
      Thanks Sam
    • By Brain
      The storage tank is built of two materials, an outer layer that is a refractive glass, which has reflections of the scene on it, and an internal material that flows and oozes like the pool below it, as if its having fluid pumped through it.
    • By DividedByZero
      Hi Guys,
      I am playing with projective texturing which I now have working well.
      However, I am having troubles figuring out how to blend the original texture with the projective texture. I am trying to make it so the projective texture is painted on top of the original texture.
      I have come close with this
      textureColor = TextureStandard.Sample(SamplerWrap, input.textureCoord); float4 texMixed = (projectionColor * projectionColor.a + textureColor * (1 - projectionColor.a)); color *= texMixed;  
      But this is giving me the following output;

      The skull should be a solid black, and the greens are a bit washed out outside of the projected area.
      Any advice on how to cleanly project the skull on to the body would be truly appreciated.
      Thanks in advance
    • By Transcendent
      So this is the problem that I have :- https://youtu.be/kU8Dm5bDJXg
      This is the code i am using:-
      using System.Collections; using System.Collections.Generic; using UnityEngine; namespace SA { public class AnimatorHook : MonoBehaviour { Animator anim; StateManager states; public void Init(StateManager st) { states = st; anim = st.anim; } void OnAnimatorMove() { if (!states.canMove) anim.ApplyBuiltinRootMotion(); states.rigid.drag = 0; float multiplier = 1; Vector3 delta = anim.deltaPosition; delta.y = 0; Vector3 v = (delta * multiplier) / states.delta; states.rigid.velocity = v; } } } For additional reference see the following code
      using System.Collections; using System.Collections.Generic; using UnityEngine; namespace SA { public class StateManager : MonoBehaviour { [Header("Init")] public GameObject activeModel; [Header("Inputs")] public float vertical; public float horizontal; public float moveAmount; public Vector3 moveDir; public bool rt, rb, lt, lb; [Header("Stats")] public float moveSpeed = 5f; public float runSpeed = 8f; public float rotateSpeed = 20; public float toGround = 0.5f; [Header("States")] public bool onGround; public bool run; public bool lockOn; public bool inAction; public bool canMove; [Header("Other")] public EnemyTarget lockOnTarget; [HideInInspector] public Animator anim; [HideInInspector] public Rigidbody rigid; [HideInInspector] public AnimatorHook a_hook; [HideInInspector] public float delta; [HideInInspector] public LayerMask ignoreLayers; float _actionDelay; public void Init() { SetupAnimator(); rigid = GetComponent<Rigidbody>(); rigid.angularDrag = 999; rigid.drag = 4; rigid.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ; a_hook = activeModel.AddComponent<AnimatorHook>(); a_hook.Init(this); gameObject.layer = 8; ignoreLayers = ~(1 << 9); anim.SetBool("onGround",true); } void SetupAnimator() { if(activeModel == null) { anim = GetComponentInChildren<Animator>(); if(anim == null) { Debug.Log("no model found"); } else { activeModel = anim.gameObject; } } if(anim == null) { anim = activeModel.GetComponent<Animator>(); } //anim.applyRootMotion = false; } public void FixedTick(float d) { delta = d; rigid.drag = (moveAmount > 0 || !onGround) ? 0 : 4; DetectAction(); if (inAction) { // anim.applyRootMotion = true; _actionDelay += delta; if(_actionDelay > 0.3f) { inAction = false; _actionDelay = 0; } else { return; } } canMove = anim.GetBool("canMove"); if (!canMove) { return; } //anim.applyRootMotion = false; float targetSpeed = moveSpeed; if (run) targetSpeed = runSpeed; if(onGround) rigid.velocity = moveDir * (targetSpeed * moveAmount); /* if (run) lockOn = false; */ Vector3 targetDir = (lockOn == false) ? moveDir : lockOnTarget.transform.position - transform.position; targetDir.y = 0; if (targetDir == Vector3.zero) targetDir = transform.forward; Quaternion tr = Quaternion.LookRotation(targetDir); Quaternion targetRotation = Quaternion.Slerp(transform.rotation, tr, delta * moveAmount * rotateSpeed); transform.rotation = targetRotation; anim.SetBool("lockon", lockOn); if (lockOn == false) HandleMovementAnimations(); else HandleLockOnAnimations(moveDir); } public void DetectAction() { if (canMove == false) return; if (rb == false && rt == false && lt == false && lb == false) return; string targetAnim = null; if (rb) targetAnim = "Sword And Shield Attack"; if (rt) targetAnim = "Stable Sword Outward Slash"; if (lb) targetAnim = "Standing Melee Attack Horizontal"; if (lt) targetAnim = "Sword And Shield Slash (1)"; if (string.IsNullOrEmpty(targetAnim)) return; canMove = false; inAction = true; anim.CrossFade(targetAnim,0.2f); //rigid.velocity = Vector3.zero; } public void Tick(float d) { delta = d; onGround = OnGround(); anim.SetBool("onGround", onGround); } void HandleMovementAnimations() { anim.SetBool("run", run); anim.SetFloat("Vertical", moveAmount ,0.4f,delta); } void HandleLockOnAnimations(Vector3 moveDir) { Vector3 relativeDir = transform.InverseTransformDirection(moveDir); float h = relativeDir.x; float v = relativeDir.z; anim.SetFloat("Vertical", v, 0.2f, delta); anim.SetFloat("Horizontal", h, 0.2f, delta); } public bool OnGround() { bool r = false; Vector3 origin = transform.position + (Vector3.up * toGround); Vector3 dir = -Vector3.up; float dis = toGround + 0.3f; RaycastHit hit; if(Physics.Raycast(origin,dir,out hit,dis)) { r = true; Vector3 targetPosition = hit.point; transform.position = targetPosition; } return r; } } } I've been stuck on this for too long, any help will be highly appreciated
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!