At the end of the term there was a very short introduction to writing shaders. Since Christmas break started I have decided to start following couple shader tutorials so that I can understand how these work and hopefully be able to implement at least one shader into my current project.
I used the tutorial from here. When the next term starts there will be more shader workshops at university and I hope to attend all of them so that hopefully I will soon be able to write a shader of my own.
I have also started writing a simple pooling system, but because I do not need to use it for anything in my current project I may not finish it at this point yet.
This blog is about creating simple games, and has been set up to show progress of my first games.
Thursday, 25 December 2014
Tuesday, 23 December 2014
Static classes and XML
During the last lecture of the second term we learned about static classes and XML. Static classes seem to be useful for storing all global data used in one place. Those can also be used as Singletons as there is only one instance of them created. I may think if I need to use those in my current project to wrap up some repeating functionality if I will be able to find some. I may also use XML files to reduce the loading time of the level.
Monday, 22 December 2014
Delegates and Coroutines
The next lecture was about delegates and coroutines. In C# delegates are used in the same way function pointers are used in C++. Having used pointers itself in C++ a little beforehand should make it easier for me to get the same concept in C#. The only thing I need to figure out now is how to use those in my current project.
On the other hand I haven't used coroutines at all yet. Therefore I will look into how I could try them out and use those in my current game. They seem to be useful and even if I won't manage to incorporate them in this project i will definitely look into this topic further afterwards.
On the other hand I haven't used coroutines at all yet. Therefore I will look into how I could try them out and use those in my current game. They seem to be useful and even if I won't manage to incorporate them in this project i will definitely look into this topic further afterwards.
Game Entities and Singleton Pattern..
Singleton pattern is not commonly used when utilizing OOP principles in regular applications, as its not thread safe. Making something work is more important than good design principles sometimes and then Singletons are used. Those are used to make sure only one instance of the class is created. After the lecture I am not sure where I could implement this in my current project, and therefore i will research more on this subject.
C# and other programming languages..
Second lecture we had was an introduction to C# programming but not only. We have learnt the theory behind how programming languages are working behind the scenes including how it works with the compiler and CPU itself.
Main differences between C# and C++ were also highlighted, and therefore I have expanded my understanding of memory management and basic ideas behind it. It was also about memory allocations and how both C# and C++ handles it. This lecture included the introduction to object pooling lists, which I have started writing in separate project, as I can't see any way I could use it for my existing project(I am not using any spawning scripts and everything have a fixed size), I may try to implement it later. This was also the first time I saw XML code, which is not difficult to understand but may be very useful for fast loading big levels in a game.
Main differences between C# and C++ were also highlighted, and therefore I have expanded my understanding of memory management and basic ideas behind it. It was also about memory allocations and how both C# and C++ handles it. This lecture included the introduction to object pooling lists, which I have started writing in separate project, as I can't see any way I could use it for my existing project(I am not using any spawning scripts and everything have a fixed size), I may try to implement it later. This was also the first time I saw XML code, which is not difficult to understand but may be very useful for fast loading big levels in a game.
Sunday, 21 December 2014
Leap Motion lecture
During the second part of the first term we have started a series of lectures and workshops led by Richard Weeks.
First lecture was about Leap Motion technology. We were told what it is and how it works. We were also given a sample project to experiment with and see how it works in general. This was a major opportunity to find out more information about this type of software. I may think of implementing Leap Motion into my current project for this module but this would depend whether I will have a good idea what I could use it for.
First lecture was about Leap Motion technology. We were told what it is and how it works. We were also given a sample project to experiment with and see how it works in general. This was a major opportunity to find out more information about this type of software. I may think of implementing Leap Motion into my current project for this module but this would depend whether I will have a good idea what I could use it for.
Thursday, 6 November 2014
Playtest demo and final project submission..
Recently I have added Main Menu, Instructions, Credits, Story scenes to the project so now my game has fully functional interface.
I have also done quite a lot of level design and putting everything together.
There are still some features I want to add soon as well as feedback from demo session I need to implement.
Here are some screenshots of the interfaces and the level design of the game itself.
I have also done quite a lot of level design and putting everything together.
There are still some features I want to add soon as well as feedback from demo session I need to implement.
Here are some screenshots of the interfaces and the level design of the game itself.
Sunday, 2 November 2014
Mini map border, bug fixes, collectable items, GUI Text
In this iteration I played around with colours in my game trying to
make contrast better, as well as this I added new skybox I found on Unity Asset
Store.
Then I started working on a border for a mini
map. I ended up creating a new camera that shows only white background and
displaying it right behind the mini map, making the camera little bit wider
than the mini map.
I have also fixed base mechanics so that main
character’s velocity and angular velocity is set to 0 on collision with shadow
so that main character can’t slide through the shadow. This corrected the bug I
had earlier, as when a player had a lot of speed he could basically go through
a shadow without being caught.
I also got round creating collectable items
that will increase main character’s score when picked up. Next things I want to
implement are traps that will stop players from moving when entered by each
player. Some traps will be only accessible by a shadow other only by main
character.
To make my game design look better I added fog
as well as changed render settings to make mountains in the background visible
from any point on the map.
As well as this I added some GUIText when
shadow catches a player with some comic fonts found here
.
Some screenshots of the current
progress of my game:
Soon I will implement level design
which will include appropriate assets found.
Tuesday, 28 October 2014
Teleport and other updates
Over last week I have implemented a number of different features
such as teleports, scores, fixing movement and collisions for players, mini-maps.
First of all I added particle effects to make
teleports look as a magical portal and I have also made a teleport prefab that
can be easily dragged into the scene and adjusted in lots of ways keeping all
teleport mechanics as it should be.
I have encountered one major problem with
implementing teleport script to change player location when he enters teleport
trigger area. As the player has Rigidbody attached it made the main character
rotate as crazy after just basic position change. I manage to find an algorithm
for this online here. Applying the second algorithm solved the problem and even
though I used ready algorithm I wrote the rest of the code myself. This
improved my knowledge about Rigidbody component as I have never used them
before in my last game (at least not for player character).
Basically this time I ended up writing simple
3rd person character controller without realising it! I had
some other problems with main character movements and collision detection which
I solved by using Rigidbody friendly script methods and variables.
I also added basic score counter for both the
shadow and the main character so now it displays both on the screen and I made
sure it counts it correctly. Score system uses private variables and get and
set methods to access it from different scripts. If I have time later on I will
try to implement get and set methods for every variable in scripts that will be
accessible through the Inspector in Unity.
I have also added teleport mini-map pointer to
teleport prefab so now-main character, shadow and teleports have their pointers
on the mini-map. Next thing I will add to mini-map is border to make it easy to
recognize which mini-map is which...
Next things to implement are as follows:
collectable items, traps, 3D models that will make scenery look good, mini-map
border, sounds and I need to think about the main goal of the game…
Tuesday, 21 October 2014
Minimap Part 1
I decided to create two minimaps-one for main character and the other for the shadow in order to make my game less confusing.
To achieve that I added 2 more cameras that I put on the front layer of the game screen. As well as this I've added pointer cubes with self-illuminative material on both- main character and a shadow. These are not visible by cameras attached to players and do not affect game world in any way other than showing the position on the minimap.
As for the minimap there is one more feature I want to implement, that is putting a border around it to distinguish two minimaps easily.
To achieve that I added 2 more cameras that I put on the front layer of the game screen. As well as this I've added pointer cubes with self-illuminative material on both- main character and a shadow. These are not visible by cameras attached to players and do not affect game world in any way other than showing the position on the minimap.
As for the minimap there is one more feature I want to implement, that is putting a border around it to distinguish two minimaps easily.
Thursday, 16 October 2014
Progress overview..
Implementing core game mechanics led to couple problems, but most of them are solved now.
First issue I encountered was making a shadow a trigger that will rotate a player. First iteration of this script didn't work for couple reasons. Eventually I managed to solve this problem. As I read through Unity Script Reference and there seemed to be couple solutions, there was only one that worked.
Then I had a few problems with detecting if player triggered the shadow so that it rotated him.
After this I changed the controls and movement script to make it my gameplay easier.
I also changed the way rotation was triggered. The script now counts the distance between players. And if main character is in specific range of the shadow it will start rotating.To stop rotation space need to be pressed by the main character and all other controls are disabled until then.
Next thing I to implement will be Minimap to make it easier to move around the world.
First issue I encountered was making a shadow a trigger that will rotate a player. First iteration of this script didn't work for couple reasons. Eventually I managed to solve this problem. As I read through Unity Script Reference and there seemed to be couple solutions, there was only one that worked.
Then I had a few problems with detecting if player triggered the shadow so that it rotated him.
![]() |
Split screen start view |
I also changed the way rotation was triggered. The script now counts the distance between players. And if main character is in specific range of the shadow it will start rotating.To stop rotation space need to be pressed by the main character and all other controls are disabled until then.
Next thing I to implement will be Minimap to make it easier to move around the world.
Tuesday, 14 October 2014
Starting on game mechanics
Yesterday I managed to get the core game mechanics work. My first idea on how to implement it worked quite well although I will keep working on this script to improve it in the next couple days.
Having this done I can now move on to adjusting the rotation sensivity and also creating surrounding area.
I am also considering creating some pickable powerups boosts etc. As well as this I have to decide whether to use split screen or not. Using one screen for both players will increase the difficulty of the game although it may get too confusing...
More updates coming soon! :)
Having this done I can now move on to adjusting the rotation sensivity and also creating surrounding area.
I am also considering creating some pickable powerups boosts etc. As well as this I have to decide whether to use split screen or not. Using one screen for both players will increase the difficulty of the game although it may get too confusing...
More updates coming soon! :)
Monday, 13 October 2014
Dancing with Shadows-new game project idea
I got this game idea for quite a while now. I came up with it couple months ago. This term we have to make game using two different sets of controls so that two players can play it at the same time.
Therefore I decided to adjust this game idea into that concept. One player will be main character that has to escape from the shadow(the other player whose task is to follow and try to catch main character).
When shadow catches the main character, he confuses him by changing his rotation. The first idea on how to achieve this game mechanics working is to make a shadow a trigger and write appropriate script when main character enters the trigger. Hopefully I can get this done in next couple days.
I already have a movement scripts for both players although it may need changing later on as it is only basic movement script. More updates coming soon.
Therefore I decided to adjust this game idea into that concept. One player will be main character that has to escape from the shadow(the other player whose task is to follow and try to catch main character).
When shadow catches the main character, he confuses him by changing his rotation. The first idea on how to achieve this game mechanics working is to make a shadow a trigger and write appropriate script when main character enters the trigger. Hopefully I can get this done in next couple days.
I already have a movement scripts for both players although it may need changing later on as it is only basic movement script. More updates coming soon.
Tuesday, 24 June 2014
Summer holiday
It's summer holiday already and I am so bored that I've started doing some tutorials for vector graphics and soon I plan to start design my own vector graphics.
Below you can see my first attempts of this kind of graphics, from which some is done with tutorial and some is done only by looking at the final image in the tutorial.
I am also planning to start work on some summer game project soon, and all progress will be posted here or on linked blogs.
As well as this I plan to start building my portfolio over summer :)
I now have a new blog for my graphic designs :)
Below you can see my first attempts of this kind of graphics, from which some is done with tutorial and some is done only by looking at the final image in the tutorial.
I am also planning to start work on some summer game project soon, and all progress will be posted here or on linked blogs.
As well as this I plan to start building my portfolio over summer :)
I now have a new blog for my graphic designs :)
Thursday, 27 March 2014
Last updates, polishing game before submitting and more updates coming soon.
Due to a lot of coursework deadlines this week I did not have enough time to properly update my game, although I fixed couple things.
Major bug fixes and updates included:
Major bug fixes and updates included:
- fixing sound effects so that when background music plays all the time sound after activating an enemy is still hearable;
- adding spinning script to the purple ball that still is only a decoration, but now it looks better, I may thing about adding some functionality;
- adding flames to torches, which were part of the decorations in one part of the maze;
- trying to make the plane collider in second level to be ignored by player but weeping angels should still collide with it(not fully fixed yet);
Other feedback, especially the one fro the demo session will be implemented in the following weeks and the result of it will be published on Kongregate. (Published Game)
Except for this feedback features I want to implement as well are as follows:
- falling rocks from ceiling at the end of second level;
- creating "weeping angels near the teleport after player activates the teleport;
- adding nav meshes to weeping angels;
- creating different difficulty levels;
- finish second level;
And some screenshots, as I haven't posted musch recently...:
![]() |
Collectibles |
![]() |
Second Level |
![]() |
Start |
![]() |
Win! |
![]() |
Teleport |
Tuesday, 25 March 2014
Making a maze more recognisable
I was told that clues I had were too obvious(not sure why I didn't notice that...), so following the feedback I got I decided to add 'decorations' to the maze to make most points of the maze memorable, as walls texture is always the same...
Hopefully this will help players...I also added some platforms that player has to jump on to reach roboflies, which hopefully will make my game more fun..:)
Hopefully this will help players...I also added some platforms that player has to jump on to reach roboflies, which hopefully will make my game more fun..:)
Sound effects! :D
That is about time to add sound effects for enemies, as the background music for the main menu and the game itself was working correctly for some time, I needed to add some sound effects that would make player aware when he is followed by enemies.
I spent couple of hours trying to make this work, as when attaching audio to the specific game object is very easy, but playing sound effects using mainly scripts is quite tricky as Unity has two components for that-Audio Source and Audio Clip. At the beginning I encountered problems with using Audio Clip as a variable as it was missing Audio Source component so I added it as a sound to the enemies. Then I was playing around with some audio properties to get the most as I could from making sound effects work after player enters specific area(when enemies start following the player).
I spent couple of hours trying to make this work, as when attaching audio to the specific game object is very easy, but playing sound effects using mainly scripts is quite tricky as Unity has two components for that-Audio Source and Audio Clip. At the beginning I encountered problems with using Audio Clip as a variable as it was missing Audio Source component so I added it as a sound to the enemies. Then I was playing around with some audio properties to get the most as I could from making sound effects work after player enters specific area(when enemies start following the player).
Sunday, 23 March 2014
More feedback, and latest updates on my game :)
Last week I asked our lecturer for some feedback on my game, and as a result I got a lot of useful information on what to add/change or fix for my game.
After last practical, thanks to my lecturer I also learnt a lot about UV mapping which was the reason why I couldn't make the textures appear on the cave model I made earlier.
After last practical, thanks to my lecturer I also learnt a lot about UV mapping which was the reason why I couldn't make the textures appear on the cave model I made earlier.
I started with making start point more recognisable and I put a wooden sign(got from a cool website for free 3D models and other assets) near it, it also contains numbers which are main clues for the game-player has to find all roboflies, or at least most of it so i put numbers on a wooden sign as well as the walls. And the main problem appeared to be here...
Firstly I needed to figure out ho to put text on objects which already have textures on it..I eventually decided to use 3D text built in Unity, everything worked fine except that the text was visible through every object that was in a game!...
Finding a solution to this may seem trivial but it is not...after spending hours to find out how exactly make it work I tried following a tutorial found here, but the instructions were not clear enough...Firstly I tried using a new material other than that downloaded with the font and trying to add a GUI shader built in Unity to it...didn't work...after I finally figured out that I need the code that was given on a tutorial I tried to learn creating my own shader and figuring out where to put the code that was in the tutorial...By trying out almost every possible way I finally managed to get this all to work!! :D Now the text is not visible through walls and hopefully it will be enough clues for player :P
View from nearby start point looks like that now:
Wednesday, 12 March 2014
Updates, and bug fixes
Recently I've added some more features to my game prototype. Firstly player has one more objective- to collect "roboflies" that will enable him to use teleport before its activated, it also forces player to search through the maze instead of looking just for exit and omit all the enemies inside the maze.
I decided to add "roboflies" next to enemies, because when I did some testing of my game most people seemed to find the way out of the maze instantly without encountering any enemies... Therefore I needed something to enforce player to go and find enemies :D
I also added Menu screen as well as Game Over screen(which is not fully implemented yet) but the only thing I need to do is to attach it to one of the objects in game.
I started working on the second level, but before I can fully move to design and implement second part I still need to create script to create "weeping angels" before player enters teleport but after he comes back from the tomb area.
I decided to add "roboflies" next to enemies, because when I did some testing of my game most people seemed to find the way out of the maze instantly without encountering any enemies... Therefore I needed something to enforce player to go and find enemies :D
I also added Menu screen as well as Game Over screen(which is not fully implemented yet) but the only thing I need to do is to attach it to one of the objects in game.
I started working on the second level, but before I can fully move to design and implement second part I still need to create script to create "weeping angels" before player enters teleport but after he comes back from the tomb area.
Sunday, 9 March 2014
First part testing demo, testing, feedback and improvements...
I did not have much time to since last week to write about what I've changed and added to my game yet. But throughout this time I finished first version of a demo for my game! I've added music, my friend recorded for me to, I also put more "weeping angels" inside the maze.
Then I decided to give it to couple of my friends for testing purposes. although most of them said it works fine and everything is good, others found some minor bugs, but one of my friends tried to break my game in every possible way- and thanks to him I got the most useful feedback! :D
He discovered that it is possible to go through the teleport while it is not active(even though I put a wall behind it to disable that, so I decided to make a teleport a platform instead of being a part of the wall. Secondly he found that some textures were not placed properly-now it should be fixed, I also got to know that the maze I created for this demo is too easy, therefore I may implement other difficulty levels later on, and the existing one will be easiest mode. As well as this I got to know that enemies might be too slow so I increased their movement speed now. :)
Now I will move on to creating a script that will delete all the enemies from the maze after player gets out of the maze and when a player gets to the tomb enemies are spawned in front of him causing him to go back to teleport and then they will also be spawning at the beginning of the maze.
Then I will be able to start creating the second part where the player will have to place specific lights over enemies to disable it from following the player.
Then I decided to give it to couple of my friends for testing purposes. although most of them said it works fine and everything is good, others found some minor bugs, but one of my friends tried to break my game in every possible way- and thanks to him I got the most useful feedback! :D
He discovered that it is possible to go through the teleport while it is not active(even though I put a wall behind it to disable that, so I decided to make a teleport a platform instead of being a part of the wall. Secondly he found that some textures were not placed properly-now it should be fixed, I also got to know that the maze I created for this demo is too easy, therefore I may implement other difficulty levels later on, and the existing one will be easiest mode. As well as this I got to know that enemies might be too slow so I increased their movement speed now. :)
Now I will move on to creating a script that will delete all the enemies from the maze after player gets out of the maze and when a player gets to the tomb enemies are spawned in front of him causing him to go back to teleport and then they will also be spawning at the beginning of the maze.
Then I will be able to start creating the second part where the player will have to place specific lights over enemies to disable it from following the player.
Subscribe to:
Posts (Atom)