Sunday 31 January 2016

Game 2.5



At this point the game is taking on its colour scheme to test view what it looks like, the autumn colours look beautiful even in square form,

The character is currently Unity-chan, the japanese unity promotion character, i am using the block character prefab because it shows the character animations and scale for the game, the gui is also starting to take off as i have been experimenting with orientations and slider bars that present the health ammount in slider form.

I am continuaously working to make the enemy and combat system work with numerous enemies , currently failing.

Thursday 28 January 2016

Games Production - Spring Submission (M1/5)

For our Year 2 Spring Submission we were asked to get into a group (maximum of 8) and produce a 'vertical slice' of a game of our own design. Initially I was unsure of who to work with as several students in our group had already teamed up. Eventually the remaining class members combined, including me (in total six of us) to form a group. 




After several meetings and group discussions, we all had come to an agreement with creating a basic isometric Role Playing Game (RPG) set in an alternative medieval world. Here are some reference/mood boards of the medium topology style we all had in mind.




We all discussed our own strengths and weaknesses for our roles in the group and after some thought, I wished to try out as the environment artist (one I am less familiar with) rather than a concept artist; of which I am a bit too comfortable in.




It was then agreed that I would be the environment artist and so I set out creating simple elements such as the colour palette image above. The reason I made these were to show the mood and contrasts of what our game could display, in its stylised setting, later on.




One of my tasks was to create the map layout and the player's 'activity' path. Above are six concepts I did of variations of the 'vertical slice' map. The main focus was having a start and an end point (possibly a boss) to reach which we included in the style of castle ruins roughly in the centre of the map.




This is the final map design after some consideration of the player's story path. I also created a key/legend as a guide for certain objects and characters. In addition, I made some previews of certain locations such as the village and bridge spots.




Before I completed the final map layout, I made a simple grey box section of a corner of the map in Maya.




Here are some trees that I made very quickly but had an interesting style to them. As the setting is a rural one, I will have to put some more thought into several variations as well as shrubs which will then be scattered around the vertical slice.




I will also have to construct the collision meshes around areas of the map the player cannot get to, as well as the route; as demonstrated above in my environment test.




For our first milestone presentation, I had to make basic grey box assets of our game as seen above. This is the start of the game at a makeshift camp; with the player's size highlighted.




This is the next major location, the village, with the quests aim cart highlighted in the distance.




Another key spot is a bridge passing over a river. Several NPC (Non-Player Characters) characters and enemies will be around this zone, so it was essential to get a wide atmosphere here.




The last challenge you come to in the vertical slice is a boss in the castle ruins atop a mountain range. The path leading to the bridge, is still a work in progress as the elevation is rather tricky to work out and keep flat to enable the player to walk up.




I was really pleased with how accurate I could get the Maya grey box map to that of the sketch I did. However, I am open for suggestions as I know things and their placement could change as the world is developed along with the story.

Saturday 23 January 2016

Game Combat redesigned

After having a lot of stress and trouble with the set up of multiple enemies I redesigned the combat to house all the scripts on objects that wont be destroyed or deactivated:

The health manger - controls both the player and enemy health bars.

The Dice by the player (6 sided, 8 sided...) - controls the rolling and functions that deduct from health based on roll numbers.

The player trigger script on the player - this script controls the triggered events such as fights.

All three scripts communicate with each other to make the combat system work, for now the dice rolling is set to roll for both players, the numbers are then compared and the side with the lower number looses health, once the players health reaches zero the game over screen takes over, but should the enemy loose all their health the player is prompted to click the enemy to kill them.

With this system the boss fight could be easily done, the boss would have slightly different scripts 

Friday 8 January 2016

Character Creation Prototype

As our game is an RPG it made sense for us to include a character creation system. We opted to have character classes that would contain pre-determined stats; these stats would improve through levelling up. 
The classes themselves are based on particular play styles, for example we have the Bruiser class which is a melee oriented class. The hope is that for the vertical slice the inherent stats will affect gameplay, for example in the turn based combat system the damage done to the enemy will be based on their weapons damage stat. Depending on your character's Might stat a certain base damage modifier will be added to that weapons damage stat.

