Ludum Dare 24
Ludum Dare 16
It’s 11:30 pm here, so it’ll be too late to do any more work on this thing by the time I wake up (that, and I have a day job).
The final version of the game can be played at:
Disclaimer: The above cartoon does not actually appear in the game. Also, I’m kind of a bad person for posting it.
Just got back from dinner.
I’m not sure it’s really in the LD spirit to do photos of restaurant dinners, but this was with my grandparents so hopefully that’s enough of an excuse Pictured above is a bamboo clam (AKA razor clam) steamed with garlic soy sauce and glass noodles. There was more food, but I didn’t have the time to shoot the other stuff.
That, and I have a near-final prototype!
https://sites.google.com/site/ludumdare5parrowhawk/ld24—re-generation (requires Flash, tested and working on the most recent stable version of Google Chrome)
It’s probably a good sign that I got distracted into playing a whole round when I should have been finishing this post.
I just need to put in the audio and do some minor tweaks to the visuals, and I should be done. The audio files are already done (thanks to the iOS port of sfxr, I did them on the way to dinner) and ready for use.
I might add difficulty levels if I have time.
I think the gene-expression system is more or less where I want it now.
I added some code to favour enemies with more dangerous bullet patterns. Also, the enemies now spawn with tails, rather than having to evolve them, thus changing their default movement pattern.
Everything from here on out is gravy: explosions, a better title screen, sound effects, and so on. I might also add in the “mutant” feature which I’ve been wanting to put in for awhile.
But first, I need to improve the intermission screen. I’m hoping to put in something which will show which aliens the player killed and which survived.
Whew, I managed to finish all the things I wanted to do today!
Even the genetic system.
Hurrah for biodiversity!
Only thing is, dynamics-wise I’m not quite feeling it right now. Around stage 10 or 11 it gets frantic and enjoyable, but the more tactical aspects of (mis)guiding the aliens’ evolution aren’t really coming through.
For tomorrow, I’ll be mulling over some possible gameplay changes:
(1) Adjust the mutation rate. Currently each new alien will always be based on a genome from the survivors of the previous generation, with one of its 34 genes “flipped” (mutated). I might want to introduce the possibility of a double mutation, or no mutation (to counterbalance).
(2) Adjust the spawn pattern. The aliens currently have a tendency to spawn in vertical columns. This makes them sitting ducks for the player’s straight-firing vulcan. To make matters worse, the last alien in the column often gets to escape regardless of the merits or demerits of its genome, simply because its siblings happened to go first and act as bullet absorbers.
(3) Implement recombinant DNA. I really don’t want to do this because it’s a pain in the behind, but it might help. In particular, if the most successful alien in each generation became the “king” or “queen” and bred with all the other aliens, it might yield interesting results. Currently all survivors have an equal chance to pass their DNA on, resulting in a very diverse but somewhat characterless environment.
(4) Possibly in combination with (3), give advantages to specific aliens in passing their DNA on. I’m thinking along these lines:
- Aliens who manage to shoot the player down get a chance to pass their DNA on, regardless of whether they end up dying. (This will be horribly tough to track. Currently the bullets don’t have their shooter’s name on them.)
- When an alien survives, its chance to reproduce is directly tied to the number of bullets it managed to shoot (okay, that sounds REALLY wrong) during the level.
Well, time to go sleep (it’s 11:30 here). Will continue tomorrow.
Finally, gameplay! I finished the gene-expression system.
I tweaked the code to randomize the basic genome for the above screenshot, so you can see what it looks like with an enemy that isn’t the default, un-evolved grunt.
Currently it seems to me that there are a lot of evolutionary dead-ends which kind of make the enemies a bit gimped, like if they get all the defensive genes and none of the offensive ones. But that’s kind of a gameplay feature, seeing as the player is well served to try and cull the more dangerous enemies, thus forcing them down an undesirable path and prolonging the game.
That, and if one of those nigh-indestructible enemies suddenly develops a dangerous mutation like “attack cooldown decreased by 30%” or “attack type changed to shotgun” (both real), the player is in a bit of a pickle…
Next up: do the wave/level system.
As I’m in a different time zone, these reports may be coming in at odd times.
I just came back from doing a bit of running – partly to clear my head, mostly because I need to lose weight.
So my design, as seen in the previous post, is a Flash-based bullet-hell shmup. Each wave or level will be very short (30-50 enemies?). After each wave, the surviving aliens (those who managed to flee the player’s wrath!) will reproduce; their genes will be recombined (plus a couple of mutations) and form the basis for the next wave of enemies.
The first thing I did was to sequence the genetic code of the aliens, to figure out how their genes translated into movement patterns, stats, visuals and so on. Currently I’m looking at a 34-bit genetic code which describes everything about each alien creature. I also finished some of the basic shmup building blocks – player, player shots, the level manager, and so on. My next step (the hardest part) is to code the gene expression – basically how each alien object takes its genetic code and turns it into an alien with the specified properties.
I’m hoping to finish the gene expression, the evolution mechanic and the level structure by tonight (that means I have about 4 hours left to do that), then spend tomorrow on polishing. No screenshot until I’m done with gene expression at least.
Doesn’t evolution imply that the evolving critter has to reproduce and presumably die, and the changes only appear in its offspring?
If the critter doesn’t die and just gets stronger, it seems like that’s growth rather than evolution.
…Maybe that’s why this theme is not popular
…seeing as I’ve been a bit unwell over the past week, and am a bit busy over the compo period…
…but I’ll give it a shot anyway.
Tools to use: Flixel (my dev skills are rusty so the easier the better)
Now that I think about it, I actually messed around with the source after the compo – the aliens were commented out in preparation for improvements to the strategy side of the gameplay. It shouldn’t be too hard to uncomment the relevant lines.
My compo page with the download link
In the end I turned it into a gratuitous battle in space – basically RTS meets 4X. Managed to squeeze it in just in time – the ZIP was up just a minute before the deadline, and the screenshots/description came after.
I might have added too many alien ships…
It might look as though the graphics took up a lot of time, but really those were easy. The tough bit was the ship AI, UI and fine details – things like how the ships bank when they turn. I tend to get hung up on crap like that.
- It controls almost exactly like your standard 3D RTS – mousewheel to zoom, mouse on screen borders to pan, click, drag or double-click to select, right-click to move or attack.
- Spacebar pauses; you can issue orders while paused.
- To colonize planets, you need to build a colony ship, move it to the little circle above the target planet, and then click the colonize button (lower left). The button only appears when you have only the colony ship, and nothing else, selected. It takes awhile to colonize the planet.
- You can build ships from planets, provided you have enough money. The other 3 resources, sadly, do nothing – I forgot to put special-resource costs in the ship data. Sorry, no build queue.
- The aliens should show up before too long, or you can go look for them if you are so inclined.
- Yes, the framerate is awful in big battles. Didn’t have time to optimize it, plus I added too many missiles, explosions and other stuff.
- There is no end. Close the window when you’re done.
- Edit: Lol, I tested it and found a couple of major bugs. One, the alien “attack” results in the aliens doing a happy dance (working as intended!). Two, under certain circumstances you can see the aliens even when they’re very far away. But, for the most part, it works (apart from the framerate issues).
I have no time and I must scream.
Since there’s no more time and I just managed to get combat working, I shall attempt to turn the game into the mother of all gratuitous battles in space and go for the theme “Unwinnable War” as a bonus.
We’ll see whether that works.
I’m not sure I’ll be able to make it… will have to pull an all-nighter just to have a shot at it. Haven’t even started on the combat engine.
Here’s the star map. The ?’s are unexplored planets which will be revealed when the player’s ships get close enough. I am rather chuffed about how you can zoom seamlessly from a close-up of the ships to this map.
No new pics since the last update. I’m now rethinking my design.
The original design was very much along the lines of Sins of a Solar Empire mixed with a more traditional RTS and a dash of MOO (special planets). At this point, though, I’m really not confident of pulling off an enemy AI in the time I have left, and it was kind of going off-theme. So here’s the new plan – a dash of SAIS, a pinch of Sins, a smidgen of Star Control, and a liberal sprinkling of MOO2:
- The player is on a mission to this star cluster to find the Relics of the Ancestors. When you bring them together, something is supposed to happen.
- The player can colonize planets with a colony ship. I may remove the idea of building up the planets. Possibly the number of cities on the planet merely increases over time, leading to faster production and more income?
- The relics can be found by exploring the star cluster and conducting archaeological digs on planets with Ancestor ruins. First you must colonize those planets.
- Some planets are defended by hostile giant creatures (Space Crystal, anyone?). Those planets usually have good stuff and/or a relic.
- The player’s steps are dogged by these nasty aliens who drop out of a pocket dimension now and then. They will start arriving when the player reaches a certain level of power. The alien attacks come in waves which get stronger over time.
- Normally, each wave will contain a Virus Bomb – a special alien ship. If allowed to reach a player-owned planet and re-enter the atmosphere unmolested, the bomb will destroy all life on the planet, returning it to an uncolonized state.
- I may raise the stakes by turning the Virus Bomb into a Planet Buster that not only destroys all life but turns the planet into a molten wasteland – it can still be re-colonized but will produce no income.
- The aliens may also have other tricks up their slimy sleeves…
Will be going off to church in about an hour – good to clear my head. When I get back I shall have to go quite frankly nuts.
Been working pretty much nonstop (other than meals) since the beginning of the compo, and this is all I have:
A colony ship and 2 fighter escorts strike out to colonize a barren planet.
Right now I have basic unit selection and movement, as well as the resource model. I don’t yet have a way to produce more units – by right, I should be able to click on the planet and these buttons “Build Fighter” and “Build Colony Ship” would pop up. But not yet. Also, there is a nominal enemy faction but I haven’t modelled any of their ships (may just do a colour swap) and they have no AI yet.
Also, I need to implement mousewheel zooming so you can get a better look at the pretty models.
But mostly I need a miracle.
Am going to sleep now…
In the end I’ll probably be going with a real-time 4X design. I wanted to do a space trading-type game, but supply and demand economics would have taken quite awhile and the asset load would be about the same. I can almost certainly do RT4X better and quicker than trading. Right now I’ve just cooked up a subset of the assets – will be going for lunch and then start on the code.
So I’ve finished the improvements to Booon, the add-on library/mini-engine I’ve been using (thin layer on top of XNA). This version adds state control, simple collision detection, and improved audio support (with easy positional audio). The full source and example program are available from my compo site.
After participating in LD14 and sitting out LD15, I’ve decided to take a shot at it again. This will be my second compo – as usual I shall be working with XNA 3 and my lightweight add-on library “Booon”. I’ve been beavering away at improvements to the library, and will post the source before the compo begins.
Best wishes to everybody – oh, and *makes hypnotising movements* yoooou… muuuust… dooownlooooad… XNA… redistribuuuuuutables…