Tuesday, November 8, 2011

[SBX2] SpriteWork + Platforming

SBX2:
I have begun work on a new section of SBX2.  I will be incorporating platforming elements into my game.  Each level will have a location where you can dock your ship and enter a location to explore it.  In this way I will let you meet the character, and add a new spin on things.  I have just begun work on the character sprites.  I want the character to be someone you can meet and get to know outside the ship.  I think I will keep the platforming simple as the main game play will revolve around the ship battles in space.

But here is the first finished character sprite.  I have a PDN file (Paint.Net)  that is hosting all of the templates and sprites and I'm working on them slowly, but with detail to make them look good.

Meet Lt. Jack Hawk, Pilot of the AR33-X Falcon Class:


He will be wearing his helmet most of the game, but you'll get to see his face in story areas.  He will have a pistol which is his main weapon in the platforming areas of the game.

I have only got the forward facing sprite done, but am working on:  Left and Right facing

*edit*  Here is a picture of his gun/helmet


To be added as I make them:  Left and Right Running Animation,  Jumping animation,  Firing while jumping,  Crouching (probably)  and Landing from a jump.  I might also make a slide animation for when you stop running.  This is my first work on a platforming game, so I have decided for now to build the platform engine in a seperate GMK file, then transfer all the elements over once I am finished and happy with how it works.

Look forward to the space exploration / platformer:  SBX2!

Thanks for reading,

~WakeskaterX~

Saturday, November 5, 2011

[SBX] The end of a journey

SBX:
We'll go right into the game topic.  This has been an exciting journey spanning several months of development.  I can finally say the game is at a place where I can call it a semblance of "complete".  The eighth level is complete and the win credits have been added.  Every item is able to be unlocked and used.  As I get feedback I'll put more things into the game and fix some under powered weapons.  But all the core elements of the game are there and I am going to begin serious work on the sequel, SBX2.  It has been a long project and I've learned many, many... MANY things.  I'll go over a few topics I'd like to reflect on and the things I've learned.

Organization:
As SBX became larger, I realized that many things were extremely inefficient.  The way collisions were handled with parents wasn't as good as it could have been.  I didn't bother to change it, but in my new project, I am already planning out an extensive network of parents that will make things BUNCHES easier.   File organization as well could have been a bit better on SBX.  Things were all over the place and in folders that didn't accurately reflect what they were some times.
Also my code / drag and drop was extremely messy.  I used hashed together strings of code with drag and drop icons in weird places.  In SBX2, other than for very, very simple single tasks, I use code entirely.  If I don't know the right code that corresponds what I want to do, I am looking it up instead of using D&D.  It makes things so much easier to edit and comment.  Condensing what used to code me with 10 lines into 2-3 helps a lot too.  Which leads me to the next topic:

Iteration:
I didn't really iterate anything in SBX, I just made separate objects for anything I wanted.  Part of the GMC Jam helped me learn a bit more about it as well.  In ghosting laws, each level was randomly iterated by using a for loop that set each tile in the room to a 2d array, then placed those on the screen.  The result was easily creating new types of levels in minutes rather than hours placing objects in a room.  This is going to be applicable to SBX2 in that I'll store certain types of things in arrays or adjust certain values to change the image of an object based on certain conditions.  The mounted gun on the top of the Ship is like this.  In SBX I had objects for each and every weapon... now there were only 40 different items in the game... but WTF that took forever!  This time around I simply passed in a variable that determined which number of weapon the Ship was using.  Then the mounted gun simply selects the proper sprite and uses that index and the rest of the code is contained in that one object... instead of 20.  These kinds of things that I've learned will make this next project both easier, and quicker.

Story:
When SBX started I didn't intend to have a story.  I threw one in there and hashed it together when people where like, "WTF mate, whats going on?"  I love to write, but didn't want to spend the time putting a story in. Now I admit, the story is still just text, but it grew on me.  I began to form a plot in my mind.  And the story grew.  In SBX2, you will meet the pilot, Jack R. Hawk.  I plan to have a much more engaging story line, perhaps optional, but we'll see.  I have to admit, the story in SBX didn't make much sense until I went back and re-did it a bit.  I might still go back and edit things so that it engages the reader more.

Graphics:
In another blog post, I talked about the graphical upgrades I  made to the game at one point.  I learned a lot at one point in the development about making planets sprites easily in Photoshop  (I use Paint.NET, good enough for simple stuff).  It added new depth to the levels and I re did a lot of the asteroid sprites with the same type of shading.  I will admit I am not the best graphics artist, but I do like to develop my own sprites.  In SBX2, I am keeping the simplistic graphical theme, as I like it.  It makes it arcade style.  With the backgrounds being more detailed and interesting, the player feels separated from the background.  I plan to spend more time working and reworking the graphics as well, and keep uniformity in the objects.

