Falldown dot exe

No Caption Provided

Falldown.exe; It’s the first thing I placed on my desktop when I reformated and something I haven’t opened in years. Nonetheless, it is there right smack middle of the screen with it’s big red ball icon contrasting with my plain cornflower blue background. Falldown is the first video game I have ever made. It is something I am immensely proud of and is still influential to me, to this day.

Falldown was made about 8 years ago while I was a freshman in high school. I always loved games and played them every day. When you’re that age, you start to think about what kind of career you want. So how were games made? I had no idea. But I was curious. After some searching online, thankfully better than on a 56k connection, I found my way to GameMaker. Reading through the pages triggered that desire to create and download the software. I installed, then opened; then was immediately stumped. Thankfully, GameMaker provided a shump tutorial, and I liked those types of games too. Opening it up I found it very curious that everything was in these little boxes, which GameMaker called actions/events. Now I was not that ignorant, I knew games that I played on my PS2 were made differently. But it was cool to see things like “Press the left arrow to move” only consisted of a few blocks. I spent the next few hours moving, tinkering, and breaking down the tutorial discovering how everything worked and what kind of relationships items had with each other.

I always loved math, which was sort of a curse since it forced me to take the upper level course every grade. I guess I didn’t mind learning new things but I didn’t want to actually do any extra work. Anyways, a requirement for these classes was a graphing calculator. I chose to pick up the TI-84+ which was a useful and fun tool but I didn’t really give much thought about it. One day however in a new school year, a classmate told me something that lit my eyes up. “You know you can get games on that, right?”. I thought, “This had to happen, right now!” We found the one kid in class that had the AUX cable and we transferred things around class till we all had 20+ games to play while we pretended to listen to the lesson.

No Caption Provided

I’ll admit if I had listened more than played, it would probably have been easier for me to do my homework but that’s just how I was. With games in hand I poked around the calculator some more and found the app to open the games ( and other executables) in their script form. This was my first exposure to programming so it was extremely confusing. Not to mention the calculator only displayed so many characters per line making reading what is going on extremely difficult. But I started to discover functions that didn’t take much thought to use. After a while I started to make little programs that just flashed a pattern across the screen, nothing with any logic but cool for me at the time. I tried to mess with the “Snake” clone but didn’t have much luck. I just didn’t understand the language and how to write it.

No Caption Provided

There was one game that I would play all the time and it was super addicting. It was simply called “FallDown”. The game was simple, you’re a ball and you have to press left or right to fall down random holes. As you went on the game would get faster and the gap between each row shortened till the game was impossible. It didn’t matter that there was a hard end to the game. My friends and I would still try and beat each other at getting a high score. So when I told GameMaker to give me a new project it was the obvious choice to clone. With the knowledge of the tutorial it was pretty easy to get a ball in. I recolored it red, and had the left and right arrow keys move the ball back and forth. I discovered the gravity block, dragged that in and BAM the ball moved down. Next I made a trigger and score. When the player got to the end box the score would go up and the game would reset. The challenging part was making things random. I created a block and added physics to it, so the player would bounce off. GameMaker thankfully had a random spawn function and doing so made 100 blocks spawn randomly on the screen.

Here is where I came to my first ever design flaw. The random blocks would sometimes spawn on the player or spawn on the goal meaning the level could not be completed. I was stumped. I was just messing around and I didn’t know how this stuff worked. But I knew it was wrong and that if people played it they would say it sucked. I looked through all the different blocks I could drag in and found the button box. I placed the make the random blocks code in that button. This allowed the player to reset the gameboard if they found it was impossible to complete. This was not a perfect or even great solution, but I felt pretty good that I “fixed” it and the game could be played.

Falldown was not a good game nor well made. But that doesn’t matter. What mattered was confirming that not only I could do it but it was the perfect combination of tinkering, breaking, mixing that I enjoyed and a game that I already loved to play every day. I would say I am pretty lucky. Most people don’t know what they want to do with their life. But I was able to confirm it pretty easily. It still took many years to finish school and get into college where I studied programming and actually learn how to do this. It took even more blood, sweat and tears to get to the point where I am today; owning my own company, creating Sketchcross, (something I have wanted to make since the Vita came out) and have the backing from others. This is why I keep Falldown on my desktop. A constant reminder of where I was, how far I have come, and what I aspire to be.

2 Comments

April Game Jam Complete

For all previous weeks go here!: [Week1] [Week2] [Week3]

Well April is over and so is the game jam. So it is time to reflect what happened.

