Join #ludumdare on irc.afternet.org
Ludum Dare 15 :: Coming in August :: Theme :: ???

Sign In | Write your Journal/Write a Post
Home | Planet Ludum | Rules Wiki | Mailing List

NEWS: Ludum Dare 14 results now available!

View Ludum Dare 14 Results

LoneStranger's Archive

Ludum Dare Donor Award
Awarded by PoV on May 27, 2008

SuperShred minor update

Posted by LoneStranger
Wednesday, April 22nd, 2009

I have fixed a small bug in the AFI Top 100 quotes phrase file.  It contained an elipsis character that you cannot type.  I also fixed some issues with spaces showing up before a single quote.

You don’t have to redownload the game, just the two separate phr file and overwrite the originals.

phrasesupdate.zip

SuperShred - Postmortem

Posted by LoneStranger
Tuesday, April 21st, 2009

Since it’s been a few days, I wanted to write up a postmortem on my LD48 #14 entry before I forgot too much.

Background

I didn’t think that any of the final themes were very good, or at least, anything I was in the mindset to tackle last weekend.  When the theme Advancing Wall of Doom was announced, I was sort of disappointed.  I hadn’t come up with any ideas for it, even though it was a front runner earlier in the week.  I think I sat down and watched some TV for about an hour and a half before I even started coding anything.  I flipped through the program guide for any ideas but nothing.

The idea can be literal, and I think most people created games with a wall in them.  Advancing Wall of Doom has been done in many games as an actual wall, so this wasn’t a bad design.  From the start I decided that I didn’t want to use an actual wall.  Figuratively, the AWoD is just something that you cannot stop from coming.  You just continue until you cannot continue anymore.  In lots of games, this wouldn’t be any fun, so if you can survive for a period of time, you win.  In a way, Tetris is an AWoD.  You can do what you can to keep the wall (i.e. the top of the well) as far away as possible, but eventually it gets closer (pieces fall faster) and you have less room to maneuver.

Mechanics

I knew that for this LD, I wanted to do something very, very simple.  I had two birthday parties and one playoff NHL game to attend to, so I didn’t have a full 48 hours.  I remembered an idea I had for a typing game, and decided that an AWoD would make a good way to push the user to type faster.

Gameplay is simple.  The wall moves from the left to the right as the phrases come from the right to the left.  If they meet, the game is over.  Since this is a typing game, a shredder played the part of the wall.  It starts off slow and as the user makes mistakes, the shredder picks up speed.  If the user can complete ten phrases without ending the game, they will get a short reprieve by setting the shredder back to the default advancing speed, but it will never ever stop.

Coding

I mapped out a couple objects that I would need and started getting them working.  First the phrases, then the AWoD disguised as a red box.  I progressed a bit at a time, getting the phrases to move, the wall to move, then for them to interact.  Input was probably the trickiest.  I used the KeyEvent VK codes, and they don’t tell you what character was input, only what key.  So it will tell you that the user hit ‘G’ but it doesn’t tell you if it’s a ‘G’ or ‘g’.  You have to check for the presence of the Shift key.  For the alphabet and numbers, it wasn’t a problem, but it got sticky for a couple of the symbol characters.  For some reason, the VK_QUOTE or apostrophe key and VK_BACK_QUOTE or backwards single quote were not actually showing up when I hit those keys.  After fussing with them for an hour, I ended up ‘hacking’ a solution together than just checked for the input I was getting from those keys.

By the end of Friday, I had most of the idea done, it just needed something to make it a game.  One of the ways you can do that is add points.  So I came up with the idea that you would get a point per character and maybe some bonus for completing the phrase.  As I was beginning to code that, I figured stats on your successful streaks would be great, and then realized that you should get more points the better you are doing.  Instead of one point per character, you got your current successful typing streak.  So that works.

I started working on the graphics for the wall and settled on a box with teeth on one end.  I drew some teeth and photoshopped them onto the box. By the end of Saturday, I felt that I had a reasonably fun game that looked decent too.  Did I say Saturday night?  I meant Sunday morning at 5am.

Sunday, after four hours sleep, I fixd the two keystroke bugs and add some actual phrases for the user to type. Along with those phrases, I created the WordKeeper to keep track of them, and added a PopupText class to manage the popup text that shows up when you do good or bad, or complete the stage.

