Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Paper Prototype So Far #LDJam

Imprisoned Evil prototype

The top left is the village, complete with villagers. The top right has the four magic stones surrounding the boulder that imprisons you, represented by the barrel.

The stars are your Energy, which is how you exert influence on villagers.

The bottom left is the forest, and the bottom right is the river.

Right now, Energy resource management seems to be key. You only have so much to start with, but as you influence villagers, they start to worship you and give you more Energy, which means you can influence them more with greater effects.

For instance, you might be able to Cause Fear at first, which is enough to get someone to believe you exist, but too much fear can backfire in that no one will want to go anywhere near you, which limits your abilities.

Later, when you have a lot of Energy, you might be able to Compel a villager to go somewhere specific.

So, this game seems to require a lot of AI and content, which is what I was worried about. Villagers have to go about their own business, which means they need things to do besides walking around.

On the other hand, if I abstract away a lot of the behaviors, maybe it can simplify things, but I worry I will lose what makes this game exciting for me.

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Good Morning, Ludum Dare! #LDJam

I’m either getting a head start on my morning, or I’m going to crash. I got up one hour and 45 minutes before my alarm for some reason.

I feel well-rested. Let’s see what happens.

My current task is to figure out the actual basic game play. I like the idea of keeping the interface simple and letting the player do nothing more than click on villagers and then click on an influence, but the dynamics that arise from causing fear or greed need to be solid and understandable.

Otherwise, I’m going to have the player directly control a monster.

So, now I’m going to spend a little time brainstorming with myself figuring out what the villagers can actually do and then figure out how to cause them to do it.

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: An Imprisoned (and Ambitious!) Evil #LDJam

Concept: An imprisoned evil

I was choosing between being a vampire drinking the blood of your neighbors while avoiding the vampire hunter’s investigation each day, and being imprisoned in a rock surrounded by magical rocks that you try to get rid of by influencing the nearby villagers.

I think the first is something I can see doing much more easily. I can see the game play, and I can make it as detailed or as abstract as I want. The second one is really complex and still kind of vague. I know what the player can do, but what results are possible, and in 48 hours?

I told my wife about my choices, and she gave me a look like she was worried. I asked why, and she did an impression of me:

“At the start of Ludum Dare, you’re like, ‘I’m going to take on this huge design!’ Then, partway through, you’re like, “I’m worried I won’t be able to get this done.’ Then by the end, you’re like, ‘Doh, I didn’t get as much done as I would have liked.'”

Nailed it.

And I decided to go with the second one anyway.

My initial thoughts are that you are surrounded by four magical stones, each one represented by an element such as earth or water.

You can’t directly get rid of the stones, but you can influence the nearby villagers who have shown up in your area. You can click on an individual, then select an influence type. Examples of influence types are:

– Suspicion
– Fear
– Trust
– Greed

The vague part: I don’t know what happens then.

I can see Suspicion causing infighting among the villagers. Ok, they’re fighting. Now what?

I can see Greed causing villagers to use up resources more than their neighbors, or kill the proverbial goose that laid the golden egg, perhaps in the form of digging up cropland to search for gold.

My wife suggested that perhaps instead of using this indirect influence, the game play can center around being a monster trying to free something from imprisonment by dealing directly with the four elements. It would be simpler.

And I’m going to sleep on it. 1 day, 21 hours left. Good night!

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Some Monster Concept Art and Milestone Deadlines #LDJam

Here are some quick doodles of monsters. I like the idea of the monster being a cute ball of fur.

Monster concepts

I’ve been thinking about what direction to take this game, and at this time I’m coming up with as many concepts as I can. I set a deadline for me to have a concept ready by the 2 hour mark. I hope to have something sooner, but in case I don’t, that’s the point I stop spitballing and start running with whatever I have that seems to work.

Have you set milestones for your project in a Ludum Dare compo? Or do you just keep going until you’re done?

The constraint I threw on myself: make a non-violent game. Basically, it means that attacking or being attacked can’t be part of the core mechanics, which cuts down the viable concepts quite a bit.

But the player could be a helpful demon or a sneaky creature. There’s still plenty of potentially good ideas here.

