A Big Update

Over the past several weeks, I have been working on a massive overhaul of everything within the Raccoon Game – so much so, that simply writing it all out wouldn’t do it justice – so, here is a video, showing the gameplay so far, within a minigame

This, obviously, isn’t the puzzle game I set out to design – however, a simple food collection minigame has helped the development of both myself, and the game, in several ways.

First of all, it has given me the ability to test multiple aspects of the game – from the more obvious things, such as item collection and npcs, to the things you might not think about – edits to the movement and camera scripts, for example

It has also allowed me to create a fun, finished product, while waiting on other team members to create the necessary pieces for me to continue onto the main game.

Now that that’s out of the way, you may be wanting a breakdown of what all has changed since my last update; while the above is a good overview, below will be an in-depth analysis of everything I have done for this game!

Movement:

First of all, I completely redid the movement script – changing from a badly constructed script, to the standard assets pack script – before fully rewriting my original movement script. I did this, because my first script was buggy, difficult to read, and often unreliable. The standard assets script also had many faults, and relied on many things that I either removed or repurposed – as such, a new script was necessary. My new script is far cleaner, and more reliable, than any of my previous ones.

On top of accounting for everything from walking, to jumping, to sprinting, the script also contains handlers for various other features – including the ‘scream’ you hear in the video, used to warn off enemies.

Camera:

Much like the movement script, the camera script has also gone through many changes – starting with one I found online, moving to the standard asset pack third person camera, before being completely rewritten for purpose.
The original camera script I chose was functional, but not without its bugs; the standard asset pack script was very useful, but overcomplicated, and had many bugs – the worst of which included flipping the camera around every time the player jumped – which could make it difficult to navigate mid-air.

The new camera script is cleaner, far shorter, and very easy to understand – its simplicity makes it easy to fix and edit, and ensures that its reliable.

Getting to this point was extremely complicated, and included a lot of trial and error…

…A lot of trial and error.

NPCs:

The games NPCs were one of the most complicated, but most useful, elements I managed to create; while they can, at times, behave unpredictably, they work the majority of the time, and the errors now are, thankfully, insignificant.

I created the NPCs using Unitys NavMesh functions – building a NavMesh from my game world, and making each of the NPCs Agents of that Navmesh. I used the standard asset pack NPC controller as a base, and built my own AI controller script – changing its targets based on different situations.

The majority of the time, the NPCs positions are randomized from multiple possible positions – once a certain amount of time passes, their position is randomized again, causing them to wander around the ‘park’.
If they spot the player, they will give chase – and, if they reach the player, they will kick them away – dealing damage, and throwing them a distance.
If they player continues to run, they will eventually lose interest, and return to wandering.

The player also has one more choice – they can press E, to screech at the humans – startling all humans in their radius, causing them to run away for a time – though this, again, wears off.

Pick-Up Items:

Pick-up items are another addition to the game – using the mouse, the player can click on pick-up items, which the racoon will then hold in their mouth. Upon letting go of the mouse, the racoon will drop the item. As such, they can only carry one food item at a time

Points:

With pick up items, they player needed something to do with them – this is where the point system comes in! In this minigame, the player must throw away the food items – gaining points based on how big the item is

Spawning Objects:

In order for the game to continue, I needed to spawn objects – currently, all food objects spawn randomly, and fall from the sky. This uses a simple instantiate script attached to a spawner, which would randomize a position, and spawn a random food item, after a random cool down – the enemies are spawned according to a very similar script

Animation and sound:

Next, I needed to make the game look a little better – using animations! I started by making some animations using Blender; I used blender, as I had some experience using this program from last year. I made animations for walking, running and jumping, and plan on making more animations in the future. I’ve thus far managed to make the animations work for the player – walking and jumping animations triggered in the movement script for each action

I used the same strategy for the sounds – I took some royalty-free sounds off of sound library SoundBible, and cut and stitched them together using Adobe Premiere, as this is a program I have lots of experience with. After this, I exported each sound as MP4, and placed them into my game files – using those clips and various audio sources, triggering them in the movement script in response to each relevant action.

A reflection on progress

I am currently continuing to work on the game – and will be uploading a video later today, to show my progress and explain where I am in the development process now. I’ve made a lot of progress in that regard – but, that isn’t what this is for. This is to outline all of the other progress I’ve been making, outside of pure game progress.

