Home | Planet Ludum | Rules Wiki | Mailing List| Sign In/Create Account | Write a Post| #ludumdare on irc.afternet.org

Ludum Dare 16 :: December 2009 :: Theme: Exploration

LD16 Results: Top 20 | Categories | View All 121

Theme Voting: Round 1 | Round 2 | Round 3 | Round 4

LoneStranger's Archive

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

LoneStranger’s Explore Incomplete

Posted by LoneStranger
Sunday, December 13th, 2009 7:18 pm

I uploaded my entry, even though it isn’t near complete.  I figured it’s worth getting feedback on what I have for future reference.

I’ll probably write a post-mortem in a day or so, but I know the number one thing that I did wrong was that I didn’t organize properly at the beginning.  I didn’t know where I was going to end up, exactly, so I didn’t know how to get there.

Here’s the screenshot.

LoneStranger's Explore

The compass isn’t linked to anything in this version, since navigation wasn’t completely implemented. The arrow keys aren’t supposed to move the ship.  The plan was to let the user select a direction, and then sail that way for a few spaces.  How far they traveled would depend on which direction the wind was blowing, and whether or not any events happened, like finding land, meeting pirates or running into hazards. Unfortunately, I never got the planned movement implemented and so the compass sit

Head on over to the entry page to check it out.

Sunday Breakfast

Posted by LoneStranger
Sunday, December 13th, 2009 10:24 am

Went out to breakfast to our favorite place.  Had some eggs, hash browns, chicken apple sausage and biscuits and gravy.

Now I need to get down to business if I’m going to have anything to show for this weekend.  First up is navigation…..

Saturday Food and Entry Update

Posted by LoneStranger
Sunday, December 13th, 2009 1:48 am

Had cereal for breakfast, more chips and salsa for a midday snack and then a Subway sandwich and baked BBQ chips for dinner.

Saturday Dinner - SubwayMy wife then left to go baby our neice and nephew, so I got to play the music loud for a few hours.  When she got back, she surprised me with a nighttime snack.

Saturday Night Snack - Frosty FloatA Wendy’s Frosty Float.  It was yummy.

As far as coding goes, I’m not sure I’ll be able to have the entry I wanted to have.  I spent a lot of time on stupid things, like math.  I do have a ship that moves by the arrow keys (just for testing, that won’t be in the final game) and a compass that reacts to the mouse-hover and click.  Next step would be to implement navigation, which includes setting a direction and an interval.  I also will be implementing fog-of-war because part of exploration is having to go somewhere in order to map it out.

20091213_002616192I’m not using a traditional full-array to keep track of the tiles.  I’m using an image and I’m reading the map data from that image’s individual bit mapping.  I’m going to implement the fog-of-war using a similar method, with a second image that starts off with each pixel being off and they get turned on as you go.

Navigation is going to be direction and time based, so you’d pick one of the 16 directions on the compass and sail.  The ship is locked into the tile coordinate system to make things easier.

I fear there is way to much to do before the deadline tommorrow, so I’ll have to go with the essentials and just add on with whatever time I have left over.  I hope to have a real game to submit, and not just a demo.  I lost a lot of time trying to get my printer to print out a map so I could trace it, draw on it and scan it back in, but I ended up not even using that.  I just created a new map by myself and Photoshop instead.  The compass math stuff was a pain in the rear, though in the end pretty simple.  I always end up spending extra time trying to do whatever it is in an abtract way, which can either be a killer or a timesave, depending on if I end up using it for anything else.  For example, in the last compo, I spent extra time on the basic tile properties, which let me add new types of tiles in a matter of minutes later on.

Anyway, I think I’m done for the night. See you in the morning!

Getting Started with Exploration

Posted by LoneStranger
Saturday, December 12th, 2009 2:54 am

I’ve got an idea for Exploration that I’ve had for awhile and wanted to do as a project.  The theme gives me a great opportunity to do it.

