Sunday, April 17, 2016

Game Goals - Focusing the player

Hey long time no see!

Yeah you know how it goes.  Working alone, working on something new, life, it can all get overwhelming.  And that's fun and all, but I've found a little motivation to get back into the swing of it so I'm going to grab hold and hope my fingers don't slip too soon.  

Great! What are we working on today?

Well basically players need a goal, need some reason to want to play, because oh my goodness right now they have no reason to play.  For that purpose we're going to set up a 'high score' for them to try to beat.  So first let's figure out how to create static data.  At some point we will want a little database for encryption purposes I guess, so that they can't just edit the scores willy nilly.

How will we do that?

We already did.  We used the "preferences" file LIBGdx provides.  I'm not sure if it's encrypted or not.  It would take care of our database issue if it is..  Just 8 more lines of code gave us a high score that's updated when the player dies.  Next we need to display what the high score is when the player starts. 

Okay that's done:


We can make it beautiful later, and there's some lag issue causing first time players to miss this screen if they click too much.  The next thing we need to do is make sure that when the players die that they see this screen again and it shows their score and the high score.  

It's been so long since I looked at this code, if only I had reformatted it and added comments before.. ah well, I guess this is why good coding practices are important.  We don't always have time to reformat and add explanations later.  I guess I was a foolish foolish man!  Oh well, now I'm adding comments.  Just in time too, wandering through this code is like walking through a jungle where you know there aren't any tigers and you feel safe, but the paths you made before are all overgrown and you're tripping on roots and stuff.  Also plus some tigers might have moved in.  You aren't quite sure.  
Now lets figure out how to get the game to simply reset the player position, bottle manager, and the current score on death, as opposed to creating another new game.  Woops, whoa, seems like I finished working on that sometime in between the period of the last sentence and the first letter of this sentence.  I gotta stay on my toes for this! I'm fast!



*Days later*

What happened?

A bug.  There was a bug. It's gone now.  It was a dangerous violent bug though.  Forget everything I said about being fast.

Debugging has got to be the best puzzle game ever.  I finally stumbled across my first 'real' bug in programming.  All the little parts combine together and form some mysterious behavior.  First you stare at it in amazement.  Then you get annoyed.  Then you resign yourself to the hours of time spent trying to fix something because it's too late to restart from the beginning. For me the problem was, how should we describe it, teleporting bottle shots.  Sometimes a bottle would not just get thrown across the screen, it would literally teleport and smash into the player instantly.  We could still see the slow motion falling body frame of the bottle across the screen, well after the player was impacted.

How do you figure out what causes it?  First you eliminate as many things as you can.  I thought for a while that it was related to the 'bottle throwing algorithm.'  I thought perhaps it was throwing the bottles from too close, and they were smashing as soon as they were launched. Ho no.  Next I thought it was some kind of extreme velocity.  Easy to test for, and nope.

After eliminating the whole algorithm and just throwing them with some constants, and watching repeatedly and learning how to recreate the error, I realized it only happened after getting hit with a bottle.  The teleporting bottle shot only happened after getting hit.  This was the key clue.  It gives us the idea that maybe the bottle has some 'residue' on the ground.  It's not getting cleaned up right away.
Eventually we find that the bounding rectangles we created for it aren't getting updated because the bottle is getting initialized too soon.  The thrower turns on the bottle and tries to throw it, but it's already been smashed because it was turned on while the bounding rectangles were still under the player's feet. Why this behavior only occurred for some of the bottles, who knows, and good riddance!  Despite how much work it takes, it is really fun to solve those problems.  If only there was some way I could get some money to do that.. hm..  

What's next?

There are a ton of little things, it's hard to say exactly which one should be next.  Let's say our goal is to polish the core gameplay as much as possible.  It has got to be as fun as possible to smash those bottles.  If it's too easy or too hard, it's not fun to play.  That means we've got to optimize the bounding boxes and the throwing patterns.  As the player gets better we'll add more elements besides bottles, like rocks or grenades, boomerangs, etc.


 