I tried to break things down a bit. Here are some notes I’ve made in my design doc to help me come up with the concept of the game.

Where did you come from?
– Outer space
– Ocean deep
– Frozen in Arctic
– Nuclear mutation
– Toxic waste/pollution
– Deep underground
– Psych Ward
– Meteor
– Forest
– Mountains
– Science experiment gone awry
– Magic/Summoned
– The Gods
– Birth defect
– Hell
– Extreme emotions manifested in three dimensional space
– I don’t know. I’ve just always existed as far as I know.

Where are you now?
– Feudal era, Modern day, Futuristic urban/rural
– Fantasty world
– The pages of a storybook
– On a ship (sea/space)
– In a cave
– Underground, waiting, biding my time.
– In a castle
– In a heavily secured experimental lab on a military base
– In a house, mine or someone else’s.
– Encased in a tree/boulder/etc

Games I can see making at this time:

– You’re a vampire in a village trying to suck the blood of your neighbors while avoiding detection. You’re stronger and faster at night, but you’re vulnerable during the day. It’s similar to a concept I came up with a long time ago, only you were the vampire hunter then.
– You’re a tiny monster sent to help a poor human family. You mend things and try to make things right, but if you’re caught, it’s bad news for everyone. So, a stealth game? I can see this being a platformer to really emphasize the height difference, but I don’t want to spend time on figuring out platformer physics.
– You’re an ancient evil imprisoned in something magical like a tree or boulder, but you have limited abilities. You are able to influence people from a nearby settlement and you want them to break the hold on you, but you need a lot of them and no one knows about you yet. You want them to free you without tipping them off about your intentions. So, a strange sim game?

And there’s 30 minutes left to decide…

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: It’s Started! And the Theme is: You Are the Monster #LDJam

Ok, Ludum Dare #33 has started, and “You Are the Monster” is the theme.

I can see a lot of potential here.

Richard Matheson’s I Am Legend pretty much ends that way. Maybe you are a stranger in a new world, or your own world that has changed dramatically to the point you don’t recognize it, and everyone is afraid of you.

Perhaps you are Mary Shelley’s Frankenstein’s monster, created by a mad scientist and now on the loose, being chased by townspeople with pitchforks.

Maybe you’re a vampire trying to live in a village and feasting on neighbors without anyone figuring things out, such as the vampire hunter that came to town.

What if you’re a sea creature terrorizing ships and divers while trying to avoid being caught?

Jekyll and Hyde? You are turning yourself into a monster for…some reason. I never actually read this story.

There’s a lot of classic horror as source material to explore. The Invisible Man, werewolves, The Deadly Mantis, The Murders in the Rue Morgue, War of the Worlds, Godzilla, King Kong, Godzilla vs King Kong, etc etc etc.

And of course there’s non-horror classics such as My Teacher is an Alien, or Little Monsters, or…do Garbage Pail Kids count?

I’m going to doodle and try to settle on a direction as soon as possible.

Categories
Game Design Game Development Geek / Technical Linux Game Development Personal Development

LD33: Yeaaaaaaaah! I’m in! #LDJam

I’m in.

Here’s my pre-compo checklist for Ludum Dare, the 48-hour game development competition that starts tonight and ends on Sunday.

I’ll be using C++, libSDL2, CMake/make, the awesome sfxr by DrPetter for audio, my own basic code base, my prototype toolkit, and a secret ingredient: love.

Last time, I did a terrible job of pacing. I focused on creating bad art instead of designing a game, even after I said I would do the opposite.

So this time around, I’ll be focusing on mechanics. For real. I’ll prototype and focus on getting something playable as quickly as possible, and I will iterate on the design so I can feel confident that I will have something to submit by the deadline.

If I need art, I’ll force myself to use circles and rectangles, or I’ll make a quick doodle, take a picture, and turn it into a sprite without worrying about cleanup.

I’m looking forward to making a game with you.

Well, not with you. I’ll be working by myself. But at the same time as you make yours.

As usual, I’ll be cross-posting between here and the Ludum Dare blog.

Good luck, everyone!

Categories
Game Development Geek / Technical

