Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

6 Games in 12 Months Game Jam Devlog

A topic by Cedar Cat Studios created Jul 12, 2021 Views: 4,316 Replies: 73
Viewing posts 11 to 30 of 65 · Next page · Previous page · First page · Last page
(+1)

Gameplay Adjustment

Summary

I was finding the game to not have a very fun gameplay loop. The act of aiming was very clunky and I felt like I didn't have any control over where the ball was going on the opposite side of the court. I wanted to fix that by providing the player with more control over their hit returns. I felt the most natural progression was to create a "bullet time"  (we can call it super slow ball time) mechanic and then allow the users to direct their shot during the brief window of slow motion during the game.  Super slow ball time is initiated by a cube that is a child of the player that triggers the super slow ball time once the ball enters the trigger.

I was able to achieve this relatively simply, but more improvements will for sure be made. The gif above showcases how the player experiences super slow ball time as well as a crude sphere (which will be an arrow eventually) allows the player to direct where on the other side the ball will be hit. I had to change up the button layout in order to achieve this. The player now uses the arrow keys to move and WASD to move their aim target. The aim target is only able to be moved during super slow ball time and resets when they leave super slow ball time.  

Conclusion

This makes the game already way more fun to play. I just sat against the bot for a few minutes screwing around and genuinely had fun! There is still a lot to improve, but I think this will lead to a much more satisfying gameplay loop.

(+1)

I love this concept, ngl.

(+1)

I’m so glad you love the concept! It’s been a lot of fun so far and really enjoy how it is keeping me to working on these quirky quick games. 


I am getting close to finishing Terrier Tennis and already excited about my next challenge!

(+1)

Terrier Tennis Update 3

Status

Overall I am quite happy with the progress I have been making on Terrier Tennis! The gif above (apologies if giphy cut the frame rate in half) highlights the current state of the game. I have been able to add a scoring mechanic into the game as well as properly position the titular terrier on either the right or left side after a point has been made. I also was able to model a score board to keep the track of the score as the match unfolds. Keen observes of Cedar Cat Studio games will see the infamous Stinky Cat hanging out on the score board! In addition to modeling the score board in blender I was able to also model the arrow to show the direction of the players hit. I also was able to animate it to add a bit more flare! 

While progress is going great, I will unfortunately be on the road for the next week and will not be able to work on game development in Unity until next week. While this is the case, I still have a lot of art and sound work that I want to get done which does not need to be done in Unity. I will continue to post here with updates outside of Unity for the next week. Finally, I have some days off work the following week and I am confident I will still be able to release Terrier Tennis by the deadline of September 6th!

Features Still Needed

  • True tennis scoring: 13, 35, 40, Game. As well as the "must win by two" rule.
    • I also would like to make the games be best of three so there will be a series of matches before the game is truly over.
  • I need to add a feature to allow a player and opponent to score if the ball hits in bounds and then out of bounds.
  • Main menu and opponent selection screen. I would like to add the ability for a player to choose who their opponent is (based on difficulty) and run through the gambit however they would like.
    • Unfortunately multiplayer or couch co-op are far out of the scope currently.
  • Opponent serves.
    • Currently the opponent only receives and never serves. I would like this to not be the case and to play like an actual round of tennis.
  • The opponent animator needs finishing.
  • Final background environment modeling.
  • More sound effects and theme music.
    • I will be working on this all next week :) 

Bugs That Need Squashing

  • The ball will still sometimes clip through the court for no reason. I still need to look into this.
    • Similarly sometimes the ball will hit the court and just stop in place.
  • The jump animation on the Terrier can be delayed for some reason sometimes.
  • The arrow will slowly shift further to the right as the match goes on and I do not know why?
  • I have a bounce counter which counts the number of bounces the ball takes after it is hit, and it only records in increments of two for some reason.
  • Frame rate fixing
    • I need to do performance tweaking as sometimes the frame rate can be pretty bad.

Final Notes

