Friday, March 31, 2017

Monthly Post #2 - March in Review

What I Learned This Month
-How to make a "click-to-move" mechanic, and interactions by clicking.

-How to make a clickable UI.

-How to easily add water to a game.

-The basic controls of Blender.

-How to add basic character statistics to players/enemies.

-How to reinstall...everything...

-And finally, how to add first-person player controls.

What I Accomplished
This month I've added on to my "Simple RPG" game, and started creating my own game from scratch, only using tutorials when I need them.

Next month, I plan to continue my Audio-Only game using tutorials from the "Simple RPG" and more. I'm hoping to add some of the mechanics such as combat and health.
























Day 28: Audio-only game, post 3

Just to show that my character is indeed moving, I added a simple house to the scene.

As stated in my last post, I can't turn the character yet. To do this, I need to add a script to the main camera (explanations in the image).

Now to test it out.

I don't like the sensitivity, so I decided to change it to 2 (instead of 5), and the smoothing to 1. It feels a lot nicer. I also reduced the movement speed afterwards.

The only problem is that I don't want to mouse to move up or down. That would make the game way too hard since there isn't any easy way to hear whether a sound is above or below you. So, I simply deleted the code that makes the y-axis data useful.

Now the character can't look up or down.

Next class I will be adding a GUI menu that appears when the player presses "Esc", and when the game is opened.





Thursday, March 30, 2017

Day 27: Audio-only game, post 2

I found a tutorial on how to make a first-person character.

First of all, I needed to make sure my plane (ground) had a collider, otherwise the player will fall through the ground. It already has a mesh collider, so I'm fine.

Next, I made a "capsule" shape, which will be the gravity control for my player. Since my player won't be able to (or need to) jump, that shouldn't be needed, but I'd like it to have gravity just in case.

It can't use gravity without a Rigid Body component.

Next I aligned the camera with the capsule and made the camera a child of the capsule.

After all that was finished, I then made a script to control the movement of the character (explanations in the image).

Now the character can move.

Next class I will add mouse controls.

Wednesday, March 29, 2017

Day 26: Audio-only game, post 1

I've decided to hold off on the RPG tutorial for now, and do smaller tutorials relating to the mechanics of the audio-only game that I'm going to make, such as player movement, to begin with. With the game being audio-only, I won't need fancy characters; a bunch of boxes as placeholders will more than suffice. It also means I won't need animations, lighting, or even textures.

First of all, I need a surface for the player to walk on. I simply made a plane, and coloured it grey so I could see things easier.


I then decided to make sure Unity supported directional sound. It should, but I like to be sure.

First, I put a sound source to the left of the camera. Then, I imported a free sound fx pack from the asset store.


