Software nerd at the software-learning institution, spending my time software-learning by not doing learning work.
Ludum Dare 23
Ludum Dare 21
Ludum Dare 20
I’ll try and find the time for another round this weekend. It’s been a while since my last weeping attempts at coherent experiences, but I’m hoping I can take a break from my studies over the weekend for some relaxing, stressful game jamming.
Contrary to earlier, I’ll not be going Flashpunk this time around (although it’s still an excellent choice for quick-n-dirties, I think), reason being that I haven’t been able to set up a sane dev environment on my all-Linux system. FDT and Flex work fine, but a few of Flashpunk’s Object trickery is bugging the syntax checker and refusing to build perfectly healthy code.
Instead, I’ll try out Allegro 5, mixing in Box2D if the theme matches the unfortunately-early ideas banging around my head. I had an early C++ derivative of Flashpunk running through SFML and SDL1.2, but it’s simply too basic for proper use.
Graphics start from Pinto (a Paint.NET wannabe for Linux) for simple painting, possibly working within regions of procedural generation for simplicity.
Sound and music will be minimalist this time (no Raymond Chandler monologues, I promise!) – at best, a few short vocal queues and perhaps some random piano chords.
Basic platforming and tiling complete. I even went as far as building in an in-game tile editor; simply because it was quicker than learning to use a tiling application.
There’s an issue with standing up in cramped spaces, but the rest is solid.
Right after dinner, I’m moving on to auditory and (in-game) tactile feedback.
Think I’ve hit a fair spot that brings together a simple base with optional extensions if time allows (which it never does).
At any rate the design is now frozen. We’re talking a basic mazing platformer. Twist is, the player has such a small viewport that they need good memory, patience and reflexes to solve each maze.
I was making major bets on several of the other themes; this one, however, was unexpected.
Given the less than mediocre performances of previous LDs, I decided on a stricter schedule. Currently, I have 123 minutes left until the design is frozen, and I’m still trying to come up with an approach that isn’t a half-asses Spore or E.V.O. clone. Hopefully a more slick, less overambitious approach will actually leave me with a solid package this time.
Design imagery in about 2.
I figure I really should at least mention my possible entry to avoid any rule breakages. I might be assuming the death of Flash too soon, but I had been hoping to transition to a Clanlib-based game. Once again, the tools and libs are
- Flashpunk (slight custom tweaks on custom github fork)
This time I should have just a tad bit more time, but I should really learn from past mistakes and settle on the entire gameplay mechanism by the twelth hour.
Every time I manage to pull through the 48 hours and end on the other end with something that doesn’t crash, I feel pretty good about myself.
Looking back at my prior work, it is clear to me that I’m gaining momentum in regards to workmanship and speed, but I’m still overly ambitious. If Our Little World is any indication, brilliant (… imo) gameplay concepts fall hard on lack of polish, both technical and abstract. I can live with a compo game having its glitches and oddities, but it should clearly communicate its message and play style. Our Little World did neither very clearly.
What was intended as light-hearted jab at religion became a mess of a non-descript, glitchy interface. I was averaging a feature every 80 minutes right up to the submission deadline, pumping without stop, but losing 24 hours to an optimistic implementation of a Bayesian network really dented my progress. I even considered switching to the jam to gain another day of work, but even I have more sense than to compete single-man against the talented teams who submitted works Monday.
With only a few days’ more work (and a competent artist), the game will be solid in its current design. Therein lies the true flaw. There is no inherent risk factor in the game. For one thing there’s no win condition, but the problem is more intricate than such. I wanted to create a game where you were forced to place the sides against each other. All too often you only see a true reward if you go to the extremes of “good” or “bad” (or the equivalent), and steadying in the narrow center is nothing but a hassle. I wanted to shift that paradigm, so to speak, forcing the player to constantly weight the power of mortal faith in you (empowering your godly abilities) with their self-reliance (which would enable them to move forward as a society). This requires an antagonistic element. Something that everyone is against, regardless of how pious they are. I had a massive backstory going in my mind as I was writing out the game concept, and the ultimate goal would be to allow humanity to raise itself to a demi-god-like status, capable off fending off unknowable terrors from beyond the veil. Now, the big picture works – you need to maximize humanities self-reliance, but doing so requires that you remain powerful enough to help them when they are in truly dire straits. But this only sees a long-term result, thousands of game cycles later, at the end times when the fruits of your labour are tested. The design direly needs a short-term risk-reward factor, which goes beyond the choices of punish/bless. They were intended as a power/wisdom tradeoff, granting the player greater power to affect the world as needed, but the consequences of procrastination were never explored. How greatly would society suffer if you sat idly by, testing their ability to overcome the Black Plague instead of granting them immunity? Even more importantly, how should this be expressed in game terms?
The best answer I have after this time is that the game requires more granularity. Instead of granting static structures boons or curses based on your immediate needs, I need three things:
- Introduce single individuals to be the targets of wisdom buffs (give Newton the idea for gravity, jolt Graham Bell and let him make the first iPhone, etc). Furthermore, individuals have their own beliefs, so picking a mortal to bring forth the next leap in technology requires much forethought (you want the wealthy priest, who is almost guaranteed survival over the next few years, or the ambitious inventor, who may die with the next hunger epidemic?). A current effect that is very (too) subtle, is that trying to upgrade a building that has been punished or blessed quite often means that upgrades will take much longer time.
- Let god powers be more free-form. They should be targeted more freely (single-target/AoE style) and have an effectiveness augmented by your current faith, total power and income. They also require more utility. I’m thinking rain powers to cause crops to grow and fires to be put out, or floods to cause havoc. Then move on to topological changes; land from the sea, natural dams to protect against invading hordes (or natural floods) and the like.
- Genuine risk. With the current model, you would have to play through the entire (envisioned) game before seeing any real results. That’s not often enough for most players. This is also where I’m mostly stumped. What kind of short-term threat can you introduce that will force the player to manage their faith levels?
I guess the short-term end result for this post-mortem boils down to limiting ambitions. Ambitions are good. They’re great, even. Without them we’d be stumped. But we also need to know the limitations in order to get a proper end product.
I hope I can keep that sort of restraint on myself next time.
I ditched the entire “bayessian network in 48 hours” idea, scrapped all assets and started over.
I’m still in with the same notion as before, but I created a far simpler model for the game and I’m actually at the “content and tweaking point” after only 14 hours of work. It feels like such a blessing when you finally put the pieces together after several hours and the gameplay just pops out as you had hoped.
I’ve got three hours running for music, a few sounds (I’ll skip the Raymond Chandler monologues this time, scout’s honour), tonnes of sprites and images, and value tweaking as well as a final win condition.
I won’t reach the ultimate goal of multiple phases of civilization, but given the time frame, I’m pretty impressed with myself.
Beta screenshot at the drop ————–> DROP!
I’ve written around 2000 lines of code and made a single sprite (3×3 pixels) so far.
I’ve finally made the producer-consumer network functional to some degree (“all it needs is content!”), but I’ve noticed that the people spend a hell of a lot of time around a single location to sate a need. I think I’ll make all resource consumptions one-shot fillers (so instead of getting a meagre +3 energy from eating, you get a full boost to 100%) to increase the speed of gameplay instead. However, I’m trying to think through how this affects penalties (badly treated crops will fully restore energy). Maybe simply tweaking the values to be a bit larger (they’re working on a 100-scale right now, perhaps a 10-scale would fit better) may help. Regardless, I need the AI to work on its own before I can introduce the actual gameplay.
We’re closing in on the 24-hour halftime line. Gotta get some interaction!
So I figured out a consumption model for the world, which is about a third of what needs to be sorted before implementation.
Consider the world, all of existance, a zero-sum game. When something is consumed, something else is produced. Not everyone would agree that the product is always desirable, but it’s there, none the less. Using this assumption, consider all entities in the world a combined consumer and producer. A farmer produces wheat and consumes foodstuffs (for example wheat). When he consumes food, he regains energy which is depleted when producing more wheat.
This results in a cycle slightly more complex than the one depicted above, but it conveys the thought. Wheat produces something that has, among other things, a nutritional value (it also has health benefits and can make you fat). The farmer will consume and the changes brought on by the nutrition will be applied to the farmer.
Beyond this I need to figure out a simplified “belief” model so you as a player have an active stake in the game. I’m thinking something in the lines of “do nothing or be monotonous and lose faith”. It’s very simple, yes, but hopefully the overall management will be so abundant that striking the balance will be difficult.
Finally, I need to implement AI in the form of intelligent agents, self-managing entities within the game world. People need goals they want to achieve, split up into smaller tasks that will achieve that goal (for example, having children means getting a spouse and having the energy to handle them). I want to put in a bit of learning behaviour, so they can appreciate a sudden appearance of wheat from above.
Now, enjoy a screenshot that is almost like the original one, only this time all people are rendered properly (an out-of-bounds error was not being cast in the previous build). Notice their three-layer appearance. The top colour shows their race, the torso their job and the leggings their sex (male/female). I hope to make sufficiently clear colours to make it clear what kind of people you’re dealing with.
Tiny Worlds… not my favourite of the mix, but many of the top contenders throughout the week shared several connotations in my mind.
Artificial Life, Tiny Worlds, Build it then use it…. it brings to mind the microcosms depicted in The Genesis Tub, Parasites Lost and The Invaders, to name a few (actually, I think the Twilight Zone had many such stories).
I wanted to try and convey a message with my game this time around, partially an homage to deepnight’s entry back in ld20, partially a personal desire to work on the emotional level. I was hoping for a theme that would let me bring around the tragedies of personal experiences, but Tiny Worlds could work too.
In the best style of megalomaniacs and people who have no idea how little they can achieve over the span of 48 hours, I want to try my hand at a god game. I want to focus much more on the world itself than Populous or Black & White, bringing it a bit in line with Ubisoft’s From Dust. Go a step further than micromanagement. I want the goal to be constant and greater praise from your followers, achieving this through a combination of blessings and curses (who believes in an ever lenient god? And, conversely, who would want to believe in an ever-terrifying demon?) that come in the form of shaping the things in the world. Are people starving? Bless them with a new growable crop with greater nutritional value or a new animal species. Have they grown fat, decadent? Create a plague to either reduce the population or the crops – or both!
Bear in mind this is all just 90 minutes into the compo (eh, make that 86 minutes), so I’ve got pen and paper lying everywhere trying to create a proper model for all of this.
The first game pic is simply 20 procedurally generated humans chasing the cursor. The graphics style is however quite telling at this point. Tiny World, Tiny People – Atari style!
After a winter hiatus I’ll be tossing my lot in, once again. Hopefully, I’ll be able to put in a fuller soundscape than some random piano chords and longwinded soliloquies, perhaps even art that doesn’t look like a 3-year-old’s entry into the local Mommy Fridge gallery.
Tools, once more, of the following:
- Flashpunk (aided by Flashdevelop)
- tellusLibsAS – a home-rolled set of helper functions for small tasks.
- Paint.NET for the needs.
- Musagi, sfxr and possibly Audacity for the audio stuff.
I had hoped to garner sufficient proficiency with a C++ lib to shift platforms, but alas I must hold myself to the excellent product of Chevy Ray instead.
I won’t be joining my kinsmen in Copenhagen, instead withdrawing to the outer regions of Aalborg of the northwest, possibly with a few like-minded fellows.
Seeing as how I’m taking a short break (enjoying some three-year old curry soup; still good) and blogs are possible again, I thought I’d apprise the few interested parties as to my progress.
Yesterday I set a goal to get 70% of the game logic in place before going to bed. I’d say I hit that milestone, despite tons of trouble with collisions and camera issues (I’m entirely at fault, naturally). Currently, I’m cleaning up the remaining interactive parts of the game and I hope to have all cutscenes drawn and coded by midnight (local time, GMT+1). The remaining time will hopefully pass with voice work and music.
I like where the game is headed, it’s actually trying to tell a story. Now I just hope the rest of you see that as well
I gotta say the theme hit me just a tad on the wrong side of mind. I’ve had a single idea running through my head that has connotations with several of the like-minded themes that were in the running – in particular criminals, thieves and finally escape. I really wanted to hit something within personal, intimate domains, but despite a lifetime of stories and experiences that would be phenomenal to present through an interactive medium, I simply couldn’t conjure mechanics that would convey it properly. Instead I’m gunning for what runs within the story of criminals and thieves, but with the purpose of escape – I hope it’ll run sufficiently within the theme for people’s liking
Anyway, I’ve been fighting with collision detection and vector transformations in FlashPunk (which I haven’t done before) – in retrospect a needless problem if I’d worked within those domains prior to the compo. This time around I’m focusing more on mechanics and much less on visuals. I’ll try and get by with a mix of minimal-frame 16-bit style character images in key places and let all actual interactive gameplay happen with bright colours and primitive shapes to make it easier to follow.
Although the design doc has about 7 distinct levels of gameplay types, I’m hoping to finish at least 3 (and an intro) within the weekend.
Here’s an alpha pick from the first gameplay section, tentatively titled “Hiding the Evidence”. A few debug sprites in there (if you can spot them). Ignore ‘em.
And I’ll send a video Sos’ way once my sinusitis clears.
I’ve grown fond of Flashpunk over Flixel through the past few months, so that’s the targetted platform this time, together with whatever scrap code is lying in my public Github repos.
Music will be a nice change. I’ll try and apply my newly-acquired Yamaha keyboard to a more audibly pleasant experience. If I can bend OpenMPT or another tracker to my will (any clues on how to record note length, intervals between notes and chords in a tracker without it just mashing it together in a single pattern?) then that’s the plan. If not I’ll use the excellent Musagi.
I won’t make it before the compo, but I would like to make a very small boilerplate lib with various Flashpunk-based classes for rudimentary visual stuff like title and game over screens, tooltips and dialogue boxes. So wasteful to redo those horribly redundant things every time.