Testing:
In SBX I just tested as I went and it took a while to figure things out, and check if they worked, especially if I had to play through a level over and over.  I must have played each of my levels in SBX 100 times over.  In SBX2 I am trying a different approach.  I want to get a strong core to the game first before developing my first level at all.  I am trying all sorts of things to make a nice engine.  I am testing out different styles of collision between the ship and enemies, and how much actual physics I want to use.  I considered giving everything a mass and making everything use physics formulas, but I might not do that this time around.  Whether or not I do, I have a testing room that I can try out new weapons and program them all in before I actually put together the game.  I am using this tech demo to try out all sorts of new items, see their effects, their strengths, do they do what I want?  SBX never had a test room, so I had to test everything in the actual game.

Reflection and Planning:
This post is a big part of the things I have learned.  I took an online course in Unity, which I have yet to finish (It's work on your own), but they talked a lot about reflecting on your work and seeing what you could have done better.  These past weeks finishing up SBX I have seen a lot of ways I could have done something in a much more efficient way.  Iteration is a big part of this, but other things as well.  Planning out my work is also a big things I am even still learning more about.  I can't tell you how many pieces of paper I've used making SBX.  I draw out my plans, then implement them, but they could be organized better.  I've got a few notebooks set aside for SBX2 to keep my notes in one place, where I can flip through all the information.  Recording my thoughts in this blog is a part of it as well, as it gives me time to think... "What am I doing, and what do I want to do after this?".   I find that I am much more motivated after I make myself a ToDo list.  As I check off each item, I feel like I have accomplished something for the day.  Staying motivated on my projects is tough some times, but I truly love developing games, regardless of the times where no one wants to play my game and it sits for 2 weeks without a single comment on the forum.  I love what I do, and THAT is the most important thing.

In retrospect:
This has been a fun year.  I started SBX sometime in February or March, serious work at least.  It picked up as the spring went on, and I was full steam in the summer.  It is tough to put aside the time to program, and with my new job, it will prove even harder as I'll have longer hours and I'll be trying to work as much as possible to save.  Game Design is my passion and someday I will join up with a company that can pay me for my work, but until then, I will keep programming, designing and having fun.  As I move forward, I'll look back at SBX as my first serious completed project.  Since I was young I've made games on various platforms, but nothing ever to this extent.  This is my first step to my goals.  My portfolio has it's first major piece.  I doubt any of my games will ever make any money, but who knows ;D.

Well, it has been a fun journey, and to those who have played SBX and/or have read this blog:  Thank you!

To all those who tested my game, mainly:  TheUltimate, smashball, Enter_Name_Here, as well as a few others:  A BIG THANKS!

Stay posted for more news as SBX2 goes into development.

Sayounara Minnasan!

~WakeskaterX~

Monday, October 31, 2011

[GMC Jam 4] Competition End!

Ghosting Laws:
Well I finished my entry for the GMC Jam 4.  Ghosting laws has 6 levels now and they are pretty tough!!! You'll need to use reset level a bunch because impossible levels sometimes spawn.  Level6 is really freakin tough as there are color changing blocks that change every few seconds.

The game was tons of fun to make and hopefully it does well in the competition.

If you are registered for the GMC forums, you can vote once voting opens at:
http://gmc.yoyogames.com/index.php?showforum=3

and then there will be a topic for voting (I think it's locked atm).

But vote for Ghosting Laws!  Try out all the games and see what kind of amazing talent the devs at GMC have.  I am looking forward to seeing all the games released.  Mine was a simple puzzle game, but there are some pretty advanced games that have amazing graphics.

I don't expect my game to get first, as there are some great teams out there with some awesome games, but I would like to place top 10, that'd be pretty cool.  I'd say there  are probably about 30 entries as well.  (THERE ARE actually 58 entries I think!)

Well,  Good luck to everyone participating in the GMC Jam #4 and let's have a great time voting!!

~WakeskaterX~

Sunday, October 30, 2011

[GMC Jam 4] Ghosting Laws

GMC Jam:
Oh my goodness I have wanted to take part in a GMC jam for a while, but I totally forgot to check on it!! So i was about 24 hours late to the 72 hour contest to make a game with the theme "Law"... but well the game really only took me about 5 hours of solid programming to get it done (at least a workable demo).

And thus the game Ghosting Laws was born!

The game idea is that you are a little ghost, and you have to get from one white square to the other.  There is one level that is randomly generated, and you must walk on tiled floors, or pass through blocks (when it lets you).

So there are 3 colors and 2 different types of obstructions.  You can walk on all tiled floors, but if they are red, you die and start over.  Blocks are different, you can only pass through them if they are active, and if they turn inactive while you are on one already, you die and start over.  So you have to get from one area to the far white square to finish the level.

It's a simple concept but it was fun to make the room generator, and work through the kinks in only 5 hours!  5 hours!  Crazy, and that is including all the sprites and graphics.

Link:  http://sandbox.yoyogames.com/games/188395-gmc-jam4---ghosting-laws





So you need to get to that little bottom right white square to beat the level.

For now the game is working, but it could use some additional levels and some other stuff later.

I don't have a lot of time this weekend so this will be what I have until I can post more Monday and work on it some.

Cheers!

~WakeskaterX~

Thursday, October 27, 2011

[SBX] Level 8 - In Progress

Personal:
Well it looks like I will be working at Johnson Controls, as a facilities maintenance mechanic.  It'll be a good job where I can finally make some money and put some aside.  I had an interview on Tuesday and it went really well!  Exciting, exciting!  It will be nice to have a car again.  For 2 years I've ridden my bicycle everywhere I needed to go.  (Crazy! I know)  Just goes to show that you CAN get by in life without those things you think are necessary.  (Except teh interwebz, wut wud I do without teh interwebz?!?)

Anyway things have been going great so far, and I've been having fun developing SBX and SBX2.  I also plan to put together a team for a platformer game in January of 2012, but we'll see how that goes.  Right now work on SBX2 is a lot of fun and I would like to continue to work with that game and get it ready for alpha testing.  Right now it's just a tech demo engine test, but I think it's fun ;).

Book I'm Reading:
The Sword of Truth Series - Book3 - Blood of the Fold
Genre:  Fantasy
-Great book, very interesting so far.  I enjoy the adult writing style of Terry Goodkind.


SBX:
Well the final level of SBX is about halfway done.  I re did a bunch of stories and used a script to clean things up instead of giant sprites.  I broke up some level sprites as well and got rid of all my errors.  I've been trying to clean up some of the code in SBX, but it's just such a giant tangle of crap.  Honestly.  At least with SBX2 I am aiming to make the code friendlier in case I employ the help of other people on the game.  I am looking forward to finishing up level 8 and hosting the game as complete in the YoYo Games area.  I can then focus my free time on SBX2 and developing the system and the graphics better.

Hmm, I should also put some skins back in for my favorite testers.  I'll at least toss them a thanks in the credits after you beat the game.

Ah!  There is a new enemy added to the game as well, watch out in level 8!  The hammerhead type enemy will attempt a kamikaze crash to kill you instantly!  Avoid Avoid!

One other note:  Viewing of this blog has gone up by over 100% this month!! Thank you all who have checked out my blog!  I appreciate it ;)

