One Game A Week

Game #2 - Curious Castle

October  15th, 2018

Brainstorming and Prep Work

For my second One Game a Week project, I wanted to dip my toes back into the world of 3D graphics for a little while. I'd been playing a bit of The Legend of Zelda: Wind Waker, and it re-ignited my feelings of wanting to make a game with a similar type of gameplay.  

 

I also watched a really random video I found on  -- a Let's Play of a bunch of random indie games. I watched for a few minutes on this stream, where they played this hilarious Harry Potter fan game:reddit

I'd always wanted to make some kind of abstract, minimalist, 3D platformer type game. I'd worked on a prototype that was sort of aligned with this concept in the past -- but I wanted to try a new version with a new set of mechanics and new art style. 

 

I've always struggled with the balance between wanting to make my own art versus trying to find some art through some online resource. I've spent lots of time learning Blender and other tools, but I decided that in my One Game a Week projects, I'm going to try to put a renewed priority on finding good assets instead of trying to make my own. I sometimes feel a bit paralyzed with options -- there are so many places to look, so many assets in so many styles. 

 

For this new project, which I was thinking about calling "Immaculate Tower", I knew I wanted something pretty minimal. So I started looking for minimal.

 

I knew from my previous prototype that I wanted some nice, possible low-poly character with good animations. In the past, I've not really worried too much about animating my character.

 

I found some AMAZING work on the Unity Asset store -- the stuff that really captured my attention was the work of two studios: Synty Studios and Meshtint Studios. 

 

I ended up going on a bit of a shopping spree -- I found some really nice artwork with a few cool settings a bunch of interesting low-poly characters. 

 

 

Animating My Characters​

Now that I'd settled on some awesome art assets, the next challenge was to set them up with animations. I've worked with Unity for a long time, but I've admittedly got a few areas that I only have a working knowledge of. I've used the animation system for a bunch of things in the past, but as far as preparing models, rigging, skinning -- all of that stuff was a big blind spot for me. I thought that this project might be a good chance for me to force myself to learn some of these concepts. 

 

 

Dialog System

Now that my Wizard was successfully running around the area, it was time to start coding a chat system. I decided to go back to the asset store to try and dig up some nice UI elements -- I had an idea to do a chat box next to a portrait of the character speaking. 

 

 

Now that I had a live, updating picture I could reference in the portrait box, I decided I didn't need the static image any more. I just moved it far off the screen, just to get it out of the way temporarily. I didn't want to delete it on the off-chance I wanted to re-use it again later, or maybe take a screenshot of it to show my first attempt. 

 

A very funny moment transpired later, though, when I was aimlessly walking the wizard through some of the other corridors, showing my girlfriend all of the cool geometry elsewhere in the level. On the very side of the screen, she saw something, and asked me to walk over and investigate. 

 

It turns out that I'd moved the static portrait of the wizard off to some random location -- and it ended up settling in almost a perfect location to act as an intentional portrait on the wall! It was too good to be true:

 

 

 

public IEnumerator ShowText(string text){

        textObject.SetActive(true);
        textBox.text = "";
        showingMessage = true;

        for (int i = 0; i < text.Length + 1; i+=1) {
            if(interruptMessage){
                textBox.text = text.Replace("*", "\n");
                interruptMessage = false;
                break;
            } else if(superInterruptMessage){
                superInterruptMessage = false;
                text.Replace("*", "\n");
                textBox.text = text.Replace("*", "\n");
            } 

            soundOffsetCount++;
            if(soundOffsetCount > 2){
                soundOffsetCount = 0;
                int ran = Random.Range(0,textNoise.Length);
                sources[ran].Play();

            }

            string s = text.Substring(0, i);
            textBox.text = s.Replace("*", "\n");

            yield return new WaitForSeconds(0.032f);

        }

        canAdvance = true;

        yield break;
    }

 

 

 

 

 

 

Some Bugs and Their Fixes

One of the things that can be pretty opaque is the process between of taking a game in its "almost finished" state and transforming it into its "finished enough to share" state. I thought it would be interesting to shine some light on this process for Curious Castle. 

 

After about six days of development, I had the core gameplay nailed down for this game -- all of the clues were in the game, there was a title screen, and you could play the game from start to finish. However, this was still before playtesting the game. Even if you are very confident you've thought of everything, playtesting will always reveal important problems in your design -- from functional issues (like colliders in the wrong place or typos in the text) to more subtle issues around assumptions that were obvious to you, but are not obvious to the player. I think it would be instructive to go through the list of bugs that I compiled on the sixth night when I playtested the game with my partner. 

 

Here's a shot previewing page 1 of 2 of the list of bugs we found during our first four-hour playtesting session:

 

What I thought I would do is upload a build of the game as it was on the sixth night, so that you could compare how the game was then versus the final version which had most of those bugs corrected. 

Link to the first version: #TODO

 

Play the Game!

Well, since this is just a demo page so far, and since the game is not yet done -- you can't play it yet, silly! 

 

However, make sure to check back in a few days when the game is complete, and I will have a download link ready. 

 

In the meantime, check out some of Trykon Studios' other projects -- you might be interested in our commercial puzzle game, Omnicube!