After applying the sound to the sound source, it sounded even in both ears (I'm using headphones). I then changed the "spatial blend" from 2D, closer to 3D.
It worked. Unity supports directional sound. I can fine-tune the sound later, after I've gotten the base mechanics in place.

Next class I'll find a tutorial on how to make first-person player control.











Tuesday, March 28, 2017

Day 26: Starting a new project; Audio-only game

Since my Google Drive takes a long time to sync Unity games (5000 files just for my simple RPG game), I can't continue my game today. So instead, I decided to start making a new game.

Blindscape, on Google Play


 After discovering a game called Blindscape, I came up with the idea of making an adventure game (2-3 hours of playtime at most) set in medieval times...without graphics. The idea is that the game would be played using sounds to tell where characters and enemies are.

I plan to make two versions: one for PC, and one for mobile. I've already figured out controls, and some game mechanics.

Mobile:
To move the player, there would be an invisible joystick(or visible, depends on what works) in the center of the screen. Up=forwards, down= backwards, left=strafe left, right=strafe right.

To turn the character, the player would turn their phone, which would probably use the compass. It's not the nicest solution, but it's the best I can think of for now. If I think of something better, I'll switch to that.

Swiping from the bottom left to top right would equip a weapon (maybe sword), the reverse would unequip it. Same with bottom right to top left and reverse, just with a different weapon (maybe a bow).

The menu button would probably be on the top, center of the screen, and would have options such as "Save game", "quit", and "credits".

PC:
The controls would be the basic "wasd" for forward/back/strafe left/strafe right, and the mouse would be used to turn the character. I would need to add an option to change the sensitivity, and a "testing room" to allow the player to find the sensitivity they like.

The keys "1" and "2" would equip the two weapons.

The "esc" key would bring up the menu which includes options like "mouse sensitivity", "save game", "quit", and "credits".

Mechanics/Gameplay:
For enemies, I still need to come up with ideas for that. Maybe I'll have bandits, wolves, and/or other enemies. Since the player is "blind", the enemies would vary from one to three-hit kills, while only doing 10-15% damage to the player, with full health being 100%. The enemies would also have to make sounds frequently so the player can find them, and fight. There would be a delay between the enemy reaching the player and then initiating an attack, maybe 1-2 seconds to give time for the player to either move out of the way, or to attack before the enemy does.

For the attack mechanic, I could probably use a raycast with a limited range; very short for a sword, and long for a bow. To attack, for PC, the player would simply click using the left mouse button. I may also add a blocking mechanic, using the right mouse button, which means I would then have to make enemies harder to kill, faster, or deal more damage.


Monday, March 27, 2017

Day 25: Reinstalling...Everything

So apparently the computers were completely reset over the Spring Break, so now I get to spend nearly the entire class waiting for Unity, Blender, and Google Drive to install.





Next class I should be able to continue tutorial #4: Character Stats.


Friday, March 10, 2017

Day 24: Character Stats Continued

I added a script that I can add different stats to. Honestly, at this point, I barely know what I'm doing. I think I'll find a simpler tutorial after I finish this one.

Unfortunately, the script doesn't seem to be working, even though it is exactly the same as the tutorial.

Well, found the error...I have no clue how that thing got there.

Now to add it to the Player_Model.

I don't even know anymore. Oh wait...another simple mistake!

And it works! Finally. Goes to show how tiny details can mess up a whole script.

Next class I will add more stats in the CharacterStats script.













Wednesday, March 8, 2017

Day 23: Finishing Dialogue & Character Stats

To finish the dialogue system (for now), I added some script to the sign post so it would be part of the system.

Now that the sign is added, I can now interact with it. Unfortunately, I forgot about the problem with the dialogue box sizes. I'll try to fix that.

I changed the size of the panels a bit, and it seems to work only if the screen is a certain size. For some reason, it stretches the panel if the screen is stretched. It's fine for now, but I'm not really happy with it. I might come back at some other time and fix it.

I can now continue on to the next tutorial video: "Character Stats". This will include things like damage, health, etc.

First of all, I created a script called BaseStat, which is the class that every stat is based on. I will be adding stuff later on, but this is what it looks like so far.

I then made another class script called "StatBonus" which will control the added stats, like buffs, debuffs, and equipping a weapon.

Next class I will continue the tutorial.


















Tuesday, March 7, 2017

Day 22: Dialogue System Continued

To start, I made a script that will help control what specific NPCs say.

Now I have this thing in the NPC script component in the NPC object. It allows me to simply type whatever into the boxes, and the NPC will say it. I can also set the name.

I added a lot more script (which would take a while to explain)...

And this is what I ended up with in the end. Unfortunately, the dialogue seems to be running through twice, which I'll have to fix. I'll also have to fix the size of the text, since it sometimes goes past the edges of the box.

To fix the double-dialogue, I simply needed to delete these lines. For some reason, the guy in the tutorial said to put them in, yet it works without them.

And after tweaking the size of the boxes a bit...

It's still messed up.

Next class I will first try to fix the dialogue box, then I will continue the tutorial.