There is a lot of stuff happening in this picture, but focus on the box around the player and the box around the bottles  Can you find the bottles?  Yeah we gotta make the bottles a little bit easier to see, I suppose.. These bounding boxes are too large.  The bottle and the character need to overlap a little bit otherwise we don't see the collision.  It feels "cheap" like the player got hit without actually touching.  First we gotta reduce the size of the bounding boxes.

After that, the things to work on immediately to fix the core experience:

1) Clear transition screens at death, encouraging the player to try again
2) Obvious health bar, making it red perhaps
3) Shadows on the ground
4) Better looking GUI elements
5) Attack animation
6) Better bottle breaking sound, attacking sounds like "hyah!"
7) Interesting bottle arcs.  Not too predictable, not too crazy.

Alright let's meet back here again soon!  Team break!

Tuesday, March 22, 2016

In a Slump

You're in a slump?

Yep, once every couple months I go up and down, and a couple days ago I was very down.

What was wrong?

Basically short term money stress, something 99.5% of you can understand.  Because even rich people get money stress sometimes.

I can't figure out how to get money in the short term in a way that makes me not hate my life..  Currently I'm in the UAE and there's not much here I can do.  

Can you do freelance artwork?  

I wish I could.. the second reason I'm in a slump.. is that people don't like my art very much.  I don't know why exactly but people just don't.  I've thought long and hard about it and it comes down to two things.  

The obvious one is the lack of technical skill, I'm still amateur.  But if you look at Deviantart there are thousands of examples of amateur pictures being very appreciated.  

The second thing, as my girlfriend pointed out, my pictures aren't special.  There's nothing really interesting or mysterious or thoughtful about them.  I don't really try to put a message into the pictures.  They're just pretty and empty.

Thinking about this caused me to go into a pretty severe two day laying on the bed coaxing myself to exist depression.

The problem is.. I don't have a message.. 

The reason for that is.. I don't value communication about serious issues.. things that are important to me.  

Why is that?  

I once read a quote that impacted me quite a lot.. It goes something like "between two equally learned men, conversation has no purpose."

That idea, combined with the experience that trying to change someone else's mind about something is a bad way to communicate, leaves me with: learning something from others, and joking around, as my two main attitudes.

Which is fine, I get along fine with most people and I enjoy their company.  Except now that I'm trying to make art that people like, and failing, I'm forced to examine both my art and myself deeply.

What will you do now?

Two things.  I'm going to try to develop a painterly feeling art style and improve my background skill to try to get some freelance work.  Anime style isn't in very high demand.

I'm also going to try to put more value on communication.  Putting myself out there, opening myself up to let others try to change my mind, learn more about them, try to foster a lifestyle of connectedness.  Having a desire to communicate is probably the basis of putting some feeling or emotion or message into an artwork that people can feel attraction to.

Is art more important than your game?

Let's say they're equally important.  I've got to be realistic and say that since there are 300 new games coming out on Android per day, mine is unlikely to make any money.  Unfortunately things come back to money in the end, way too often.  If I had some kind of fan base who liked my art, they'd be interested in playing my game.  Which brings us back to square one..

How's the art coming?

It's good, there are more collections of resources on Youtube now than ever before. 


This is a wicked cool collection of Chinese painters, they're getting me all inspired.


Hopefully after a few days of painting I'll be feeling ready to tackle the attack animation.  I've struggled with backgrounds for so long I'm really hoping to get the hang of them..

Let's see what we churn out!



Saturday, March 19, 2016

Walking Animation

How was your trip?

Awesome!  Istanbul and Amsterdam were both well worth visiting.  People around the world are very kind.  They are also a bit pushy and will definitely try to help you part with your money.  Also.. man.. Istanbul has a lot of refugees from Syria.. They'll ask you for money too, and I urge you to give as much as you can.  

