cosine

LD25

More progress!

More text parser progress!

becomes

which is pretty rad. I’m certainly learning a lot about file formats from this! I’m also learning that GameMaker doesn’t support reading tabs, only spaces. Makes writing my level files a bit annoying, but oh well. I’m currently working on displaying info about heroes entering the dungeon, such as their health, and path through the dungeon. Next up, being able to place towers, and having heroes walk through the dungeon.

Comments

15. Dec 2012 · 22:17 UTC
Why do text?

Day 1 Progress Report

For day 1, I’ve got a half-playable game:

By half-playable, I mean that the gameplay is pretty much done. However, spawning heroes has to be done by console, and levels do not cycle automatically. That’s for tomorrow. For now, I sleep.

Tomorrow’s agenda, in order of importance:

  • Get starting/stopping of waves to work
  • More levels
  • Menus
  • Graphics
  • Level editor (something better than notepad)
  • Sound

Kasperl


Because who doesn’t love references to classic German literature?

Anyways, I’m making some good progress. The game is fully playable in its current state, which is pretty neat. Whats even neater is I added a ‘campaign’ feature to the game. A campaign file is simply a series of levels, which the game then plays in order. This not only makes it so I can change/patch the order of levels without messing with the game itself, but also allows me to add expansion packs with ease. Next, I’m going to add some menus in and tie this all up into a final product. Only when that’s finished will I start work on a level editor or sound.

And That’s a Wrap!

Treasure Defender is now done!

A beaut’, isn’t she? I’ve got a whopping 8 levels in the main campaign, and the option for myself (or others!) to make even more! While this game certainly isn’t my most fun, I would say I’m proud for getting the thing to even run. I even got some rudimentary (SFXR) sounds in, and music for the main menu. Try it out here!

Treasure Defender Post Mortem

Because apparently my game died? I don’t know. Anyways, here’s a synopsis of my game, and how I made it. If you haven’t already, you can go get a Windows (sorry Mac users!) download here. While not needed, it might help to play the game before reading.

Here's a picture so that more people read my post!

A screenshot of the current version of the game.

My timezone is pretty nicely situated for LudumDare, and my ‘routine’ of sorts is based around that. The theme is announced at 8PM, giving me time to design a game before I go to bed. Then, the next day, I begin making the game, having gone over many of the details of how the game will work the night before. It’s a really nice system for myself, and it’s worked for me very well in contests previous.

However, this year, I didn’t do that, because I completely forgot LudumDare was happening. The next day, around 1PM, somebody on Steam showed me a screenshot of a game he was working on. I happened to notice that he put the image in a folder named ‘LD25.’ I quickly navigated to the LudumDare website, and lo and behold: There’s a contest going on! So I scrambled together a quick design document that basically said “make that one game with the dungeon and the heroes but with more puzzle” and got to work.

My first challenge was to make a text parser. You see, GameMaker’s room editor, while pretty nifty, didn’t suit my needs in making coordinate-based paths. So, I set to work on making code to read text.

At the time, I didn’t really know about XML at all, and since (to my knowledge) GameMaker doesn’t have any built-in XML reading, I’m not sure if it would’ve helped. Instead, I based my file structure off of Valve’s “keyvalue” format, in which different objects store different facets of data in curly brackets. Here’s what my file structure ended up looking like.

Code! Wheee!

It ended up a bit different in the final version, but you can pretty much infer how it works. I also discovered that, while writing my text parser, GameMaker doesn’t like tabs. Not one bit. When I tried to filter out tabs from the file to get the raw data, it didn’t work, since GameMaker’s code editor interprets a tab as a series of spaces. Consequently, I had to limit myself from using tabs while writing my level files. Lots of fun (NOT), for someone who’s used to writing code!

After getting the text parser up and running, I worked on the basic, boring stuff: Placing and removing towers, making heroes follow paths, etc. Defining which regions the hero would get hurt in ended up being harder than I expected, and I ended up having to do all the base work that you might have to in regular coding. Good practice, I suppose. Consequently, however, the game will give errors if a tower tries to make a hurtful area off the screen. Oops!

An early alpha screenshot.

A screenshot that shows the first time I got multiple heroes in the same level. It was really exciting at the time! Also shown is a checkerboard background that seems simple, but I couldn’t have made the game without.