So I managed to complete most of what I wanted to do.  Of course, there is always polish that could be done, but because I had some things to do on Sunday, my time was limited.

What I Did Well

I think I did a great job at scaling down the game.  I didn’t need a lot of graphics.  In the past, I’ve spent a little time drawing some art and photoshopping it and while that may take a lot of time, I didn’t have to worry much at all for this compo.  I do miss the art style from my last compos though, so I’ll try to use them next time.

Input is usually one of the pain in the rear things for me.  I have to come up with a scheme that is intuitive, but I also have to take that input and figure out how to use it.  In the Roads compo, I had to learn how to use the mouse to steer a car on a road and make it seem legit based on the speed of the car.  I wasted a lot of time on that.

Sound effects.  Oh man.  Dr. Petter’s sfxr tool rocks for this one.  I think I spent less than five minutes generating sounds that I felt fit what I needed.  They’re simple and very Atari 2600-ish, but they offer great feedback while playing the game.  I tried his music program, but I lack talent in music and should probably try to learn it outside of a compo.

This was the fourth competition that I’m using the same general basecode.  I’m getting used to it and making changes here and there so I don’t have to waste hours trying to figure out how to do basic things for every compo.

What I Did Wrong

Surprisingly, not much this time around.  I had three things that were planned for the same weekend.  One birthday party each day, and a playoff hockey game Sunday night.  I knew that if I didn’t get the game mostly done by Saturday night, I wouldn’t have much time to complete it on Sunday, so that’s what I aimed for.  Sunday was mostly spent doing the last bit of features and polished a little bit of it.

I would have liked to have made the stat display actually look better with some kind of graphical overlay.  It’s really the only part of my game that I think looks boring.  Sure, the shredder could be better, but it’s ok the way it is.

Some of the phrases submitted with the final entry are really long.  They should have been split up into two or more.  It also might have been easier for the player if I put the entire phrase un-scrolling on the bottom of the window so they could look at that.  I think one of the voters already realized the maximum WPM you can get is around fifty since the phrases scroll is constant.  Another way to fix it would be to speed it up if your recent WPM is past a certain threshold and slow it down if it’s not.

What To Do Next Time

Next LD competition, I still want to scale down, even if I have more time that weekend.  With what I did in the time I had for AWoD, I could really make it great with another six or twelve hours.

I want to continue with my basecode and work to make it more robust of a base.  I see things that other people are doing and I know I’ll never be able to do them if I don’t build a better foundation and skip the mundane basic code.

Conclusion

I’m really happy with this compo.  This was my fifth competition, and the third where I actually submit a final version.  I’d like to continue as this is a great way to keep skills sharp and perhaps learn something along the way.  See you in August for LD48 #15!

SuperShred - Readme

Posted by LoneStranger
Sunday, April 19th, 2009

I didn’t get a chance to post any comments in my entry post, so I thought I’d do that now.

It’s a sort of typing practice game.

The object of the game is to type the phrases that appear on the screen, scrolling from right to left.  As you type, you get points on an increasing scale.  One point for the first character, two for the second, three for the third, and so on.  The longer the streak, the more points you’ll earn.  However, if you hit the wrong key, you’ll lose your streak and start back over at one point.

That’s not all.  A little bit after you start the game, a SuperShred shredding device will start to make it’s way from left to right, waiting to eat the phrases you’re typing.  If at any point the untyped part of the phrase hits the wall, the game is over.  Every mistyped key will increase the speed of the SuperShred, bringing closer the inevitable conclusion.

You can get a minor reprieve, if you successfully type ten phrases.  It will reset the shredder back to the default speed.  You cannot get back your lost working room though, so you would do best to get to that tenth phrase as soon as possible if you make any mistakes.

The game was written in Java and requires the Java 1.6 runtime.  Let me know if you have any problems getting it to run.

SuperShred

Posted by LoneStranger
Sunday, April 19th, 2009

Here’s my entry.

SuperShred.

I’ll write more later, cause I have to go to the Sharks/Ducks hockey game!

First post of the Advancing Wall of Night

Posted by LoneStranger
Saturday, April 18th, 2009

So the theme was one I thought I liked earlier in the week, but decided for the final vote that I was wrong.  Of course, it was selected so we’ll have to make due.