Watch out for the experienced swindlers though.. that money would have made me happier if it went to the kids or musicians playing on the grand strip.

What's up for today?

Well the walking animation is passable by itself, needs a little more work, but we really need to see it side by side in the game and judge how it matches the resting animation.  I'm very worried that the perspective is too different between them and it will look awkward.











Great let's throw it in and see!

Yep that's the idea but it's been so long since I added an animation I can't remember what all the steps are..  And, lo and behold, there are no comments in the code.. I was saving that for the great refactoring which.. I assume will still be great when it happens.

Well after just a little bit of mucking around, we've got it in the game!  Here's the little update:






Next we'll work on the attack animation!  I'll be making a Youtube tutorial video out of that one.  It will be long and arduous.  We'll get there though!

Friday, February 12, 2016

Resting Animation

Woo long time no see!  How's it going?

Pretty good!  Dubai is great so far.  It's nothing like what I imagined.  Haven't been able to get my workstation set up yet so I've been roughing it on the Surface Pro 2.  Gotta say though, even though it's such a pain to use, it still lets me get the job done.  4x more slowly, but hey, I'm not complaining.  If I were complaining though, would anyone send me a Surface Pro 4?

How's the animating?

Definitely going to try to get away with doing rough colors on a rough sketch for the attacks.  Doing the lines and accurate colors takes about 10x more time.  So.. I guess I've spent about 40x more time on this one animation than I should have.  Sounds about right.  


The one on the left was done roughly and took about 20 minutes for coloring.  The one on the right took about 4 hours for lines and coloring.

So why aren't you doing them roughly now?

Ahh fear I guess.  I guess I'm just scared that if it's not perfect then it won't be good enough.  Which brings us back to where we are now.  

Now all the lines are "done" for the 15 frames and we're going to color the first one so we can figure out how long it takes and what it feels like to color on the SP2.  Doing lines feels like I'm drawing with both hands tied behind my back.  Like using my feet I suppose.

Here is what the line animation looks like.  It doesn't inspire a lot of confidence compared to the sketch, but I'm pretty sure it will serve our purpose:

This is how we make the shadow forms:
Another thing I've got to be more honest about is the viewing resolution.  I'm 99% positive I won't try to do a PC version of the game so I don't need the assets to be the big 3500px files they are.

Since the images are so small it's tempting to throw rough versions into the game.  I could spit out an animation or two every day at that rate.  I've been considering making a different game with an art style like that, just to experiment.    

Next we'll take the first frame to completion so we can get used to doing things on the demon tablet. Just a reminder, don't purchase an SP2 for art!



This is about right, give or take a few tweaks here and there.  This first frame was done with a typical base/shadow/gradient layer set for each part.

Next we spend a few seconds agonizing about how long this will take.  Let's also congratulate ourselves for getting so much done on the tablet of chaos.  I'm also a little nervous since the first time I tried to animate something with values it didn't come out well.. this is partly experimenting @_@

*time passes*

Drawing leaves a lot of the brain open for musing.  Programming on the other hand occupies all of my language center in a protracted expletive.  Here are some musings.  

What if no one wants to play this game?  Am I okay making this game even if not one single person plays it?  Hmm the answer is probably no.   But the reality will probably be a painfully similar "Not enough people play it to make more than 1$/10$/100$" 

How can I market this game?  What is marketing?  It's where we build up the appeal of something right?  We make implications at deeper meaning and hint at hidden satisfactions.  We say why they need to play this game.

I'm defeating myself a lot here, I can't find a reason why people should play this game.  It's just a game.  Play it or don't.  But that attitude must be wrong right?  What about games that I get excited about?  Why do I get excited about them?  Why do I want to play them so much?  For me.. I like big open world games of exploration and adventure.  I like the experience.  The story.  But I don't have to actually play to get that experience.  For me the games I've enjoyed lately have all been through watching Let's Plays.   