Eventually I got everything to a working stage, to where you could play a single level. It was at this point that I had the idea of a “campaign” system. Instead of having a predefined series of levels that the game would play in order, it instead would read a single file that had a list of all the levels that the game would then play in order. This not only meant that I could reorder levels without recompiling, but it also meant that custom level integration would be a helluva lot easier.

Then I made lots of levels. The level making process was actually fairly streamlined. I would use GameMaker’s room editor to map out how the different paths would go and intertwine, and then I would make a text file using the coordinates from that level. I considered making a rudimentary level editor for my own purposes, but I decided that the time spent making a level editor would probably be longer than just typing everything in by hand.

After that, it was polish time. I always try and keep the graphics in my games very simple. I ended up using the hero placeholder sprite as the final thing, just because it easily conveyed direction, and I can’t draw people (turns out that was a bad idea). I used SFXR to create some simple sound effects, and then used Sonar Home Studio to create a nice jazzy song for the main menu. I thought both turned out nicely, and others especially liked the music loop (one even asked why I didn’t keep the loop going during the game).

 

But enough about making the game, let’s talk about how it turned out.

 

The Good

  • Education! I always try and learn something new with each LudumDare. In years previous, I learned about surfaces, primitives, and vector math. This year, I learned about text parsing, and some nice methods involving paths.
  • Music! I write and play music a lot, so I always try and showboat every LudumDare. I ended up chickening out a bit this year though, as I used a drum loop. As a drumset player, I felt pretty bad about it. Otherwise, the music turned out fairly nicely.
  • Custom levels! I absolutely love games like TrackMania and Portal 2, not only because they’re lots of fun, but because of the community level creation aspect. Level editors have always been one of my favorite features of games, and I wanted to create that in one of my own games. Even though the level editor is Notepad, I’m still pretty happy with it.
  • References! Sticking in the “name” and “occupation” qualities for heroes was purely so I could add in jokes. I’ve compiled a list of every reference made in the game, if you’re curious.

The Bad

  • Design! My hastily designed design left me without much design to design my design around. Consequently, I only packaged 8 levels because that’s how many I felt were really unique enough to warrant being part of the final game.
  • Theme! Lots of people mentioned that they didn’t feel like a villain, since the hero was a spaceship-cursor thing. Even something as simple as a badly-drawn hero could’ve alleviated the issue.
  • Tutorials! I wanted to make the first level an interactive tutorial, but I ended up scrapping that because I’m lazy.
  • Late start! I need some sort of calendar for these sorts of things.

I should probably wrap this up now.  Even if the game wasn’t the best it could be, I had a lot of fun making it, and I hope everyone else has fun playing it.

Oh, and before I forget, here’s a page with every level solution, plus other stuff!

 

tl;dr: i made a game

LD26

#26 – First journal entry

My typical LudumDare usually consists of finding some fairly simple puzzle mechanic that fits with the theme, getting the game done in about 8-10 hours, and polishing it up. I use GameMaker, an engine that I’m super familiar with, meaning I can program most anything that pops into my head with ease.

But not this year. This year, things are changing. This year, I’m going to try and learn Unity, something I’ve been putting off for quite some time. This gives me the advantage of letting more people (read: getting more people to) play my game, since downloading a super simple game is a hassle, not to mention that GameMaker packs on some filesize because of its runner.

I even considered making my game for Arduino, to attract the minimal audience, but I decided against it. I will be porting this game over to Arduino for my electronics class when this is all over, though.

So, what’s the game about? I can’t really tell you, since part of the game is “minimal information.” It’ll be up to the player to figure out what the puzzle is, as well as how to interpret the minimal information about their environment. However, it’s based on a puzzle we should all be familiar with, which is fairly minimalistic in its design already. It won’t be a super exciting entry, but it should be worth my time to figure out how to program all of this.

#26 – Maze generation

I’ve got maze generation to work! Using a randomized depth-first search algorithm, I was able to produce this:

maze

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

However, I’m already sensing a problem here. As you can see, the paths don’t branch a whole lot – finding your way around is pretty easy. Starting from the upper right (where the generation starts), you go quite a ways before even having a decision to make. Not ideal! I think I’m going to just start over and use a different algorithm (namely, Prim’s), as it produces a lot more branching paths, which is great for the gameplay I plan on implementing with this maze.

Comments

Miltage
27. Apr 2013 · 13:48 UTC
A-maze-ing.