I’m still not sure I can get something totally fun done before the self-imposed deadline of tomorrow night.  If I don’t get it done by then, it probably won’t get done since I have a party to go to and then the second game of the Sharks/Ducks playoff series.

I stared at the computer screen, helped with my kid’s bath and watched some TV before I settled on an idea for the Advancing Wall of Doom theme.  The idea is simple:  The wall goes from left to right, and words go right to left.  The idea is that you have to type the phrase before the untyped characters run into the wall.  Essentially a tool to help practice touch typing.  If you can do that, then you get a new phrase, and so on.  If you make a mistake, the wall creeps faster.  Successfully completing the entire set of phrases in that round may reset the wall, or just give you a short reprieve, I haven’t decided.

So far I have the text scrolling and typing stuff done.   It keeps track of what character you are on and knows when you’ve typed the wrong one.  The wall creeps to the right, but nothing happens on collision yet.  I created some sound effects using sfxr by DrPetter.  It’s quick, easy, and awesome.  I may mess around with musagi later tomorrow for backround music, we’ll see.

There isn’t much to show off, so I didn’t bother with screen shot tonight.

I think it’s time for sleep.  See you in the morning.

Oh! Advancing Wall of Doom!

Posted by LoneStranger
Saturday, April 18th, 2009

Oh! Game Coding Competition!

Posted by LoneStranger
Friday, April 17th, 2009

LD48_14 - Declaration of Intent!

Posted by LoneStranger
Tuesday, April 14th, 2009

I found out last week that I have not one, but two birthday parties to attend.  One is for my brother-in-law’s 40th, the other is for our friend’s son’s 4th.  I’m hoping I can scale back my idea enough so that it’s doable, even with the lost hours. 

I’m not sure what I’ll be using for my entry.  I have used Java in the past, and likely would use the same basecode that I’ve used for the past two compos.  I’ve been thinking about doing something over the web usign PHP, so if the theme is right, I’ll give it a shot.

