Friday, November 28, 2014

Happy thanksgiving!

I put together a quick project the night before thanksgiving. It used this GlovePIE script to connect 4 Wii remotes for the kids at our thanksgiving party.

A friend asked me why the white guy always starts with the turkey - it's an accidental commentary on racism and Native American oppression in early and later America. Sorry guys.

Also if your name is Christian Keller please return the turkey. Thanks.

Full screen link: https://c4a21bce-a-62cb3a1a-s-sites.googlegroups.com/site/swfhostingtest/Thanksgiving.swf?attachauth=ANoY7coXwp3ggVEbWUpknCOUUgE_qsqHin3XGzbQSY7D35shOb8C7tnuY3K5vRm3IPdJ5WoL5MJS_tjnUxkTth7neAz1e_z3Hxu-ZN5cNlGopdRKaXTMTCxilmz-RWYrivKNkx7senGO6ceXKvLOngN3PdKcG3MIyCCzLpHJlu7Viic9Qp7-nD2X9PYkz7YMgNHEPIVMGUzdRjn0AY7zMK2DhAQfd35U_g%3D%3D&attredirects=0



Thursday, October 23, 2014

The stars are right postmortem

Well, that was my weekend. 48 hours, starting at Friday 6:00 PM spent on raising primeval horrors from the depths of the Pacific (you wouldn't believe the mess they cause!).

Anyways, I finished it! The stars are right is a short arcade game in which you play as the lovecraftian horror Cthulhu (He's been made a bit cuter than described in the books, I fear); the goal is to destroy and kill as much as possible. Collecting souls as a score gains you followers, who in turn let you use special powers more often against increasingly difficult waves of bomb strikes, tanks and helicopters.

The good:

Collaboration:
I got my little sister to help me out a bit, which was great - she's shown some interest in gamedev before but never really done much with it. She helped out with some of the building and character graphics, as well as giving some design feedback. It's always nice working with someone else, especially if they help you instead of hurting you.

Maths and stuff:
Hey! I learned something. I'm still in highschool, and haven't yet taken any trigonometry - so I'm always a bit confused when it pops up (I have some knowledge of it from algebra II). I did figure out how to get some projectile physics working out using the tangent, cosine and sin of a line. Math is always good.

Art:
I think the art turned out great. It's kind of funny to see something like Dagon represented like this:
Anyways, I think i'm getting this style down. I really do like the cartoony look with large lines and sharp shadows. I wish I could get the line widths to be consistent throughout different resolutions, though. 

The bad:

Well, as always, i didn't get everything I wanted too done. The original plan for the game was to fight through around 6 different levels, taking down Cairo, Paris, Tokyo, Brasília and NYC and fighting
bosses such as a parody superman, the robots from Pacific rim, a resurrected pharaoh and mechanical eiffel tower, but I never got around to it. Luckily enough, I had the entire skeleton of the game done, so the game doesn't LOOK incomplete, it just is.

Conclusion:

Well, I had fun. And I learned stuff. I guess that's what game jams are all about, aren't they? Good luck to anyone else competing. 

Monday, October 13, 2014

Just some fun with tiles.


Hmm... Well this was mostly failed project, due to both time and tech restraints... 

Tuesday, September 2, 2014

Testing side scroller strategy base....



Click to spawn a cat. Cats cost 5 catnip.
 Try to destroy the enemy yellow square.

This is a quick test I made over the weekend for a game similar to http://julgodis.github.io/LD30/ from the Ludum dare 30 competition (I really like your game, Julgodis. Lots of fun!). I'm working with recycled graphics and am just playing around with the style.

Thursday, August 28, 2014

Ludum dare 30: Post mortem


 Ludum dare 30 came and went faster than expected. Whereas previous jams I've entered have been high stress, fervent work filled events, I actually found myself having quite a bit of fun. My game, Gingerbread Odyssey, was a short hack & slash type platformer following the adventures of a lost gingerbread man.

The bad:
Code:
Time and time again I find myself not having enough experience to make the game genres I need to. Platformers seem to be no exception. I only learned the basics of platformer programming about a week before Ludum dare 30 started, so my code was unclear and hard to use. Also, it turns out, downright inefficient. My first solution to creating detectable platforms looked something like this:

 Note that each level of platform required me to define a collision entity. Looking back now, this seems like an amateur mistake... seeing as my code then had to look like this:

add(new Wall(1, 38, 4, 12));
add(new Wall(3, 36, 4, 14));
add(new Wall(4, 34, 4, 16));
add(new Wall(7, 31, 5, 19));
add(new Wall(14, 43, 3, 7));
add(new Wall(15, 30, 4, 21));
add(new Wall(18, 27, 7, 23));
add(new Wall(24, 36, 7, 14));
add(new Wall(30, 34, 4, 16));
add(new Wall(33, 35, 6, 15));
add(new Wall(38, 36, 12, 14));

That's right, I had to define each and every wall... It took some 20 minutes to define a level like #3, Jotunheim.

Later I figured out that I could use a bitmap mask for a collision box and create a level map using an image much like this:
Which took about a fiftieth of the time to create. This greatly sped up my speed in creating levels and allowed me to create massive levels like the ones you see later in the game.

Story:
The story was nigh incomprehensible. My lack of experience with haxepunk led me to a dead end when trying to create cutscenes, so i tried to keep the story complexity to a minimum-including only adding two lines of dialogue, and no animation. This caused things like the play getting pushed off a cliff to look like the player attempting to commit suicide. I'm hoping over the next few weeks to get more accustomed to creating cutscenes, dialogue and other story queues in Haxepunk, so I might avoid this problem in the future.

The theme could have also been more clearly explained. In general, i think I was able to save myself from players being completely confused with my LD description, but greater explanation from inside gameplay helps both with immersion and ratings. My original idea consisted of traveling between alternate universes through portals, each with a unique theme: (I.E, candyland, frozenland, fireland) that the player would have to traverse. Each level would have the same layout, but different mechanics and graphics. Later on, however, I opted for a climb of the great Norwegian world tree, Yggdrasil. I would've liked to have a clearer explanation and greater links to norse mythology.

I guess there's only so much you can do with 72 hours.

The Good:
Graphics:
The graphics for Gingerbread Odyssey work great, look good, and were quick to make.
A sort of cartoony, light hearted candyland theme was what I sought out to make. Some graphics, of course, looked better than others, but both the level design and the character animations looked decent and ran well. The rigs were easy to copy between characters, so i was able to quickly create armies of shamans and roamers. 
The only problems I had with levels was the small error in collision defining that caused players and enemies to 'float' sometimes, around 10 pixels above the ground. I would've also liked to create better projectile graphics, possibly more customized to each type of enemy. 

Combat
Combat, while simple, actually had a great deal more depth than I had originally anticipated. With the majority of enemies being back and forth roamers, the player has two choices: Face the enemies, and clear the platform for use in the jumping puzzles, or dodge the enemy and have to carefully judge when to jump and stay. The first option took longer and gave you a high chance of being killed, while the second, being faster, was extremely difficult in some situations. 

The fighting part of combat could have used some work. The player simply sticks out a black pole resembling a sword and spears enemies. After which, the enemy is knocked back and given invincibility for one second to prevent running it into a wall and repeatedly attack. Without an animation or any variety in the combat, it's a dull system to simply fight enemies in.

The one interesting part about this combat system, however, was how it forced you to fight ranged enemies. Instead of simply jumping behind and enemy and repeatedly stabbing it in the back, you had to kite the enemy or come up with your own sort of dodging pattern to avoid getting hit too many times. Watching friends play, I noticed some would jump into the air, causing the enemy to misfire upward; others would hide behind walls and jump out once the shot timer was on cooldown; and yet others would perform some sort of interpretive dance that involved jumping over the ranged enemies in a game of gingerbread leap-frog.

In all:
I had a ton of fun making the game, and it appears to have gotten more people playing it than any game I've created before (wow, a whole hundred page views). I also learned a bit about efficiently managing resources, art, and platforming collisions. There are little to no bugs and I'm very happy with the results.

10/10 would do again. Thanks, Ludum Dare!