Friday, November 29, 2013

Lucidity Log 4: Now That is what I Call a Clock GUI

My most recent task for Lucidity has been to get an analog clock face and a digital clock to show up in the GUI. It was relatively easy and I had both done the day I got the task though I did still need to tweak a few things. I still needed to change the type of font,size and color of the text. Again this was pretty easy and designer probably could have figured this out but at this point in development there aren't a whole lot of tech tasks left.
Also please not that the font type is not Permanent.

Friday, November 1, 2013

MicroDude Log 4:Promoting Your Indie Game and Other Annoyances

I new going into developing a game that I would have to work with other organizations besides myself. I would have to rely on other people to distribute my game, To advertise my game, Etc. At first I was very cautious to do this, I was afraid of seeming unprofessional and being mocked, because I had never done this before, because I didn't have much promotional material, because Micro Dude is made with an engine and isn't used all that often in a professional sense. Then as I became more acquainted with self publishing I realized that the process was less involved and easier than I had imagined. I did still manage to make some mistakes.

Mistake Number One:
Be consistent with the title of your game. I know this one seems like common sense yet I still managed to make it anyway. On Desura the title is "Micro Dude". On Facebook the title is "Microdude".On twitter the title is "MicroDude". The title is all over the place. I wish I had just Picked one title and then just Stuck with it because every time I see a title that isn't "Micro Dude" I kick myself.

Mistake Number Two:
Make sure that the other organizations that you work with know when you want to release your game, also be specific I totally messed up in giving one of the developer relations guys that I work with an approximate release date even though I already had a preferred release date in mind. I made the terrible assumption that releasing Micro Dude was simply a matter of uploading a file setting a date then setting a price. When you go to release a game on any platform tell the dev relations guy what date you want and then ask him exactly how to make your game ship on that date.

I've made many more mistakes than just those two but these two seemed probably the dumbest. Micro Dude hasn't actually been released yet so I'm sure there are plenty of other mistakes I made that I just don't realize yet but I will be sure to never make them again.

Thursday, October 24, 2013

Lucidity Log 3: The Annoying Pendulum

Since my last Lucidity related post Raid+ has moved on to sprint 2 for Lucidity and I have since joined a feature team working on the third and second floor clock tower puzzle. I am responsible for programming the puzzle though surprisingly the hardest part so far hasn't been the puzzle itself but has animating the pendulum part of the puzzle of unity. At first I thought that this was going to be something that the animators would take care of but I quickly realized that this was something that was probably going to need to be programmed since the player needed to be able to interact with the pendulum dynamically. It seemed simple but getting the pendulum to swing smoothly was quite a beast to conquer. At first I got the pendulum to swing but at the apex of the swing it would sharply start swinging the other way. To fix this I tried adding decay. It worked smoothing out before getting to the apex but for some reason it didn't want to work coming back down and would sharply go the other way. I tinkered at this for longer than it probably should have taken but eventually I had a pendulum that swung smoothly back and forth.
http://www.youtube.com/watch?v=o315IIAo080

Friday, October 11, 2013

MicroDude Log 3: Sound Design

I never really realized the importance of sound design until working on MicoDude. I previously thought that it wasn't necessary because most games can be played with the sound being turned off. I typically like to play certain games without the sound, games like pokemon or minecraft and put a podcast on in the background to catch up on news. I never realized that sound gives the player instant feedback like no visual cue can give. The player can only look at one small location on the screen at a time. If the player needs to be alerted that somthing is happening in a space they arent looking at, sound effects really come in handy. The player is able to focus on events in a certain area while being reminded of events in a different area. I just recently had a friend test out MicroDude and what I found was that he didnt know how certain objects behaved. I had taken for granted all that I knew from designing, programming and countless hours of testing. One of the ways that I combated this was to use sound effects. If my friend is playing and he triggers a trap he wouldnt know how long it takes for the bullets to be shot and then reach him. With sound effects he would have been more accurate in estimating the time because he knows that the shooting sound effect comes after the alert sound effect. The sounds mark at what time he should start evading the oncoming bullet rather than possibly just seeing a sprite moving once out of the corner of his eye.

Sunday, October 6, 2013

MicroDude Log 2: AI Challenges

One of the first big hurdles I had to overcome when I was programming MicroDude was the main stealth mechanic. How were enemies going to sense that the player was near? I ended up going with a system that would spew sensor objects from the enemy npc in a different direction depending on where the enemy was facing. When the sensor objects would collide with the player, it would set the enemy into an alert state where it would stop in its current position then fire a projectile toward the player. The flaws of this method were that since the sensor objects would spawn on a timer, the player could jump through gaps in the sensors and avoiding detection in plain sight. One I made the sensors invisible though it became much more difficult to do. Another flaw was that the sensors move at a certain speed and it is actually possible for the player to out run the sensor before the sensor deletes itself. The advantage to this method of stealth system was that enemies could not detect the player through walls which was the reason that I chose this system. I originally though that a system that checked the relative position of the player would suffice but there was no way to not detect the player through walls.

Saturday, October 5, 2013

Microdude Log 1: Should Have Blogged Sooner

Im going to start this blog post by saying that I regret not blogging about Microdude sooner. For those who don't know Microdude is a indie game pet project that I had been working on in my plentiful spare time. It has now become a fully fledged release title that I will eventually release on gog.com and Desura. I kept Microdude on the down low for quite some time because I was still unsure if I wanted to release it or not. Now about 5 months after I first concieved the idea for Microdude, I am uploading the first trailer for the game and creating the facebook page for it. That being said I will start writing about the Intitial design and development of Microdude.