This has been a blast so far and I hope anyone reading is enjoying the progress on Game 2 of this game jam. Please feel free to comment on any suggestions you may have for Terrier Tennis or the game jam as a whole.

(+2)

Terrier Tennis Banner

Summary

First order of business during my week away from my computer was to flex the my “art” skills and put together a banner logo for Terrier Tennis. It’s not much, but I’m pretty happy with the outcome of this banner photo! I used Vectornator on my iPad to put this together and hope I was able to capture the titular character along with the mood of the game in this banner. I will likely use this in the official itch release banner and logo as well as on top of the score board to add some whimsy to the game. Overall this was a fun exercise, and I now need to focus on putting together some sounds for the later half of this week.

let me know what your thoughts are on the banner especially because I am extremely new to putting together this kind of art!
(1 edit) (+2)

Hey, the logo is already very cute (especially the details on the dog, the paw coming towards the viewer is amazing, haha, very dynamic), but I’d suggest playing with shadows and layering of text and image a bit, especially vectornator and similar apps allow for that very efficiently! Here’s an example I did with a vector app:

(+1)

Wow the shadows add some much more life to the graphic! Yours looks awesome! I definitely saw some easy shadow options but had no idea what I was doing. I’ll try and fool around with those and see if I can make my graphic pop more. 

I also love your colors. I kind of want to add more than just the green background now too!

(+1)

still not as good as yours, but I definitely tried to take some of the points you made to add more depth and make the banner feel way more dynamic and pop better! I’ll probably still tweak this some more, but I’m liking this way better!


(+2)

It’s already a lot more dynamic, good work! I’m sure you’ll get the hang of it faster with each game. :) You’re already doing great and I’m excited to see the other games you’ll come up with!

(2 edits) (+1)

Title and Menu Screen


Summary

I was itching to get back to game development after a week away, but I am glad I was able to take the previous week to dive into the vector art for the game. As you have been able to see in the previous posts, I arrived on the title text and a cute image of the titular terrier. I really enjoyed the process of creating this vector art and I wanted to incorporate it into this game, and future games. So I felt the natural progression was to build out the title and menu screens with these features included!

A title and menu screen have never been my forte. I usually just skip over this and do a quick and easy intro to the game, but putting more time and effort into this was honestly a lot of fun! I learned how to export my vector art graphics and text using the proper resolution to unity and convert to a 2D sprite while retaining the sharpness. My previous games all leveraged TextMeshPro, but I always felt the resolution was really bad. I am so glad I was able to figure out a better pipeline using my vector art.

In addition to the vector graphics being included in the title and menu screen I really wanted to add some more flair. The silly animation on the title page was super easy, but I feel it sells the fun of the game. The opponent selection was a bit more difficult, but learned a lot about render textures and how to render out another camera in the scene. The end result I think is pretty snazzy and is by far the most polish I have put into a title screen. Finally, I have never done a scene transition before but it is astonishing how much of an effect it has.

Final Note

This was a lot of fun to spend more time on the title and menu screen, but I still have a lot of gameplay tweaking I need to add in order to complete this game by my deadline of September 6th. I look forward to posting more here!

(+1)

The Home Stretch

Almost Done!

This evening marks the completion of the first full level against the German Shepherd! I purposely made this level to be able to be copied and easily modified to fit the remaining five dogs and their difficulty levels. Today I was able to create some vector art for the game over screen and also add some fun background music to the title menu as well as the game itself. Tomorrow I will be finishing up the game by creating the final levels and applying whatever remaining polish is needed. 

In an effort of time I actually ended up cutting a lot from the final product. I decided to make it so the player will only ever serve and in order to win you just have to get to five points. This is something I would enjoy fleshing out more if I wanted to spend additional time on this game. But that is the beauty of the 6 Games in 12 Months Game Jam. I am able to spend time working on a game and learning, to then move onto the next.