Well it's a short entry tonight,

Thanks for reading folks,

~WakeskaterX~

Saturday, October 22, 2011

[SBX2] Tech Demo Release

SBX2:
Wait... is that a... 2?  YES it is.  I have just finished the Tech Demo for SBX2 - Return of the Fuscians, the sequel to SBX.  This time around it is a space exploration game, not a scrolling shooter.

Link:  (also at the bottom)
http://sandbox.yoyogames.com/games/187914-sbx2---return-of-the-fuscians

The Tech Demo contains a few things:
  • The basic AI structure for enemies in the game.
  • The movement engine for the player.
  • Destructible Objects in the game! Yay you can break walls!
  • A temporary GUI  (Will Be Replaced with something cool lookin)
  • Sweet Temporary music  (Muse is just win)
  • Awesome Space Action
There is a lot that I am doing differently this time.  I have learned a bunch about coding since I began SBX, including things from other sources, such as my Unity course.  I have learned to streamline my code and actions to make things as efficient as possible.

Also a big difference with the sequel is I am not using any Drag and Drop programming.  (For those of you unfamiliar, Game Maker lets you drag and drop commands into a visual command line, to make things easy for beginners.)  Everything in the game will be done by pure code, with the exception of a few single line things that I can drop in for quickness, like destroy self, etc.  

The AI was tons of fun to program.  It's not quite finished, but is now working after quite a few hours developing and testing it.  Enemies have 4 states:  "Normal" , "Search" , "Attack" , and "Avoid".  
I'll briefly describe each of them:
Normal:
Enemies start out in normal, which is a path based on coordinates given at implementation.  Coordinates are stored in a 2d array, with X being the 0 slot in the second array, and Y being the 1 slot.  Each enemy cycles through the coordinates in the array until they reach an entry of (0,0) in which they repeat the process.  When they reach within 10 pixels of their destination, they then choose the next one.