The idea is that you are an explorer sent to sail the world and to bring back riches and claim land in the name of the mother country.

I don’t have much at all yet.  I struggled with how I wanted to represent the world data and scrapped a few ideas before settling on a bitmap and accompanying data file.  As of now, I have it able to load up the bitmap and extra info into a class, but nothing is done with them yet.   I’m falling asleep at my desk, so I think I should get some sleep and continue fresh in the morning.

Food Photo – Friday Dinner

Posted by LoneStranger
Friday, December 11th, 2009 7:57 pm

Just putting the idea I have to task in my head before I sit down to sketch.  Good time to eat dinner.

Hot dogs, corn, chips and salsa. The corn water started to invade my hot dog buns, so I had to separate them. It won’t do to have soggy buns.

Tick, tock! Prepare for the Clock!

Posted by LoneStranger
Friday, December 11th, 2009 5:26 pm

It’s almost time….. Make that last grocery store run. Sharpen your pencils. Grab a stack of scratch paper. Plug in your microhone. Take the dog for a walk. Pick out your favorite coding music. Sign into IRC. Start your IDE. And go rent Twilight. You’ll need it.

Shower Now

Posted by LoneStranger
Friday, December 11th, 2009 2:45 pm

Shower Now

ROCKSTAR

Posted by LoneStranger
Thursday, December 10th, 2009 5:02 pm

ROCKSTAR

LD48 #16 Will Include a Lone Stranger

Posted by LoneStranger
Friday, December 4th, 2009 2:47 pm

Like a broken record, my Java basecode for the Ludum Dare 48 Hour Game Programming Competition #16 is largely the same as the past two three four five competitions. I haven’t made any changes to it since the last compo, despite saying that I wanted to. Recently I have been dabbling with C++ again, though I don’t feel that I’d manage very well using it in a compo at this time.

Download it here.

  • Goals are pretty much repeating what I said last time:
  • 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.
  • Don’t run into dumb problems that eat up eight hours.

Tools in use:

  • Java 6 SDK (though last time I included a version for JDK 5)
  • Eclipse IDE
  • Photoshop, maybe some Illustrator
  • DrPetter’s sfxr for sound effects
  • Audition, if I can get it to play well with my sound card
  • HP OfficeJet 6450 All-In-One for scanning doodles
  • No Fear Energy Drink Sugar Free (Hopefully Boris Said and Carter Racing will run some Sprint Cup this year)
  • Everlasting Gobstoppers
  • mIRC for chattery
  • Killer Game Programming in Java and the base code I mentioned above.

Can’t wait to see what the theme is.  Hope it’s a fun one!

LoneStranger’s Caverns Post-Mortem

Posted by LoneStranger
Monday, August 31st, 2009 9:46 pm

This was probably the best Ludum Dare weekend I’ve had.  My game was more than just a tech demo or an ‘unfinished’ idea.  Of course, they never are truly complete after 48 hours time; there is always something else that can be tweaked or added.  When all was said and done, however, my entry was a playable game.

Background

The theme was not one that I had put much thought into before it was announced so I really had zero ideas at Go time.  One thing that kept popping into my head was the Kroz series of games by Apogee software back in the late 80’s/early 90’s.  They’re all pretty much the same engine with a new collection of levels, but one was called Caverns of Kroz.  The object of the game is to take your hero through twenty or thirty levels to find or capture some relic.  Along the way you had to run, whip or out-maneuver swarms of monsters and solve puzzles.  I had always thought those games were neat, and it would be interesting to try and ‘recreate’ some of that nostaliga.  Caverns of Kroz didn’t have anything special that made it more caverny than the rest in the series, but I thought I could do better with actual graphics instead of ASCII art.

Kingdom of Kroz

LoneStranger's Caverns level

Top-Kingdom of Kroz, Bottom-LoneStranger's Caverns

Graphics

