PyWeek - The Laser Samurai

Wordpress blog is still going strong

Get up to the minute updates on my progress on Twitter! =^..^=

----

Rose the Red Ninja was walking out in the grassy fields near her home in Japan, when a Blue Ninja appeared!

He laughed, and told Rose that she was on Lord Skygem's lawn, and that he wanted her off of it... At all costs!

Rose must fight her way through the Blue Ninja forces and finally defeat Lord Skygem, so that she can bring glory to her master, Lord Crimson!

Notes that weren't in the README:
Press E to pause
Press R to restart the level
(Note:You'll have to sit through the load screen again :-()
Press Q to quit
(Closing the window also works)

The Status:

Done! Hope You Enjoy It!

Level One: Not much to say about it, mostly trying to get the hang of making levels. Came out okay, thought, so I kept it.

Level Two: Big vertical climb with enemies above. Also, lots of enemies at the end.

Level Three: You are immediately dropped in front of a large group of enemies, and must escape. Or fight them, if you're brave/crazy

And Then...: You have won the game! Bonzai!

----

Here's to never giving up hope! ^o^
Akake

Evil warlords have weird tastes in landscaping...

Awards

Give this entry an award

Ratings (show detail)

Overall: 2.8
Fun: 3.0
Production: 2.9
Innovation: 2.4

Respondents: 23
Files: Uploader Date
rose-ninja-final-fixed.zipfinal 210.32 Kbytes Akake 2009/05/02 21:06
Final Version -- Fixed Starting Level!
rose-ninja-0.5-final.zipfinal 209.81 Kbytes Akake 2009/05/02 20:57
The Final Submission -- Hope You Enjoy It!
rose-ninja-0.4.zipfinal 208.85 Kbytes Akake 2009/05/02 13:24
Now there are two levels!
rose-ninja-0.3.zipfinal 208.76 Kbytes Akake 2009/05/02 00:14
Now with level progression! Huzzah!
Rose Ninja -- Evil Warlords' Lawns.png 64.96 Kbytes Akake 2009/05/01 21:27
Evil warlords have weird tastes in landscaping...
rose-ninja-0.2.zip 198.38 Kbytes Akake 2009/05/01 14:39
Demo with enemies!
Rose Ninja Test Level.png 52.15 Kbytes Akake 2009/05/01 12:20
Yay! A test level!
rose-ninja-0.1.zip 424.76 Kbytes Akake 2009/05/01 12:19
The First Release
Rose Test One.png 3.60 Kbytes Akake 2009/04/30 14:56
YEAH! IT WORKS!
Ninja Sprites.png 15.58 Kbytes Akake 2009/04/30 12:47
The Main Character: Rose

Sunday 10 May, 2009

[ Akake @ 15:06 ] The (Tentative) Plan for Pyggy

I have been planning additions to Rose Ninja for Pyggy.

Here's what I've been thinking of doing:

-Completely redoing graphical assets (Making characters and terrain look better, mostly)
-Possible elimination of wall-jumping (It didn't really work all that well, so I may dump it, or at least make it less of a focus)
-Sloping terrain
-Proper backgrounds (Not just filled-in with blue)
-Multiple playable characters (Not sure how many)
-Multiple enemy types (Also not sure how many)
-More sophisticated enemy AI (Something that's a bit less ruthless)
-Additional tilesets (Such as a forest or cave tileset)
-Additional terrain types (Such as water and ladders)
-Bosses (Maybe 4 or 5 of them)
-A "Commander Keen"-style world map (With some added things, like battles with wandering enemies)
-An actual HUD (Rather than a bunch of text)
-A menu system
-Save-game support
-A level editor (That also edits maps)
-Music and sound (The former done in LMMS, the latter probably from FreeSound)
-Customizable controls and joypad support
-More efficient level loading (The current level loader is way too slow)
-Refined combat mechanics (It's good now, but I can make it better)


This is a tentative list, but I don't exactly have a busy schedule, so I should have lots of time each day to work on it.

Anyhoo, that's the list of features that I have planned for the Pyggy release of Rose Ninja.

If anyone has any suggestions (Other things to add, things to take off, ideas for characters or enemies), I'd love to hear them!

---Akake

Sunday 03 May, 2009

[ Akake @ 13:02 ] Rose Ninja -- Postmortem

Rose Ninja (Pyweek Release) Postmortem

Gameplay:

I didn't get all of what I wanted into the final release. I wanted to add in a mechanic for enemies and the player to block attacks, and also a way for the ninjas to attack while wall-sliding.

That said, I'm happy with what I got done, especially considering that I did it in three days! X-D

The enemy AI had its surprises. I didn't expect it to be so vicious, or to work as well as it did. Especially because it has two states, active and inactive, which are represented as a boolean. Otherwise, it's mostly based on the enemy's position relative to the player.

The levels were a mixed bag for me. The first level came out okay, I think, and the third came out very nicely. The second level was disappointing for me, though. The fight in the wall climb was fun, but it didn't really do much for me.
I also thought that the second level made it too easy for the player to run away, which was not the idea of it. (It was the idea of the third level) Perhaps I should have thought of that... :-P

The item placement wasn't my best work. Well, the third level came out okay. The second level, again, didn't do it quite right. The first level was okay in terms of items, though.

All in all, the gameplay came out pretty good, especially for having been coded in two days.

Production

Not so great. I mean, my graphics were okay, but not great. I didn't have any sounds, and I think that was a sloppy move. Still, I've come to like my graphical style, basic as it may be.

I think the next game will feature more detail in the images, and possibly varying images for ninjas, so that the enemies don't all look the same.

Time Usage

I made pretty good use of my time while coding and making sprites, but I putzed around alot while making the levels. I should try not to do that.

Overall

I was happy with most of it. Kinda wish I had either more or better levels, but it still came out okay.

I learned alot this time around. I think that next time I'll apply the strategy I applied this time, but I'll apply it from day one.

---Akake

[ Akake @ 08:38 ] Rose Ninja -- Comment Thread

I'd like to hear what everyone thought of my game.

Does anyone have any comments on it? Compliments and criticism both are welcome!

---Akake

Saturday 02 May, 2009

[ Akake @ 21:02 ] The Final Day -- What I've Done

I've just uploaded my final submission.

I'm happy with it for having done it in three days.

I'm proud of it. Realistically, it won't place so great. I mean, I don't think it'll do horribly, but I don't expect 1st-3rd. Maybe 9th or 10th.

What'd really make me happy is for everyone who plays it to tell me what they thought of it.
I'd especially love to hear from anyone who thought it was fun. ^_^

Well, it's uploaded. I appreciate feedback, good and bad.

It's been fun, and I can't wait to judge the entries! ^o^

---Akake

[ Akake @ 19:58 ] Thinking about making my next release final

My third level is taking way too long to make. I'm thinking that I'll make the "You Win The Game!" screen once I'm done with this level, then I'll make my final submission.

I just don't think I can get a fourth or fifth level done in the time I have left.

Ah well, it's been great fun.

I'm really proud of what I've done in the past couple of days. I didn't think I could do this much in so little time.
I learned some good lessons, though. I learned not to over-design, and not to under-design. I learned that I need to focus on playability before code cleanliness, and code cleanliness before grandiosity. I learned that I need to work in small steps, and to keep things simple.

And most of all, I learned to hang in there and see things through.


That said, I'm thinking about the Pyggy Awards.

I have lots of features I'd like to add to my game, and lots of tools to implement those features.

Here's some of the feature's I'm going to be working on:
-A "Commander Keen"-Style World Map
-Cut-Scenes and Dialogue
-Multiple Enemy Types
-More Complex Enemy AI
-More Terrain Types, Including Water, Conveyor Belts, and Moving Platforms
-Bosses
-Possibly an Inventory System
-Even More Ninja Awesomeness!

I know the Pyggy's are a long way off, but that's why I'm making the big plans now.

I can't implement some of the things I want to without seriously refactoring my code, so I'm going to finish the level I'm working on, make my "Game Won!" screen, then submit and get to work.

I'd say it's been a fun Pyweek, but it isn't over yet!

---Akake

[ Akake @ 16:09 ] Surprises in parts of the design

I'm surprised by how my game turned out.

For instance: In Rose Ninja, if you touch an enemy's shuriken that's stuck in the terrain, you take damage. Enemies do the same if they touch one of yours that is stuck in the terrain.
I originally thought that that would be an "Oh, that's kinda cool" sort of thing, but it has turned into something that has to be thought about in combat.

Also, spikes. When I came up with the idea, I just thought they'd be something that I'd throw in for the sake of it. Those spikes, when properly placed, become really important. In the level I'm working on now, level three, there is a spike pit. If you fall into it, you're pretty much dead. (Spikes don't kill you instantly, but do about four damage. They do knock you around, thought, even into eachother) However, if you can get the enemies to fall into it, the level become much easier.
In fact, the focus of level three is tricking the hordes of enemies to impale themselves on spikes. I like level three alot, by the by, but it is nice to have it come out better than level two, which... Well, it isn't bad but it isn't as good as I could have done.

I was also taken off guard by how the enemy AI turned out. I half-expected to have to re-write completely, because it was something I threw in when I was first writing the class, but it turned out to be very effective after surprisingly little tweaking.

Almost as surprising was the level loader system. I really expected my original loader to work. However, it really didn't. My plaintext system, though, is surprisingly effective.

This has been really interesting for me. I should have at least five levels by the end of the compo.

And, after I've submitted an entry that I'm happy with calling my final one, I'm going to start working on the Pyggy Awards version, which I'll elaborate on later today.

Needless to say, though, I've got big plans for Pyggy. Big plans that I'll do a bit at a time. ;-)

Anyhoo, I've been surprised at many parts of the design process here. I'm really anticipating everyone's entries, as well. ^o^

---Akake

[ Akake @ 10:42 ] The Final Day -- Levels

Today's goal is to make levels. I hope to have at least five done today.

Okay, I hope to have twelve total, I expect at least five today. I can spend most of the day on this, though, so this shouldn't be a problem.

I have to admit, I'm already looking forward to the Pyggy Awards. I love the thought of taking this three day game and making it a three month game!

Right, but first I need some levels to make it a game.

Even if I don't place well (Though I think I'll do okay), I'm ecstatic! I finished my game! I've made a game in three days! Yeah!

I've been searching for a sense of purpose for a while now. I think I've found it, though. :-)
Well, I could go off on some philosophical ramblings, but instead, I'm gonna get some breakfast and get down making some levels

Friday 01 May, 2009

[ Akake @ 22:47 ] Day Six -- It's starting to look like a game!

I'm considering getting some sleep. I want to get a fresh start tomorrow.

Man, two days of work and it's already starting to look like a game. This is amazing.

I've got a level and a half, level progression, enemies, and gobs of ninja awesomeness!

I'm liking some of the other entries, as well. I can't wait to play all of them!

The last couple of days have really been amazing. I mean, a game in three days? With levels?! And NINJAS?!?! WOOOO!!! BONZAI!!

Phew! And I'm tired. But I made it... This far. ;-)

---Akake

[ Akake @ 14:39 ] Demo Number Two -- Now With Enemies!

I have another demo ready and uploaded!

I have a basic HUD, which displays your health, how many shurikens you have left, and the score (Not implemented yet)

I also have a second test level, and this one has two enemies in it who will attack viciously!

If I implement difficulty setting (If not this week, then certainly for the Pyggy Awards!), it will slow the enemies down, lower their health, and possibly make their attacks do less damage.

The player currently gets five times as much health as each of the enemies, as well. Even with that, though, the buggers are tough! ;-)

My next task is items! Yeah!


I was surprised by how easy it was to implement enemies. It only took a little tweaking to get them right.

Their AI is simple (REALLY simple. Based on how far away the player is horizontally and vertically, without using states!), but they are really tough because they move just as fast as you do, and can really nail you if you're not careful!

As you may notice, taking damage knocks characters around. How big of an impulse is delivered to the character is based on how much damage they take from the attack.

Also, if an enemy's shuriken is stuck in the ground, and you touch it, you take damage! Be careful! X-D

---Akake

[ Akake @ 12:32 ] First Demo! 8-D

I've got my level loader made! I've uploaded a demo and a screenshot of the test level.

It's a little (Just a little) bulky, though, because I got excited and packaged the SVG images with it. :P

Eh, I'll take them out (Create a separate folder without the SVGs) when I've gotten the enemies working. There'll be another demo then.

After that, the level progression system shouldn't be too hard.


I'm really happy I went to a text-based level storage format. WAY simpler to parse, and actually not too much hassle to work with. (Which was my main worry with it.)

--

If anyone wants to play with the level, it's located under "rose-ninja-1.0/data/levels/test" as "0.lvl".

The syntax for the level format is as follows:
Player Start Point:"player start: x,y"
Enemy Start Point:"enemy start: x,y" (Enemies don't nevessarily work right now, and haven't been tested. Use at your own risk!)
Ground Terrain Area:"grass area: left,top,width,height"
Spike Terrain Area:"spikes area: left,top,width,height" (Note, though, that you can currently touch spikes as much as you want. This will be fixed, however.)
Level Size:"level size: x,y" (Note that objects can exist outside of the level, but the game camera is locked inside the level's area. You can still fall off, too, but that will be fixed in the next release!)

Also, the space is important. You can add spaces around each line, and also after the colon, but not between the arguments (EG:'player start: 25,10' is fine, but not 'player start: 25, 10')
This may be relaxed in the next release, though! ^_^

---Akake

[ Akake @ 08:35 ] Day Six -- I feel prooty good about this one!

It's about 4:25AM here in Mittenland!

It was 4:20AM or so when I first typed that, but I felt compelled to sing a song about my morning. Because I'm a little groggy, and a bit disoriented.

I woke up morning at 1:30AM or so, and I felt very ill. I was shaking and cold, I had a fever, my throat was parched and DRRRYYYYY~

I laid in my bed,
Put my hands on my head,

Perhaps I'd caught the SWIIIINE FLUUUU!!!
But then I remembered I had work to do,
And I remembered the things taught to me by YOOOUUU!!

(Ahem!)
Sorry bout that. I'm still a little dizzy... X-D

But yeah, I woke up sick, but I feel much better now. :-)

Today I hope to get my level loader together, and then maybe get enemies going.

I'm still a little out of it, but I should be able to work in a couple of hours.

Excelsior!

----Akake

Thursday 30 April, 2009

[ Akake @ 23:13 ] End of Day Five -- Doin' Fine

I feel good about my progress today.

The only major setback I had was in my level loader. I attempted to implement level storage in images, but couldn't do so efficiently. :P

Going to try again tomorrow morning, but this time I'll implement level storage in a makeshift markup language.

I should hopefully have levels and enemies by this time tomorrow. Then, I'll make the menus, scoring, etc.

Excelsior and Yatta!

[ Akake @ 18:05 ] Mid-Day Day Five -- I've Rallied!

Anyone who's checked the #Pyweek twitters should know by now that things are looking up for me.

So far, I have a ninja that runs around, jumps, swings her sword, throws shurikens, and can wall-jump!

I'm very excited, and I think I can pull this off! :-D

I'm going to be working on a camera next, and then terrain.
Enemies shouldn't be too far behind. All I have to do is make the sword-swinging do damage and probably tweak the (very simple) AI I tossed together a while ago.

I'll get to making the player move between levels tomorrow. This is so exciting!

I don't want to plan too farr ahead, but I feel really optimistic. I may even put in a final boss! 8-D

/me smiles
I'm glad I took everyone's advice and started small and simple. This has been a great day! :-D

Anyway, once I get the terrain system working, I'll upload a demo. ^_^

[ Akake @ 07:00 ] Beginning day five -- Things can only improve

I'll be coding today, and hope to have something playable by this evening.

I want to make this happen. And I know I can. Wish me luck!

This game is gonna be real cool! Yatta!

Wednesday 29 April, 2009

[ Akake @ 20:23 ] Day Four -- It doesn't look good

Well, I think it's safe to consider day four lost.

I'm starting to hate my concept. I can't seem to find a way to make it work.

This is getting very frustrating for me. I know I shouldn't be whining about it here, but I need to get this off my chest.

I can't get down to working on it. I have all the free time in the world, but I can't bring myself, to do this. I keep wanting to do it, but I'll get interrupted, or I'll put it off, or something else will happen.
And when I do work on it, it doesn't cohere into something that I can even test. It just grows and grows until I have five pages of code that doesn't do anything at all. I can't make my code into a playable game.

I am fairly certain that I'll be DNFing again this time. :-(

I don't want to drop out just yet, but the thought has crossed my mind. I just don't seem capable of doing this. Or making a game at all.

*Sigh*
I'll wait until tomorrow to make my decisions about how I'm going to handle the last few days of the competition. Suffice it to say, though, that I'm feeling extremely pessimistic and demoralized, and don't really want to think about my project right now. ._.

[ Akake @ 14:23 ] Starting From a Clean Codebase

I'm going to be starting my coding over. It's getting out of hand.

I'm feeling better about the whole thing now.

Truth be told, I was trying to re-use some of the code I'd written for the first concept I tried coding (The one with skeletal animation)

That said, I'm happy to say that I should have a playable game by Sunday. :-)

I'm not sure what all I'll have as far as fancy things like menus, maps, and the like, but it should be playable. I may not have all of my characters done, though. :P

Anyway, I'm happy to say that I'm feeling a good deal less pissy with the prospect of a new codebase. With all that, the project is back on! Yatta!

[ Akake @ 13:37 ] Feeling pessimitic

I'm feeling very pessimistic about my game.

I don't even have enough to make it playable, or even testable. ._.

I'm starting to feel lost. I should have been less ambitious. I really should have.

I still think I can get something by the end of the week, but I don't think I'll be able to finish. :/

My entity code is crawling along, but I haven't started anything else, though. Not even my level structure. :(

I'm really upset with myself. I let my ambition get out of hand, and now I'm horribly behind, and may not finish at all.

I... Can't quite figure out how to avoid this, and it happens to me alot. I get wrapped up in a big idea, and it grows and grows, and then it just falls apart. :(

Is there any way I can avoid this in the future, or am I doomed to repeat this mistake? ._.

[ Akake @ 12:39 ] Day Four -- Here's hoping I get somewhere

I had a very lazy day yesterday, as I remarked on Twitter.

Today, I will hopefully get much work done. I'm currently thinking about breakfast, and after that I'm going to get back to work.

My hope for today is to have enough code where I can get a demo level working. I'm hoping to have a fully functional player character (Including Flight), and also to maybe get an enemy going.

I've got high hopes for the concept. ^o^

Once I have my gameplay going, then I can write my level and media loaders, then I can write my factory, then my level manager, then my menu system, and after that I'm pretty much home free. I need to get my sprites made, of course, but that can also be done. :D

Tuesday 28 April, 2009

[ Akake @ 06:02 ] Day Three -- The plan for Capsule

Here is the plan for the development of capsule:

Day Three:
Make Sprites for Capsules A, B, C, D, E, F, G, and H; Make Sprites for Grunt, Sniper, and Rocketeer Enemies; Make Sprites for Items; Make Sprites for Ground and Concrete Level Terrain; Write basic entity and item code; Write code for level structure

Day Four:
Make Sprites for Capsules I, J, K, L, M, N, O, and P; Make Sprites for Brute, Flamer, and Trundler Enemies; Make Sprites for HUD; Make Sprites for Scaffold and Mechanical Level Terrain; Write content loader code; Write enemy ai and combat code

Day Five:
Make Sprites for Capsules Q, R, S, T, U, and V; Make Sprites for Enemy Capsules Blue, Red, Yellow, Black, and Grey; Make Sprites for Menu; Make Sprites for Cave and Base Level Terrain; Write menu code; Write game save/load code

Day Six:
Make Sprites for Capsules W, X, Y, and Z; Make Sprites for All Bosses; Write boss code

Day Seven:
Blue Sky! (Let's Hope)

Monday 27 April, 2009

[ Akake @ 23:16 ] Um.. Okay, the theme! XD

I neglected to think about the theme!

The evil mastermind who stole the Capsule-series was none other than...
Doctor Kruntzerpuntzer! From my first concept! O_O;

Yes, doctor Kruntzerpuntzer, angry that he missed his chance to be in a video game, has stolen an entire line of robots from a massive corporation!

Now, he has declared to the UN that the entire mainland United States is now his lawn! He has further gone into detail that if the United States doesn't get off his lawn, he will let his own Capsule robots loose on the world! After that, he'll probably go yell at Mrs. Kruntzerpuntzer to make him a sandwich.

It is up to Capsules A and B to stop Kruntzerpuntzer, destroy the evil robots, and rescue their fellows from being rebuilt and converted into superweapons!

[ Akake @ 18:43 ] Stressed Out

I think I need to seriously rethink my concept.

I'm starting to get queasy just thinking about all of the stuff I have to get done for it, the art isn't cooperating, and I'm just tired. I'm tired.

I don't know what I'm doing yet. I may keep my concept, but I'll probably toss it and go for something simpler.

I kinda blew day one, but I was hoping to get something done today. I'm reeling from all the work I put on myself, though. I'm starting to notice a pattern of that in my work.

Like I said, I'm reconsidering my concept. I need something simpler, or I'm going to go into a tailspin from all the stress of it.

I'm not gonna do a Post-Mortem of it, though. I just want something that I can actually accomplish. XD

----

In fact, now that I think of it, these concepts have been the ones I have never been able to finish. I have always had trouble with concepts where it requires lots of super-fanciness.

Okay, and maybe I have a case of the Monday emoz, too ;-)

In all seriousness, though, I'm going to try something simpler. This is going nowhere.

So... Back to the drawing board! Let's find something simpler! :D

[ Akake @ 18:05 ] Seriously reconsidering things...

The skeletal animation system just isn't elegant. I tried my hardest, but it just won't come together.

That said, I'm going to refocus on making sprite art for the game. I think it'd look better, should it come together right, and it would make my life loads easier.

I know this is coming just after a post about my plans for the system, but it's just growing and growing, and I know well enough to abandon it now instead of slaving away at it only to run out of time. :P

My game concept is still the same, but will be simplified as far as enemies go: There will only be a few types of enemy.

I'm thinking this will help me greatly in the end.

---Akake

[ Akake @ 17:15 ] Skeletal Animation -- The Plan

I've decided that it would be a good idea for me to rethink my skeletal animation system.

The parts that I have are (Mostly) good, but I'm running into issues as far as how to draw the images.

The method I was previously considering, drawing the whole skeleton onto a surface, then drawing that surface as a sprite, has turned out to be frought with problems.

Given that, I've changed tactics: Instead of simply flipping a sprite to turn the character around, I've added functionality to the animation bones to allow them to invert themselves. This may require some tweaking, but it should work better.
Doing it this way, I don't have to worry about how to align the sprite, which could get messy. I can also save memory by not drawing a whole mess of intermediate images, and I don't have to worry about the size of an intermediate image! ^o^

The bones will draw themselves thusly:

  1. Draw child bones that are always below the current one (This is recursive)
  2. Draw the child bones that should be below the current one based on the direct the skeleton is facing
  3. Compute the angle of the bone and the offset for the image recursively (May optimize this if I have time)
  4. If the skeleton is facing left, flip the offset (Which is still local to the skeleton
  5. Add the offset that represents where the skeleton is being drawn
  6. Rotate the image for the bone by the calculated angle
  7. If the skeleton is facing left, flip the image
  8. Get the Rect for the image, and align its center on the offset point
  9. Blit the adjusted image onto the destination surface (Given as an argument, and also passed to child bones)
  10. Draw the child bones that should be above the current one, based on which direction the skeleton is facing
  11. Draw the child bones that are always above the current one
  12. Finished!


It shouldn't be too much of a problem to get it working. ^_^

I've also been working on other parts alongside the animation system, such as the entity system and object factory, because I don't want to fall behind on other things. :P

And now, back to work! OwO

[ Akake @ 01:37 ] Day One -- And into the starry night

DAY ONE'S PROGRESS:

I have most of a skeletal animation system. I also have a small portion of my image assets made, and I have a plan.

I'm going to be working overnight to make up for lost time. I have enough ramen and coffee to get me through the night. I hope.

I'm not going to make an excuse for my late start. No one really needs one, and I figure I've restated my alarm clock troubles enough.

That said, things are looking up for the project. I'm breaking my skeletal animation into multiple classes to simplify it. I'm thinking that I'll make weapons a specialized animation bone, so that I can simplify handling them in animations. ^o^

I'm going to need a mechanism to provide for removing animation bones, though, but that should be fairly easy to do.

I have a generic object factory, but will probably re-do it to use a system of templates. I used a template-using factory in a previous project, and it worked phenomenally well. It greatly simplified my code. In fact, it vastly simplified it.

All things considered, it was a late start, but I can make it up!

----

My friends, here's to ingenuity, to efficiency, and to the determination that builds cities and empires!

Here's to the passion of a person who has found their calling, and to the determination of a dreamer who follows the call to make their dreams come true!

And here's to the friendship that brings us together from all corners of the world!

Excelsior and I/O! And now I retire to my craft!

--Akake

Sunday 26 April, 2009

[ Akake @ 18:12 ] My Game -- Voles

My game will be titled Voles. It is about a bounty hunter named Rachel Mure, who has been asked by the owner of the massive New Edison Martian Arcology, Nathan Lorenzo, to eradicate a band of space pirates that have been raiding the crops of the Arcology's massive arboretum.

It will be a fairly fast-paced game, with all sorts of acrobatics, wall-kicks, backflips, and the like. The levels will consist of massive machines that the pirates have built to steal crops.
The levels will be semi-timed. If the player can destroy the machine before it takes in all of the crops on the field it is on, they will recieve a bonus based on how much was left. Otherwise, they can still complete the level, but will recieve a penalty because all of the crops were picked, and have to be consumed or preserved before they rot.

The player will be granted a number of different weapons, including:

  • Lasers, both pistol, rifle and cannon
  • Plasma Weapons, again, pistol, rifle, and cannon
  • Missile launchers
  • Machine guns
  • Maybe even a flamethrower
  • And more!


The player will also have a jetpack, with which they can fly around. This will have limited power, and when it runs out, the player will have to wait for it to recharge.

It will have a skeletal animation system, which I have about a third of the way done.

This game is gonna be real cool! OwO

Monday 20 April, 2009

[ Akake @ 16:34 ] My Game -- Thoughts

I've been fiddling with Retrogamelib a bit, and have found it to be pretty nice, but it's also a tad high-level for my tastes, so I may or may not use it. It's a very nice engine, but I think I'd be happier with just pygame. :/

Scuppers:
Probably something involving a cute little character named Scuppers. He would be the cutest little whatever-he-wound-up-being that I'd ever sprited.

Tatlin's Tower
Here, I'd avoid the historical failed project, and do something fictional. It would be about a young hero trying to climb the tower fortress of the evil (And completely made-up) God Tatlin, so he could rescue the soul of his older brother, which Tatlin stole for the fun of it.

Half-Sovereign
Picture this:A warrior whose kingdom had been taken over by an evil wizard. The warrior is the illegitimate son of the king, who had an affair with a maidservant (Hence, he is half-sovereign). The warrior must defeat the wizard's army, and restore his father to the throne!

Get off my lawn!
You are Rudolph Kruntzerpants, an old man with a problem. A group of little kids keeps intruding on peoples' lawns. Being an inventor, you have built a kid-capturing weapon which places the little rats into cages, so their parents can ground them. Only you, a crotchety old engineer, stand between your neighborhood and total chaos!

Sleeping Bears
Bears have taken over the nation's capitol! The military has been decimated, and the UN isn't sending help because of threats of protest from PETA! It is up to Stephen Colbert to save the Greatest Most Best Country God Ever Gave Us On The Face Of This Earth from the bears!

I like that last one the best :-)

Wednesday 08 April, 2009

[ Akake @ 22:55 ] The Road to PyWeek -- Still Working out the Kinks in My Strategy...

My second practice run is nearing an end, and I have a completely different problem this time.
I... Never wound up writing any code. I got so wrapped up in the design process that I lost track of everything else in the project.

Lesson Learned: Don't overdesign, it's just as bad as over-engineering!

I'm very glad that I decided to do these practice runs. This would have been a problem in the compo XD

I think I can call the second game sunk. It's just not going to happen.
Life goes on, though.

I've been finding that more and more:I'm getting caught up in the designs. I need to not design so much XD

I've got a good feeling about the third practice run, though. I think it'll be good to have a fresh start.

My friend has decided that she won't tell me the theme until the start of the next run, which will be at 23:00 UTC (7:00 PM EDT)

I'm thinking that this time I'll just give it some thoughts, maybe scratch down some notes, then just start coding the darned thing.

----Akake

Wednesday 01 April, 2009

[ Akake @ 23:55 ] The Road to PyWeek - The second practice run approaches

With my second practice run (Number one, because the first was zero) a mere ten minutes away according to my clock (At the time I started writing this), my friend has held a vote amongst our other friends to see which theme would be the one we'd use.

She held the thing in the open, so I already know what the theme will be.

The theme for my second practice run is:
Running on Ice

I've already begun working out the concepts of my game. It will be another platformer, taking place in northern Quebec. The player is a treasure hunter looking for a golden ham said to have great and awesome magical power, the exact nature of which isn't specified at the moment.

The player's character is a snake-person, and the gameplay is derived from that fact. They interact with the environment in part using their coils, and also by swallowing objects. The player also has to pay attention to their body temperature, because if it gets too low, they fall asleep.

In terms of code design, I will be making to overall structure first, and then working on the nitty-gritty of it. I will likely be building some parts of Peachy Keen to support the game, but only the parts I'll need.

I'll also probably be making an image and level editor, but hopefully that won't take too much time.

The game will feature an overworld map if I have time, and a save game system.

I will have alot to do this time around, but I think that by working from the top down I'll be able to make it happen.

[ Akake @ 13:59 ] The Road to PyWeek -- Why I'm Doing Practice Runs

I'm definitely looking a major delays in my game. The underlying code has turned into a mess, and things have just generally gone badly, I'm afraid. The code just isn't coming together. I can't quite get everything to come together into something that runs. I can't even get it to where I can test the code. (See the post-mortem below)

I'm probably going to shelve the thing. I'll come back to it after the compo if I do, and probably use it as a springboard for more work on Peachy Keen. For now, though, it looks unlikely. The code has turned into a mess. I'm starting to think I should have made a flowchart, or at least planned some part of how the code would work.

That said, this is ultimately why I decided to do full practice runs this time. Because I knew there was still the chance of things getting away from me.

----

As for the next run, the friend that I have coming up with themes for me has given me a list of the possible themes. She decided to use themes that were phrases, like some Pyweek themes have been, and she also threw in a theme that I'm not familiar with (#2), because she says that such a theme may be the one voted in, and I'd have to do something with it.

The theme for my next practice run may be:
0-Running on Ice
1-Shake it and Bake it
2-Red Rider
3-Turtle Shells and Cupcake Smells
4-We can Only Improve from Here

She hasn't given too many hints about which one she'll have me do, but I thought I'd post theme for anyone who might want to play along.

My next practice run will (Because I've abandoned the first one) start today at 12:00AM UTC

----

The Adventures of Jenny Carlyle, Episode One:Post-Mortem

While I haven't quite thrown in the towel on my first run, I'm going to share what went wrong, for the record, and so I can try to not make these mistakes again.

Problem One:Built early framework on unit test framework

I didn't have a plan for the game flow code until about day three of the run. This made it hard to move anything over to the actual game framework.

Problem Two:I've said it before and I'll say it again, Boilerplates are a time sink!

I spent the first two days, and two mornings getting up at two in the morning writing them. I can't afford to do that in the compo.

Problem Three:Not enough planning

There's something to be said for Big Design Up Front programming. This project has made me realize that. What really killed me in the end was the lack of planning. I had the game planned, but not how the code would be structured. That needs to change.

Problem Four:Distractions

I got distracted by many things. School, of course, is largely unavoidable, but there were many other things in my way. I need to learn to not become distracted from my goal.

Problem Five:Nothing tied together

I'm not sure how to explain it, but my code was very disjointed. I'm certain this was due to my lack of planning. My code simply never came together. I'm still working out how to correct this mistake later on, but I think having a Big Design Up Front will help greatly.

Problem Six:Code bloat

My code simply kept growing and growing. There were several functions to load things from files that were largely identical, and there were member variables that I simply didn't need. I also overcommented... alot, and wound up unable to navigate my code because of it. The whole thing eventually became too big, and that's how I would up where I did.

In Conclusion:
Many mistakes were made, and there is a minimal chance of a running demo by the deadline.

On a brighter note, many lessons were (re)learned, and I can only improve from here.

All things considered, this concept will probably be my first game after the competition, but for now, I think it can be laid to rest. I will have to start fresh to get it working, and I don't have time for that in this run, I'm afraid.

Tuesday 31 March, 2009

[ Akake @ 23:07 ] The Road to PyWeek -- More Setbacks

Anyone who has been following my attempt to create a demo of my first practice game will note that I haven't even posted about it again since this morning.

I had scheduling issues. The bus driver who took me from campus to the bus station was a trainee, and got to the station five minutes after every other bus, including the one I take home, had left.

I then called up a family member to pick me up. She ran into about fourty-five minutes worth of traffic, and then I spent about an hour at a doctor appointment I wasn't aware of until I was on my way out the door this morning.

After that, there was the long drive home, with a half-hour stop at the grocery store on the way.

In short:Today's out-of-home time took roughly twice as long as I had expected it to.

Demo: Tomorrow (If the Fates would be kind enough to allow it)

[ Akake @ 07:21 ] The Road to PyWeek -- Approaching The Demo

I have the majority of the level loading code written, and it simply needs to be tested.

I need to learn to structure things better for unit tests, though... I've only done a couple:One for the gauges on the HUD, and another for whether entities move correctly. Had I thought of it, I would've released the second one. ^^;

Oh well. I have two classes today (Plus about an hour and a half worth of bus riding), so I won't be able to work on this for a good part of the day.

I'm currently getting my terrain indexes ready. I only need a small subset of my tileset to make the demo, though.

As it stands, the demo will consist of a simple level and no enemies. It should be ready today. (I took Freeciv off of both of my machines, and won't be re-installing it until after the compo XD)

But, my index parsing code has given me a (rough) idea on how I'm going to write my XML parser for my game engine, so I'd say things are going pretty well for me, all things considered. ^_^

--Akake


---Edit:That's an hour and a half of bus riding. I got my numbers mixed up :P

Monday 30 March, 2009

[ Akake @ 11:39 ] The Road to PyWeek -- Of Code and Sprites

I'm going to be aiming to produce a playable demo by the end of today, as I stated yesterday. I'm already working hard on getting the base of the game flow code running, and getting enough assets together to have something that demonstrates the game's concepts.

I've gotten my game camera working, and am working on the function in the main loop for drawing the game's actual screen.

I've made a (tentative) decision to scale back the variety of the enemies in the game, for the sake of having the time to make all of the sprites.
I'm also getting a bit nervous about my ability to find all the sounds, but I'm sure I can find what I need on Freesound.

Overall, life is going fairly well at the moment.

And, my C++ class (The only class I have on Mondays) got cancelled today, so I have extra time.

[ Akake @ 00:20 ] The Road to PyWeek -- The Goal for Tomorrow

By tomorrow I plan to have my game flow code working, as well as having a demo level to demonstrate that... well, that I have something running.

I hope to have my level loader working by Tuesday afternoon, and have enemy AI and bosses by Wednesday, and I will hopefully be finishing up creating the images some time Thursday morning, which should be the last of it.
Otherwise, I suppose I'll have to finish it Friday. :/

----

I've decided that an extra day is in order for this run, because I have three speeches to prepare for my classes. Meh, the semester's coming to an end, and I will (hopefully) have all of the semester's work done before the compo.

Saturday 28 March, 2009

[ Akake @ 21:12 ] The Road to Pyweek -- Progress and a Side Project

My first pracrtice game is starting to come together a bit.
I have most of the images for the terrain made (144 out of 208).

A far as the code goes:
I have:
-I have the basic entity mechanics coded
-I also have the level loader well underway
-I have designed the level loader to optimize the level terrain as it loads the level, so that instead of hundreds of Rects to check collisions for, I only have about twenty or thirty, and maybe fifty or sixty at the absolute worst
-I have a factory coded that will be able to make any kind of object, according to a template that it can either make and store, or use temporarily to make a single object
-I have the code broken into several files for the sake of organization (One of the biggest mistakes I made last pyweek was to put everything in one file)

I don't have:
-I don't have the enemy AI coded
-I don't have most of the game flow code written, including a scene manager
-I don't have a menu system written
-I don't have a system for player preferences

----

I'm still chipping away at the project, but I have the boilerplate classes done, and a bit of the game's logic.

I'm writing the code to be as reusable as possible, because I'm also working on a game engine at the moment.

The engine is called Peachy Keen. It will provide an in-depth, extensible framework for platform games, and also for entity, image, save game, and other storage using a dialect of XML I'm currently designing: Peachy Keen Markup Language (PKML). It will (hopefully) be in a working state before the next Pyweek, but it is a big project.

The objective of Peachy Keen is to simultaneously provide a way for simple platforming games to be written almost entirely in XML, and also give competent Python scripters a framework to build on to make their own games.

The project takes its name from the fact that its method of handling graphics (A sort of XML-based compressed bitmapping) lends itself to games with a look and feel similar to beloved shareware titles such as Jill of the Jungle, Charlie the Duck, and, the game's namesake Commander Keen.

The projects Google Code page: http://code.google.com/p/peachykeen/

(Sorry if the link doesn't work, I'm not sure how to work HTML... You may need to copy/paste)

Friday 27 March, 2009

[ Akake @ 07:50 ] The Road to PyWeek -- Practice Run Zero

The game for my first practice run is titled:
The Adventures of Jenny Carlyle: Episode One: Attack on Space Station Delphi

It is about a space marine who was mortally wounded in combat, and turned into a combat android by an engineer so she could defend the space station Delphi from an attack by... Wait for it... SPACE PIRATES!

I have some sprites of the character ready, and some of the boilerplate code (Need to look into the various game engines so I don't have to do as much of this during the compo) is ready.

The game will have a tile-based editor, basic but not non-existant enemy AI, and bosses. I will be making a set of five demo levels, but the final game will have around thirty.

--Akake

Thursday 26 March, 2009

[ Akake @ 17:55 ] Practice Runs

I'm planning four practice runs before the compo. I'm having a friend of mine pick the themes for me.

The first one started about an hour ago (12:55 PM EDT), and I'm getting right to it

My first practice theme is: Swordplay

I'm making a sci-fi platformer aiming for the look and feel of a platformer one might have on their PDA. I'm using the theme by giving the player a beam sword, and also making them a relatively common weapon amongst the enemies.

The idea for making a platformer in this particular style came from a game I used to have on my Palm Pilot(c). I forget the title (Something along the lines of Rick Dangerous, I think), but the style of the game has stuck with me.

I'd be happy to post each game as they're finished, if anyone is interested ^_^

--Akake