My History of Game Jams, Part III #LDJam

I’ve been writing about my lessons learned from past game jams. In a few short years, I’ve gotten better at finishing more ambitious games, and yet I still had a lot to learn.

If you didn’t read them, see my history of game jams part 1 and part 2.

Mini LDs
Between the major Ludum Dare compos, there are monthly Mini LDs. Usually someone hosts it and has the option of specifying special rules.

Apparently I didn’t blog about the mini compos I participated in. My favorite is from MiniLD #6 in 2009, which had the theme Monochrome and the special rules that you could only use a limited palette of colors. The idea was to combine all entrees into a single game. The other special rule was that each entrant also got a theme. I got Guardian.

I’m not sure how the final result turned out for all the games, but my game was Guardian Fish. I didn’t even plan on participating that weekend, and yet I put together something that people have told me would make a great game for the growing iOS market if I fleshed it out.

GuardianFish

In 2010, right before Ludum Dare #18, I hosted MiniLD #20 with the theme Greed and the optional theme of Fishing with a special rule: “Only one of each.” While programming usually makes it easy to make exact copies of objects, I was insisting that everyone had to ensure there was only one copy of any object.

While there was some griping about the constraint, there were more entrees in this MiniLD than any before it, even though a power outage and my project’s overly ambitious scope meant I didn’t get my own game, The Old Man and the Monkey Thief, done in time. I should have paid attention to my own compo’s constraints and adjusted the scope to fit it instead of trying to create a bunch of content to get around it.

Inventory and Treasure!

I wrote up a post-mortem of MiniLD #20, including both my own project and running a MiniLD.

It turns out that people want closure and it isn’t enough to simply start a compo and disappear.

My favorite piece of feedback:

I must say there were times when I wanted to stuff that glass of juice down his throat.

You can’t buy memories like that. B-)

It’s also when I met McFunkyPants on the Ludum Dare site for the first time. He’s a pretty awesome game developer, game jam enthusiast, and author, and he runs One Game a Month, an awesome challenge now in its third year.

Full-time Indie Jams

The MiniLDs are great practice for the main compo. I missed Ludum Dare #19 due to the holidays, but I was sure to be part of Ludum Dare #20. At the time, I was struggling with how long Stop That Hero! was taking and I wanted a quick win.

The theme: “It’s Dangerous To Go Alone! Take this!”

Ugh. Really? The meme won? Fine.

I had the initial design I went with right away, prototyping it and eventually making it happen, except I didn’t get it done in 48 hours, so I once again took advantage of the third day of the Ludum Dare Jam to submit Hot Potato!, a game of delivering a package while avoiding the agents trying to grab it. You can pass the package to an adjacent courier (the “take this!” part of the theme).

Screenshot - Final with pedestrians

Once again, simple graphics meant getting things done more quickly, although I didn’t get nearly as much done nor as quickly as I would have liked.

It would be over a year before I would participate in another game compo. Ludum Dare #24’s theme was Evolution, the Susan Lucci of Ludum Dare themes that never won until it did.

I managed to have something playable very quickly, and I iterated the development well. I didn’t get everything I wanted, but when the 48 hours were up, I had something fairly solid to submit instead of trying to rush something that resembles game play at the last minute.

Evolution Game Play

It turns out that Ludum Dare had been getting quite popular, and it has been hard to get people to rate games. In the past, you were given a random list of 20 games, and you were expected to do your best to rate at least those games. Now, they introduced a coolness rating, which increases as you rate other games, and it’s value determines if other people see your game when they get their random list of games that need a rating.

I didn’t plan on setting aside time to play and rate games, which hurt me in this compo.

In my post-mortem of Ludum Dare #24, I wrote:

If I could do LD#24 over again, what would I do differently? I’d spend more time upfront trying to create a design better suited for the theme that is also simple enough for me to make. I’d make sure my list of tasks was prioritized so that at all times I was working on implementing something that served the core design. And I’d make sure that I had set aside time after the compo and Jam to rate other games. People worked hard on their entries, and with over a thousand of them submitted, it’s unfortunately easy to get buried. I think the coolness rating does a great job of making things fair, and the name is perfect. I want to be cooler next time.

