Wednesday, April 30, 2014

Jumping Box Final!

So... that took two weeks. Kind of not really...

At the end of that first week I had a rough idea, and a lot of hope. I ran in to plenty of trouble in the 48 hours I spent putting the game together.

I'm 2 days in to a new week, and just now publishing, but that's OK. I am publishing. And now it's time for the breakdown...

What Went Right?

The whole thing turned out the way I wanted. I was hoping to explore rotating the player box as it was jumping, but never got to it. movement, and even level creation went fairly well. I have not spent any time making sense out of the math of how I got the avatar to jump like I did. I just know, its working. I've pretty much figured out points, and I'm happy with the resolution's I've come up with to answer the question of "point reversion" upon death. For the most part this is the product I was looking to put out. As always, I learned/realized a lot along the way. 

What Went Wrong?

Player movement strategies with sine, bullet, and anything else that was not part of the "Platform" behavior. Shortcuts are  nice, but I'm starting to see the flaw in this system when it comes to learning about the more intricate things. I still have no idea how to manually make something "Jump". I also found out that if you stop a sine wave, you cannot revert it back to the first step, you just continue on if you try to use the sine wave again on the thing. I'm certain this is another one of the sacrifices for the sake of convenience. Not a bad thing, when looking a the whole picture, but a bad thing when looking at part of it.

At one point the avatar, upon jumping would stop on the floor, but once you jump again, it continued the wave through the floor instead of "jumping". combine things like gravity, and bullet behaviors, and it was like watching a rocket fly around with no control. 

Does it work? yes it does! I feel proud I sucked it up, faced my fears, ran in to roadblocks and powered through. The game does what I wanted, and is pretty good. I've confirmed that I am terrible at these jumping games as this one is probably a game I've play tested the most. I used a friend for alpha testing to confirm that it was not just my skill, and event then, half the times I failed, they were successful.

Thanks for reading. In case you've missed it, you can go here to play my game. Let me know what you think in the comments below?

Tuesday, April 15, 2014

Jumping Box! - Day 2 Aaarrgg and Yay

Skipped out on yesterday due to personal reasons. Got back in to it today a little and was smashing my head on the way.. My plan is/was to have a flat surface, with mo movement, and have obstacle just.. come at the player. As long as the colors matched it would feel like the player was moving along a surface.. as opposed to just dodging incoming objects. Makes sense to me right?

The only down side to this is I pretty much either had to build out this massive level of jumps thousands of pixels wide, and just bullet them towards the player. After that your golden.. But what a weird thing to work on. I might still do it like that, it's possible. But as I looked at it, and once I went back to Lessmilk's examples I noticed that he did the game in pieces like 3 or 4 jumps in a level, and just go to the next one. 

Player actually moves however, making your brain skew a little when it comes to timing your jumps.

The more I think about it, I might try for both.. maybe.. doing guesstimaiton I'm saying 3-5 jumps per tile 30 tiles. Ever tile.. 600 pixels.. so 1800 pixel wide game 200 pixel's tall. stick to 2 colors, and it should still be damn fast.. but how to deal with place holders.. checkpoints!

Yes! I will create my 600 pixel tile's place checkpoints at each one, and just.. move the pieces as needed.. I may be able to create 2 games at once.. using two different methods after all!

Sunday, April 13, 2014

Space Intruders: Day 7 - Final

It's been a quiet week this week as far as you know... but on this side it has been crazy. I ran in to a lot of speed bumps, and walls. Some I over came, some I got around, some will have to wait for another week.

Play it here

What I've Got:

As it is right now I have a pretty nice start on a top/down shooter. The level is only 30 seconds long howver. I was able to figure out sine, and with it I've got some neat patterns. Though to be fair, it is a little too time consuming for me to make a proper job of it so I just have a couple waves of fighters just for kicks. Proof of concept and what have you.

The title and game over screen are good. Though exhaustion keeps me from playing with Game Over vs Mission Accomplished depending on your health level.

