Spenny

[Release] Punch Wizard

Recommended Posts

Everything about this reminds me of my childhood. Action figures outside, VHS scratch, and the music takes me back to early synth in early prog rock like Boston or Rush. I could stare at this for hours.

Share this post


Link to post
Share on other sites

Very cool game. I want...more lore though! Who are these characters and what is their world? The stop-motion toys thing is beyond cool. I'd like to see a full Metroidvania in this style!

Share this post


Link to post
Share on other sites

Thanks for all the kind words everyone. 

 

Very cool game. I want...more lore though! Who are these characters and what is their world? The stop-motion toys thing is beyond cool. I'd like to see a full Metroidvania in this style!

 

There's so so much more I'd love to do with this. I had thoughts of making a fake commercial as an introduction to the game. I would have really liked to had more than two levels. Cutting the background out of all the images took so long. Glad you enjoyed it.

Share this post


Link to post
Share on other sites

This game oozes style. The arrival of the Jurassic Park T-Rex figure at the end (right? I'm pretty sure I recognized the Dino Damage) was fantastic.

Share this post


Link to post
Share on other sites

How did you do the level art? Was that "found" resources too?

Share this post


Link to post
Share on other sites

Gah, this looks so good! The VHS filter is great, and I love all of the characters. I'd like to see more done with it!

Share this post


Link to post
Share on other sites

How did you do the level art? Was that "found" resources too?

 

Kz4mEUy.jpgqZq55QA.jpg

 

6EZ6EIf.jpg

Share this post


Link to post
Share on other sites

The look was really cool and I liked standing on enemies.
 

How did you do the camera-pathing?

Share this post


Link to post
Share on other sites

The look was really cool and I liked standing on enemies.

 

How did you do the camera-pathing?

 

 

It's designed, a simplified version of what I wrote for Super Battle Racers. You place some camera position game objects in the level, then the camera tracks a different game object and uses its X coordinate to interpolate between the camera positions.

 

Here's my camera code, including typo in the name of my parallax object script. Game jam code!

 

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

public class CameraScript : MonoBehaviour {

    public Camera thecamera;

    public Vector3 offSetVec;
    public GameObject followObject;

    public float moveSpeed = 5.0f;
    public float zoomSpeed = 2.5f;

    public List<CameraZoomTransform> cameraPositions;
    public List<ParralazObject> parralaxObjects;

    Vector3 posLastFrame;
    float originalZoom;
    float zoomLastFrame;

    int currentZoomTransform;

    void Awake()
    {
        this.currentZoomTransform = 0;
        posLastFrame = this.transform.position;
        zoomLastFrame = thecamera.orthographicSize;
        originalZoom = thecamera.orthographicSize;
    }

    void Update()
    {
        Vector3 targetPos;
        float targetZoom;

        if(currentZoomTransform == 0 && followObject.transform.position.x < cameraPositions[currentZoomTransform].transform.position.x)
        {
            targetPos = cameraPositions[0].transform.position;
            targetZoom = cameraPositions[0].zoom;
        }else if(currentZoomTransform + 1 >= cameraPositions.Count && followObject.transform.position.x >= cameraPositions[cameraPositions.Count - 1].transform.position.x)
        {
            targetPos = cameraPositions[cameraPositions.Count - 1].transform.position;
            targetZoom = cameraPositions[cameraPositions.Count - 1].zoom;
        }
        else
        {
            if(followObject.transform.position.x < cameraPositions[currentZoomTransform].transform.position.x)
            {
                currentZoomTransform--;
                if (currentZoomTransform < 0)
                    currentZoomTransform = 0;

            }else if(followObject.transform.position.x > cameraPositions[currentZoomTransform + 1].transform.position.x)
            {
                currentZoomTransform++;
            }

            if (currentZoomTransform >= cameraPositions.Count - 2)
            {
                currentZoomTransform = cameraPositions.Count - 2;
            }

            float lerpAmount = (followObject.transform.position.x - cameraPositions[currentZoomTransform].transform.position.x) /
                (cameraPositions[currentZoomTransform + 1].transform.position.x - cameraPositions[currentZoomTransform].transform.position.x);

            targetPos = Vector3.Lerp(cameraPositions[currentZoomTransform].transform.position, cameraPositions[currentZoomTransform + 1].transform.position, lerpAmount);
            targetZoom = cameraPositions[currentZoomTransform].zoom + lerpAmount * (cameraPositions[currentZoomTransform + 1].zoom - cameraPositions[currentZoomTransform].zoom);
        }

        this.transform.position = Vector3.Lerp(this.transform.position, targetPos + this.offSetVec, moveSpeed * Time.deltaTime);
        this.thecamera.orthographicSize = Mathf.Lerp(this.thecamera.orthographicSize, targetZoom, zoomSpeed * Time.deltaTime);

        //update parrralax
        Vector3 pdif = this.transform.position - posLastFrame;
        posLastFrame = this.transform.position;
        float zdif = (this.thecamera.orthographicSize / originalZoom) - zoomLastFrame / originalZoom;
        zoomLastFrame = this.thecamera.orthographicSize;
        foreach (ParralazObject p in this.parralaxObjects)
            p.UpdateParralax(pdif,zdif, this.transform.position);
    }

}

 

 

using UnityEngine;
using System.Collections;


public class CameraZoomTransform : MonoBehaviour {
    public float zoom = 10f;
}
using UnityEngine;
using System.Collections;

public class ParralazObject : MonoBehaviour {

    public float parralaxAmount = 1.0f;

    public void UpdateParralax(Vector3 cameraMove, float cameraZoomDif, Vector3 cameraPos)
    {
        this.transform.position += this.parralaxAmount * cameraMove;
        //this.transform.localScale += new Vector3(1, 1, 0) * cameraZoomDif * parralaxAmount;
        this.updateCameraScale(cameraZoomDif, cameraPos);
    }

    public void updateCameraScale(float scaleDelta, Vector3 cameraPos)
    {
        if (this == null || this.transform == null)
            return;

        Vector3 dif = this.transform.position - cameraPos;

        this.transform.position = cameraPos;
        for (int i = 0; i < this.transform.childCount; i++)
        {
            if (this.transform.GetChild(i) == null || this.transform.GetChild(i).transform == null)
                continue;

            this.transform.GetChild(i).transform.position += dif;
        }

        this.transform.localScale += new Vector3(1, 1, 0) * scaleDelta * parralaxAmount;
    }
}

Share this post


Link to post
Share on other sites

This is so cool. The VHS toy ad aesthetics, the advisor bai, his quips, the battery flap when the T-Rex dies, all so good. I really enjoyed the platforming as well, I could play a whole game of this! Only negative is that there wasn't really any fighting tactics that I could tell - just stand and hammer the punch key (and maybe jump out of the way once or twice). 

Share this post


Link to post
Share on other sites

This is so cool. The VHS toy ad aesthetics, the advisor bai, his quips, the battery flap when the T-Rex dies, all so good. I really enjoyed the platforming as well, I could play a whole game of this! Only negative is that there wasn't really any fighting tactics that I could tell - just stand and hammer the punch key (and maybe jump out of the way once or twice). 

 

Thanks for the words. Yeah, I was not fully satisfied with the combat systems either. It was a loose copy of

, but I'm clearly quite a distance away from truly mimicking that.

Share this post


Link to post
Share on other sites

Wow, nice entry! I loved the aesthetic of this game. The music was top notch, and the stop motion feel of the characters was great. I even managed to beat it!  :)

Share this post


Link to post
Share on other sites

Amazing! The title screen, the VHS effect, and the live action figure stop motion all look so good! :tup:

Share this post


Link to post
Share on other sites

This was a real pleasant surprise! In case you wanted to know what the Waypoint bump looks like:

 

hotsnips.PNG

Share this post


Link to post
Share on other sites

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