Attack:  
From normal or search mode, if the player comes within a certain distance, the enemy will close the distance and chase down the player, keeping within a safe firing distance.  **To Be Added:  Later on enemies will have a suicide option, in which they will try to ram the player to do massive damage at the cost of death**
In attack mode, the enemies also will fire weapons at the player.

Avoid:
Once the enemy is in battle, when it reaches a certain HP threshold, it will attempt to use evading techniques to encircle the player and avoid fire.  The enemy will continue to fire weapons at the player, but will move side to side instead of chasing the player down.

Search:
If the enemy is in Attack or Avoid mode and the player leaves the combat range of the enemy, it will engage Search Mode.  In Search Mode the enemy will do circular sweeps of an area until the player comes back into range, or until a long timer tells it to go back to it's regular path after not finding the player.


Here is a sample image of combat with the enemy:


The only weapon in the tech demo is the Gatling Gun:  A weapon that will most likely be the player's starting weapon in the actual game.



Thank you all folks for reading!

~WakeskaterX~

Wednesday, October 19, 2011

[SBX] Updates and Changes

Personal:
Well it was a nice weekend and earlier time this week, have a nice Wednesday off so I am able to get some work done on SBX.  I received 2 e-mails from some people earlier this week and was able to establish a contact with a recruiter even though I wasn't what he was looking for.  It's nice to hear feedback on people about what to do.  I posted on a group site in LinkedIN asking for advice and it was nice to hear from people in the industry what I am already doing:  Make a nice portfolio, get peoples attention.  So I figure I will start working on getting a website made to host my work, rather than a YYG profile, at least it would look a bit more professional.

SBX:
So I have made some baseline changes before continuing on to finish out the game.  The things I wanted to get done this week were:
1.  New Text Boxes
2.  Re-Work the Auto Shop
3.  New Profile Selection Menu
4.  Harder Bosses
5.  Add Checkpoints
6.  Fix some bugs with Crazy Ball

I decided to scratch number 5, as I really want to keep the game arcade style and somewhat difficult, but I want to adjust the difficulty UP on a few bosses as feedback from players said that the bosses were way easier than the level itself.
The big one for number 4 was level 3.  You could sit in the back and avoid the spikes and just relax back there.  I added some ships that now spawn at the back ends and will charge along the back line at you to make you move... or die.   This makes the boss a little more dynamic and it makes you plan out:  Ok the spikes just set back, they probably won't kill me right now... i can avoid these guys.

There will be additional adjustments for boss difficulty in the future: Namely: Level 2 boss, Level 5 boss, Level 6 boss.   I might change some things about level 7, but for now the difficulty is alright.

For the new text boxes, I had been using the default gross grey boxes before, but with a simple activation code at the start of the game I adjusted the fonts, colors, and backgrounds of the boxes.

I also re-worked the auto shop.  Before it was gimmicky and you had to click an icon to select an item.  Now you can just select any item and it will equip it.  It will also show you which items on the left side is equipped with a dark background and lighter text.  Here are 2 photos of before and after:

Before:
After:

The whole auto shop is streamlined and much easier and intuitive to use.

Also I re worked the profile menu.  I jumped into Paint.NET and designed a nice looking menu system to use.  The old looked like:
and the new looks much spiffier:
I have started using Papyrus for most of the menu fonts, as it looks nice and separates menu and message items from other fonts used to mark things in the game.

The Intro scene featuring my logo has been reworked as well.  Before I had a kind of stupid looking logo that was very rough, but I changed it to look a little more professional.

Before and After:

I used an actual picture of a wakeskate and edited it to work with the image.  The result is a crisp, beautiful logo instead of the crappy one I had drawn before.

Also I adjusted some things for the crazy ball and it works much smoother than before.

Reflecting over this game, I now see how I will have to re-work things in the future to better organize and streamline my work.  No one could really steal my game files, because so much random stuff is going on in all my objects.  This being my first full length game, I realize the limitations of the way I was doing things before and the way I will need to proceed in the future.  Unless I get some more stability issues when the game is finished, I probably won't go back through and streamline all the code as the game isn't big enough to warrant that, but I have learned a ton from reflecting over my code and use of Drag and Drop.  Future games will be created entirely in GML to increase the workflow and edit-ability of my games.

EDIT:  Also I just added a new movement system for SBX  - it looks much nicer now and the movement is way more fluid.

Thank you for reading and hope you like SBX so far!

~WakeskaterX~