One of the first things I do in a LD is grab a piece of printer paper and start sketching some objects.  More is better, even if I think I may not use them.  For LSC, I sketched a few doodles and scanned them in.  The designs were done in homage of the original ASCII characters and colors.  For example, my monsters look remiscent of the Ä, Ö and Ω characters.  The first problem I had to resolve was how big to make the map.  Kroz uses something like 60×24, but I don’t really like how smushed that is.  I wanted a square ratio on an 800×600 pixel window.  This led me to pick 16×16 as the tile size, which seemed small to me.   For the first couple tiles, the floor and the walls, I used 16×16 image to create them.  That went OK.  Next I took a look at my scans to turn them into tiles.  I did an overhead view of the player, basically just a head and shoulders.  I created the tile originally as a full 120×120 image with margins.  I colored him yellow and red like the Kroz hero.  I copied the merged image and pasted it into a new document that I then resized to 32×32.  Inside the drawing routines I have it again resized on the fly as 16×16.  The reason for this was that I may want to add a ‘zoom’ feature to the game in the future and it would be great if the images didn’t get pixelated.  I followed the same procedure for all the rest of the tiles.

The style of the art is not much different than the other LD entries I’ve done.  I don’t try to draw the straightest or the best.  I just draw to my ability.  Those are then scanned in and then modified in Photoshop.  Since I shrunk these down, you don’t see the imperfections as much, and maybe that’s better?  I don’t think some people ‘get’ that the imperfect art is part of my style and I think I get marked down for it sometimes.

Coding

This is the fourth time I’m using the same general base code for my LD entry.  I think it shows because I have a hang of it’s abilities and limitations and I can get what I need to get done faster and more efficiently.  Also, each LD I add more basic functionality to it so I don’t have to reinvent the wheel each time, as they say.  Additions this time are an unfinished menu system and a tile/map data structure.

Most everything that I coded worked fairly soon thereafter, even the changes that take 30 minutes in between builds.  I think I had only two major problems: monsters moving over walls and monsters not dying when they move onto the player.  The first problem was because I couldn’t figure out why my collision detection logic was failing for monsters.  And it wasn’t.  I had an errant semicolon tagging along the end of an if statement.  My logic was fine and the if was completing an empty statement.  Then the next line moved the monster anyway.  The second problem was weird in that the monsters would sometimes die when they moved into the player, but not always.  A majority of that problem was due to how I keep track of the monsters.  I have two references for them.  One is in a two dimentional array similar to the tile map.  Either the cell has a link to a monster, or it’s null.  The second reference is in a linked list.  The grid is used for monster-monster collision detection since I only have to check the cell next to the monster for another monster.   The linked list is used when I have to traverse each monster object and is faster than checking every cell in the grid.  It’s actually a great idea but I was trying to solve the monster-player collision problem without actually having a fully implemented monster-monster collision.  It turned out that the monsters were moving into the same spot and the second monster was overwriting the first monster’s entry in the grid.  It was weird but once I finished implementing that code the rest fell into place.

These two problems cost me about eight hours split over Saturday night and Sunday morning.  If I didn’t have those problems, then my game would have been that much more complete.

I didn’t try to do anything too fancy in my code.  I could have spent more time doing things in a more efficient way for the future, but instead I hardcoded some functions just to get it done.  For example, I have eight different functions for the different directions in many parts of the code.  Those could probably be pared down to one in each situation if I passed some variables in.  I’d also like to combine the collision detection and movement between the player and the monsters.  Maybe base them from the same Mobile class or something.

What I did Wrong

Other than those two issues that I mentioned above, there wasn’t a whole lot that I did wrong while coding.  I did have a few too many distractions over the weekend.  My folks came over on Saturday to swim (which is great because it was triple-digit weather) and have dinner so I lost a few hours there.  That by itself wasn’t a problem but when I was actually coding I had the TV on which split my attention.