Another Long Absense Before the Next Compo

But it would be another two years before I participated in another game jam. By this time, I had a day job again, progress on Stop That Hero! was indefinitely on hold, and I had spent some long and dark evenings figuring out what direction GBGames should go in.

And I apparently forgot my previous game jam lessons.

I came up with a lot of ideas for Ludum Dare #32’s theme, An Unconventional Weapon. Some of them were used by other participants to great effect.

I loved the idea I ran with, though: getting a giant monster to follow your character so you can lead it towards your enemies while avoiding death yourself.

LD #32 Giants And Ogres

My strategy was to doodle when I wasn’t coding, and rather than use my poor digital art skills, I would use my less-poor pencil drawing skills and digitize them.

LD #32 - Controllable Character

And then I threw out that strategy for some reason and tried to create sprites that face four directions, taking up the lion’s share of the time I spent on this compo.

LD #32 A Giant Weapon

What’s worse is that while the animation helped, it looked worse in screen shots and didn’t look much better in motion. So all that time I could have spent on actually getting game play in was wasted.

It was hugely disappointing Ludum Dare compo for me. You could say I was rusty, but I handled my pacing badly and focused on assets instead of game play.

At the time, I was hard on myself and felt like it was proof that I still suck at game development. On the other hand, a few years ago, I would never have been able to quickly put together the limited game play that I did. I had a character that moved where you clicked in a very intuitive way, which is something people complimented me on, and I had a monster that you could attract either by getting in its vision or yelling out to it. The animations helped make it easier to see where the monster was looking, but I could have simplified them and had something working much faster.

So to be fair to myself, yeah, it sucked I didn’t submit a game, but I’ve come a long way from FuseGB and my first game jam.

Immersed Learning Experiences

My time working as a full-time game developer were definitely very good in terms of how much skill I developed and experience I earned in a couple short years, but the next best thing is a weekend dedicated to creating a game.

When you fully immerse yourself in the work, and when the constraints are that you need to have something finished in a short amount of time, you don’t get to procrastinate or be idle. You don’t read how to do things.

You spend your time doing.

And in the end, you have either a completed game that never existed before or experience to leverage for next time.

Getting that game finished is a great feeling. You get to point to a real game and say, “I made that. I’m a game developer. I developed a game.”

I’m looking forward to the next game jam. It’s another opportunity to grow with an entire community of game developers.

Categories
Game Development Geek / Technical

My History of Game Jams, Part II #LDJam

Last time, I talked about my first ever game jam and my first year’s worth of Ludum Dare events. After many years of thinking about it, it was nice to finally get some wins under my belt as well as a couple of good lessons. If you didn’t read it, see my history of game jams part 1.

My second Ludum Dare year

April 17th, 2009 was the start of Ludum Dare #14. The theme, Advancing Wall of Doom, was announced while I was out at a party for way too long, which meant I got a late start.

I remember thinking about something along the lines of Rampart, and eventually settled on a design in which you are trying to capture resources with your walls while preventing your opponent from stealing them. I had some neat design ideas and concepts, but almost no code after the first 24 hours. Oof.

Back then, Ludum Dare had medals for each category, and not only can your game be ranked, but the fun side competitions were the Community and Food compos. I got gold for my food pictures, and it was the only reason I submitted anything, because when the deadline hit, I had nothing else to show for the weekend but a button you could click.

Screenshot-Walled Off by GBGames

Since I was writing everything from scratch, and my previous attempts had either keyboard input or paid attention only to mouse movement, I learned how hard simple GUI elements such as buttons were to implement. It turned out that they have a lot going on under the hood.

I really wish I had written a post-mortem for this failure, too. I think it would have been insightful today.

That year’s August, Caverns was the theme for Ludum Dare #15. I had a good idea right away, and I ran with it.

Prototype Update

I took advantage of some new prototyping lessons I learned from Ian Schreiber’s free Game Design Concepts course, and I think I was able to put those lessons to good use. The final game had a lot of help getting finished because I spent some time figuring things out with paper and wooden pieces.