At least I'm being productive while I self destruct~

 I'm so crazy slow but some frames can be copied over with minor changes.



Looks like we're on the right track but the hair will need a little stylizing.  Also I'm thinking since this will be an infinite type game that we should have 3 difficulty modes.



The intuos+surface combination is quite likely the smartest thing I've never done in my life.  I had to wait until someone (thanks my lady) suggested I do it.  In what is probably a first for humanity, there were no driver conflicts.

I'm also seeing that the cuff on the left arm shouldn't be so stiff at the end, it should move a bit to the right..  Is it fixable!?  Yep looks like it.

Here we have some more booby bounce.  Again this was at the direction of my special someone.  "I wish the boobs would bounce more."  She said when looking at some of the earlier WIPs.  I'm not sur why I feel it's necessary to explain that.  I mean I personally also like having the bouncy boobs.  I guess I'm a coward when it come to sexually provocative things.  Good thing she's brave!  ^^;

The hair, as always, is difficult for me.  Luckily most of the issues disappear at the viewing size closer to what we'll see on a cellphone. (Tiny)


After getting to this point I had to ask for feedback.  Luckily my girlfriend was there (again!) to let me know the hair wasn't working for her.  She wanted it to be bigger and have a nice swaying motion.  I had seen an animation on Facebook recently, but as you may or may not know depending on your century, Facebook uselessly doesn't have a way to look up the "history" of what you've seen.

We made a little sketch of how the motion might go:


We're just about at a merging point anyway so we merge each frame's layers and then throw some white on top to give us a drawing surface:




And after much much trial and error I'm 98% satisfied with this one:


Well, one frame was driving me nuts.  Can you guess which one it is?  After chopping the time in half and making an extra frame and giving the hair a little extra movement I'm much happier.


And then much mucking around later, we have this:


It's not finished, but for now we'll stop working on it.  Recently someone trotted out the old "Art is never finished, only abandoned" quote and I snorted.  Scoffed.  Disbelieved.  Ah, what a naive soul I was, two days ago.

Whoa finally.  Good job!  What's next?

Next let's get this bad boy into the game!  Which if I'm not mistaken is also a great time to fix the nagging "left/right" orientation distance jump.

Tuesday, February 2, 2016

Hud theme design

Time to get started with the theme design huh?


Yep.. 

How are you going to go about doing that?  

Well first I guess I'll Google "Theme design." or "UI design" or  "Hud Design"  

Don't you feel supremely unqualified to design a Hud?  You've never done it before.

Whoaa I'm so negative today.. Well there's a first time for everything. :)

*Goes to Google*


I feel that I definitely have no idea what I'm doing.  I thought I would just make some nice background images and stick then behind the bars and buttons.  Now I'm ready to meditate for a month on the existence of life.  Start with the basic questions first, I say.

What design do you want?

Yeah, I want something that's Korean-esque.  The game has lots of Korean themes, maybe we'll even say it's set in Korea.  Here are some reference images that appeal to me:

The plan was to use these shapes and patterns in various parts of the UI. 

I think that's fine, let's start figuring out what the UI consists of.





Parts of the UI:
  • Life bar
  • Energy bar
  • Bottle count
  • Timer
  • Joystick
  • Attack/Special Buttons
We also need a menu button right?  Anything else? It's probably time to play some games and see what kinds of buttons they have.  

First up is Zenonia 5, what do you think of it?

Zenonia 5 is a great looking game, but after my 10th "Kill 15 Crocodiles and bring me their meat" quest, I felt burned out.  I'm past that stage of my life where I want to feel like I'm working by grinding away, fulfilling a game's menial demands.  

Now I demand something more mentally stimulating!  I demand the game of making a game.


But Zenonia 5 is beautiful.  And that Hud looks awesome.. So let's see.. what can we cherry pick?  First of all, those buttons on the lower right side are very small.  I think that works well for them because they don't have any combination button presses.  Will we?