I also forgot to tie the score in with anything being done by the player.  Not a big deal, since score isn’t really much in the game yet, but it should have added some points for killing monsters and grabbing gems and whips.

Apparently my sounds were a bit harsh.  I used DrPetter’s sfxr to create them, but I must have used some weird settings because they sound fine through my 5.1 speakers, but they are harsh through headphones.  I guess I’ll have to do sound through headphones next time and hope that translates through the speakers.

What I did Right

I think I was helped by trying to emulate the Kroz series of games and it wasn’t because I had a model to ‘copy’ from.  I think the key was that the limits on what I was setting out to accomplish were already fairly firm.  I didn’t have to try to build in some weird functionality for the future, since I already knew where I was ending up.  The other LD weekends started with an idea that was to be flushed out later.  The only problem is that later usually doesn’t come and I am stuck with an incomplete game or a complete ‘thing’ that isn’t fun.

What I Wanted to Do After Last Compo

I wanted to work on my basecode after LD48 #14, and I did that.  I also wanted to scale down my goals, and I think I was able to manage my goals this time around by not setting them too high.  I think it’s a win.

What’s Next?

I’d like to continue with this project and there are a few obvious things I can do.

  • Make the code more efficient and easier to read
  • Profiling execution.  I haven’t tested lots of monsters or animated tiles yet, but it will probably suffer from performance issues.
  • Level editor
  • More objects and tiles
  • Better level file format
  • Continue adding basic functions to the basecode

So Mortem?  This thing’s just getting started!

Sleep.

Posted by LoneStranger
Sunday, August 30th, 2009 9:09 pm

sleep

Food photos from today (0d1h1m since)

Posted by LoneStranger
Sunday, August 30th, 2009 9:06 pm

I was really busy so I didn’t upload my latest food photos.  Here goes!

An orange and Dr. Pepper pre-lunch snack.

An orange and Dr. Pepper pre-lunch snack.

And then I totally forgot to take a picture of my In’n'Out burger, but I guess pretty much everyone can guess what it looked like.  Here’s dinner though:

Nom'd pasta with peas and chicken.

Nom'd pasta with peas and chicken.

LoneStranger’s Caverns Final Entry (0d0h50m since)

Posted by LoneStranger
Sunday, August 30th, 2009 8:51 pm
LoneStranger's Caverns

LoneStranger's Caverns

I finally got my entry done.  It’s not nearly what I wanted it to be, but that’s ok.  It’s ok because it’s still a game.  Most of the time my entries end up being tech demos or proofs of some concept at the deadline.   This one is different though.  The engine itself is complete enough that you can create levels for it and actually play them.

If you’ve ever played the Kroz games, you’ll see the similarities.  I used it as massive inspiration.  I tend to forget about it when I think about my favorite games growing up, but there’s no denying that I spend hours upon hours playing it.

I can see myself working with this afterward, making the engine more robust and fixing some of the things that can be done in a more efficient manner.  There are plenty of new objects and mechanisms to create.  I only created a few of them.  I could create other monsters too.

Right now there is only one level, and it doesn’t have any kind of ‘campaign’ code to link more of them together, but that would certainly be in the cards.   A level editor would also be a must, as I did this first level using just a text editor and about twenty minutes.

