Frib

LD20

I’m in!

This will be my first LD. I have no idea what I’ll be able to do in 48 hours, and there’s only one way to find out!

I’ll be using C#/XNA, paint.NET and Sfxr. There probably won’t be any music or fancy graphics, but we’ll see.

I hope I can get a working game done in time, which will be my main goal.

 

Edit: I might add music after all. I completely forgot about audiotool and inudge, and if I have time I’ll use one of these for music.

Comments

zazery
29. Apr 2011 · 00:03 UTC
Never heard of inudge before but it is really fun to use.

It’s almost 6 AM

And I got some basic collision and tiles done!

In my game you won’t actually control this guy, though. I’ve got a nice idea planned out that involves a cat. You will be the cat, given to this guy by some old dude with a beard, and you will accompany this guy on his quest for whatever I come up with. While he struts on, encounters foes, and gets stuck by puzzles, you will be the awesome cat sidekick who saves the day by sneaking past foes and striking them from behind, climbing and crawling to parts where he can’t get to so you can bring back important items, and generally be a badass cat without animations. And in the end, glory shall be all his and not yours.

It’s not dangerous anymore!

Collision works perfectly, I’ve added a bunch of ugly sprites, and the main character can now be AI controlled by invisible waypoints in the map. In this instance, it spawns on the right and is ordered to go to the left. When it reaches the next order, it stands still (as shown), waits 5 seconds, then turns around. I want to add that he lifts the cat above his head during those 5 seconds, then put the cat down and make it player controlled while he walks to the right. When the cat reaches the right side of the screen, the level will transition.

I’m gonna try and get some sleep now, it’s almost 9 AM. When I wake up I’m gonna do the next level, which will involve killing a monster.

Basic enemies and attacks done!

I’m getting close to finishing the core gameplay features. My hero can move on his own, my cat is controlled by the player, and my enemies walk around as well.

If an enemy touches you (or the hero), you will flash for a second or so and be invulnerable during that time, and you lose health. No health = death, sort of. On the other hand, you, as a cat, can claw in front of you, dealing damage to enemies, making them flash, AND stun them for a second or so. Also, enemies which are stunned won’t damage you or the hero if you walk through him.

In this pic you see the hero, the cat, the cat’s attack and some random simple enemy of doom.

I’m now going to create some more enemies, each with their own way of movement and perhaps even ranged attacks. After that, I’ll work on items for your hero to use. Right now he’s essentially a timed underwater escort mission objective without the underwater part, which will be the first portion of the game, but later on he will be more useful.

I’m wondering if I should add checkpoint saves, or make it so death = game over. It will probably depend on the length of the game.

Anyway, at this rate, I think I can get this game done in time! Yay! I might even have time to fancy up the graphics by adding animations.

Crush the kitten!

After eating a delicious pizza, of which I sadly don’t have pics, I’m now going to continue with the ‘puzzle’ in this room. Anyway, so far I’ve created the crusher enemy, which will crush you, and am now working on the first item you can carry and ‘use’, which is needed to get the hero out of this room.

All is going well but I think I’m going to have a hard time coming up with levels eventually. But still, so far, so good! Also, I planned on making the hero sort of smart and allowing him to do things, but maybe it’ll be even more fun if the hero is completely stupid and oblivious to what happens, like a true escort quest. But maybe that gets too frustrating, so I probably won’t do that.

Getting there

I currently have 10 levels, but there need to be more. More! MORE!!1

Sadly, I’m having a hard time coming up with levels and puzzles and all that. Other than the lack of levels, the game itself is working fine. There are a few rare glitches but nothing catastrophic.

I’ve also finished the final level, with some sort of cutscene and ending, which is nice. I still need to add a few levels before the final level, though. Also, the main character is completely helpless. This game is all about escorting; he can’t defend himself. Good fun!

What I really should do is work on the graphics and make things animated, but I really can’t be bothered to do that. So expect ice skating cats and green dudes.

