Posts Tagged ‘flashpunk’
Finally, the post mortem!
This was my third Ludum Dare and I think it was the best one!
Let’s start at the night of the theme announcement, I was really excited for this Ludum Dare (as always) and I decided that I should go sleep early (23:00). I went to sleep and for some reasons I woke up at 3:50 AM just ten minutes before the theme announcement. I saw that the theme was finally evolution (All of this while I’m in bed ), I tried to get back to sleep but I wasn’t able to, so I already started to plan my game!
My idea was to make a game where you are a life form which evolve by adding new cells to it. Each cell will cost a different amount of DNA which you collect by killing other life forms and will have a different ability like power, defense, speed etc.
When I woke up I started my live stream and created a new project in FlashDevelop. The first thing that I did was to write my idea down.
Later, I started the programming and added the basic life form entity and cells.
Than, I programmed the life form editor/store.
Later on, I added some parallax scrolling background and some DNA.
And I completed the GUI.
Finally I added some nice random generated life forms.
This was my best Ludum Dare ever! It was the first time which I used the whole 48 hours till the end, The game came out perfectly as I wanted it to be and the live stream was super fun! (Thanks for everyone who watched it )
The gameplay is really fun, I really like the graphics and the music and the most important part, I had a lot of fun!
I really worked until the last minutes and it was dangerous, some instructions are missing and sometimes enemies spawn right on you and instant kills you.
And once again, I made a game in 48 hours for Ludum Dare!
My Ludum Dare Jam entry is Those Stupid Aliens. It’s a top-down space shooter.
The player is firing from a capital ship at the bottom of the screen. It has just gone through a battle, defeating the enemy battleship, stranding hundreds of aliens. As a result of the battle, it only has enough shields to withstand five hits. Your technicians are routing power and fixing subsystems, but they are tired. When you defeat a wave of enemies, it builds up the morale of the crew and they repair one point worth of shield. And that brings us to Those Stupid Aliens, and your job, as one of the last remaining gunners.
Using the mouse to guide the targeting reticule, and the left mouse button to fire, your goal is to shoot the alien ships that appear. They will show up in groups and express different characteristics based on the makeup of their internal properties. As the game goes on, the successful aliens will have their internal properties inserted into the gene pool, and the next waves will be created from this information. Eventually, you should see ‘smarter’ aliens which are more difficult to defeat.
What Went Right
I used Flash/Flex/AS3 with FlashPunk and the FlashDevelop IDE. I’ve been using them for over a year with a few different unfinished, but ‘demo-able’ projects so I was confident in my ability to use it for Ludum Dare and be able to complete something in 48 hours. I will definitely use FlashPunk in December’s competition and likely beyond.
My last successful entry was in LD48_15. The biggest thing I took away from that was the scope. I was essentially trying to implement a clone of a game I loved to play as a kid. Therefore, I already knew the features that needed to be implemented and tempered my desire to feature creep. For this competition, I tried to make sure that I limited what I intended to implement to make sure the project didn’t get out from under me. I came up with an idea that didn’t require level design or a sheet full of tiles. That certainly saved a lot of time and work. I kept the original , knowing that I wouldn’t have time to implement them all anyway.
I knew I didn’t want the player to have to use the keyboard much–or at all, if possible. Therefore I just implemented mouse movement and single click firing. No other buttons on the screen. If I had to, I was ready to implement a “Shift-Click” for a secondary action, but I never really let one enter the scope. The idea behind keeping the controls simple was that if I made something worthy, I could easily port it to a mobile touch device.
Sound and Graphics
On Sunday morning, updated my placeholder capital ship (which I’m still not really happy with), added sound effects and the explosion particle generator. Once I did this, it’s like the ‘game’ part of the game jumped out at me, even though the gameplay didn’t change. It really gained an old arcade feel and I think was a psychological milestone.
What Went Wrong
I spend too much time doing other things this weekend. Mostly it was stuff with my family, but an hour here and there adds up. When the 48 hours were up, I was not done, and had to fall back on the Jam. Though I must say that this project moved along much better than any previous LD attempt in the past three years.
For the bullet, I took the target location (the mouse click) and projected out the location that it crosses the top of the screen. Each frame it would move towards that location. For the alien movement, I tried to do something similar using the direction of travel (a normalized point relative to the original location) and the current location to create the target on the edge of the screen. That target would be recalculated whenever the alien changed direction based on it’s internal properties. It worked ok, but later I realized I only needed keep adjusting the target point to something beyond the max speed every turn. A simple multiplication instead of trying to figure out the math behind the projection and deal with different quadrants.
One thing I didn’t get a chance to implement, or even figure out a decent signal for it, was feedback on the evolution of the aliens. I wanted to give some sort of indication that the evolution was happening or that there were successful aliens in the current wave. I never really came up with a good idea, so I never implemented it. I think some sort of feedback would have been great as it would help give the player a sense of change, rather than just witnessing wave after wave and having to notice changes all on their own.
I made the music using the online instrument Circuli. It’s a neat thing to play with, but I don’t think what I used fits the game all that well. I purchased the iPhone app, so I’ll probably mess around with it again, but I probably won’t be using it in the post-compo version.
I have a background engine hum during play mode instead of music. I don’t know how annoying it might seem for other people. I debated switching it to music, but the intro music didn’t fit and I didn’t have time to create anything. Since it’s constant, I don’t think it would work out with music at the same time. If the ship moved, then it could potentially only make sound at that point, but it doesn’t, so I think I have to decide which way to move forward with it.
Method of Evolution
I think the idea behind the aliens becoming smarter is good. It’s a survival of the fittest process, with every trait possibly live from the beginning. Every time you play, a new initial gene pool is created from randomized DNA. This makes it impossible to set a difficulty. You may get an initial gene pool that consists of aliens that are slow moving, large, and don’t fire very often. Or you may get small, fast moving sprinklers. I sort of faked some progressive difficulty it raising the number of aliens in the wave. I’m not against that idea, but I wanted it to be gradual.
One of the first things I’d like to do is change the alien graphics. I think I want to use bitmaps, but I also kinda like the vector look. (I’m actually cheating, the vector graphics are really bitmap placeholders.) At first, my intention was to use the look and the colors as purely cosmetic traits, but I to like the idea that they represent something internal. It would be a way to solve part of the problem of feedback that I mentioned earlier.
I also need to redo the evolution component. I never implemented mutations, which would serve to introduce traits that did not exist in the initial gene pool, and reintroduce phased out traits that might have better success in a different combination. I’d like to come up with a way that makes it possible to use the traits to have a couple difficulty modes without relying on wave size. The way I do it now is closer to a true evolution using survival of the fittest (which fits the theme) rather than a carefully planned difficulty progression (which some entries passed off as evolution). Somewhere in the middle is the solution.
Right now the enemies hover near edges, which makes sense since they are introduced there and often don’t have traits that move them away. I need to get them out of the edges without making them predictable at the start of the wave or do something that obviously goes against their internal traits.
I think I’m fairly happy with this project. I ended up with a game that feels like a game. Many times I’ve ended up at the halfway point and I don’t know what I’m doing or how I’m going to make it fun. I managed this time to come up with what I feel is interesting and has promise to be expanded to keep attention longer than a few minutes.
I definitely did better than I thought I would with the theme. I had originally been a big proponent of Evolution a few years ago, but cooled on it when I realized that it would take a long time to get a good algorithm set up. I’ve been thinking of this kind of stuff for over a decade. I used to sit in biology and other classes and diagram out some sandbox DNA projects that I never did implement. I’m surprised at what I have done in the weekend time frame, so I might go back and visit those old notes sometime, now that I’ve had a little taste of it here.
For the past few years I’ve been pretty disappointed in my LD participation over the past couple years. I mostly didn’t finish and gave up. Sometimes it was because I didn’t feel I had come up with a good enough idea on the theme, or ran into problems and didn’t have the heart to finish, or had too many other activities that I couldn’t avoid. After my experience with LD24, I’m really looking forward to December.
Congrats everyone on making a seriously fun selection of games – I’m hoping some of them will run okay under Wine so I can get to more of them, otherwise one of my windows-yielding friends may discover me in their office at 4am giggling at the screen.
Had a crack at syncing my local repository to github. A few scary moments, but it seems to be there and working – though in my local repo I tend to store everything, so I had to delete a lot of pointless binary files before uploading – which may or may not have trashed some of the more recent changes – but everything looks to be fine. You can grab it HERE
Not much in the way of comments or organisation as I was only partially conscious for the last few hours of hot-seat coding. But I’ll go in there over the next couple of days and clean it up when I’m giving my gaming fingers a rest from the remaining 1300-ish games I’ve yet to try!
Okay, I didn’t really journal while I was making it, so this is all retrospective.
My game’s called Slimy Things Did Crawl, which is Coleridge, but the line got associated in my head with evolution thanks to Douglas Adams.
I made this in FlashPunk, which I’ve used to make two games before, 2.5 if you count the room I made for the Room Jam in Winnipeg.
The theme was Evolution, so I thought of how to incorporate that into the game mechanic somehow. There are plenty of games where you improve your character over time, leveling up or gaining new abilities, but I wanted the mechanics to more closely match the mechanics of evolution. Evolution doesn’t change individuals, it changes populations, so I knew you’d control more than a single character. And you’d somehow select the survivors, and your new populations would descend from those survivors.
What I came up with was a pretty basic platform game, except for the controls. You have a dozen creatures that you control simultaneously, and for each one the letters A to Z are randomly assigned behaviour. So you find the keys that get at least one of the creatures to do what you want, and then train those keys to do it better.
Initially, I thought I’d add the ability to map the arrow keys to letters once you’ve decided which you want to use. But the game resisted that approach. I found that when playing the game, instead of training: move left, move right, jump; I had to train: run left, run right, jump left, jump right, jump up, crawl left, crawl right, and whatever else as it became necessary.
I called the little things you control Slimes, after the title, sort of. Their graphics are filled with random pixels of a random colour, which is inherited from the survivors and randomly mutated. The visuals have no direct impact on their movement, but it helps reinforce their ancestry.
Playing it I was kind of reminded of playing QWOP in that I was never 100% certain what would happen when I pushed a button, so I’d keep mashing things, and maybe they’d all go where I want and maybe they’d all jump off a cliff.
I unfortunately didn’t get any play-testers to comment on it until after the 48 hours were over. I should have done more to emphasize that you don’t want to get ALL the slimes to the flag, because you’ll evolve faster if you leave most of them behind. That strategy kind of goes against what we’ve all learned from playing games like Lemmings or Pikmin or World of Goo. In most games, the more of them you save, the better you’re doing. So I should have driven the point home in the game to counteract that expectation, because if you don’t get that point, you won’t make it to the fun part of the game.
I did the levels as bitmaps that it loops through pixel by pixel to make the map, which is a method I’ve been meaning to try for a while (because of frustrations I have with using OGMO) but never got around to it until now. So that’s an element I’ll probably expand upon in a future game. The colours on the level selection screen are kind of ugly, because I just straight up show the unconverted maps, which I made very high-contrast so I could easily remember which colours to use. If I had more time I would have converted the level maps to something approximating the colours of the levels themselves.
Well, it was a fun thing to try, and thanks to the theme, I tried out a gameplay mechanic I wouldn’t have tried otherwise.
I submitted my game. The scope was too large to make in the time limit, so I had to leave out a lot. It still turned out pretty good, I guess.
Visit the game page here.
Just submitted my game with about an hour to spare. Managed to stick some simple analytics grabbing people’s scores and posting them to a DB so I can see just how unbalanced and easy my game is
It was pretty cool for my first ever LD, definitely will do another one some time. My only gripe was that I had ideas for several of the themes but not Evolution and couldn’t think of anything for hours (but that’s my fault anyway hehe).
p.s. I also completed the kitten challenge
So, in the end I managed to implement a lot of features in day one!
I added some cool backgrounds, the editor is complete, the stats are almost done, the cells are also almost done.
I wish that I’ll have enough time to complete the game as I want it to be, It’s going to be amazing!
I took Chevy Ray‘s code that he released as part of his keynote for LD23 and put it up on github. It is written for his FlashPunk engine. I used it to make my LD23 entry Seeds of Destruction and it worked out really well for me.
PS Chevy if you happen to see this, I’ll happily transfer the repository to you.
I was super excited ld24 but it turns out that I’m going on holiday to Greece the day it starts! xD I will however be bringing a crappy net book thing with me, so I may be able to get something done .
If I do create a game I shall be using flash with flashpunk or java, paint.NET and maybe graphics gale.
Good luck to everyone!
AS3, FlashPunk, FlashDevelop, SFXR, Gimp, and GarageBand for iPad (no loops) are my weapons of choice
I won’t have a the full 48hrs due to other commitments and and I’m fairly new to Game Dev so my game will probably be something simple and smal
This is my first “Ludum Dare” that I take part, and I’m very anxious! I have prepared my personal stuff, good food, juices and my brain!
Emmm… I will program in AS3 with the Flashpunk library… And well, thats is!
Kittens will dominate the world!!!
Actually, I wasn’t going to participate this time due to a lack of time. But relaxed rules made me to change my mind. I designed mechanics for the game from scratch and then added water (which became lava this time) and particles system from my previous miniLD game.
I use 4 contrast colors in the game – orange-blue and black-white.
So I’m coding in AS3 using FlashPunk and Dame. Music taken from some vintage keygen. I’m going to spend the rest two days on leveldesign and polishing. I will also try to add a couple of gameplay elements if I will have time for that.
So here’s quick mechanics demo with tonns of bugs of course.
Job done, this is the result of our mixed twisted minds:
The story of the most awesome goldfish ever! Play our game
This week end was extremely nice, we’re proud of our baby, as it’s our first Ludum.
Can’t wait to test a lot of cool games !
Tomorrow, we’re going to have such a hungover…
As a bonus: Some crazy used and unused music samples from the game
I’ve known about Ludum Dare for a few years now, but every time it came around I would end up having too much to do in real life to participate. This time I was finally able to get involved, and it was one of the best things I’ve done in a long time, resulting in Humphrey’s Tiny Adventure, a point-and-click adventure game. Here are a few lessons I learned along the way.
Do as little brainstorming as possible
I knew from the beginning that I wanted to make an adventure game. At 9:00 PM the first day, the theme was revealed and we were able to get started. I spent 15 minutes sketching out some basic ideas and then got right to work. Not everything I wrote down made it into the final game, but it allowed me to get started quickly and add details as I went along, instead of trying to develop a complete design doc or storyline.
Get all your tools and libraries ready to go beforehand
This is a bit of a no-brainer, but I thought it was worth mentioning For this project I used FlashDevelop for my IDE, Inkscape for graphics and Chronolapse for screencasting. Since all three of those are necessary to get started, it wouldn’t do to have some programs downloading after the compo officially started.
Pick an art style that you can produce quickly
I’m mainly a programmer, and while I am capable of creating some reasonably impressive vector art, I certainly can’t pump out high-quality assets fast enough to make it a viable option for a game jam. I decided on an art style that consisted only of colored rectangles, which allowed me to keep my art simple, uncomplicated, and abstract enough that realism wasn’t a concern.
Use release-quality art early on
Chances are if I started out using placeholder art I would just continue using it until I ran out of time. Creating final art assets in the beginning helped me have a feel for how much work it would be to bring the project to completion.
Use version control
If you aren’t using version control already, start now. The first thing I do when I start a new project is create a new local Mercurial repository, and it’s saved me many times in the past. Using version control can save you if you mess up your project too badly, or retrieve old versions of your files if you decide that the first iteration of your player class is the better one.
Record a screencast
Keeping a video running of my work helped to keep me from getting distracted. If I wanted to update my progress on twitter, I had to open up Chronolapse and pause the capture, and even that small amount of required action was enough to keep me from constantly tabbing over to check my email.
Take breaks and get enough sleep
Whenever I came across a tough problem or design decision, I got in the habit of getting up from the computer and making myself a hot cup of tea. As much as it might seem like it’s necessary to spend the entire 48 hours in your computer, the best thing you can do for yourself is to take it easy. If you overwork your brain you won’t be able to think clearly and therefore won’t be as productive as you could be.
I think that’s about it! I had a blast participating, and I’m definitely planning on doing it again.
We’re entering in the 72 jam, so we still have about another day left. =D However, we’ve just about got everything wrapped up although a few features were cut do to the time constraints such as persistent worlds. Yet, all of us are quite pleased with what we hav eso far and hopefully everyone who plays tomorrow will be too. Here are some screen shots from today:
I had an amazingly fun time participating in Ludum Dare. This was my first and I’m incredibly happy with what I have accomplished. I havent written a complete game in some time and doing this was just the jump start I needed I think. So here are some of the things that worked, some that didn’t and where I go from here.
THINGS I WISH I HAD OR KNEW BEFORE HAND
I wish I had better researched my intended platform beforehand. I decided to do LD about 4 days before hand and settled on FlashPunk 2 days before the start. Never having done any work with flash before I wish I had researched the graphic and sound formats that were importable and what the limitations were.
In addition to that, I wish I had better resources for converting files, especially sound. I wasted at least an hour, probably 2 or 3 just finding programs and websites to convert sounds back and forth to different formats.
I wish I had planned the weekend out better. I had a concert in Vegas (3 hour round trip) to attend saturday night, and 2 BBQs on sunday, all of which cut significantly into my time. I don’t regret any of my activities, just my planning.
I wish I had come up with the storyline for my game sooner so I could have built in more than one level. I ended up not being able to include more than a single level because I came up with a more involved story saturday night, and by then it would have taken code refactoring to allow me to reuse assets in the way that I wanted to carry the story.
THINGS THAT WENT RIGHT
FlashPunk, it’s awesome. I had no experience with flash and made a game in 48 hours. Also Punk.UI. Caveat: I’ve been programming in multiple languages for over 20 years.
SFXR, it also rocks, it allowed me to add sound where I never would have made any kind of effects before.
Pixel Art Editor for Android. I used this on my Asus Transformer to make most of the pixel art. My “art” has always been the definition of programmer art, but I am proud of what I accomplished.
Making something different. When the theme was announced I wrote down a bunch of ideas that I thought were obvious and then told myself I couldn’t do any of them. Everyone was going to do a certain list of games and I wanted to do something different. I think I accomplished that.
Using a tool that allowed me to iterate rapidly. I think this is huge. Being able to make a change and see the change almost instantly was key. Especially when I was making a bunch of AI controlled entities.
Keeping my scope small and manageable. This was also a big thing, I threw away a bunch of ideas I thought were cool, but knew there was no way I could complete in 48 hours with no outside assets.
Lastly, but not least. Having an awesome girlfriend who is supportive of what I want to do and also likes to playtest (Sometimes too much!).