At the end of development the character creation system should be in its own scene once the player selects "New Game" in the main menu. For now I have made a script that shows the 4 main classes in Unity's basic GUI Layout, once the class has been picked and the "Create" button selected the stats and name of the class are generated in the console.


I initially created a script called BaseCharacterClass, the idea of this script/class is that when I would eventually go on to make the 4 individual classes the basic values that they would use in the code, such as the 6 main stats:
Might
Endurance
Intelligence
Presence = Charisma
Awareness = how good the player's senses are
Chance = Luck
Could be called from this BaseCharacterClass script, this would save me the trouble of remaking the basic values for each class script.

I used public getters and setters in the BaseCharacterClass script. This would allow me to call up the values within other scripts. This works by storing private values such as an integer (a whole number) and then by making a public integer that corresponds to the private integer and typing out the syntax of the getter and setter in {} parenthesis, for example:

private int might;

public int Might
{
                                   get{return might;}
                                     set{might = value;}
}

 get{return might;}: get simply reads the following text, in this case "might" 
set{might = value;}: set gives the value, the value in this instance is an integer and consequently is a whole number
The code also uses String, the sole value of a sting is text like the value of an integer is a whole number.


Next I wrote the first class script, referred to as BaseBruiserClass. I removed MonoBehaviour and instead of inheriting MonoBehaviour the script would inherit the BaseCharacterClass script. Since I am now inheriting from my BaseCharacterClass script when I type, for example, CharacterClassName (which was one of my public strings in the BaseCharacterClass script) it will appear in a drop down list when I begin to type it out similar to if I were typing out another common piece of syntax like "void"; and I will be able to assign a value to it, in this case its a string so the value is text based and since I am using it to name the class I would type something like this:

CharacterClassName = "Bruiser";

Likewise, since I am calling the stats within this BaseBruiserClass script and they are integers rather than assigning them a text value I would assign them a whole number value:

Might = 10;

Capital M in might as I typed it as such in the BaseCharacterClass script when I typed:

public int Might
{
                                   get{return might;}
                                     set{might = value;}
}

Following this I made a new c# script called BasePlayer, which functions almost the same way as the BaseCharacterClass script but the BasePlayer script will be used to store the inherent information of the player themselves, such as the player's level and current XP etc. But I shall continue with that script later.


Lastly I created a new c# script called CreateNewCharacter. This script shall be used to code the initial character creation screen.
I started off by making 4 private bool/boolean's, a boolean stores a true or false value which can be declared in a later line of code; namely an if statement. Each one represents 1 of the 4 classes and where named for that purpose:

private bool isBruiserClass;

This can be spoken informally as "isBruiserClass True or False", that is essentially what we are trying to say in this variable.

isBruiserClass = GUILayout.Toggle(isBruiserClass, "Bruiser Class");

This line of code uses Unity's GUILayout.Toggle, this will display a "tick" box on screen followed by Bruiser Class, this for the players sake to be able to select a class. I repeated this line of code for all 4 classes.
After this I used an if statement to determine whether the tick boxes had been ticked, and else if to follow on to the tick boxes of the other classes to check if they had been ticked.

Wednesday 6 January 2016

gameplay prototype

This is the game play prototype I started working on from the ideas that the group combined.
The level includes a player, a basic enemy and the dice for fighting.


The game is set at a 45 degree angle as agreed by everyone, the enemy has a trigger box and upon entering the target sphere is deactivated and the player no longer moves and stays in a battle stance.

the script I wrote has IEnumarators and starting events that show text and activate the battle menu, James also made a script that generates a random number that was merged with my script so that the battle system scripting may begin.




Afterwords I got the beginning to the fight working, when the player rolls a 10 they do a critical hit and for now the game is set to win the fight at that point.

Friday 1 January 2016

Character Artist: Post 1

Character Artist

As all other roles had been taken, it was left to me and Wesley to choose between character artist and concept artist. My preference was in concept, but I reluctantly took the challenge of rendering a character.