What it comes down too its hard to be a one man shop and still be efficient with time. Often I am waiting on things that I can't do, or wasting time fiddling with to make things just right. And don't get me wrong, the art and audio people have done for me is great and I would not be were I am with out them. And making things just right is very important its crucial. But what is hard to deciding and acting on the priority of things. Should I spend 2 hours playing the game over and over again making sure the balance is right or finish fleshing out a feature? It is a question you kind of that to just answer and stick with it you can't go back and forth on it. Having polished content is key but also is having a feature being complete. For example I Could spend hours getting a ball to roll just right physically but then have no objected for you. That polished feature needs another feature to accompany it. For content, programmer art can only go so far. Here is the problem, if the game is just using art that will be replaced when you take a step back and look at the game and ask, what more do I need to make this great?. Its hard to not get stuck on the fact that you hate the way it looks. I want to look with out seeing the art and just focus on the gameplay, however these types of gamejams are great practice to get better and looking at your games.

Something that thought would be terrible and take a bunch of time is animations in the background. In the castle stage I wanted to have smoke and the pin wheel to move along with the clouds and sun. At first I was just going to say forget it but after a hour of messing around I was able to get it working. And it was a lot easier then I thought it would be. And man it makes so much difference. That is one of those things that you may think is small, but having those little animations play really making the backgrounds, something your not suppose to look at, really come to life.

Something I still need to think about is having more tells for the monsters, right now the monsters have timers then then have a random variable attached on when they fire their attack, ie every 1 sec or ever 1.02 seconds etc. So the question becomes when do you defend? Ever? Is button mashing a more effective solution to the game? I think it is right now. So how do I tone that done. I do want some mash but there has to be a balance. Do I add more wined up to the attacks so that you can see them coming better? More delay between button presses? Its something I really need to spend time on, but its also a big ask since that is a lot of time that I have to spend playing the game, or watching others play, make tweaks then do it again. This is something that is holding the game back but really the only solution is to keep going forward.

Well what is next? Well the art is almost done for having 5 stages (out of 18) at that point it would reach alpha. More more more polish and content. I am definitely going to continue to work on this one the side, I really like the idea and want to see it through. For release I am going to put it on GameJolt first then mobile shortly after. I always hope anything I make takes off but we will see.

Check out the game here

Follow me here as I will blog periodically about it!

Feel free to ask any questions!

Start the Conversation

April Game Jam Week 3

Ok last week of the jam.

coming along great. Fixed that problem that I was having last week with movement and animations. there is still some stuff I want to change about how the game plays. Things need to be more snappy, ie controls more 1 to 1 but slightly less button mashing. Not sure if these things will done by may 1st but will all this progress I am happy that it will not take to much after to have it finished and on places where people can play it ( besides my website). Working right now on getting the main game loop complete. ie starting the game finishing the game then returning to the main menu. So right now I have 5 bosses(same currently) then goes to the final boss. but then it just stops. I need it to show game over and score, wait for the player to hit enter then go to the main menu. seems like its easy but its not, like always. Wellll easy is subjective I guess, this is more time consuming than anything else.

My design methodology for this game is simple, its "Fuck it". So I was faced with a problem, the play when pressing slash for the first time jumps into the air, there you can chain up hits to increase your multiplier. But the enemy has no counter for that, so you have just wail on them for how ever long the air time is. That promotes button mashing and not paying attention to score/multiplier. So I was faced with a daunting task, all enemies needed another attack. Man I don't have the time for that, to design and implement a new attack. So I cam with a Fuck it solution, All enemies can flip. So if you are in the air, the enemy, can, flip its sprite on the x axis which knocks the player back down. Simple but it looks really cool, the game is 2d but this flipping is obliviously in 3d space. It helps bolster ( in my opinion) the idea of this game to be very outlandish and chaotic .

There is a concern of mine that the game will be too random, and have no flow. But I think with more time and play testing I can find a balance between the Fuck it and actually replayable fun.

Latest build

Smoke and mirrors:

As I code more and more on this game I have been making more and more use of unity's Invoke function. this functions allows for methods to be executed after a delay ( this is only internal methods). If you read my week1 blog I talked about them more and solutions to some of their downfalls. But now as I am enter more of the polish phase I am using them more and more to just make things happen. You don't want the game over to come down RIGHT as you die, you want to look at your player and have a half second before it shows up. These are little things that really go a long way on making your game feel professional. So a lot of times you think, oh this is going to be really complicated and I need to do all this stuff, no not really. Keep it simple the more complex your code is the hard it is to maintain and add stuff to. Being clean is important!