Secondly they have this nice metallic circular theme with lots of blank space.  We can also set the Opacity to be lower I believe.

Thirdly they have a shop button..  Do we want a shop button?  We were planning on selling a costume and pets.. But putting that button on the main part of the screen would be rather annoying, when players are trying to see bottles or other items.  But now we are not selling anything!

Let's take a look at another game: Shadow Fight 2

Two bigger attack buttons in the lower right.. but look at that huge touchpad on the left.  Does it need to be that big?  Were they worried players might want to see their character?

This game also lets you buy stuff, but happily no store button. Now I totally don't feel pressured to have one.

One key difference in play between Shadow Fight and Bottle Smasher is the auto-facing design.  Our character always faces the enemy.  For us, we have to decide if we want to have front and back attacks or only front attacks.  Do we want to make the player work harder?  Will that be more rewarding for them?  I don't know..  This seems like the kind of thing to decide through play testing.   

What are you thinking?

What kind of design to do..   Do we want a 'wood' feeling?  The bottle counter going dead center at the top actually might be distracting since we have a vertical attack and bottles are landing on top of us a lot.  Let's put the bottle counter and the timer in the upper right.  And a little menu button in the bottom center.  

Also green for the life bar might not be so great since the bottles are green too.  Let's make the life bar red like in these games. 

Zenonia's upper left has a little face and level and exp counter, but we don't need that face.  Right?  It's just getting in the way of the valuable screen space right?  Right?  So let's just use the 'door' design to give our life bar and our buttons a little zest.  I've got some ideas, time for a mock!  


*much time later*

 


Here is the current mock and the direction we're going.  The top elements need to be redone more sharply and with some color control, perhaps chromified.  My inner critic #8 is telling me that the circles on the bottom and the designs on the top don't match and that this is not good.  He says that people will possibly make comments about it, and that they will lose respect for the game.  He might be right, my inner critic.  However I am perfectly happy with the shape differences.

The menu button needs some love, how about a little 'see through white rice paper' kind of effect?  Yup that looks good.  Another thing I'm wrestling with is adding a timer.  I'm somewhat leaning against it..  The 'special' button will need to become a kind of 3 option slider roller ring thing, considering making it look 3d but not sure yet..

Okay next let's get to work on mocking up the new game screen, the explanation screen (loading), and the results screen!  Good luck!

P.S. The move hasn't completely destroyed productivity~ So far UAE seems alright, it's only been a couple days but the people are very friendly!

Monday, February 1, 2016

Project Reorganizing

Reorganizing?  What does that mean?


Talking with a friend helped me realize that the goals of this project need to be restructured.  I need to reduce the timeline way way down.  Cut out a TON of content.

Don't you like this project?

I love this project!  The programming is always rewardingly difficult and learning animation is incredibly INCREDIBLY helpful!

What was your goal for this project?

Yeah they definitely changed.  Originally the goals of this project were: 
- To make a first game and finish it
- To make a precursor game for a bigger version
- To relearn programming and gear up for a bigger different game

Then in the middle, after diving into animation and the Libgdx framework and getting excited about the possibility of earning money with it, and finding myself loving the process, I went into full on feature-creeper mode.

However the problem is that the game itself isn't one I'm passionate about.  I don't think "this is a game that needs to be made."  The problem is that there is another game I feel incredibly passionate about.

If I could be sure that this game would be a money maker, I would of course finish it in all of its 1.5 year long development glory.  And if people get excited about a smaller version of it, I'm more than happy to keep going with it.  However as I'd like to be a game developer, as a career and actually make a living, as opposed to the slowly dying I'm currently doing, I need to make the economic choice.  I've got to invest my time in the game I believe in strongly.

So this game's focus is going to be re-oriented as an infinite smasher.  Less levels, less effects, less attacks, less everything.  I'm satisfied with this decision.

Well, back to the Hud design as that hasn't changed much regardless of this "refocusing."

  

  

Saturday, January 30, 2016