CavernGameFinal

My Mineral Miner post-mortem shows that rapid prototyping works well, and writing good, non-buggy code would help too. Graphics and sound are great for polish, but a lot can be done with terrible placeholder art. I also need to work on my pacing so I’m not wasting time figuring out what to do at any given moment. With only 48 hours, every minute counts. Even though I took in a soccer game and still managed to get a game finished, I could probably have used those few hours to make things better. I would try to make sure my calendar was blocked for for Ludum Dare weekends from then on.

Full-time Indie Game Jam

I missed Ludum Dare #16 and #17, but Ludum Dare #18 was a special one in my heart. It was the first one I participated in as a full-time indie game developer. In 2010, I had quit my job earlier that summer to be an independent game developer, but I had no dream game I was trying to make. When August came, I knew I was participating in Ludum Dare.

The theme was Enemies as Weapons, and I normally don’t like to think about the potential themes before it is announced, this one was standing out in my mind. I wanted to make a reverse Super Mario Bros in which you were Bowser sending Goombas and Koopa Troopas after the AI-controlled hero. I had just been learning a lot about game artificial intelligence, and this kind of project would be perfect for putting it into practice, except I would then also have to learn platformer physics.

So I changed the concept to a reverse Legend of Zelda, in which you were sending out minions to stop the hero from storming your castle and destroying you.

I spent some time coming up with other concepts before settling back on the reverse Legend of Zelda. My prototypes look very much like the end result.

More prototyping

Stop That Hero! is finished

I created a project backlog because I knew this project was going to be ambitious. I was making an epic game.

The game has a title!

As my Stop That Hero! post-mortem says, I missed the original 48-hour deadline, but luckily the 72-hour jam compo was introduced and so I used my Monday (because I was full-time indie and could use my days however I wanted) to finish the game.

I spent too long on the UI again, and I had to scale back on my ambitions, but I was very pleased with my casual strategy game. Unfortunately, the jam compo wasn’t very popular then, so not many people played or rated my game, but the October Challenge proposed by Mike Kasprzak was coming, and now I had a game I wanted to make. I made this game in 72 hours. What could I make in another month?

It turns out that it took me another year to make Stop That Hero! into a more fleshed out game. Oof.

Stop That Hero!

More Game Jams

I was a full-time indie by this point. I had all the time in the world to participate in game jams, but I also had to do work that brought in money. What did I do next in terms of game jams?

I’ll write about it next time.

Categories
Game Development Geek / Technical

My History with Game Jams #LDJam

If you want to be a game developer, you need to develop games.

And when I look back on what games I’ve made, I realize that most were originated during game jams. What follows is a trip down memory lane with links to my game jams of the past, complete with links to post-mortems. Those are hard-earned lessons learned from a game jam veteran, kids.

2005: Game in a Day

Garage Games used to host the 24-hour game jam Game in a Day. I participated in my only Game in a Day on June 10th, 2005. The GID theme was Fusion, and I came up with an ambitious design.

I’ve been warned by TomB in #gameinaday on irc.maxgaming.net that I really should pick something simple for my first GID. The fact that I feel I need a design means that it is too complicated. Perhaps he’s right, but we’ll see how I do.

It would be an ambitious design for me today to complete in a 48-hour game jam such as Ludum Dare. I was young and naive, I was not very knowledgeable about the programming language or the 3rd-party libraries I was using. I had no experience with pacing in game jams. Even so, it seems even this early I learned a lesson that would serve me well to remember:

About 10 hours later, I finally have the main character moving about the screen according to the arrow keys. He only moves in four directions, but I’m not going to draw up more images for diagonal movement this late in the GID. I’d rather spend my time getting the fusion part of the game going.

Smart move, Self from 10 years ago!

What I recall most vividly during this jam was an overwhelming sense of fear the likes of which I have never known before. Early in my 24 hours, I started worrying that I didn’t know what I was doing and wouldn’t be able to finish, and I felt like I should quit. Logically, I knew it made no sense, that if I stopped, then it was a self-fulfilling prophecy, but it was a cold, numbing feeling I couldn’t easily ignore. Fear is the mind-killer, the little death that brings total annihilation, and I was apparently facing it head-on for the first time in my life.

