Recently we were asked to test a game called WaterCooler, which is currently in the alpha phase of development. The premise of the game is that you are a boss at a game studio, with the responsibility of choosing what game to develop and allocate to a selected team member. You also must manage the teams moral, which can fluctuate depending on the activates they are doing. So, if they have not worked in a while they may get bored and aggravated, which is where the watercooler comes in. You can go up to them and suggest going over to the watercooler to talk. Here you are prompted to pick one of a few dialogue options in a response to what they said. Depending on how well you talked to them, there moral can boost or lower which gives some consequence to your actions. However, the more I played the game the more I realised that each time I would talk to somebody they would often repeat the same things they said last time. Vice versa, I also normally only had the same things to say back, so repetition was a problem very early in the game.
The game also had a cartoony, colourful and bright look which complimented its quirky concept. It had a very “mobile game” look, which is one of its possible target platforms. Progression also came in the form of each game being developed and completed. This lead to more people being hired and more management involved in talking to them, and going over to the watercooler. As more recourses became prevalent, the more you could improve the look of the place with the player being able to place plants within the office. My play time was limited however, playing only half an hour at max. I did see that there were more offices to unlock as the game progressed, giving the player a sense of progression and progress. It also breaks up slightly, the relativeness of seeing the same environment.There are also points where it will reward you with an achievement like moment, when you achieve certain criteria.This one was for boosting the mood of a co-worker by talking at the WaterCooler. You also get an experience reward for this, along with a bonus if you meet the extra criteria which I missed. Moments like this will keep the player interested and motivated, and make them feel like the extra effort they put in is worth it.I also filled in a questionnaire before and after playing with many questions about enjoying the game, to bugs and what types of games I play. It was clear to see there were many deep analytics so the developers can carefully test their games, whilst also seeing what new features need adding. Whilst playing the game for half an hour it did become apparent that I was not the target demographic for this game, as it did not have the depth needed to keep me interest for a long period of time. I can see this being aimed at a younger mobile orientated audience who are interested in management like games. I did come across one bug whilst playing, which is when using the mouse scroll wheel I was able to zoom in indefinitely with no limit. It is also important to remember that the game is in alpha state, and could improve and iterate on its current features.
Today I developed a pause for my game whilst I was refining everything. Whilst not absolutely necessary for a game with such a short play time, I figured it would still be good to have and wouldn’t hurt to implement it.
First I created a simple pause widget with the text simply saying “Pause”.
I then added a simple pause button which still needs to be refined in terms of aesthetics, but serves its purpose for now.
I then put if button clicked – go to branch, which then triggers a set visibility of the pause widget; thus pausing or un-pausing the game depending on the state.
For the highscore screen I tried to watch a couple of tutorials in order to find out how to code this into the game. I found one tutorial on how to overlay a scoreboard over the top of a game, which would not work in my game but I gave it a shot anyway in hoping to find that some of the code could be used for the highscores.
I used a load game from slot, which would allow me to retrieve the save game slot which had the high score on.
The tutorial also suggested using a separate user widget, which would control the text and numbers for the scoreboard widget. Essentially controlling the formatting of the scoreboard. In the end however, I could not get the highscore screen to work, but I did start to see how the save and load state worked, so it wasn’t all for nothing.
Here is my old highscore screen which I changed to this – This looks slightly cleaner to how it previously looked, but there is also a fair amount of wasted space, which could either look minimalist or to empty. I think putting a background image in there would fill out the rest of the space, to add a little extra to the look.
Shane also helped me try to set up the highscore code but we could not get the game to load the save game state, with it overwriting the previous score rather than keeping the highest score saved. Shane did help in relaying the points system to appear on the highscore screen by creating a binding of the number.
This gets the information from the points system within the ship blueprint, which connects up to cast to ship instance. My next step is to carry on working towards getting the highscore screen functional, with the player names to be made editable, along with trying to figure out how to get the highest score to save, without being overwritten. I would preferably want to have the top ten highest scores saved but I still don’t understand code enough to acheive this. Still, this project has made me become more comfortable with unreal, and I am picking up simple code here and there, but I’m still not progressing as fast as I would like and road blocks still prop up regularly with what I want to acheive with this game. So I may start a separate project not related to this game in order to learn more about code, without being confined to specific bounds such a ship selector screen, with very specific camera movements and player interactions.
I decided to update the title screen using the techniques I used in the graphic design lecture. The neon effect on the stroke of the text is perfect for sci-fi themed text like mine.
I did not want to over complicate it with a lot of things going on, so it does looks a little bland in return. I did want to put a planet in there, but I could not get it too look right. There are asteroids animated from the old text however to add something to it, though the style doesn’t exactly fit with this.
Here you can see the asteroids on screen are grey. I think a simple change to a more purple hue and a slight glow would make it fit with the rest.
The other week I started to consider making a soundtrack to go into my game, and I had a fairly good idea of what I wanted it to be like. I wanted it to have an upbeat – high beats per minute pace to go along with the gameplay. One great example of this is from Superhexagon, which has an incredible soundtrack to go along with the franticly fast gameplay. I also love the way the environment pulses with the music which really enhances the beats and energy of the game. You can see a clip of the game here.
I looked at a couple of synths plug ins for Garage band, which would allow me to create the electronic sci-fi sounds I wanted. After doing some research Techradar had an article recommending this free analogue synthesizer called Podolski.
Here are a couple of screenshots from development in Garage Band –
I tried importing into Unreal to find that it only accepts Wav files, so after converting the file I re imported and created a blueprint allowing me to loop the file.
I also used Unreals explosion sound along with there particle explosion for when the ship hits a collision wall.
For the soundtrack however, whilst it is fine for the first few times you play, I believe it will become repetitive overtime pretty fast without a variation. So I am going to try and create some more, then have unreal pick a random soundtrack each time you play.
I thought now would be a good time to test my game on a device, to see how it fairs in a real life scenario. After downloading the android sdk the set up was pretty straight forward, thanks to a handy guide on Unreal. After playing a few games I was surprised how well it worked, with the gameplay feeling smooth and the frame rates high. I did notice anomalies such as a grey sphere moving through the level, planets stacking up if you stay on one to long. Other issues include planets spawning to close to each other, and if you are fast enough you can catch up to the spawner which means that you have to wait for the next planet to be spawned in. Another thing I need to test it how it plays on older devices and were I shall cut the rest off. For example, my phone uses the snapdragon 821 which is the highest qualcomm has to offer at the minute, but of course many phones use older or different architectures to this. So future testing will need to be conducted along with how far I can push the graphics before it is to much for my target devices. Though, I don’t believe I will reach a point were it becomes to demanding, I just need to make sure the frame rate remains high but also consistent. This will take priority over graphics.
Here is the sphere that moves throughout the level. I don’t know what it is, but I can only assume it is a mesh from one of the planets.
For some reason also, the color was overbearingly red. At first I though this could be a possibility to do with my laptop screens color reproduction, but by changing some lighting settings and post process volumes I managed to get it down to a more normal level.
I hooked up my laptop to my monitor which is far more accurate colors and they still did not look to different. So I believe the fog settings amongst others have caused this like I mentioned above.
Here is a gif of the gameplay on the phone. It is worth noting however, that this does not represent the performance due to the reduced frame rate of the gif.
Even though the game still has a long way to go before completion, it is still great to see it up and running on a target device and is certainly a great motivator in order to reach that goal.
Increasing difficulty as the game goes on needs to be implemented as I have mentioned on older blog post
A counter of the planet number.
High score screen with possibly online leaderboard support. Though I do not know the difficulty of this yet.
A ship selector screen. This allows the player to select and unlock different shops using possibly in game currency, or maybe by how many planets they got to. For example, when you reach the 50th planet you unlock X ship and the 100th you unlock another.
Visuals and ship textures. The visuals still look a little lacking, I think major improvements could be made to lighting, planets textures and atmospheres, along with background objects( stars, astroids, supernovas).
Today I decided to model a simple ship for my game, with the purpose of practicing using pbr and more specifically, Substance painter 2.
After modelling the ship I manually created the seams to avoid fragmentation from the flatten mapping.
I then tried getting to grips with what the different materials looked like on the ship.
I had trouble painting the glass due to it going onto the body of the ship if not careful.
I then remembered you could use layers which allowed me to delete paint that went over previous layers.
I also experimented with the emissive map, which through some research I found that you can increase the intensity as seen above.
You can then activate post process which allows for such things as glare by tweaking luminosity and threshold.
I then found out I had used the wrong template so I had to start again using the settings above.
Then once exported into Unreal, I had to make sure the RGB connections were connected to the right maps from roughness. Red had to go into ambient occlusion, green into roughness and blue into metallic.
Here is what the ship looks like in Unreal currently.
In order to create the game over screen I, for the most part, did the same thing I did with creating the menu screen. For the game to end I created box triggers which when the ship hits, ends the game and goes over the Game Over Screen.
Here you can see the box triggers I have set up for when the ship misses the planet or waits to long to jump.
Here are overlap nodes for the box triggers.
I also put a button over the whole screen so when tapped, it takes you to the main menu. I also put the opacity down to zero so you cannot see it.
In order to make my game infinite, I had to implement randomised spawns to the planets which allows the player to jump from planet to planet without any levels.
To do this I created a collision box on a actor blueprint which allows me to give the boundaries for the spawn location.
I then put the Spawner Box into the level.
Then I got the component bounds which will allow me to get the box bounds for the planet to spawn in.
Here are the vectors for the X axis of the box.
By connecting it to a Random float in range it allows for the coordinates to be randomised.
Then I repeated this step for the Y axis.
By adding a vector is allows me to connect the Z axis to the break vector Z, which makes the planet spawn on the centre level of the box.
I then added a spawn actor and classed it to Planet1. I do need to link other planets however.
I then added a timer which gives me control over how often the planet spawns. I also need to consider randomising this however to make it more difficult.
Here is a gif of the planet spawning –
What I need to do now is experiment with randomising the planets spawn timer in order to increase difficulty. Another thing I could consider is making the planets smaller up to a certain percentage as the player gets further, making it harder as time goes on. Also putting a variation of planets in the spawner is essential.
For my game I commissioned an illustrator(Devon Bell) to create the typography for my title. By doing this it allows for the game to have a more unique look, and allows me to break away from the fonts in Photoshop and other already created fonts. Hopefully by doing this it will make the game look more stylized and unique, compared to others on the market making it stick out that little bit more. For now, the illustrator wishes to credited in the credits for the game.
For inspiration we looked at various different types from sci-fi films.
I liked the look of the War Of The Worlds type and decided to go with that style.
For the type, I wanted the font to be swirly, with a trail from the P as the trail from the ship. I also wanted the O to have a ring around it to resemble a planet.
I decided to go with this draft and put it into Photoshop to see how I could get it to look.
I then edited the font by putting a color gradient on it. Then I added some asteroids and stars in order to fill out some space. I also would like to animate the title screen to add a little more life to it, possibly by making the asteroid move up and down a little bit and a shooting star flying by. As for now the type looks a little hard to read so we are making more drafts with a clearer font which I will update on the blog as they develop.