Start the Conversation

April Game Jam Week 2

Sup Duuders

Progress!

Been a busy bee trying to get these gameplay systems working as I want them too. I am close, but still a bit off. Luckily though I am nearing mostly code complete in terms of these game play systems. My biggest problem that I am having right now is the animations and how Unity's mechinam works. Well it works bad, ok that is harsh, but it is not working for me on what I want to do. The problem is I need the movement of the sprite and the sprites sprite animation to be separate and to be called differently. In the game I can move to the enemy and do an attack, but the player can continue making attacks while in the attack state. And with mechinam's animation system I can not move a object while it is in animation state. So right now The main character is 3 objects. A Character holder which contains a character animator which contains a character sprite. So I can animate the sprite, then animate that whole object on top of that, theeeenn I can move the whole thing for effects and what not. Its complicated but it seems to be working. There is this layer thing in mechinam that maybe will solve my problem, but with all these nodes connected like spider webs to each other I kind of just want to rip it all out and play the animation clips in code manually. Unity has the best documentation in the business but with this it defiantly falls flat.

Audio guy got some audio plug ins and is making music, Got a artist that will clean up my art. So things are coming together at the end like they normally do.

No Caption Provided

The mess a game can be really is something that I never can get used to. I worry and stress because I have all these pieces of this game that are not connected, but I panic cuse I feel like it won't come together. But it does, just needs a little glue, I definitional don't give myself enough credit for making things.

Don't have any learning for you guys right now, things to much of a mess but hopefully next week I will have something!

Latest build (as of writing only left mouse works)

3 Comments

April Game Jam Week 1

Helllllloooooo evry1

So right now where I am 50+ people in Tempe are doing a month long game jam. We had no restrictions on what we were to do but I knew I wanted to make it small. I partnered up with a friend who is a music engineer and we are making a "metal as fuck" mobile "fighting" game kinda. You have 3 actions, slash, stab, and guard but you can make combos with those. The Goal was defiantly to make is very crazy with flashing colors and other stuff to make you go insane. I based the style off cheesy 80s movies but for what I have so far I went a little more blood dragon. I have been working really hard on it as I want to get it done at the end of the month and release it and I am really exciting on the progress I have made. It is really starting to shape up. The next thing to do is flesh out the level transition and add combos. I really think I got something here that could be really fun. And Just crazy enough to get peoples attention. Ill try and make this a weekly thing to show progress and get feedback.

You can check out the latest version here:

http://pufferfiz.net/Protfolio/Breakdown/Breakdown.html

Plug time: I am looking for more designs to fill out the enemies you fight.If you can do pixel animation hook me up.

Learning time:

So in unity you can not use the invoke method, a method to execute methods on a delay, in static classes. Normally that is ok but I had already developed a static effect class that will take in gameobjects and put a effect on them. What I wanted to do was flash the sprite to complete white, and to do that I needed to run a method in the sprite's render component to modify the sprites shader. Which would be ok to do in a static method but I want it to flash back and forth, if I just made 2 methods I would still have to write code for every character/boss to do that. I am using a Unity extension called LeanTween and its pretty awesome, its open source and very lite. In this case I wanted to exploit its On Complete function which is called when the game object finishes its tween move. In order to do that I had to create System.Actions, and I was like what I have never heard of those. Welllll they are like Method Delegates. I thought it would hard to figure out but it was really easy. All you have to do is make static methods like normal where they take the param generic C# obejct. You create them like any other member, new Action(yourMethod); . That is it you have an action! Ok so now that I have all that I can make the flasher. the method takes a game object then tells LeanTween to move that object(LT is instantiated automatically when called), no where, yeah move it to the same spot where it was at. BUT on a delay, so in .4 seconds complete this action. the complete action is turn on white. the next line is the same thing but goes to the off white. Repeat that a few times and you have a flash effect that will work on any sprite( that has this shader). Obviously you may not need it to flash but this is a great way to get around the pesky unity everything has to be a mono behavior to work crap that can get in your way.

Full Source

White Enabled Sprite Shader *Have to use this

2 Comments

Freemium deconstruction