Painless Fonts~

How'd it go?


Finally something without hidden complications!  Fonts are a breath of fresh air.  Making them and using them is too relaxing! 

On a side note, I cannot recommend the Surface Pro 2. That probably doesn't matter much since the 4th version is what people are looking at now.  Still.  STILL.  Don't buy a Surface Pro 2.  The number of random issues is greater than the number of random perks.  

  - The track pad mouse on the keyboard will randomly get 'sticky' on some location and snap back to it like a rubber band.  
  
  - Sometimes disconnecting the keyboard causes a hard reset

  - Home and end keys stopped working for some inexplicit reason.  Probably because I need them.

  - The screen pen accuracy varies from one end to the other.  As an artist this is a mojo destroyer level 99.

  - Sometimes the mouse will wobble uncontrollably and taunt you.  You know that disconnecting the keyboard could reset the computer, but it won't stop wobbling.  Like right now

  - Want to use your fingers?  Sorry those buttons are too small, not going to happen.

  - Waking the Surface up from sleep mode teaches me to be thankful to my mother for her patience when she used to get me up for school.  MUST BE VERY PATIENT WHEN TURNING ON SURFACE PRO 2.

  - Windows 8.1

  - Peeling paint.  Seriously what?
  

  - The dissatisfaction of knowing you're already 2 generations behind.  

  - Ridiculously quiet speakers.  Do Microsoft executives employ mice to design this shit?


Anyway now that you've been suitably warned, back to the font!

This could not be any less quick and painless if it were  _______.  Be creative.

And that is entirely thanks to this video:
https://www.youtube.com/watch?v=dxPf1M7YORU

With a voice on par with Ben Stein, he walks you through every minute detail and after 15 minutes you have the POWER to unleash your CREATIVITY on the UNSUSPECTING citizens of the DRASTICALLY overwhelmed CITIES.

I dunno where this is going.  Trying to do everything on the Surface Pro 2 has driven me insane? Or packing? Moving to a new country?  A little nervous to be going to Dubai.  Hope it goes well, just lots of things to be OCD about. Everything is all packed up, waiting to be re-packed once I've procured a scale.  I've got desktop withdrawal.  All the art is over on it..  Okay enough excuses, let's finally figure out how to draw on this tablet.  

Here's the code for the font scene2d label above:

public void addScore(int value){
    bottlesBroken += value;
    bottleLabel.setText(String.valueOf(bottlesBroken));
}

Constructor:

chunkFont = new BitmapFont(Gdx.files.internal("chunkfive-export.fnt"));
bottleLabel = new Label(String.valueOf(bottlesBroken), new Label.LabelStyle(chunkFont, null));

What are you working on next?

I've been thinking a lot about how to make the level useful, ways to use the space.  The problem is the original intent of the game.

The intent was to be a precursor.  Not a full game.  A taste of a game.  The game I really wanted to make was a Megaman/Blaz Blue combination.  A nice big 2d side scrolling world.  Dialogues, beautiful character effects, attack skills.  But I knew that game would take a long time and people said not to shoot too high for a first game.  

The Megaman/Blaz Blue game is itself just one of the games I want to make.  I've got an idea I'm excited about for an educational RPG.    

So the problem is that breaking bottles and dodging obstacles doesn't really need a big huge world.  We've got to come up with a way to use the space a level provides.  Here are some ideas:
  • Player can collect energy bottles to fill up their special attack bar
  • Run from some attacks that are big  
  • Dialogue trigger points, as the player walks across dialogues will pop up
  • Terrain assisting, like being able to jump off a spot to see higher, see a bottle more clearly
  • Hiding under some parts of the terrain to escape bottles
Any other ideas would be greatly appreciated ^_^

I'm also ready to start mocking up a full Hud with background pictures for the health bars, buttons, etc.. but.. need a real computer to do that..  Arrrr using photoshop on the SP2 feels like I'm doing surgery on the head an angsty pin.