Things to use for the compo.  The usual list:

  • Java 6 SDK
  • Eclipse 3.3.2 IDE
  • Photoshop CS2
  • HP OfficeJet 6450 All-In-One for scanning doodles
  • No Fear Energy Drink (Go Boris Said #60!)
  • Everlasting Gobstoppers
  • mIRC for chattery
  • Killer Game Programming in Java and the base code I used from last compo.
  • (No)Motivation

    Posted by LoneStranger
    Sunday, December 7th, 2008

    Sometimes there just isn\'t any.

    Goodbye, Yellow Brick Road

    Posted by LoneStranger
    Sunday, December 7th, 2008

    Hi, I think I am really quitting this time.  I’d really like to submit something so I can vote, but I don’t really have a game or anything close to a game yet and I’m too tired to pull off the last bits of things that would make it a ‘demo.’

    So this will be the last of my posts titled using the names of songs related to roads.

    Good luck to all of you who are scambling for these last two and a half hours!

    I may try to finish this game up later in the week.

    Middle of the Busiest Road

    Posted by LoneStranger
    Sunday, December 7th, 2008

    I’ve quit a few times since last night, but I never close Eclipse and I continue to sit at the computer.  I’m fairly certain that I won’t get done, and if I do manage to get most of the things implemented, it isn’t going to be fun for long.

    The main part that is missing is the curves in the road.  I had an idea on how to implement them in sprites, but it’s time consuming and I wasted about six hours yesterday fussing with stupid projection equations.  I have those pretty much figured out, so it shouldn’t be a problem next time, but this time it was valuable time wasted.

    I may give it some more time, but likely nothing submitted for me this time around.

    8 Mile Road

    Posted by LoneStranger
    Saturday, December 6th, 2008

    I’ve not got much to show for today so far.  I spent a lot of time fighting with some stupid physics things before I gave up and just went with the simple stuff.  Since this isn’t Gran Turismo, it doesn’t really matter.  I can flub the calcs just as long as it feels natural enough.

    Here’s the latest screenshot.

    LD48_13 image 2

    The car is away from the bottom of the screen a bit, due to the acceleration.  I still don’t have anything that shows the car is moving, so that is what I will work on next.  After that, I still have the difficult task of doing the road curves.  Since this is all sprite based, it’s not going to be as easy as doing it in 3D, I would think.

    The day isn’t over yet, so I could still get some good progress made later on.

    Orchard Road

    Posted by LoneStranger
    Saturday, December 6th, 2008

    It’s Saturday morning!  Here’s breakfast!

    Apple-Cinnamon pancakes

    Apple-cinnamon pancakes that my wife made while I started working away again.  I don’t really have much to show for it yet, since it’s all behind the scenes stuff to manage the background and road.  When I get something, I’ll post it, hopefully before lunch.

    Hit the road, Jack

    Posted by LoneStranger
    Saturday, December 6th, 2008

    I think sleep is near… I’ve not done as much as I wanted, but I think I have a decent start.  So far you can control the car with the mouse, left and right.  I’ve done a simple one-image background that will eventually be replaced with separate dynamic pieces.  Here’s the screen shot:

    LD48_13 image 1

    Hopefully I don’t sleep in too much! There’s still plenty to do!

    Take me home, country roads…

    Posted by LoneStranger
    Saturday, December 6th, 2008

    I didn’t get home until ten o’clock, but I checked on my phone to see what the theme was.  Luckily, it was the one I had done the most thinking about on Monday, so I didn’t have to do much thinking while away.

    I’m going to do a racing game, perhaps like Outrun or of the Night Driver/Enduro variety.  I’ve done a little mock up of the screen, just a sketch really.  I’m not sure I like the perspective, but the sprites will most likely be used.  Click to enlarge (sounds like a Viagra ad!?)

    LD48_13 art image 1

    From here, I’ll probably colorize the art and then cut it up to make individual sprites.  I should probably just use bounding rectangles for now though, and get some actual game logic going…..but I have learned that if you don’t do your graphics right the first time, you’ll likely not have time to return to them later.  So take the extra minutes now so you don’t have to set everything back up to fix them.

    I’m tired, but I want to get something going before I go to bed.  I’m being kept company by a neurotic kitty and a can of No Fear Energy Drink.  Oh, and my Gobstoppers!  Though I think I’m already candied out…  Listening to Iron & Wine right now cause it’s calm and quiet.  Tomorrow I’ll bust out some loudness.

    LD48_13 Basecode

    Posted by LoneStranger
    Friday, December 5th, 2008

    My basecode For LD48_13 is largely the same as the past two competitions.  I have updated it a little:

    • Classes are now organized into the package net.lonestranger.common, game and network.
    • Network isn’t really too useful yet.  The only class that exists in it is called Report.  It’s job is to take a string of data and send it via POST to a website, where it can be digested as fit.  For example, sending scores back to a central repository.
    • You can take jpg screenshots by hitting F10.  They are named based on the current date/time and dumped into the working directory.

    Here is the link to download it.

    I didn’t really list my goals in my declararion post a few days ago, so I’ll do it now.

    • Keep the same art style as last time.  I sketched things out on paper and scanned them in so I could colorize.  Keeping with bold colors and gradients is probably what I’ll do.
    • KISS - Keep It Simple, Stupid!  Making something too complex is just a recipe for a headache at 1pm on Sunday afternoon.
    • Make useful additions to the basecode that can be used in later competitions.  The screenshot stuff is an example of something I did previously that helps out a lot.
    • Finish most of the work by Saturday night so I can spend Sunday polishing.

    Ok, time to finish work and then I’m off to Thanksgiving, The Sequel, but I’ll check in after 8pm Pacific tonight to see the theme I need to start thinking about.  I expect everyone to be in FULL CODE MODE when I get back.  ;)

    Towlr - This means something.

    Posted by LoneStranger
    Thursday, December 4th, 2008

    This means something. This is important.

    Towlr - Don’t give up.

    Posted by LoneStranger
    Wednesday, December 3rd, 2008

    48 Hours Later

    Posted by LoneStranger
    Tuesday, December 2nd, 2008

    Tower Postmortem

    Posted by LoneStranger
    Wednesday, August 20th, 2008

    Here’s the postmortum I promised last week.  I haven’t read the comments on my entry yet and I wanted to get my thoughts down before I did.

    THis LD48 was my third, if you don’t count the two that I intended to enter and never did.  My number one goal was to finish, and the number two goal was to do something fun.  I’m happy that I completed goal number one, but failed on goal number two.

    Technically, I didn’t really even submit a game.  There is no real end condition or repeatable system that goes until you fail.  I never got a chance to actually implement the “monster at the gates” scenario, as I fought with a stupid bug at the end brought on by stupid changes on my stupid part.

    What did I do wrong in the LD12?  I didn’t spend enough time on it.  I should have squeezed three or four more quality hours in.  My mother-in-law was visiting, and that led to the normal distractions as she visited with us and our newborn.  I probably could have completed something that resembled a game with a little more time, and I know that the time existed.  I just didn’t use it well.

    I didn’t get any real animation done with the monsters or the dude.  It would have been nice, but time didn’t allow it.  I also used some sound, and while it wasn’t nearly to the level that I wanted it, I thought it was neat to hear the monsters gargle when they died and the arrow whisp away from the dude on the tower. 

    I think my usage of the angle/power aiming mechanism was a bad idea.  I think I should have gone with the “point-and-click” method, which would have been easier for the user and fits better with the action oriented design.  The arrow was made up of separate graphics rotated to the closest 15 degree mark.  I could have implemented a rotation transformation, but that would have taken longer and probably been more CPU intensive.   

    So what did I do right?

    I met the theme of the Tower by simply having a tower in which the dude fired from.  I didn’t stop there, and created a middle floor from him to fire from and also made the doors at the bottom open and close.  The tower isn’t just a pretty graphic.  It’s functional and strategic.

    The part I liked the most about my entry was the graphics.  Most of them were sketches from my initial game idea sheet.  I scanned it into the computer and photoshopped color into it and cut it into separate parts and images.  I think it gave my entry a unique style that I’d like to use again in a future competition.  I’m not a great artist, but I think if I don’t try to make everything perfect, it comes off better.  Reminds me a little of the original South Park or other ‘construction paper’ style.

    Another thing that I really think I did well was keeping the coding distractions to a minimum.  By this, I mean that I didn’t get sidetracked coding something that wasn’t important ‘right now.’  In the past, I will start to code something that may come in handy later, but doesn’t really help me too much in completing more important foundation pieces.

    So all in all, I think I did ok.  I can see that I learned some things from the last time around and I really look forward to taking the things I learned here for LD13 in December.  Same goals, but I will try to think through the game for a little while before coding to make sure that it is actually a game and hopefully fun. 

    Final Entry - Tower

    Posted by LoneStranger
    Sunday, August 10th, 2008

    Final Entry SS

    So this is ‘Tower’ since I didn’t bother to come up with a better name.  (I did all my naming duty with Fiona’s Purple Reign.)

    The object, of course, is to defend your tower from the onslaught of baddies.  Unfortunately, there is only one type of monster, but each wave has it’s own speed and interval.  Use the arrows to move the guy up and down the tower, or left and right across the top.  A/D change the angle and W/S changes the power of your arrows.

    I’ll probably write a post-mortum later, but you can download Tower.

    Counting down the minutes….

    Posted by LoneStranger
    Sunday, August 10th, 2008

    I haven’t had any chances to really post anything today, so I thought I would do so as I begin my final push.

    Here’s a screenshot.  So far, you can fire arrows at wave after wave of baddies.  I haven’t figured out how to give you more arrows, so I’ll probably just make them infinite and limit you to a couple.

    Anyway, back to the salt mines.

    Calling it a night

    Posted by LoneStranger
    Sunday, August 10th, 2008

    End of Saturday work

    I’m calling it a night.  Those energy drinks aren’t doing anything, though I’m sure once my head hits the pillow they’ll kick in. ;)

    Things to do tomorrow:

    • Waves of monsters from the MonsterManager
    • Display upcoming monsters in the current wave
    • Add melee weapons
    • Add scoring
    • finish HUD
    • boiling oil?
    • number font object?
    • and a number of other things, I’m sure.

    Well, we’ll see how it goes.  See you in the morning!

     

    Saturday Night Continues

    Posted by LoneStranger
    Saturday, August 9th, 2008

    Saturday Night ContinuesOh.  Hey. 

    It’s time to bust out can number two.  And I’m running dangerously low on Gobstoppers.


    All posts, images, and comments are owned by their creators.