I have had a lot of fun with Terrier Tennis and think this may be the most polished game I have done so far, and have learned more than I honestly expected. I hope to release the game this weekend and I also hope you all find some enjoyment from it. I will plan that my next post will be the itch page link to the in browser game. I look forward to you all playing the game soon!

(+1)

Terrier Tennis Completed!

https://cedarcatstudios.itch.io/terrier-tennis

Summary

I'm excited to have finished Terrier Tennis before the deadline I set for myself! Putting this game together was a lot of fun and I learned more than I would have thought. While there are still many things I would like to improve in this game, I felt it was time for me to upload the build and enjoy completing the game. I hope you find some enjoyment from the game, and I can't wait to get started on my next project in the coming weeks. It would be great if you would be able to play the game and let me know your feedback so I can improve when going to my next projects.

Things I Like:

  • The player movement and aiming
  • The title card and opponent select menu
  • The scene transitions 
  • The music
  • The vector art throughout the game
  • The code (I did a purposeful job to spend time working on making elegant code)

Things I Don't Like:

  • The frame rate (the build frame rate in the matches is sub par and I just don't want to spend more time tweaking performance)
  • The opponent animations are quite harsh and limited
  • The sound effects could have been greatly improved
  • Limited to desktop html build (I would have liked to do a mobile build)

Conclusion

Regardless of the features I like and don't like, I learned a lot making this game and that is all I can ask for during this process. I can't wait for the next project, and I hope you are able to play my game and find some enjoyment from it. Thank you for watching my progress over the last month. I hope you stay tuned for my next games! 

(+2)

I ended up fixing the poor frame rate by moving the build off of WebGL/HTML5. For some reason this build had quite unplayable frame rate and the only way to fix it in this time was to move the build to PC/Linux/Mac. I wish I would have been able to make it playable in browser so it would be more accessible, but I would rather allow people to enjoy it rather than be frustrated with a poor build. 

Maybe in my next game I can work more on performance tweaking so this doesn't happen. Regardless I hope you enjoy!

Terrier Tennis Break Down Video

Similar to how I broke down "Free Range", I wanted to create a post-mortem analysis of my work on Terrier Tennis. Again, I had a lot of fun putting this game together and looking forward to working on the third game in the jam!
(+1)

Game 3 Development Begins

Summary

On October 3rd he asked me what day it was and I told him it was the day I started development on the third game in the jam! This time I found a game jam that coincides with with my own self created game jam. The game jam I will be taking part in along with for the third game is the One Game A Month game jam. The theme for this jam is shapeshift and I will try my best to make a game that goes along with the theme, but since completing my last game I have had some fun ideas that I would like to run with for my third game.

Game Idea

This game I would like to focus on making a fun little mobile game. My intention will be that the mobile game will have a very simple game play, but with the addition of a multiplayer functionality. This way I can focus on some of the complicated backend aspects that will go into making the game have a multiplayer feature. However, I will want to limit the scope of the multiplayer feature. Possibly I would like to maybe just have a leaderboard feature. 

The core game play I am thinking of is you are a cat that needs to tap some yarn to keep it in the air before falling below the screen. This way I can get a simple leaderboard just showing the user with the highest amount of yarn taps. I could possibly fit some of the shapeshift theme ideas into the yarn itself, but that is a concept I will tackle later on. 

In Conclusion

I am super excited to start working on the third game and love that I found a game jam (and a community) that I will be able to develop with. In addition, I am supposed to be traveling for work quite a bit this month and it will be hard to develop being away from my computer. That will allow me to focus my efforts on the unique art of the game and also the backend architecture that will make up the multiplayer leaderboard feature. I hope I will be able to update this devlog and keep you all up to date on the progress of the game!

Also, I figured out how to integrate my development with git! I have been trying to figure this out for sooo long and happy I finally go the integration working with Unity.

Basic Touch Controls Added

Summary

I was able to figure out how to simulate and add the base touch controls for the game! I simply added the Terrier Tennis sprite as a place holder and was able to change the position of the Terrier based off my touch input. I will eventually want to replace the Terrier with a cat paw and some animation showing the paw travel across the screen to where the player last touched. 

This was a lot more difficult than I was expecting and ended up following a fantastic tutorial by Samyam on how to properly implement touch controls. I also learned about Singleton classes and how to actually leverage  {get; set;} for the first time! In order to figure this out effectively I leveraged a gist I found on github that provided the great details on the Singleton class. I also provided the link below for anyone that wants to just copy and paste.

using UnityEngine;
// https://gist.github.com/mstevenson/4325117
public class MonoBehaviourSingleton<T> : MonoBehaviour
    where T : Component
{
    private static T _instance;
    public static T Instance {
        get {
            if (_instance == null) {
                var objs = FindObjectsOfType (typeof(T)) as T[];
                if (objs.Length > 0)
                    _instance = objs[0];
                if (objs.Length > 1)
                    Debug.LogError("There is more than one " + typeof(T).Name + " in the scene.");
                if (_instance == null) {
                    GameObject obj = new GameObject();
                    obj.hideFlags = HideFlags.HideAndDontSave;
                    _instance = obj.AddComponent<T>();
                }
            }
            return _instance;
        }
    }
}
public class SingletonPersistent<T> : MonoBehaviour
        where T : Component
{
    public static T Instance { get; private set; }
    public virtual void Awake () {
        if (Instance == null) {
            Instance = this as T;
            DontDestroyOnLoad (this);
        }
        else {
            Destroy(gameObject);
        }
    }
}

Using this Singleton and actually leveraging the Input System I feel I am truly using it in the way Unity intended instead of the "hacky" way I had in the past. I hope I can keep on this track of using this method as it seems to scale a lot better than what I had done in previous games.

Struggles

While I am able to get the simulated touch controls working great, I can't seem to get the touch controls to work on Unity Remote 5 on my phone. I did some digging and found out the reason is because I have not turned on developer mode on my phone, yet I do not seem to have the ability to or find any good resources online for how to turn this on. I believe I should just need to link my phone up to a mac and allow this functionality. In the meantime, I am comfortable that the touch controls will eventually work on the phone since I have no mouse inputs allowed yet. This shows the simulated touch is working and it is just my phone that is being the pain. I will want to figure this out asap.

Next Goal

Work on adding in the cat paw to follow the last touch position and add the yarn with physics so the player can try and keep it alive!

Improved Player Movement

Summary

I frustratingly spent over two hours tonight trying to figure out how to get Unity Remote 5 working on my end, but realized too deep in that the new Unity input system is actually not yet supported on Unity Remote 5 as called out in this forum post I came across. Since I realized this wasn't possible I decided to focus on trying to improve the core movement of the player while working with the player touch inputs.

I was actually able to get this working pretty well, but had to do some funky maneuvering on the backend. Instead of now moving the player when you click, I have it set to move an empty object when you click, and have a simple script that then moves the player sprite towards to empty object. To then have this empty object move back to the center I have an empty object that sits on the bottom of the screen where the empty player object will always move towards. Essentially I have three objects (one being the player sprite and two empty sprites) that are all interacting together in order to get the player touch and movements to work together.

Something that I did need to build out though is a coroutine that will wait for a half of a second after the player clicks somewhere so the player sprite can make it to the input location. Previously the player sprite would never even make it close to the input location.

Weird Bug

I noticed for some reason on the first input touch event the location is always (0,0) in the game world. I don't know why this is, but will definitely want to try and address this in a future update as it gets a bit annoying and I could see this really frustrating players.

What I Want to Add

I got the movement and input controls to work well, but I think it would really sell the experience if I can get the player sprite to rotate on a pivot so it will rotate back to the center. This will make the player sprite (which will be a paw) look more dynamic and alive rather than just move on the x axis. This will be a feature for another day though!

Ball and Paw Addition

Quick Update

I was able to spend a few minutes tonight working on the game and was able to add a crude cat paw into the game as well as the beginning functionality of the ball bouncing around the screen. I still want to play around with the ball size and how the paw interacts with the ball, but I think this is a good start for now! 

Additionally, I was able to leverage some code from an unfinished game I worked on last year to help rotate the paw to always look at the invisible center point at the bottom of the screen. This way there is a bit more life to the paw when you tap around your screen. I think I need to make the paw movement a bit faster to respond quick to your inputs, but I am really liking this so far!

Scoring and Pawer Ups

Improvements

Today was a great day for Cat Tap game development! I was able to import a new sprite in for the cat paw which makes it look less like a detached cat limb and more like a super long and extended cat arm. Additionally, I fiddled with the gravity physics of the balls and speed of the paw to make gameplay a bit more fun. One final improvement I was able to make was in the form of how the paw actually punches the ball.

Previously I just relied on the 2D collider of the paw and the rigidbody of the ball to act as the opposing forces. However, that never worked the way I wanted when I would actually punch the ball with speed. After some digging and investigating on some discord servers I decided to scrap the collider and rigidbody and go for the trigger route. I know have a trigger associated with the paw and when the ball enters this trigger an opposing force is applied to the ball. Then once it exists the trigger the score increases.

Additions

As you can see I was able to include a rudimentary scoring system on the bottom left. I will plan to make this more exiting and maybe add some flare when the score goes above your high score or in 10s, but for now it will do. Another exciting addition is in the form of the "Pawer Ups"! I am exploring scriptable objects, but made my first one where after 5 taps the pawer up instantiates above the screen and allows the player to punch it to duplicate the balls. This adds a lot more gameplay variety and chaos. I actually found myself playing around with this more than I thought. I think the core gameplay loop going forward will reside in the variety of these pawer ups.

Further, I added some quality of life improvements in the form of the off screen arrows. The logic for these was pretty simple. I essentially have them as a child of either the ball or pawer up and have a short script to always follow them on the x axis and follow the offset of the ball and an invisible bar I set above the screen. This creates this effect. I especially like how the arrows come far down and then back up to show the illusion of how fast and soon the ball will be returning to the screen. The simple script is below:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookAtArrow : MonoBehaviour
{
    public Transform topBar;
    private Transform ball;
    public float ballDistance;
    void Update() {
        transform.position = new Vector2(transform.parent.position.x, (topBar.position.y - transform.parent.position.y + ballDistance));
    }
}

What's Next?

Next week I am going on a work trip so I won't be able to do any involved game development. However, that leaves me an opportunity to explore some more pawer ups and create some more vector art for the game. I really like these break points as it is a nice change of pace and allows me to focus on other aspects of the game which I usually tend to leave to the last minute. Now if I am able to spend this next week working on art and pawer ups it could hopefully help fuel better game design and development when I return!

Initial Leaderboard and Player Profile

Summary

After a week away for work I was able to get back to the game dev grind and focus on the part I was dreading the most.. The multiplayer aspect of the game. I was able to take today to put together the framework for the leaderboard functionality as well as capturing the player profile so the scores can persist across playthroughs as well as eventually show a leaderboard of other player scores. While this was in fact tricky, it was a made a lot easier by leveraging a backend leaderboard tool. I did quite a bit of research and found a lot of tools out there, but the one I found that fit my low effort use case the most was one called LootLocker.

Before ultimately choosing this backend I decided upon it because I found it had pretty solid Unity API documentation as well as a discord server where others can chat and ask for support. This discord server ended up being the best part because I was stuck on an API call for the high score, posted a question about it, and got a response in minutes! That helped unblock me and then finish this basic outline of the leaderboard. The current functionality simply displays the player name, player score, and high score as well a simple button for the player to retry if they would like (I love how the paw technically pressed the button).

What is still needed?

  • The leaderboard on the end game menu
  • A start menu that will allow the player to change their name if they would like and also see the current leader board if they want
  • Better cat tap physics (I think I want to add some logic to stop the paw if you click passed the ball so the physics work better)
  • More Pawer Ups!
  • Better UI sprites
  • Improved ball physics
(+1)

Small Updates

Small Updates

This morning I fooled around with some more of the gameplay mechanics over the leaderboard and really started to have some fun! First off I found it a bit too easy leaving the paw in the middle as you could get a lot of taps easy by just doing nothing and letting the ball continue to fall on the not moving paw. Therefore, I moved the paw to the left side to make the player tap and made the paw a bit quicker on tap. To then fill in the gap in the middle I added some eyes (where the cat face will eventually go) and applied a simple follow script to the eyes so they will always follow the ball. However, this script became more involved than I was expecting (see below).

public class EyeLookAt : MonoBehaviour
{
    Transform ball;
    GameObject[] foundBalls;
    public float eyeSpeed;
    private void Awake() {
        foundBalls = GameObject.FindGameObjectsWithTag("Ball");
        ball = foundBalls[0].transform;
    }
    private void FixedUpdate() {
        if (ball != null) {
            Vector3 dir = ball.position - transform.position;
            float angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg;
            transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
            transform.up = ball.transform.position - transform.position;
        }
        else {
            foundBalls = GameObject.FindGameObjectsWithTag("Ball");
            if (foundBalls.Length > 0) {
                ball = foundBalls[0].transform;
            }
            else {
                transform.Rotate (0,0,50 * Time.deltaTime * eyeSpeed);
            }
        }
    }
}

I really do not like using the `FindGameObject` functions, but I felt I optimized this script enough to only search for the balls on awake and when the original ball is destroyed. I then make the eyes spin in circles when the player loses all balls which is quite fun to see on the game over screen.

More Pawer Ups

After learning how to take advantage of the scriptable objects, I discovered how to scale this and use them to their full advantage. Because of the scriptable object framework I was able to add in just a few minutes a completely new Pawer Up that will decrease gravity for a short time... the Pawer Up is called "GraviKitty"! So far I now have two Pawer Ups that will drop at every tap that is divisible by 5. I will probably extend this out for real gameplay. These Pawer Ups though really add some fun variety to the game and I am looking forward to coming up with more ideas!

(+1)

Titular Cat Added

Summary

Not a heavy development evening, but had fun adding in the titular cat and eyeballs to the gameplay to make it a bit more fun and build out the world some more! Next on the world building (lol it is just a cat tapping who knew I would want to build a world around it) is to add a capitating background. The key will to have the background not be too distracting, but to enhance the overall experience of the game. 

Let me know if you have any ideas for what would make a good background!

(+1)

Art and SoundAdditions

Summary

Today was a fun game dev day where I was able to do a mix of gameplay adjustments, adding more art (background and ball of yarn), and adding music and sound effects. You are not able to hear the effects and music in the gif above, but I ended up going with a lofi beat track softly playing in the back and I recorded myself punching a stress ball for the sound effect of the cat tapping. Further, I think I finally got the gameplay and movement down so that it actually feels good and you don't feel like you are being cheated anymore. This game is actually pretty chill and fun to play now with the music/effects, gameplay, and art!

In the end I really like the scene I have in the background. I was able to generate the background by finding an picture online and making some adjustments of my own in Krita to get the effect and other little touches that I wanted. Similarly, the ball of yarn is a vector image downloaded online and I made some adjustments to allow myself to change the color of the ball if I would like. I am really happy with the progress I am making and hope to release a first version soon!

v0.1.0 Release

As I am having a lot of fun working on this project, I would like to continue development past October. Therefore, I will plan to release v0.1.0 by October 31st so I can submit it for the "One Game A Month" Game Jam, and then work for a few more weeks on the game to allow myself to submit the game to the apple and google play stores.

Still To be Added

  • More Pawer Ups
  • A start screen that allows you to input your player name
  • The full leaderboard
  • More cat and yarn skins (will be a nice to have if there is time)
Viewing posts 11 to 30 of 65 · Next page · Previous page · First page · Last page