Microdude had a very unconventional inital design period where I wasnt designing the game on paper first. I figured that I would start off with a rough idea of what i wanted to make and then program and design the rest at the same time. This eventually came back and bit me in the ass but at the time everything seemed to move smoothly. The general idea that I had for the game was that I wanted to make a platform game that had elements of stealth. Initally I wanted to make the game very slow paced with a lot of waiting and puzzle elements. I eventually dropped that concept and went for a more fast paced stealth approach. I programmed the player to have fast and fluid movement. The player could Move left/right, Jump, Cling to walls and ceilings and I eventually made a grappling hook that the player could fire upward and then go up and down when the hook attached to a ceiling. All of these features have made it into the current build today.  

Monday, September 30, 2013

Lucidity Log 2: God Save the Queen

Save functionality was another feature that I was excited to work on, though I became way less enthusiastic as time went on. I already knew about player prefs in unity but I wanted to experiment with different methods of saving data. One of the first methods I tried was an XML Serializer script which I found on the unity wiki. It worked but took a while to figure out. Eventually it proved too unreliabe and my tech lead Justin recommended a unity plugin. I took a look at it but it didn't allow for specific data saving. It only allowed for saving a whole state of the game. Eventually I decided to stop making things hard for myself and just use player prefs, a decision that I am very glad that I made.

Picture of player placeholder and a red placeholder save point.

Lucidity Log 1: Getting Things to Move

My first Task for Lucidity was to make the player controller script. I was glad and also slightly surprised that I received such an important task. I started off by giving the capsule that was my place holder for the player model a character controller component. This was important because the player needed to be able to move smoothly on a surface but also need gravity so I didn't use a collider or rigidbody. At the time we were using Trello to handle tasks. Functionality that had to be included with this script was:
  • Forward and Backward Movement.
  • Strafing.
  • Rotating.
  • Jumping. 
I only had a few problems with rotation but otherwise all the other features came pretty easily. The problems with rotation came from a miscommunication about how the player was going to be controlled.I thought the player rotation was to be controlled with keys when it was supposed to be controlled with the mouse. Thankfully that eventually got worked out.

Picture of the player place holder in the basement level.

Thursday, September 5, 2013

What is an RPG anyways?

When I was young I had never played a western role playing game. I had never played an Elder Scrolls game or Fable or Fallout. The RPGs that I grew up with were Pokemon and Mario RPGs. At the time I didn't know them as RPGs I just knew that I liked them. I first became aware of the term RPG after playing Fallout 3. It was a game the likes I had never played before. Fallout 3 had an open world that allowed your character to do whatever you wanted them to. You could do quests, you could explore, customize your character or murder everyone on sight. The Fallout 3 world was your oyster. I bring all of this up because I think the term RPG describes something that the majority of  video game "RPG"s don't actually have, and that is Role Playing. The game that was inspiration for all modern RPGs is a Pen and Paper RPG called Dungeons and Dragons. Dungeons and Dragons was the very first RPG and the reason that we call RPGs, "RPG"s today. In Dungeons and Dragons you play a custom made character. The player defines their story, stats, race and abilities and then during the game the player plays the Role of that character acting and speaking as if they were that character. That is the reason that D&D was called a Role Playing game. Not because of the mechanics of the game but because players would act out their own characters. I doesn't make sense to me why we would call Pokemon an RPG when the player doesn't act out or give their character their own story. I think that what happened in the gaming industry is that when developers were making their games based off pen and paper games they categorized their games under the RPG genre even though the only thing they had in common were the mechanics and not actually the reason for which RPGs were named. Games that can actually be called true RPGs are games like Fallout or Skyrim where you can give your character back story and choose their race and class. I propose that we need to rename the RPG genre. The term RPG is misleading and Inaccurate.

~Jon

Thursday, August 1, 2013

Language Superiority? ...Why?

As a young video game developer and programmer, I've been able to get my hands on a few programming languages throughout my developer career. I've tried Java, JavaScript, C++, C# and Game Maker Language. I am not sure why but there seems to be a lot of hostility between people who use more "Difficult" languages and people who prefer "Easier Languages".

 I often hear people bragging about how C# is superior to JavaScript or GML but I don't understand where all that pride comes from. I've recently realized that almost all programming languages I've used  with the exceptions of file format and syntax is written and works almost the exact same way. Declaring a variable in C++ is just like declaring a variable in JavaScript if you know the Syntax. So is calling a function or writing a condition. It is because so many programming languages share the same constitutions that after you learn your first language all the others come so naturally to you. I am glad that this is true because it makes learning and translating languages that much easier. I will admit that that some languages may have more applications than others but that does not mean that the others don't have valid uses also. I've heard a bunch of team members of mine talk about how Java Script is useless when programming in unity 3d but the majority of tutorials that exist online are JavaScript tutorials. The project that we are working on is using majorly C# because of the games overall complexity but that does not mean that JavaScript should be forever ignored. If we ever worked on a simpler project, using JavaScript could most likely benefit us, because it would increase the speed at which we worked. I don't think that certain languages should be considered unusable all together because if they are used properly they can be far superior to the more advanced languages.
~Jon