#26 – Second build!

I managed to optimize the maze generation code, as well as make a lot of progress on the gameplay side of things. Here’s where it stands right now:

And of course, a playable build! You can’t win at the moment, but you can explore a randomly generated 10×10 maze.

Comments

27. Apr 2013 · 20:54 UTC
Cosine, the link to the playable build isn’t working!

#26 – An objective!

There is now a reason to explore the maze – find the stairs out! What’s your reward? Another maze. I need to work on making the gameplay a little bit more engaging, but I’m not sure how.

#26 – Day two

It’s day two! That means I have to actually accomplish a set list of goals, instead of aimlessly building stuff. Here’s the list I built for myself last night-

  • Implement a timer
  • Add support for multiple levels
  • Add bonuses that remove 10 seconds from the timer
  • Add a menu
  • Sound/music

In other news, I changed how visibility works:

It’s not as minimalistic as it was before, but I think this makes it a lot more intuitive to navigate the maze. I’ve left in the option to turn the extra walls off, so I might make that an option in the main menu to make the game harder. Also present are clocks:

They don’t do anything yet, but they will eventually subtract 10 seconds from your time. They also bob up and down gently, which was surprisingly easy to implement in Unity. I’m liking this engine a lot more than I used to! Definitely using this again in the future.

LD29

Using the Indigo Engine to make my game!

While last time I used Flashpunk to create my game, over the past year I’ve been learning a lot of 3D… stuff… with OpenGL. I’ve been creating my (Totally Free) Open Source library, the Indigo Engine. I hope to use that to make my game! I actually didn’t even know I could do this until I saw in the ruley things that got posted. I’m gonna have to work out the kinks in it, though. Driver inconsistency is the worst thing about OGL. Cheers!

Cosine

LD32

We’re In

I’ve done a compo twice before but now I’m doing a Jam. So we are

PIneaPplez13 doing Art

DementedSquid doing eh IDK

Quigs doing more Art

Cosine doing Code

 

Tools of the… thing

  1. Not gonna say my text editor because I’d be murdered
  2. Javascript
    1. Canvas wooo
  3. Photoshop
    1. Maybe we’ll use gimp if we’re feeling like freedom
  4. Firefox
    1. Freedom!
  5. Maybe we’ll use a physics engine if we need one
    1. Box2D?
  6. Github
    1. Sorry
  7. Electricity

 

LD33

I’m in – HTML5 and *simple*

I have summer work due at the end of the weekend so my game’s quality may not be so much, but….

Planning to use Javascript (Vanilla because I’m cool like that) with Canvas / HTML5. This may change.

Using Photoshop and Krita for art with my Wacom Tablet. I’m feeling like I’ll use a pastel color palette but that’s not decided yet.

I’m gonna make it really simple. Like stupidly simple so I can concentrate on Juicing it. Polish and user feedback. Also so I can study some but still have a finished game.

Swarm

2

Ok I finished it. It’s called Swarm. You play as just another monster, with low hp and not a powerful weapon. You must take on the hero! You can try it out.

Enter: The hero. Welcome hero. Hero has valiantly offered to take back the lands of the triflappers! It was taken away long ago by the evil swarm… Brutal monsters of unknown origin. He strode in flapping his triangular wings wielding a weapon of blue triangles.

Here is a swarmy. He’s all spirally and cruelly round. Just look at the thing. Now surely he will attack! Hero is ready though. He prepares his triangle. What’s this? Why is he not moving? Surely it can’t be… that the swarmy is your conciousness! Wouldn’t it be awful if you were this awful thing? If you moved with “WSAD” / “,AOE”? Oh no! The swarmy can shoot! And you are causing this with the mouse! How evil!

Swarmies are pack hunters. If one dies his conciousness is transferred to another. Like all creatures in Bright Land, they fade as they lose health until they disappear forever.

 

I think it went really well, probably my best Ludum Dare ever. I wasn’t sure what to do with myself around the end.

LD35

I’m in

I think I’ll be using Phaser even though I’ve never used it before because it looks easy enough, I want to do HTML5, and last time I got frustrated with writing physics code (I did vanilla JS). This will be my fifth LD. I’ve used a different platform each time (FlashPunk, C++/OpenGL, Vanilla JS… ok I did that twice). Unfortunately, I’ll have to submit mine early on Sunday morning because I’m going out of town.