First of all, I’ve been doing some work in blender – mostly animation work. On top of the animation I’ve already shown here before (the racoon), I have also animated a walk cycle for the human, and some basic animations for on the title screen

I’ve been using Blender, as this is the program being used to make the models in the first instance – and, this is the program I am most familiar with in terms of animation, having used it last year. It uses keyframes, which can be assigned quickly and easily – and the animation is easy to play back and edit as necessary.

I am currently working on bringing these animations into Unity, but, am still working on making progress in that regard – I don’t yet know how to trigger animations at the correct times, but, am doing research into that to bring in soon – I feel like it will greatly improve the feel of the game

I am also using Photoshop at points, in order to create UI elements, or other 2D images for the game. I am using Photoshop, as this is the industry standard art program, and, as such, it is important that I become familiar with it – when I work at home, however, I use Painttool SAI, which is more artist-oriented. Both programs work well for what I need, and allow me to make the pieces that I need.

Overall, I have been making great progress, and only plan to continue to do so

An Update!

As you’ve probably noticed, this blog has been quiet recently – and that’s because I have been working on unity!

Unity is a game development program, and its free! Its a little complicated to start with, but, thanks to a wealth of information available online, I’ve been making great progress in game development

In order to illustrate everything Ive worked on over the past month, please view the video below! It demonstrates a test level I built for the game, including a killfloor (below) and a handful of pickup objects

As you can see in this video, I have done a lot of work – I have fully functioning menus, including a pause screen and task sheet that can be accessed with tab, with the full ability for upscaling, changing and reusing them as necessary – I have a character, with a following camera, and the ability to move, sprint, jump, and pick up objects as I want.

However, there are many issues, as can be seen in the video above – sometimes, the objects let themselves be picked up correctly, and are counted – other times, they get deleted at random – either all at once, or whenever I approach them – for reasons that I have yet to work out. As I cant determine the cause, it’ll likely be best to rebuild the system completely – and I currently have plans to replace this pickup system with a ‘holding object’ system – it just might take some time to build, and will require some research to create.

Also, as can be seen at the end, the sprint key occasionally breaks, and causes rather severe issues – the racoon speeding up unstoppably in a single moment, and flying off into space so quickly the camera cant follow – breaking the game completely. I could rectify the game-breaking by putting kill-floor walls in – but, this wouldn’t fix the game attempting to launch the player, and would still be a major, and common, game-breaking bug

Obviously, there are a lot of things that need to be fixed before I can even start assembling the actual game – but, for someone who has never worked with unity before, I feel I have made a lot of progress, and learnt a lot in the process – and will only continue to do so!

Scenario ideas

In order for the game to be playable, there must be a series of puzzles for the player to solve, before the can finish a level – or the game itself. Below are some ideas for possible scenarios, puzzles and tasks that could be included in the game

Task ideas:
Meal
– Collect various food from around the map
– Cook

New house – Find and steal a better bin
– Get into house
– Get new bin out of house

Protect your home – Scare the humans away from your home
– Lead several different humans away from your bin

Music Testing

I have never before attempted to make music for a game, but, for the sake of practice, I spent some time messing around in a simple online music box – known as ‘Beep Box’. This allowed me to quickly and easily make a simple tune, despite having no prior experience!

I am very proud of the song I made, and feel it could work well on a title screen, or in a minigame

https://beepbox.co/#8n31s0k0l00e03t2mm0a7g0fj07i0r1o3210T1v1L4uc5q1d2fay0z1C0c1A0F0B3V1Q5000Pf800E0111T1v1L4u3dq1d5f8y1ziC1c0AcFbBfViQ269cP969bE0000T0v1L4u00q1d5f7y1z7C0w2c2h0T4v1L4uf0q1z6666ji8k8k3jSBKSJJAArriiiiii07JCABrzrrrrrrr00YrkqHrsrrrrjr005zrAqzrjzrrqr1jRjrqGGrrzsrsA099ijrABJJJIAzrrtirqrqjqixzsrAjrqjiqaqqysttAJqjikikrizrHtBJJAzArzrIsRCITKSS099ijrAJS____Qg99habbCAYrDzh00b4xc00000000h4g000000014h000000004h400000000p21oFEY6wzAOeEzFGEefQk4t97khQQQ77WG2eEzG8WqqE6MRMkQv42hQQCnjihQQCm0FEY4zwieAzG8WieEzH8U4z000

