Alloy Wings

Well, All good things must come to an end. I really enjoyed Argon Assault. It had loads of useful information and provided a fun environment to prototype and generate ideas.

I really tried to push myself on this and I hope it shows, let me know what you guys think!

5 Likes

The art is amazing, Did you do it yourself?

I’m not sure if it is my computer, webgl, or something else, but the game was a little too fast for my taste, it was kinda hard to aim because of that. Other than that the game works perfectly fine and it is really cool.

1 Like

Most of the art is free asset packs! I drew the icon next to the boss health bar but I think that’s about it.

Definitely understand your feelings about the game speed. I was trying to balance it to a point of giving the player a little less time than needed to shoot a large percentage of the targets. I noticed its much easier to hit the targets when playing on a gamepad however and that was how I did most of my playtesting.

Thanks so much for playing and for the feedback!

1 Like

I liked the choice of the bird to replace the ship. The level design and the general ‘look and feel’ is great. It really stood out from the other ‘Argon Assult’ versions. I think the speed is probably good. I’m not the target market for this type of game. But the aiming is really difficult. This is something I struggled with on my version as well, but I think the speed makes the shooting more of an issue. I tried once just avoiding everything with no shooting and I got much farther. You could probably tweak the shooting, but I think it could work with no weapon at all. It could work as more of an ‘endless shooter’ type gameplay with just dodging.

Other things that could work:
-Powerups that make the player ‘indestructible’ and you could just fly though enemies and kill them?
-Some kind of ‘explosion’ that destroys multiple enemies in a radius
-The first level is just dodging and you get some superweapon at the end and a chance at a ‘redo’?

I think they kind of player that likes this type of game is OK with re-trying the same level multiple times.

1 Like

Thanks so much! I think if I were to turn it into a larger experience I would opt for more star fox style levels where the player just moves forward at a constant pace. The cinematic camera angles are fun but it makes it hard for the player to shoot the enemy and made it hard for me to keep the speed feeling right.

Love your ideas for powerups or even just removing the ability to shoot.

One idea I had but decided not to spend the time developing was a score based reward system so getting certain point thresholds would get a weapon power up or just a cosmetic upgrade for your next playthrough.

Thanks again, I appreciate your feedback and for taking the time to try my game! :slight_smile:

@Yee @GameProgrammer2k You guys are way too nice! I just realized that I had left the player health at 1 after my testing! I reuploaded a new version with my intended health level if you felt like trying again. I’d be surprised if anyone survived long enough to see my boss battle the way that it was… :sob:

The boss fight was really awesome, super surprised when i got to the end.

I’ve been working on a starfox clone for the past year or so(since doing the course) All my focus went into gettting the movement feeling really smooth, also getting the enemies aiming at me( i had to take a mini math course to get the calculations right), i miss starfox 64 tons.

I think one huge help would be to add an aiming indicator, i found aiming to be really difficult, it also felt like i couldn’t aim “up” like there was no tilt to the character.

Loved the abrupt camera movement, likely a few spots that could be polished but i loved the chaos to it. Great job on this!
If you add more to it i’d love to play it!

1 Like

First of all, thanks so much for playing and giving me feedback.

I really enjoyed starfox too. I was actually thinking that if I were to turn this into a real game I’d make a bunch linear levels instead of all the dramatic camera angles. Just because it would be easier to regulate the speed and game feel. I’d definitely add an aiming indicator at that point as well.

Do you have any where I can try your game or follow your progress? Your game sounds awesome!

Sadly no. just a few instragram videos.

I’ve been meaning to set up a youtube to post some, only been sharing snips on instagram aha.

The toughest part for me was getting the enemies to shoot at me where i would be, needed to relearn how to do quadratic equations since i wasn’t using velocity to move in the system. Had to calculate it!

After that i switched back to the RPG course and finished that up. Was a terrific idea, learned so many better ways to do things.

1 Like

I finally got around to posting some videos. My screen capture is not the best so its not as smooth as it is playing it but.

1 Like

I started the RPG course after completing the 2D course and learned a lot but kind of felt like I was getting over my head so I went to the 3D course. I plan to go back to it after I finish up the 3d course though!

Your game looks awesome, don’t worry about the screen capture I understand that pain all too well.

I considered trying to get the enemies to shoot at me but as you said, it’s difficult and I didn’t want this to be a year- long project so I opted for the ramming style of attacks.

I feel you. I just finished (last week) the shops and abilities. Ive still had to go back and rewatch sections and read comments constantly to remember how it all works and where to make modifications.

Its really opened my eyes to how big a project is!

FYI, this is my combination of research to get the enemy to hit me, the only thing i’d note is I’m using the unity dolly cart system to move a consistent rate.

Keep in mind the rate of fire is currently on “absolute machine gun BulletHell” for testing purposes.