For now though, I’m going to go spend time with my family who I have ignored this weekend.  And hey, maybe go to bed early.  There is work tomorrow. :(

Have fun with LoneStranger’s Caverns!

The final turn in the Caverns… (0d3h20m to go)

Posted by LoneStranger
Sunday, August 30th, 2009 4:39 pm

I had a major breakthrough when I figured out why my monsters were walking through walls, other monsters and the player.  I had an errant semicolon at the end of an if statement and though the logic was correctly false, the functions were still executing.  After removing that, things are looking much brighter.

But not that much brighter.  I still have a few more things to do before this passes as a game, and I still need to create other levels.  I suppose the other levels aren’t mandatory, as I can show a decent amount in just one level if I do it right.

Current item on the agenda is whips.  I’m trying to get them to affect their environment, and once that is done, I can move on to something else, most likely keys and doors.

No screenshot as it looks much like it did before.

Monsters, Monsters! (0d7h54m to go)

Posted by LoneStranger
Sunday, August 30th, 2009 12:07 pm

Got some good sleep last night, woke up and started working again.  I figured out why the monsters were having issues walking more than one space (missing else before an if), but they keep walking through walls and sometimes the player.  I’ll have to insert some more debug code to figure it out.  I also had a Concurrency exception last night that I seemed to have fixed by placing a syncronized block around the code that loops through a LinkedList.  So far it hasn’t come back.  I also added the status area to the right.

Here’s a screen shot with the monsters:

Monsters!  Green are slowest, pink are faster, and blue are fastest.  Damage also escalates.

Monsters! Green are slowest, pink are faster, and blue are fastest. Damage also escalates.

For breakfast, I just had a bowl of granola cereal:

Sunday breakfast, Granola cereal.

Sunday breakfast, Granola cereal.

After I can figure out this monster collision stuff, I’ll work on whips.

Nearing one day gone… am I on track? (1d0h8m to go)

Posted by LoneStranger
Saturday, August 29th, 2009 7:51 pm

My folks came over and I haven’t had much time in front of the computer since then.  We went swimming for awhile and then grilled some burgers.  The doofus I am, I forgot to take a picture of our picnic out in the back yard.  Burgers with bean salad and pork and beans.  Wow, did we have enough beans there?  Anyway, my mom had a few cake mixes that were getting close to expiring so she brought down a cake.

Cake!

Cake!

So where am I in development… I’ve got a hero that moves around the map and collision detection works great against the walls.  I’m putting the finishing touches on the gem tile type and have begun the monsters.  I still need to do more tiles, but I think I can wait until I get enemies done.

Screenshot showing gems and the updated tiles.  Player is left of the gems stash.

Screenshot showing gems and the updated tiles. Player is left of the gems stash.

Most of the work is all behind the scenes, which I hope means that the rest of it will start to fall into place at a faster pace later.  Hopefully the next screen shot will show some monsters, even if their AI isn’t ready.

An update and lunch (1d8h55m to go)

Posted by LoneStranger
Saturday, August 29th, 2009 11:05 am

Turns out my folks aren’t coming down until after lunch, which means probably an early dinner… so early lunch it is!

Just some left overs from the other night:

couple of tacos with beans, rice, ground beef, cheese, lettuce, salsa and sour cream.

couple of tacos with beans, rice, ground beef, cheese, lettuce, salsa and sour cream.

An update on the game front… I’ve finalized my two wall tiles and am getting ready to start with the player character sprite and code, and his movement around the board.  I did some more code work to facilitate the transition and change of the player based on reactions of the tiles.   Also in this time I took a shower, did some pool maintenance, and tried to ignore the TV before it was shut off.  So here’s to a good work effort over the next hour and a half!

second screen shot, showing the two tiles and some more test map.

second screen shot, showing the two tiles and some more test map.

Food Photo update (1d15h0m to go)

Posted by LoneStranger
Saturday, August 29th, 2009 8:59 am

I forgot to grab my photos of my camera for dinner last night, so here it is:

Friday Dinner - Turkey breast, corn and french bread.

Friday Dinner - Turkey breast, corn and french bread.

And here’s this morning’s simple breakfast:

Saturday Breakfast - Honey and Oat cereal

Saturday Breakfast - Honey and Oat cereal

I think I’m going to get some toast too….  I’ll post my desk photo later on

Caverns update, just sat down (1d11h20m to go)

Posted by LoneStranger
Saturday, August 29th, 2009 8:46 am

I did some more work after last night’s post.  I worked on the tile map classes and scanned in my sketches, then created a couple image files to load in the tile map.  First shot, blammo, it displayed the map perfect on the screen.   I did a little tweaking of the map size so that it would take up more real estate on the screen and was left with this:

First screenshot of my caverns themed game

First screenshot of my caverns themed game

Not much to see, but the designs are all mine.  They’re loaded from a text file with some level metadata and the grid layout.  The space on the right will be the status area.  The graphcis are not text, like my Kroz inspiration, so they will get better than what I have above. :)