The Bin – 3D Modelling

One element that will be needed in the game is a simple bin model – an American-styled metal ‘trash can’, complete with lid. This asset could be useful in levels, or in the title screen – which we have envisioned having a bin with the raccoon in it!
I am using 3DS Max to model and map this asset

This is my simple bin model to start – the ‘body’ and ‘lid’ are separate pieces, so can be removed from one another, and the lid is designed to be slipped on and off with ease. the shape is simple, and low poly, to fit the likely game design

This shows inside the bin – it is hollow, so it can contain items or other models, and for the sake of ‘realism’ if the camera was to look inside the bin – so, it isn’t one solid object

The lid is also partially hollow – designed to slip over the top of the bin, in order to allow it to come off easily, while not simply sliding off if we are to implement physics

Here is what that model looks like with a simple ‘metal’ noise texture is applied, without a UVW map, or any kind of ambient occlusion, normal or specular maps. As you can see, it is less than appealing to look at – so, I will need to unwrap my model

Here is the main body of the bin, complete with seams – represented by the green lines

And here is the UVW map – the two rectangles represent both the outside and inside of the bin, whereas the circles are for the bottom of the bin (inside and outside), and the ring is for the rim of it. I can then place this into photoshop and map it myself

Here is the lid, also showing the seams – both on the handle and main lid

Here is the UVW map for the lid – it looks more complicated due to the more complex geometry, despite being smaller – but, when modelling, it shouldn’t be too difficult to work with

These are my completed diffuse maps, complete with metal texture, for both the main bin and its lid. To make these, I used photoshop, as well as metal textures I found online

Here they are placed in the material editor, under ‘diffuse colour’ and ‘bitmap’

As you can see, the bin still looks wrong, and rather flat – that’s what the other types of map are for!

In order to save myself time, I will be using a generator for my normal, specular and ambient occlusion maps on most all of my models – it can be found using this link: http://cpetry.github.io/NormalMap-Online/

Here is the material editor as shown now, along with a render of the bin, now factoring in the others maps – it looks far more textured than before!

Gameplay Ideas

Even though it is early on, basic gameplay ideas have already been discussed. Obviously, everything here is subject to change, based on time constraints, our abilities, and how the gameplay actually works out later – but, these are our basic ideas so far!

Controls:

Movement – WASD
Jump – Space
Run – Shift
Pick up/Use – E
Growl – Left click
Toggle two legs/four legs – Right click
Check tasks – TAB
Pause – Esc

General Gameplay:

Picking up items

As the raccoon, you must pick up items to do various things – be it items you need to collect, or items you can use to get what you want. Approaching an item not held by another character and pressing ‘E’ will allow you to pick it up. If you are walking on all fours, you may only carry one item – in your mouth – but, if walking on two legs, you may carry up to three small items – or one larger one. If you are carrying items, you can no longer growl without dropping the item first.

Some items will be usable – either to build primitive devices, to get to new areas, or to scare off anyone that may interfere with your dastardly plans.

If collecting an item to meet objectives – or wanting to put something out of the way – the item must be placed in a bin.

Walking on two legs

As the raccoon, you will have the option of walking on either two or four legs.

Walking on four legs allows you to run and climb – though, you can only carry one small item

Walking on two legs allows you to carry up to three items – though, you only walk slowly, and you cannot climb

Humans

When it comes to humans, there are several ‘personality types’ the raccoon will meet:

The coward;

This is the least interrupting of the personality types – if they see you, or hear you growl, they run away or cower. May alert other npcs to your presence.

The ‘doesnt care’;

This human just doesnt care. You dont threaten them, and they wont react if you growl. May get in the way. If they see you with an item, they will try to take it off of you

The brute;

Will ruin your day. Chases and hits/swats you so the raccoon drops all held items and is knocked back a few spaces. 

Growling will cause the brute to pause for a moment, before continuing their chase. Once they have hit you, they will leave you alone and return to what they were doing and will take whatever items may have been taken from them.

The animal lover;

This human never learnt to respect nature; they think youre cute, and want you to know. Growling at this human will cause them to back off a moment, before continuing their chase. They will continue to look for you, even if they catch you once

When caught, this human will hold on to you – you must click the growl button really quickly to break free