So I’m gonna work on some more levels, add an intro screen, and maybe fix a few of the rare glitches, and then it’s done! 😀

Oh god, 4 hours left and I’m on fire

Literally. And figuratively.

 

15 levels are done and I still have 7 levels planned, and I need to create 1 or 2 new kinds of enemies. And I need to fix a rare but annoying bug. And an ending cinematic. And oh god what am I doing here typing while there’s only 4 hours left.

I will finish this, though. 😀

Done!

Heroic Cat is done! Finished! Complete! Final! Oh yes. Can you escort the mighty green dude to where his quest takes him? I bet not!

 

More info here and a download link is here

 

Heroic Cat – Post Mortem

Warning: Here be SPOILERS. Don’t read if you haven’t finished it. It should take you about 10 minutes to play through if you finish each level at a decent pace.

Yes. Heroic Cat has Spoilers. Can you believe it?

This was my first Ludum Dare I’ve ever participated in, and I had no idea what to expect and how far I would get in 48 hours. I didn’t prepare that much. I had my tools (visual studio, paint.net, bfxr and audiotool), but I had no pre-existing engine code or whatever, nor did I have any external libraries, engines or frameworks (bar XNA of course) to use.

Progress

When the theme was announced at 4 AM, I immediately started working out my idea. 2D sidescrolling platformer, cat being hero, save princess, common enemies, etc. This didn’t take that long. I had a rough idea about what I wanted to do, and figured I’ll just expand on it when I get to it. I then started working on the engine. Tilebased, basic collision for that, and collision between entities. I also wanted simple AI commands put into the map itself to control the green guy. At 9 AM I had the first 2 levels, including an enemy and basic AI. The core of my engine was done! I then went to sleep.

The next day I continued working on content and levels. I added the crushing dude, rope, the feather, and continued working on levels. Progress didn’t go very fast, with each level taking an hour or more to develop. I think the last level I did that day was the one with the ‘castle’ entrance with the heart. And I made the ‘final’ level, which is the part with the princess. At that point you weren’t trapped in jail yet, but you couldn’t get out either, and your cat would turn into a skeleton after the narrator stopped narrating.

On the last day I continued working on some levels. I added the fireball dudes, fixed some issues with map transitions, and then I got a brilliant idea at about 6 hours left. Instead of dying alone, you’d be rescued by a firebreathing guy, and then you’d go back and burn the house down of the hero. An epic plot twist indeed. So I worked on the firebreathing hero, and recreated the second-to-last level. But then I realized backtracking was silly, so I took the underground route. I only ended up making a few new levels, but there’s still room for more in between them.

Anyway, I had a lot of fun making the ‘final final’ ending, where the guy burns their house down with combustible lemons. Then I added the level before that, with the guards. I also replicated all changes to the first levels before the plot twist. And after adding the credits screen, the game was practically done, and I had about 1.5 hours left. Enough time to give it a few full playtests, package it up, let someone else test, and then to finally submit it!

Things that are missing

Things that didn’t make it were the ability for the green guy to get a sword or shield, and other random items/powerups. But that was before I came up with the plot twist. In hindsight I should’ve added a few more woodburning puzzles, but I had trouble thinking up puzzles as is. Also, I’m glad I didn’t do animations. I wanted them at first, but thought ‘meh, it will just take up time’. If I chose to do animations, I’d be swamped and it would probably take me another day to finish. Also, I wanted the ending cutscene to be the firebreathing dude and the cat making baby firebreathing dragon kittens or something for a sequel, but alas, I didn’t do that.

Things that should’ve been done differently

I wish I had time to fix my tile collision code. Sometimes it freaks out and warps entities away. I suspect it’s rounding issues (I casted lots of stuff to ints because I was lazy) but instead I worked around it by preventing it from ‘naturally’ happening. I sort of know when the bug happens as it is a little predictable. But still, nasty stuff that’s bugging me now. Also, in hindsight, I’d add a music mute button and I’d also make escape work a little different. Full screen toggle would be nice as well. But hey, you can’t have it all. I’ll remember those for next time.

