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.

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.

Split screen start view
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.

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! :)

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.



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 :)


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:

  • 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




Spinning Ball :D
Torches
Start Sign

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..:)

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).

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.

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.




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.

Wednesday, 5 March 2014

Some game updates :D

 So far I finished my first testing demo! For now it only consist of first level and I still need to add a story for it and start working on the next levels but first I need some testers to make sure most of the game mechanics works fine and if there are any bugs/errors discovered fix it before moving on to the next part :D As well as this I need to find appropriate asset for my "weeping angels" as for now cubes are used to be "weeping angels"...

Some screenshots to come soon... :)

Monday, 24 February 2014

Level Design

This week I managed to complete the story for my game, which will be later on displayed on first walls of the maze(I may need to change the texture of maze walls to make the text more visible).

I also started designing parts of my levels, and after completing most of designs drawings I started creating first part in Unity, which is a maze with "weeping angels" hidden inside of it. I also had to check if "weeping angels can't go through walls as when I created new scene they were...I don't really know why...but the problem disappeared itself somehow...

Here are some screenshots of what I have so far:

Maze- top down view

One exit blocked by rocks
View at the maze when I started creating it

Tuesday, 18 February 2014

Teleport Script-done!, moving on to creating a story

I finished writing the teleport script,which appears to be almost same as the script I used for "weeping angel" touch script.

Now I should start putting all these things together to start creating  basic level design and figure out a story for my game.

I almost have some parts of the story in my head already so I just need to put all these parts together.

As well as this downloading assets for enemies and for unreal enemies as well to create appearance of it would be very useful...

I decided to use an ancient Egypt theme to style the cave and everything inside it, although the story will take place in present times. The Cave is unexplored by any any human being, as everybody who tried to explore it went missing after getting there, that's why in close cities there are some legends about it. Even though most people doesn't believe these stories, they are not brave enough to enter the cave....

That's the beginning of the story but I don't want to reveal everything before my game will actually be a playable demo..


Monday, 17 February 2014

Weeping angels script part 2

Rrewriting weeping angels script from Javascript to C# and making it work was a piece of cake.. On the other hand, changing player's position back to the start after the weeping angels touch the player, which seemed easy at the beginning, was much more difficult than I thought... At first it seems all i need to do is check if the cube position is the same as player's position and then "simply" change the position of game object... I couldn't be more wrong..

After two days spent writing this script I finally managed to make it work  almost in the way I want it to work... The solution I found was to make function check for collisions(I found basic script to do that), from that script I only took general functions:

(example taken from  website)
function OnCollisionEnter(theCollision : Collision)\
{
    if(theCollision.gameObject.name == "Floor")
    {
    }
}

Which I still had to convert to C# and then change all variables to what I needed.
But this was the easiest way after couple hours reading through Unity Scripts reference for rayCasting functions(not really helpful) and then through OnCollisionEnter functions: partialy helpful-only thing I did wrong was to call these functions in wrong place...

In the end all I needed to add was about two lines of code... Hopefully next scripts won't take me so much time-it may be a good idea to follow a tutorial for most of it :)





Saturday, 15 February 2014

Game idea and some scripts...

I started improving m game idea and tried to make it more original. Being inspired by my favourite episodes of Doctor Who series, which included weeping angels statues(for future reference I will use statement "weeping angels" to talk about the idea behind it not the statues), I decided to implement something similar in my game. On the Internet I found already made script for "weeping angel", unfortunately it was in Javascript...(reference link to the script I found)
Weeping Angels from Doctor Who

I rather use C# in Unity therefore I rewrote parts that were specifically in Javascript-mainly declaring the variables. For some I had to figure out what type of variable it was myself as Javascript use type var for any variable whereas in C# I had to specify the type myself. It wasn't very difficult but tricky sometimes.

After this when i tried testing this script I got some errors after starting the game, it happened only because I forgot to set the initial position of a "weeping angel" and made the variable private, which was a big mistake.. But after I figured that out the script started working as it should be(I am not going to explain it exactly as hopefully most of people will play the game first and discover this themselves).

Starting final term project..

Even though I am still developing the idea for my game to improve what i already have, I started creating simple cave in Blender, so that i could start working on other stuff like scripts as soon as possible.

Here is a screenshot of what I already have for my cave(I also created another one just to try import it to Unity and it wasn't difficult so I can can keep working on this one again):



Monday, 10 February 2014

Physics project

Next task I got for my module was to create shooting script. Most of it I remembered how to do from the workshop last week but I also used Unity official tutorial to refresh my memory and make sure I am writing script correctly. each brick in the wall as well as the bullet has a rigidbody component to make sure it acts under physics. The final effect is that when you press mouse button bullet is created in front of the player and is then shot at the direction mouse is pointing, and then after 5 seconds object is destroyed in order not to have too many clones of it.

Some screenshots:



Thursday, 6 February 2014

Spotlights following the player-scripts in Unity

Finally managed to make the spotlights follow the player when the specific key is pressed once. Now I will continue updating this script to make the other lights disengage when button is pressed.

Then I will create some random movement for the other spotlights.

Next I will create scripts for shooting bullets into a wall.

After I get all these tasks done I will finally be able to work on my final term project- I have already developed an idea for it, which is quite complexed but fortunately most things are independent in it, therefore if I run out of time I don't have to include everything I wanted and it still will be a playable demo :D The first thing I need to do is to prioritize things I want to implement. The most important for me is probably the cave, which I need to create in Blender and then import into Unity. But more updates on this topic to come soon...