An associate of mine Ara Shirinian( The Red Star,Disney/Pixar Cars: Mater-National Championship,Dood's Big Adventure,Disney Epic Mickey: Power of Illusion) Did a talk last month about freemium games and how the effect game design.

As some one that works on mobile games ( and admittedly the company is trying to break away from that ) it is very curious to me how some of these games can make millions of dollars with a free game and with dlc that is optional.

The talk is fascinating and he really is able to break down everything that is going on with these games and the design decisions that they make. The learning curve for freemium games is strangely different then normal games, on these games it is exponential meaning that the more you play doesn't make you get any better. The way he breaks down Puzzles and Dragons makes it seem more like a casino than a game. The egg machine gives you rare eggs, that is awesome right? no the rare eggs are just as useless and uncommon as the common ones, but since there is a chance you think you have good odds and spend money to take a spin. or how the monsterbox works. The talk is almost 2 hours long but well worth it, especially if you were puzzled with some of xbox one's inclusions of microtransactions.

my question was at (1:36:50), where I ask about the future of this dopamine thrill and if it will wear off as more people understand how the game is deceiving them.

3 Comments

Android Sucks

*these are my views and not my employer's *

I hate android.

Seriously can google make it any more fucking difficult to develop for. There are thousands of different devices out there, all with different hardware specs and different GPUs. It so we release our newest game ( hur dur look at my wiki and take a guess ) on all mobile and ios has been fantastic. Very few bug reports. Android however nothing but 2 star reviews on amazon. And it really sucks because there is not much I can do about it. Google play forces your app to be 50mb that then has a data zip it unpacks. Our game is 400mb, even some new 2013 phones are having a hard time unpacking that at runtime. Amazon is better since it is all packed into one apk but most people are buying from the play store. on top of that some people's saves are being corrupted do to mem issues on some phones. Ug I can't test on all these phones. I have a tablet and a phone I have been testing on with a few others I have borrowed. This has been a nightmare and the worst part is I am not sure if there is anything I can do.

I really shit on apple since I think their company and their policies are shit but for ipads and iphones its amazon. their hardware is standardize and I know if I can get it to work on 3gs and ipad2 it will work for all the other ones fine.

end rant.

35 Comments

The First Time Into Crunch

Well we have about a week to finish all critical, unable to finish game, bugs. Ie trying to go gold crunch time. It is the first time I have been in this situation, everything else I have worked on it would come out when it was ready. This however is a Halloween game therefor it has to be out by Halloween, which we then need to go through apple cert which takes about a week. So really we have little time left even though Halloween is a month away. Honestly we are behind schedule, so I am working 10+hr 7 day shifts at work and man it really sucks. I mean it has to get done and I understand that, but it really strains on the body and mind. And I now understand those stories I have heard of employees sleeping at work just to get through this time.

I am still in this period so I can’t give too much advice, but we have pretty much solved all the bugs on the puzzles, so everything can be completed. And we were able to run through the game last night without it crashing/having to use debug commands. Which is a pretty good feeling, but there is also so so soooo much work to get done and sometimes It really feels overwhelming. Really it is overwhelming there should have been better planning all around, I mean I know I made some schedule mistakes. But really that is the name of the video game dev process. At the end you wish there was more time. But it never comes and that really sucks. It can’t be a block though, I have thought about just shutting down since there is so much work and not enough time but I can’t do that. You can’t just give up. Sometimes I just think of the little things, like my parents playing the game or getting over a small bug, which is just enough to keep me going. You have to have it though, you’re dealing with a lot here and any small thing that keeps you going you have to hold on too.

One of those things was making this small cinematic video I made, which I am excited to show people but at the same time, I can see everything wrong with it. Ie I can see that this item doesn't have the right lightmap, or this item is actually missing. But it’s looking at the project as it is coming to completion and that is a really good feeling.

Start the Conversation

How Do I Unlock This?!

No Caption Provided

This is a combination lock, and it took me about 2 weeks straight to finally program it right. To spend so much time on one item was really a buzz kill, considering this is such an obvious real world object. But I think that was my mistake, I took for granted an item without properly researching the mechanics behind it.

I mean the lock is simple, you turn it to the number you want then you reverse your turn to the next number. And with that knowledge I went ahead and got started programming, a day later the code was a mess. Sure it spun around but that didn’t help me at all. So back to the drawing board with the thought of I really need to study this more. First break through was finding what number you are on, and it was quite simple. A circle has 360 degrees on it, the dial has 100(99 really), so dividing the degree of the y axis by 3.6 gave me the exact number the dial was on. Sprinkle in some rounding and margin of error calculations and boom done.

Second problem is having the dial know what direction it is spinning and know when the user changes direction. Now solving this just at face value was not very hard. Just keep track of a delta on the change in degree you are at and if it is positive you’re going right and negative if left. I did have to write a special case for the 100/0 number as it then jumps down 100 points. But then looking deeper into the puzzle is that how do I set the users input. When you change directions right? Well right. But then I just lost the number I was on before. The solution is just a number that keeps getting pushed up. So you can keep turning right, let go, turn right again, and the right number is still going up. When you turn left it starts to modify the left number. Now on the third number you cannot push it, it has to be in one swipe, want to make that better but this is a pretty small part of the game so I cannot take too much time on it.

The hardest part was getting the user input. I was able to get the delta of the mouse, but that only worked on one axis, and I really wanted to make it as you were in real life, a twisting motion. So I knew what was coming, trig. This was really frustrating because on paper I can do it, I can get the delta angle between two points, these points make triangles from the center of the dial. But now how do I translate that to c#? I spent a few days on this then had to concede defeat, and ask unity answers. It can sometimes be hard to swallow that you need help but after thinking about, I am wasting my boss’s money by trying to be arrogant and do it myself even though I was failing. Time is money. Thankfully I felt pretty good with the discussion on the answers site as there was no solution helped me, but each had something that made it closer to the solution. So combining all these solutions and adding some of my flavor I finally was able to produce functions that gave me the circular motions I was looking for.

The moral of this blog really is two things. First don’t take for granted the objects you use all the time or you think are trivial. There are a lot of complex mechanics behind the scenes that you need to think about before you start programming that system. And don’t be afraid to go seeking for help. You learn something new every day but the only way to learn is to admit there is a hole in your knowledge.

Obviously I can’t just post the whole script publicly but I do feel people should have this circular motion script so here it is. This is a partial script but anyone familiar with unity will get it.

http://pastebin.com/ZyZUBHfP

Since this game is getting closer to release I am not sure if I will make another educational blog about it, but I do want to talk about it. So if you’re interested in this follow me on gb as obviously don’t want to post anything with a promo focus on the forums.

Start the Conversation

The Power of Paid Free Time

TLDR: If you are in a small company, petition for free time to explore concepts that can benefit the company and make you better.

Working for a small company has its benefits but also its draw backs. One is that since the team is less than 10 people everyone needs to work hard to get the project done even if it goes out of your job description. And this is good in the sense that you can feel like your accomplishing something, and when you’re not, it’s easy to identify the holes. But since you’re working almost all the time it can sometimes feel more of a drag then fun and creative.

So my boss decided to start something called "Freeday Fridays". it is basically the same as google's and doublefine's idea of give your employees free time to make stuff for the company. On the outside it seems like I am getting paid to not do work but really I am working and loving what it does to me. You see having this free time to develop something that I want to make and a game that I want to play, gives me motivation on knowing this was the right career choice, that being with this company is the right thing to be doing. I work harder and better because of this. It’s not like I just spend all week wishing it to be Friday, quite the opposite. It really just reminds me that even if the game I am programming is not something I want to play, I can really learn and grow from that and that can be beneficial to my skill.

Now we come to the fourth of July, and the company is having a game jam, if you don't know what that is you have a set amount of time to make a "playable" game. Since it was a long weekend the company broke into 2 person teams and had 4 days to make a game. We also had daily meetings were everyone showed off what they did and gave feedback to other teams. Most people if you told them they were expected to do crunch over a holiday they would just say no. But not me, I was so excited because I knew I could use this as a long going project for my Fridays that actually had a goal ( before I was making just small games using different engines sdks etc ) . So it started and not much sleep was had but we got something that I am so proud of and even though I can't work on it full time I get motivated to work on it when I can. And I see that I am doing better with my other projects that are for reals as working hard to be the very best you can will make everything better.

So I spent last weekend working on it, making it nice to show people. Still have some things I want to get done before I can make a real trailer trailer. I had monster fighting combat working sort of but not to the level I was ready to show. Even the bug battles we are not 100% sure on how we want them to play out, most likely a turn based system. But I have enough of the concepts we want this game to be to make a quick video. It is strange how you can get attached to things that you have done but not in a suffocating way but in a way that you can say to yourself, man I want to make this better so bad, and be motivated to do so. That is what I have for this, maybe it is the music which I love our sound guy so much but I can't stop watching or playing and taking notes on things that I want to make better, then doing it.

I guess I should say that I am not every good a motivational text, speaking one on one I am good but I can ramble. But I hope that some of this gets through to people. Work hard and spend time creatively doing in your field as it will open yourself to be better.

So Check out the prototype video and feel free to ask any questions.

6 Comments
  • 27 results
  • 1
  • 2
  • 3