Final thoughts

But still, I’m very happy with the result. I learned a lot from it as well, especially about what I can do in 48 hours. For my next game I’ll probably create something with less levels, or levels done in a different way. Creating puzzles is not my strongest point, and often I’d have no idea what to do for 30 minutes.

For the next time, I might try another language, probably one for the web. Developing in XNA is sweet but I noticed that the few people testing it never had XNA 4.0 installed. And like them I know the pain of installing crap like that when all you want to do is extract and play (or only play).

In any case, I’m in for LD21 😀

LD21

First day progress update

I didn’t really have a goal set yesterday. I had a few ideas, but nothing concrete. Last night, an hour or two before I went to bed (which was about 2 hours before it started), I decided to create some sort of hacking game where you and a team of people have to achieve a specific end goal for your country before you hit a specific deadline or else. So a cyber war, basically. It would be a bit like uplink, but also quite different. I have a bunch of ideas for the end result, including a realtime office mode, multiple ways of dealing with things, and an interactive world where you are not alone. Lots of stuff, too much for one weekend, but it was fun to think about. Whether it’ll be fun to play, I don’t know, but still.

So today I worked on it for a bit. I’m creating it in WPF (which is .NET), because it’s GUI heavy and I know it well enough to get something done in it. I have a bunch of stuff done, but still a lot to do for it to be a proper game. I’ve created a nice little world, one which is filled with about 20.000 people (each with a name and email address, most with a job in the game world), a few hundred companies (with employees, admins and CEOs), each with one of a dozen server software packages for their websites, each with a dozen possible different versions. All of it randomly generated from lists of names. And you can bypass login screens of email services if they have crap security and you select the right options in the comboboxes, but that’s it.

I still need to do many things. For starters, it needs a goal. I also have to make the websites (they’re just empty templates, but I have to create the templates), some data to gather and abuse (like email addresses, source code, etc), create viruses and worms (to use on the email addresses), make hacking risky, simulate latency (if you want 7 proxies, go ahead, but don’t complain that it takes a minute to load a page), useful teammates, some sort of money system, digital (black) markets, botnets, more ways to hack, news, a living world, and lots of other things. Way too much for one weekend. But we’ll see how far I can get, and after it’s over I’ll decide if it’s worth continuing. 😀

I’m in!

This will be my second LD (my first being LD 20). I might not have all day on saturday, but on sunday I’ll have enough time for sure to hack an awesome game together!

I’ll be using C#/XNA again, and I sort of made a promise to myself to not create a platformer, unless the theme is perfect for a sequel to my LD 20 game Heroic Cat. But even then I’d like to try something else if possible. We’ll see. Next to XNA I’ll be using bfxr, audiotool, paint.NET. I won’t use a game engine or other 3rd party libraries, probably, unless I really need one.

I can’t wait!