I'm happy I was able to figure out the health and power bars. I have random (ish) power up drops. I was hoping to get them to have a chance of spawning @ enemy location upon death, but I could not figure out how to do it (see What Didn't Work). Initially I had power ups randomly spawning too close together so you would get 2, or 3 health or power pickups in a short amount of time. Will explain that fix later on as well.

What Went Wrong:

Pick-up problems all over.

Initially I wanted Power, and Health pick-up's to drop on dead enemy locations. However I could not figure out how to pick x, or randomly choose a number to determine if an item is dropped, and if so, if it's health, or power.

I decided after a couple of hours to just have pick-up's randomly spawn, and make their way down the screen. I set this up, but noticed that I would get a couple of power ups in close succession. I wanted it more spread out so I tried to do the following:

The condition of (inverted) as long as x power up is on board (theoretically telling the system to check for power up if it is on board, do not run, if it is off the board, run it. 

That failed to catch on, and in order to save time I just set the power-up's to randomly spawn at X second intervals. Making sure that the time span is long enough for pick-up's go traverse the entire screen before another on can possibly show up.

What Went Right:

I've gotten a lot better at figure out how logic needs to work. Most of the issues I did have were features I was not aware of. My use of the features/options I've used before is going smoother. It's easier for me to build up an idea in my head, and put it together in the "code" and have it work first or second run. Second run is usually me going "Why did that do that.. oh yea, because I need to do this too" once corrected things are smooth. I've also dipped my toes in to sine, and keeping track of things.

My patterned attacks at first were attached to game time, but I found out after putting a lot of stuff together that game time keeps ticking on the other layouts, and if I go to one layout, and go back to the game menu time is still ticking, so if you win one game, come back for a second one, the time/clock does not reset, so no enemy fighters came along (as their time had already passed). I basically added a manual clock counting half seconds, attached a wave number to the wave, and set it up so at this .5 second mark, as long as wave number is X than send out this set of fighters and add 1 to the Wave global variable. It took half a day to figure out that attaching a wave number would make it so I would not kick out a set of fighters ever tick for the .5 seconds that the condition was true (producing 30 waves of fighters in half a second).

Patterns were also a slow going process to create, so I only have a few in place. I want to do a lot more, but time is getting in the way.

Health, and power went beautifully, and I was able to figure out corresponding bar/sprite lengths to give the player a helpful guide to what their game was at.

All in all, I feel pretty good about what I have. As far as a game a week stuff goes.  I set out to do more than I thought, and ran in to some trouble along the way. I'm happy I did it though as now I have even more things I know I need to master. I'm really enjoying this whole Game  A Week challenge, I'm learning logs, and building my confidence in Construct2. I'm certain that I've only scratched the surface of how it all works, and that's exciting.

Next week is a new project, Box Jump. Probably the first project where code will be simple, and content is what matters.


Thursday, April 10, 2014

Day 2 (or is it 4?) Sine of the times

Second Day  - Only a couple more to go, and things got.. interesting

At the start of this week I wanted to work on my understanding of sine, and how to make it work for me. More specifically I did not want the random spawning I had in my GISHWHES project, or Lesmilks week 2 project. I wanted patterns, I wanted wings of fighters to swoop down laying out a pattern of fire, and giving more of a challenge to the player.

It's taken all day, and part of yesterday, but I think I have it figured out. My plan is to lay out enemies in a designated time with specific variables to create these patterns. I've done it, and it looks cool. However the work accomplish this for more than a handful of waves is kind of off-putting. It works, so I will take it.

I ran in to some trouble when it comes to dropping power-ups at random. I wanted to be able to kill a guy, randomly pick if it drops anything than randomly decide if it drops health, or power. I have not found a way to do this, or at least, I have not found a way that makes sense to me so that will have to wait for another day. My plan is to just randomly drop power ups and let the player catch them.

Tuesday, April 8, 2014

Space Battle: Day 1+1

A late start, but...

My Plan

This weeks plan is for me to build a top-down shooter like of line the old WWII flight shooter 1942. Or Lessmilk's Pixel War. I've build something similar for the GISHWHES hunt last year, so this go around I'm looking to improve/expand what I know, and try lots of new things. Here is my Laundry list:

  • Figure out sine whatever to add wobble/patterns of flight for the enemies.
  • Energy bars/Health bars.
  • Health/Energy pickups + sound
  • Enemy ships.
  • Enemy fire and sound.
  • explosion sound/animation/sound.
  • High Score list.
It's ambitious, but I have hope. I'm also off to kind of late start, but I feel comfortable. That was last weeks failing so I may crank it up for the remaining days.

My Goal

There is a lot of stuff on that list there, My goal this week is to get it playable first, make it pretty second. The sine stuff is completely new to me. Same with Health/Power bars. The rest (save the top score screen) can be extrapolated from earlier experiences, and implemented easily

What I Did?

Today in 2 hours of work  I've got controls, player limits, enemy, and enemy fire all cleared up. I've included a secondary fire mode with limited energy (see incident variable). Basically the simple laser blaster turns in to a fountain of lasers for 3 or so seconds. I've got the normal ROF for player, and enemy ships in a happy spot. I've researched/watched a video I checked out a long time ago that included bits on how sine works, and more importantly I've gotten some formula's and wording that should allow for some challenging game play. If  you are curious I learned a ton watching the videos that a were posted on ureddit lecture here.

Once I have some basic patterns in place I can blast through a good play tests, and see what needs to be changed. This time I'm going to try to make graphics the thing I'm trying to slam out at 10pm Sunday.

What I Got Wrong

Nothing really. Pretty strait forward stuff, I did have some glitchy laser spawn action, but once I switched the order of operation It was cleared up.

Thanks for reading guys. I'm going to try to have a decently playable alpha by tomorrow night. Good times for sure!

Monday, April 7, 2014

360 Dodge-Ball: Final


It's done!! Click this >> Link

I admit, Friday I did nothing, Saturday, I did more nothing. I honestly was fairly satisfied with what I had. My whole goal with AGAW is to learn the tool I have, and become familiar enough to be able to put out the simple stuff in a quick way. 

With those goals in mind, I rallied a little Sunday and added a couple of features, and cleaned up some other things making the game more playable.

I wanted to add a point multiplier, or possibly some other feature if a ball is caught and thrown back, I just did not have the time.

What Went Right;

  • The balls bounce off each other.
  • The player can catch a ball, and use it to deflect incoming balls while multiplying the score earned.
  • The player can throw the ball as well.
  • Gave the avatar a face, so you know which way you are facing so you can catch the ball.
There are a couple things that did not go so well.

What Went Wrong:

  • 8-direction facing is beyond me this week, you can move in 8 directions, just not face that way. I should probably look up the logic for that I'm sure I'm just doing it in a way that does not allow for 8-directions.
  • Hit detection was good, catching.. was a little sloppy I think. If I had figured out the above 8 way direction it may have been easier to block balls, pretty much anything coming at those 45 degree wedges are probably going to hit the player.

Thanks for reading this, I hope you enjoy the game, or at least understand it. Please leave feedback in my comments section here, or wherever you see fit. Please tell your friends, family members and loved ones. Share the good times.

Thursday, April 3, 2014

360 Dodge Ball Day 4 - Not much goin' on


Not much really happened today. I've included the "Personal Best" point counter so you know where you stand on multiple retries. 

I believe I've gotten catching the ball figured out, or half figured out. I need to finish it up tomorrow.

What Went Wrong?

Order of operation is important. When I was putting together the "Personal Best" function on the Game Over layout I was having a real hard time with the Points being displayed. User had to retry agian, and would presented with their previous personal best, not the current one.

Turns out I was telling Construct to set the personal best text, then actually check/record/set the number.

Sorry this a short one today. No update to test either as I have some things half finished.

Big update tomorrow.