My work this morning will consist of making more sprites for the tiles, and of course, the hero dude.  After that, I’ll work on moving him around.

Caverns progress, first post (1d19h11m to go)

Posted by LoneStranger
Saturday, August 29th, 2009 12:48 am

Caverns isn’t a bad theme to have, though I hadn’t thought much about what to do if it was selected.

One of the first things that comes to my mind is the old Apogee game series Kroz, of which one game was titled Caverns of Kroz.  It’s sort of rogue-like, but more action oriented.  Probably best described as a single-player Gauntlet-like game.

Here’s a screenshot of a level in a Kroz game:

Level from Caverns of Kroz

Level from Caverns of Kroz

The ohm signs are the monsters in this particular level and they will do their best to march toward the character, represented by the red and yellow smiley.  Monsters disappear when they collide with the player, but they also take gems, which are the measure of health the player has.  The only way to destroy monsters is to get them to run into destructable walls, or use a precious whip.

I decided that for my LD entry I would try to remake a basic version of this game, only using better graphics.  We’ll see how much I can get done.  At the very least, I hope to have a movable hero, monsters with rudimentary AI and a couple types of terrain.

I spent some time early into the compo sketching some creatures with inspiration from the original Kroz games.  So far in the code I’ve been working on my tile map data structures.  It’s kind of a pain in the ass, but it should make things easier tomorrow.

I will likely be going to bed soon, even without a game screen shot to post, but sleep will do me good.

LoneStranger’s Basecode

Posted by LoneStranger
Friday, August 28th, 2009 7:59 pm

It’s generally the same basecode that I’ve used for the past few compos.  After each compo though I go through and find the things that make it more robust and they get to live on.

Here’s the latest version.

Now, Let the games….BEGIN!

Don’t forget…

Posted by LoneStranger
Thursday, August 27th, 2009 10:31 am

Twins

Don’t stop running….

Posted by LoneStranger
Thursday, August 27th, 2009 9:10 am

Life or Death

48hr Underpants Gnomes

Posted by LoneStranger
Wednesday, August 26th, 2009 4:26 pm

If you stay up late enough, you might just catch them…

48 Hr Underpants Gnomes

  • Recent Comments

  • Recent Tweets (Tag: #LD48)

  • Categories

  • Meta

  • Recent Trophies

    The "Ludum Dare Entry in SOWN" Award
    Awarded by PoV on January 26, 2010
    The "Ludum Dare Entry in the IGF" Award
    Awarded by PoV on January 26, 2010
    The "Ludum Dare Entry in the IGF" Award
    Awarded by PoV on January 26, 2010
    The "Funnest Looking Animated GIF Ever" Award
    Awarded by PoV on January 26, 2010
    The "Breakfast With Awesome Thing" Award
    Awarded by PoV on January 26, 2010
    The Official SonnyBone 'RAD GAME' Award
    Awarded by SonnyBone on January 3, 2010
    The Madk Award for Excellence in Graphic Art
    Awarded by madk on January 2, 2010
    The Official SonnyBone 'RAD GAME' Award
    Awarded by SonnyBone on January 1, 2010
    The 'RAD TUNES' Award
    Awarded by SonnyBone on January 1, 2010
    The Official SonnyBone 'RAD GAME' Award
    Awarded by SonnyBone on January 1, 2010
    The "I Wish I Could Draw Like That" Award
    Awarded by SonnyBone on January 1, 2010
    The "I Would Pay Money For This" Award
    Awarded by SonnyBone on January 1, 2010

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