But I did it! My first game jam ended with a playable game, the creatively-named FuseGB. It does not resemble my design at all, but I pushed forward and managed to make a playable game in 24 hours.

I gained a lot from my Game in a Day participation, including first-hand experience I never had before that would serve me well.

2008: Ludum Dare

Three years later, I was getting ready to participate in Ludum Dare for the first time, back before it had a dedicated domain name.

LD11 Minimalist by GBGames

Even though I spent a lot of my precious development time trying to get basic infrastructure together, I had a finished game with six hours left to polish it up before the deadline. I purposefully picked a simple set of mechanics so I had the best chance of finishing. While today’s Ludum Dare competitions see thousands of entries, in 2008, there were 70. I earned my first LD trophies in this compo, including my prized “Amazing Pickle Sandwich” award from HybridMind and The “Thanks for Epilepsy” Award from keeyai.

You can read my Ludum Dare #11 post-mortem for Minamilist, which eventually became a slightly better game Walls and a short-lived Facebook game called Sea Friends. It even inspired Maximalist, a game by pansapiens I enjoyed.

Later that year in August, the 12th Ludum Dare compo started with the theme Tower with the optional theme of Owls. I had successfully submitted games to two game jams, so I went in quite confident. I was also dabbling in test-driven development at the time, and I thought that a timed competition was the perfect time to practice my TDD skills.

Ludum Dare #12 was the birth of the ridiculously obtuse Towlr games, but I managed to submit what amounted to a tech demo. It had an owl, and a lot of people were inspired by my user interface. I got “The Palm Of RSI Prevention” trophy from Hamumu for it.

Tower Defender Game Play

But it wasn’t a complete game, and in fact it had bizarre bugs, such as the enemies climbing up the tower into the sky and getting stuck. As you can see, apparently I thought this bug was a good thing to show in the screenshot.

There was no way to lose, and no way to win. According to my Ludum Dare #12 post-mortem for Tower Defender, I wrestled with technology more than with game development, something I still struggle with because I insist on doing everything from scratch instead of using existing tech.

Months later, coinciding with the Winter Olympics, Ludum Dare #13’s theme was Roads, and early on I had a concept that I saw to completion.

Road Lockdown design

These design notes eventually turned into these guys:
Road Lockdown

driving around in this game, Road LOCKDOWN!:
The final screenshot

I find this odd, but somehow I never wrote a post-mortem for this game jam. The final entry post and development time lapse don’t really say much about what happened, but I recall getting the game finished and submitted at the very last minute, getting “The Photo Finish” trophy from Doches. The game earned me The “I Can’t Get You Because You’re In The Bike Lane” Excuse trophy from demonpants, poking fun at how you have limited controls available to steer only at intersections so your squad car and the criminal’s car can be driving towards each other but in different lanes of traffic.

But the important thing is that I finished a playable and complete game again. That’s 3-ish out of 4 game jams, and that ain’t bad!

More Game Jams to Come

Thanks for reminiscing with me. Rereading my old posts reminds me of how far I’ve come.

Soon I’ll write up what happened in the next year and beyond!

Categories
Games

People Play Games in Ways We May Not Anticipate

Sometime back I had recommended Spryfox’s Alphabear to a coworker.

Yesterday he told me that his children love the game. Apparently they get 30 minutes of screen time, and instead of coding, they now play the word game.

He told me that it is very educational, and his son especially seems to be expanding his vocabulary by randomly picking letters until the game accepts a word as an input.

Now, I’ll admit, especially on the timed levels, I have also picked random letters if I’ve been stuck, but here was someone using it as his main strategy. He doesn’t need to know many long words because the game allows him to explore what’s possible on his own.

Maybe a player takes a strategy game and continually pauses it to make tactical decisions, effectively turning a real-time game into a pseudo-turn-based one.

Perhaps someone figures out how to use rockets to jump farther or higher in Marathon or does infinite bomb jumps in Super Metroid.

Or in this case, instead of someone using their extensive knowledge of obscure words to play a word game, they let the game teach them some.