Tools:

  • HTML5 and Javascript on a Flask web server. Testing with Firefox.
  • Photoshop and Krita with a tablet of mine
  • Adobe Audition and BFXR. Thinking of playing my Tenor Sax for music, but my microphone is awful
  • Atom text editor (I know, kill me. It works for me, it’s easy, and it’s pretty)

And I’m also starting late because my computer had a bug :( So we’ll see…

– Luna

Ludum Dare 37

I’m in, I’m in, I’m really really in

Cosine here, back for my 6th LD. I’m in! (< title context) Last time I had to leave on Sunday so I never got to finish. I should be free for most of this weekend though!

I’ll list the tools I expect to use, but it’ll probably end up being different. After all, last time I planned on using phaser.io but ended up using vanilla SVG. And the time before I was going to use phaser.io and I ended up using vanilla javascript+canvas. This was because I had an idea for a game, that would lend itself better for that platform. I think that’s the best way to do it! Honestly at this point I’m decent enough at learning platforms and horrible enough at all my platforms that I can even pull off using a whole new platform if it works best for my idea.

But I suspect that I will use:

  • Phaser.io
  • Flask web server
  • Testing with Firefox

The tools I’ll almost definitely use are:

  • Photoshop + Krita (Actually my photoshop is looking a little corrupted so maybe just Krita)
  • Atom (fight me ok?)
  • Github (Gotta have that source control!)
  • Bfxr, Adobe Audition (maybe? Possibly audacity because… corruption, as I said)
  • Tenor Saxophone, Piano, and Hammond Electric Organ, doing my own music now that I have a mic (Yeti Pro) Hammond electric organ

    Also taken right off google images. I’m writing off my laptop; pictures are hard, ok?

    Tenor Saxophone

    Gotta practice for band anyway, so I’ll probably record my band pieces.

Two times ago I took a really simple concept and juiced it, but I fine-tuned too much. This time I’m gonna try to do the same, but instead of fine-tuning, adding particles and persistence and juice it to the jazz.

And last time I had a great idea, but the math got a little bit… woozy. I’m gonna try to really get down the idea again. I even gave up my first idea.

LD 38

I'm in!

I just got home from college touring, so I don't have time to make one of my typically in-depth I'm in posts. But,

Possibly: - I might boot into windows to use photoshop if I have to... but probably not. - Otherwise, I'll use krita and/or gimp (or inkscape if I go svg!)

Probably: - Javascript + HTML5. Native if I can, Phaser if I have to

Definitely: - Vim ftw - Real music. Tenor Saxophone, Piano, and Electric Organ. Every year I say I'll do this, and I never do. So I'm going to do it at the beginning of day two instead of at the end this time.

Can we have a quick talk about "help me get my game to 20 votes" posts?

Can we please stop making "Help me get my game to 20 votes!!11!" posts? I love reading postmortems and they're clogging up me feed. You're not a charity case; if you want more votes, rate other games!

See, PoV has implemented (and it's existed for as long as I've done LD), a great system for how you get votes, called coolness. It takes ratings you have made (plus hearts, now) and subtracts ratings you have received, and it gives you a coolness number. There's another great thing, called the games browser. It displays all the games, in reverse order of coolness. So people who have rated more games than they have been rated, show up on top. Nearly always, this means they get rated. What's cool about this system, is it encourages people to rate other games, and it ensures that everyone can get ratings. When I make a rating, within the day I'll have another rating on my game. Because my game moved up to the top of the games browser, and was played.

I've given 20 ratings, so I've received 20 ratings. At six minutes a game, this would take you just two hours. For a game you invested 48 hours into, I think it's worth about two. And you had over two weeks to do this!! There are plenty of games for every platform (even board games an SNES games!). And if the games browser is broken for you, you can always use Feedback Friends, which will effect both the FF coolness and the LD coolness.

This rant may sound rather Darwinist of me, but it's not. I'm a Marxist. Rarely has a system been so effective as LD coolness... there is no exploitation involved here. If capitalism worked, it'd look like this.

Ok, sorry, end of rant. Use the games browser and rate games; stop making whining blog posts.

LD 39

I'm in, I guess...

I have not used C++ in over two years. I have never used OGRE. I will be making my game with OGRE.

Send me flowers for my grave.

(I'm tired of making JS web games. Flash is dead. I don't know any other game engines. So it is.)