(Also, I read the post about tags earlier today, but C# turns into C++ so it’s just XNA for now)

Tags: xna

Woo, line of sight!

I’m going to create a ‘simple’ evade all enemies and get out of some place game, with stealth and all that. 2D, top-down view, nothing fancy. The first step was to render the world with line of sight. I’ve just finished that, but there are some unforeseen issues with it. Here’s a picture of what it looks like right now:

You control the direction you’re looking at with the mouse, and you can’t see behind you. I added a few blocks in the room, which you can see. Well, you can’t. You only see the shadows cast by it. Because I want the game to be 2D and not 3D, you cannot ‘see’ walls (like in the old GTA games). At first I thought that would be ok, but now I’m having doubts. You see, when moving around, those shadow cast by the geometry look like 3D pillars that go up in the sky. So, accidentally, it looks like the old GTA games but with black buildings instead of textured buildings. Oops.

So I’ll have to figure out a way to make it look like it’s 2D (which it is), while still keeping shadows like that. Any ideas are welcome, but I’m going to try and add an offset to the shadows so you can still see a little bit of wall before it goes black.

Now it’s time for food, and then I’ll try to fix that. If I can’t get it to look decent in a few hours, then I’ll just keep it as it is now and work on the gameplay. When that’s done, I can always revisit it if I want to. Still, I’m very happy with the result.

Tags: progress, screenshot, xna

Comments

Danik
20. Aug 2011 · 07:40 UTC
Maybe you could make the shadow render in a different color than the walls.
25. Aug 2011 · 14:50 UTC
“Accidentally looks like 3D” is brilliant! 😛

Second update

I’ve tinkered with the visuals a bit, but decided to keep it as it is right now, meaning that things you can’t see look like giant pillars going to the sky. So far I’ve tweaked the camera and the view distance a bit. The camera ‘moves’ with the mouse, so the further away the mouse is from the player, the further ahead you can see. It is capped though (both on the mouse distance and on what you can see). Without it, it felt very annoying and bad to look around. With it, it feels a lot better, but it’s still not perfect. I think the best way would be a camera that lags behind a bit, so it moves smoothly and steadily. This would also affect the gameplay a little, meaning you can’t look around very fast, which is a good thing. But that’ll come later. I’ve also added full polygon collision, so you can’t walk through walls anymore.

Here’s a screenshot:

There’s still many things to do. Here’s my global todo list:

  • Create enemies (with AI) that patrol and try to kill you
  • Create pathfinding for said enemies
  • Create doors, traps, and items to use
  • Create a level editor
  • Create a level with said editor

I’ve no idea how far I will get. The AI will probably be a tough task to do

enemies!

It’s a few hours into the second day, and I’ve done a bunch of things since last time. I made a quick and dirty image-to-map converter. I can now use my awesome polygon code, which makes practically any kind of geometry, to create simple squares which are basically tiles but without the bonus of tile indexing. Hooray. So inefficient and not what I want but it’ll have to do for now. It beats having to manually enter every piece of geometry. I’ve also added waypoints for pathing the AI. It works like a charm. I’ve also started working on the enemies and their AI, and I’ve got pretty much all the groundwork in place. They can ‘see’ a player, and geometry blocks their sight. They can use pathing. I just have to create their states now, and also limit their sight to what’s in front of them.

Here’s a picture of an enemy chasing me

Only being able to see a portion of yourself still feels a bit weird. I can’t explain why, but for some reason I (as a player) really really really want to see my whole circle and the game won’t let me. As a developer I still have to figure out if that’s good or bad.

Stuff to do:

  • Finish up AI
  • Limit AI vision to what’s in front of him, similar to the player
  • Add patrol points
  • Add footstep sounds and other noises
  • Add doors, traps, special things, and fill the level with enemies
  • Add win and lose conditions
  • Add a main menu
  • Add fancier graphics, like a proper floor, proper player/enemies, etc
  • Optional: Make a new, proper map that doesn’t consist of squares only

About 16 hours left and most of this should be doable

Time to finish things up

The AI is now done and fully functional. They can have a variety of states, like patrolling, wandering, guarding, and of course chasing you. I hit a few roadblocks while doing AI, and I’ve been working around most of them, as usual. But because of that, it’s such a mess now that it started to hurt performance-wise. So I had to work around that as well.

I’m not very happy with my game so far. I expected to create something else, something more fun. What I had in mind and what it is right now are similar, but I imagined it to be more fun to play. 😀

In any case, I’ll finish my game. I’ve got footstep sounds with panning depending on where you look (which is very confusing when you’re looking down, as left=right and right=left then) which makes sound sort of useful, but while it should be a vital key to knowing where your enemies are, it doesn’t really help that much at the moment.

In hindsight, if I had known my game would end up looking the way it does (infinite 3D pillars going to the sky instead of shadows, tiles instead of more ‘exotic’ polygons), I would’ve made something more similar to the old GTA series. That way I could at least paint the walls with a texture, or turn it into first person view from the get-go. I’m not unhappy with the current state, but I really did expect something else. It’s been a good and fun experience so far, though.

On my to do list are menus, win and lose conditions and a screen, and some more fancy graphics if I can. I won’t add any more level objects like doors and keys and all that.

Submitted!

Abstraball is done! You can find it here

It’s a top down 2D-turned-to-pseudo-3D game in which you control a little yellow ball through a complex filled with bad guys. You can only see things that aren’t blocked by other things, so you can’t see past walls. Enemies have fully functioning AI, and they will patrol and guard areas. If they see or hear you, they’ll chase you, and if they touch you, you will die. A compass tells you the general direction to move to. There are 3 ‘areas’ the compass points to, the third being the end. Reach that and you win. You can sprint, but that makes noise and costs energy, so use it to get out in emergencies, and use it wisely. You can also creep to move slower, allowing you to peek around corners more safely. Leaning left or right allows you to peek around corners more easily.

There are 4 difficulty modes. The fourth mode, plague bearer, changes the game a little bit. While you are even weaker than the 3rd difficulty level, you will notice a few subtle changes. Additionally, as a plague bearer, if you touch an enemy that is not aware of you, then he will die. Make it to the end as a plague bearer and you will earn a virtual cookie for being awesome because I haven’t finish it yet that way.

I’ve added custom keybind options. It’s not perfect (it only supports keyboard, not mouse input) and there’s probably a few edge cases not working, but as far as I know it’s good enough for simple rebinds. So yes, I thought of you non-wasd-ers 😀

I had a lot of fun creating this game, even though I know I could’ve done better. But due to some design decisions early on, it ended up like this. It’s not bad, but it could’ve been more. 😀 I’ll write a post-mortem in a few days, showing the few goods, the bunch of bads, and the oh so many uglys.

 

The first person to win plague bearer mode receives a virtual cookie of awesomeness

Abstraball postmortem

When I saw the theme list on the final day of voting, I was rooting for one of the stealthy themes. They didn’t make it, but escape allowed me to work this idea I had for the past week into a game. I wanted to try and create a top-down game with true line of sight. The end result is Abstraball, a game with true line of sight, so I guess I succeeded with that. But it could’ve been so much better if I changed some things at the start.

Day 1

I did my usual routine for making an XNA game. Create a simple screen system, a world class, entities, and fix up drawing things. This time around I wanted to use polygons instead of using the spritebatch, and I wanted to make variable sized geometry rather than tiles. So I worked on that. The camera would be orthographic instead of perspective, and not being limited to square tiles would mean I could make simple big geometry for large portions, and resort to more complex (read: diagonal walls!) shapes when I wanted fancy things. After doing that, I worked on the shadow effect. First I made the area next to and behind you black. Then I added the effect on geometry. And that’s when I should’ve made a different decision. An orthographic view with ‘shadows’ like that is practically the same as a perspective view with pillars reaching to infinity, but without the texture support, and the without ability to easily prioritize what should be drawn. At first I didn’t realize that, but now I do, and I definitely would’ve done it differently if I had known at that point.

Anyway, I continued with that, thinking I could make it look better later on. I started working on the map. I had the ability to make any shape I want, to make any complex level I wanted. But I had no level editor, and placing things by hand was a pain. So I resorted to creating a bitmap, and importing/parsing that. So at this point I had fancy, unstructured polygons shaped as square tiles, without the benefits of a tile grid. That was mistake #2. I should’ve made it tiled, then I could index things more easily and efficiently, and also easily make a bit more diversity with other shaped walls. But I didn’t. Pathing the world was tiled, but they didn’t support each other. I also had to make some optimizations so unnecessary geometry wouldn’t be added.

Day 2

At this point I started to realize the mistakes I made during day 1. I lost some motivation, but kept on going anyway. I worked on the AI, and after a few hours I got a nice and robust AI system that got the job done very nicely. But again, I had optimization issues because of the way I built the world. So I had to cut on a few things to make it playable. Pathfinding was just bad, and occasionally it would take a second to calculate a path. Line of sight calculations were bad as well, and many other things were bad too. But I worked around most of them. Next to those things, I added the footstep sounds, and the positioning for it. So by now I sort of had a playable game. I named it abstraball because I knew I couldn’t fix the graphics, so maybe coining it as an abstract game would help.

With about 8 hours left I started talking to a friend. He playtested my game and gave a bunch of tips for features and gameplay changes. I added difficulty modes, tweaked the AI, added a compass, the energy bar, fixed a few glitches, added the plague bearer mode, and did some other minor things. He wants to be credited for being awesome, which he is, so his name is savooipeerd. With about 4 hours left I added a few final touches. I composed the music with iNudge in about 10 minutes, added keyboard configuration options, and started to playtest some more for balancing changes. I fixed a few annoyances, and with an hour or so left I was done.

Final thoughts

While I’m not that happy with my game (it could’ve been much better), I still greatly enjoyed creating and playing it. I feel my previous (and first) entry of LD20 is a lot better overall, but during the creation of this game I learned a lot of new things and tricks, which I am sure to use next time. I’m going to stay away from the spritebatch completely now, as I now have a relatively good understanding on how to work with primitives. For the next time I’m going to roll out my own engine/framework/toolset/whatever to prevent having to search for and redo basic things, and to do it right. The current code is such a mess, it’s just plain terrible. I broke so many best practices because of laziness, and while it’s part of LD, it still feels terrible for doing so. 😀

In any case, I really enjoyed this LD and I’ll participate next time as well! I’m also going to attempt to do the october challenge as a motivator and deadline to finally do something with a project I’ve been working on and off for over the past year.

LD22

I’m partly in!

This will be my third LD and as usual it will be awesome. While I’ll be busy for a while on sunday, I’m still in! It means I’ll have less time to do more awesome things.

I’ll probably be using C#/XNA, Paint.NET for super fancy high quality graphics, bfxr for super fancy high quality diverse sounds, and probably audiotool/inudge for super awesome musics and stuff.

Made a simple map editor this evening

So I had nothing to do a few hours ago and I wanted to do something productive for this LD. One of the tools I’m still lacking is a simple tile editor without some fancy useless output system. I wanted something quick that outputs a csv with the index of each tile. So I made it. I don’t know if I’ll use it (depends on if I want a tile based game, of course), but at least the option is there!

It’s very basic. You load an image file as the tileset, and enter a few parameters for the map width/height and the tile width/height. Then you can paint stuff and be happy. When you’re done, you can save it and it outputs a comma separated file with integers based on the index of the tile in the tileset. You can also load existing maps made this way. You can pan and zoom as well, and change the parameters and tileset with an existing map.

It hasn’t been tested extensively and could crash, but for me it’s good enough. If anyone wants it as well, let me know and I’ll host it somewhere + source (I made it in WPF, so windows only I’m afraid), but know that there are ‘better’ map editors out there. I just needed something that makes maps which are quick and simple to implement in-game, and this is the answer to that, I hope. If you need this as well, then let me know!

Now I gotta think of something for the remaining 2 hours 😀

edit: Here it is! Feel free to break it

 

Comments

16. Dec 2011 · 22:27 UTC
The source and program would be nice to have :)
16. Dec 2011 · 22:58 UTC
Its good, thanks a lot :)

Good morning!

After 3 hours of work when the theme was announced, I got some sleep. Now I woke up, ready for more sleep. But no! I must continue my game! No more sleep for me.

The plan is to create a top-down dungeon crawl-ish game with a party, and shit hits the fan and people are dying and stuff and it’s very emotional somehow. I’ve no idea if I can get the mood right, but if not, then at least I’ll have a actiony game. I’ve currently got a simple world and camera running. Next step is to add a player character and NPCs, and a fight system. When that’s done, I’ll have to work on a dialogue system, and create some nice levels, and a lot of other stuff like the characters themselves. Lots of things to do!