I would say the biggest help was this gentleman, i used his formula. Predictive Aim in Unity - YouTube

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LeadingAim : MonoBehaviour
{

    public Rigidbody projectile;
    public Transform target;
    public float projectileSpeed;

    Vector3 prevPos;
    Vector3 prevRot;

    static bool debugMode;

    // Start is called before the first frame update
    void Start()
    {
        prevPos = target.transform.position;
        prevRot = target.transform.eulerAngles;
        InvokeRepeating(nameof(Fire), time: 1f, repeatRate: 10f);
    }

    private void Update()
    {
        Fire();
    }

    public void Fire()
    {
        var instance = Instantiate(projectile, transform.position, rotation: Quaternion.identity);
        if (debugMode)
        {
            Debug.Log(TargetVelociy() + " Target Velocity");
            Debug.Log(projectileSpeed + " Projectile");
        }

        if (IntercerptionDirection(a: target.transform.position, b: transform.position, vA: TargetVelociy(), sB: projectileSpeed,
            result: out var direction))
        {
 
            instance.velocity = direction * projectileSpeed * 1.8f;
        }


        else
        {
            instance.velocity = (target.transform.position - transform.position).normalized * projectileSpeed;
            if (debugMode)
            {
                Debug.Log(instance.velocity + "Instance Velocity");
            }
        }
    }

    Vector3 TargetVelociy()
    {

        
        
        Vector3 newPos = target.transform.position;  // each frame track the new position
        Vector3 objVelocity = (newPos - prevPos) / Time.deltaTime;
        prevPos = newPos;  // update position for next frame calculation 
        return objVelocity;
    }

    public bool IntercerptionDirection(Vector3 a, Vector3 b, Vector3 vA, float sB, out Vector3 result )
    {
        var aToB = b - a;
        var dC = aToB.magnitude;
        var alpha = Vector3.Angle(aToB, vA) * Mathf.Deg2Rad;
        var sA = vA.magnitude;
        var r = sA / sB;
        if (MyMath.SolveQuadratic(a: 1 - r * r, b: 2 * r * dC * Mathf.Cos(alpha), c: -(dC * dC), out var root1, out var root2) == 0)
        {
            Debug.Log("no solution");
            result = Vector3.zero;
            return false;
        }
        var dA = Mathf.Max(root1, root2);
        var t = dA / sB;
        var c = a + vA * t;
        result = (c - b).normalized;
        return true;
    }

}


public class MyMath
{
    public static int SolveQuadratic(float a, float b, float c, out float root1, out float root2)
    {
        var discriminant = b * b - 4 * a * c;
        if(discriminant < 0)
        {
            root1 = Mathf.Infinity;
            root2 = -root1;
            return 0;
        }
        root1 = (-b + Mathf.Sqrt(discriminant)) / (2 * a);
        root2 = (-b - Mathf.Sqrt(discriminant)) / (2 * a);
        return discriminant > 0 ? 2 : 1;
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class EnemyTargeting : MonoBehaviour
{
    [SerializeField] float attackRange = 100f;
    [SerializeField] float maxDegrees = .5f;
    Transform target;


    //call leading aim from this script?
    //control fire rate from here? 



    void Start()
    {
        target = GameObject.FindGameObjectWithTag("Player").transform;
    }


    void Update()
    {
        //add logic to only look at target if in a certain distance.... maybe prevent them from looking"back" at player so you don't get hit from behind?
  
        transform.LookAt(target.position);
        
    }

}

1 Like

I played your game again and it was much more playable with the health bar, but still plenty challenging. I made it all the way to the end this time! The parts I like best are the sections where you can ‘make a path’ through the enemies by destroying them. The final boss scene was fun.

If it helps, I’ve been keeping track of information I find on the internet by creating folders in my bookmarks menu (I’m using Firefox) and bookmarking everything I find useful. I have a folder for unity development, and sub-folders for Errors, UI, Assets, Audio, etc.

I’ve also taken a detour from the 3D course for a bit so I can take the Blender course. I want to try using more of my own assets in the next chapter of the 3D game class. But this class has been great so far.

The more elements you put into your game, the more references you have to go back to later, which I’ve learned from my non-game development career. That’s why I added menus, audio settings, etc. to my most recent game, even though it didn’t really need them.

I’d rather have a bunch of failed elements in this ‘test’ game than have to clean up a mess of broken inefficient code in a ‘real’ game.

1 Like

That’s awesome thanks so much for your thoughtful follow up! I am interested in the blender course as well. I’m currently making all of my voxel art for realm rush. Instead of top down, I’m going for a more isometric perspective with blocks instead of tiles. Having a lot of fun so far, I’ll be sharing what I have here pretty soon!

Hey man. Really nice game! Two notes:

  • I found the speed to be fine, contrary to the other people on this thread. My main problem with the flow of the game was that there was no time to react to the upcoming challenge. This is either because you establish the threat of an incoming object a bit too late, or the flow of movement is a bit unpredictable.

  • I loved your choice of music (it suited the graphics really well), but the intro theme and the main theme are a bit incongruous with each other. Either making the intro theme a bit more intense or making the in-game theme a bit more relaxed would help the overall experience flow better.

You really inspired me to finish my experience. I wasn’t planning on doing it (because I understand HOW to make the experience, I couldn’t be bothered). Thanks for the inspiration!

2 Likes

I just realised I never came back to try out your Argon Assault game, despite your post helping me with the health bar implementation.

Love the design choices, as others have said, it makes it stand out from the crowd. While the aim is difficult and can take a little getting used to, I found the same with my project and didn’t want to spend an eternity trying to get it perfect, especially if I was going to move on to another project soon.

The boss fight sequence at the end is the best implementation of an original idea I have seen on this course (although admittedly, I haven’t played everyone’s game). I should have included something like that in mine, but I was too impatient to move on to the next section of the course!

I’ve done the low poly section of the Blender Course, which has been really helpful in creating my own assets for projects. I’m just adding finishing touches to my version of the Zombie Runner, and then may jump back into Blender Character Creator v2.0 to hone those skills and come out with better looking assets.

1 Like

Funny that I made my Argon Assault with an eagle as a manin character too

1 Like

Privacy & Terms