LD27 August 23–26, 2013

O

Hello everyone ! We did a little video that introduce our game, here it is :

We’d really like to know your opinion about it, we’re two french students who love making games, it was our first Ludum Dare.

You can play the game on your navigator right here :

http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&uid=27111

Thank you for your feedbacks !

 

Thanksgiving Hero post-mortem

So the Friday night that LD started, I texted my husband to let him know I was headed home from work, and he tells me he’s busy with Ludum Dare so would I please take care of dinner? Which baffles me because I thought he was way too busy to do Ludum Dare this time around, but what do I know, right? Well, his enthusiasm was contagious, I guess, because half an hour later I was busy coming up with ideas for what game I could make with my extremely limited game-making skills.

From the beginning I wanted to approach the theme by defining “10 seconds” as something other than a time limit. I also knew that whatever I came up with, it’d have to be something I could implement in RPG Maker because I know absolutely nothing about programming. It wasn’t until the next evening that I really got started, but by that point I had a pretty solid idea and was fairly sure I could pull it off before the jam deadline.

What went right
  • I finished a game! Really, this trumps everything else. I made a game almost entirely from scratch, it works, and it’s winnable. For a first game ever, that’s about all you can ask for, right?
  • I stuck to something I could do. My initial idea involved all sorts of dishes to eat and different endings depending on which ten second helpings the player chooses. It didn’t take long to realize that was way too complicated, both for the time limit and my skill, so I settled on a figure-out-the-right-order puzzle instead. From there out it came together pretty easily, except for a little hiccup at the last minute when I was figuring out how to get my sprites uploaded, but that’s for a different list!
  • I’m really happy with the music. It’s a Thanksgiving themed game, so I created a little melody based off of a traditional Thanksgiving hymn, and then near the end when I decided I had time for winning an losing sound effects, I played off that with church-organ-sounding “Amen” chords in major and minor keys. Apparently people find the losing music hilarious, which I never would have expected, but I’m really glad it turned out that way!
  • Spriting isn’t as hard as I thought. Once I got started, making all those little food sprites was really pretty easy. Of course I pretty much ignored perspective and shading and anything that makes sprites good, but the fact that you can tell what the food is supposed to be – sometimes even without reading the description first! – makes me very happy. I was dreading doing an animated character sprite, and I joked to my husband that maybe instead of a little pilgrim guy I’d cheat and draw just a hat, which he thought was awesome. The hat bouncing around when you move is now my favorite thing.
What went wrong
  • Tiny things. Honestly, I don’t have much for this list. I had to learn how to make an RPG Maker game not look exactly like a stock RPG Maker game, but I bravely delved into code I didn’t know anything about and figured that out. I could make better title and ending screens with more time, but I’m not displeased with what I have. I had some trouble importing my sprites and get the transparencies working correctly, but I stayed up too late and eventually got it right.
  • Managing to post something people could actually play. The biggest trouble I had was not in making the game, but in getting it posted with all the relevant bits at a reasonable filesize. I originally compressed the game data without the RTP, which it turns out you need if you don’t have RPG Maker installed. So then I compressed it with the RTP, which made a 6MB file into a 297MB file, which was clearly less than ideal. So then after a good deal of digging around and error messages I managed to include just those parts of the RTP that I needed to make the game run and get a new file uploaded. Then even later I figured out how to upload a .zip that contained all the needed stuff so people could bypass the extractor. All of which was a pain but taught me there’s a lot more to putting a game out there past just making the game!

Overall, I’m really glad I decided to jump in and give this a try. Not only did I get a game done that I’m pleased with, but so many of you nice people played it and left encouraging feedback! I was really quite taken aback by how many people left comments saying they liked my stupid little game and how good it was for a first-timer. So thank you! You have convinced me to keep working at it, to improve and expand this one and to do Ludum Dare again in the future!

Sleep Well: post-jam version

Hey people!

I just uploaded an improved version of Sleep Well on GameJolt. It contains controls improvements, better game balancing, UI enhancements and better in-game instructions.

Here’s the link, hope you all enjoy it:
http://gamejolt.com/games/arcade/sleep-well/17449/

Also, I wrote a post on my website about how was participating for the first time in Ludum Dare (spoiler: it is great!). You can read it here: http://bassarisse.com/2013/09/07/the-ludum-dare-experience/

Well, I wouldn’t do this update if it wasn’t for the feedback I received. I would like to thank everyone that played my game, I really appreciate it!

Timey Wimey Stuff – Apotheosis Post Mortem

player_1

 

sad

Reaction to the theme

When I woke up on day 1, the theme I most feared would win had won. “10 seconds”?! Too specific. .. Urgh. On the other hand, that’s how I always react, I remembered.

This post mortem was written a little late, and pretty hastily. I filled it with as many pictures as I could, so that you’ll have something to look at while enduring the ramblings.

Based on my previous entries, I was determined on a couple of things (do not regard this as general advice or anything):

  • Keep the scope clean and simple, center around one core game mechanic.
    I do not consider myself a good game designer. I’ve been programming for longer than I’ve been “properly” designing and evaluating gameplay. Thus, the lure of writing “cool code” is always there and gets in the way of making a fun game.
  • Make it 2D.
    All of my previous entries were in 3D. I love programming 3D game logic. But 3D does add complexity in every stage of development. And I always spend too much time in Blender, modeling, animating and UV-mapping(I also wasn’t really keen on pursuing the minimalism angle again).
  • Make use of the freshest gamedev knowledge in your brain.
    During the summer I’ve been working on a 3D platformer, so all the platformer specific stuff was right there in my brain, unboxed and ready to be picked. I only needed to remove one dimension(and a boatload of quaternion math). Simplify, simplify!
  • Make the game longer than 10 seconds.
apotheosis gameplay

Rewind, Replay

Brainstorming

I regret waiting this long for writing a post mortem. I’ve forgotten a lot of my brainstormed ideas. There was something with duels and seconds, but I never could center a fun gameplay mechanic around it. Later on I’ve seen several games using this interpretation, which is awesome!

There were also some clock ideas, with collecting the second marks of a clock as well as some idea of just making some arbitrary collectibles and refer to them as seconds(ugh).

 

Screenshot of the finished game

 

Braid+Mario Bros

After some thinking I wondered if I could do something cool with a rewinding ability. There are of course a lot of games already with this kind of functionality(Blinx, Braid, Ratchet & Clank, Super Time Force, to mention a few). I also wanted to keep the scope simple and by adding time rewinding (and possibly splitting timelines and paradoxes and gigawatts and what have you) I could risk ending up with something very bloated,unpolished and confusing.

So I thought about the very first Mario Bros and its single screen layout, and decided to make something similar to that.

Classic

Classic

 

What I ended up with in the end is a game in which you have to defend a fragile artifact from invading monsters as well as guide said artifact to a vortex in the sky. To elevate the artifact you have to rewind time (let’s call it a time defying magical artifact, mmkay?). Rewinding time also let’s you try that rewinded section of time again while your “old self” replays itself. Easy peasy.

 

I later realized, to my horror, during a debug session, that this was very much like the – what I thought at the time – super confusing shadow levels in Braid. I think I should go back and replay them, maybe I’ve learnt something.

Oh, and also, you can rewind a maximum of 10 seconds into the past and you have to wait the rewinded amount of seconds for the rewind functionality to reload. Which is a little too similar to what ended up being the premise of the very last episode of Futurama. Cool. Creepy.

Oh, and lasers.

Lasers.

Lasers.

Step one, global timer + rewind

My choice of working environment was my classic Unity setup. So the very first thing I set out to do was to make a rewindable replacement for the Unity engine’s time stuff.

It was easy but fun, and I wasted a couple of minutes just watching the seconds ping-pong back and forth. The simple pleasures.

 

Step two, transform buffer

The second step was to make some kind of buffer system for Unity’s transform component. With a 10 second restriction I could skip a lot of general stuff and make it explicitly for only 10 seconds. This buffer is read from while rewinding and replaying, and written to while playing. It was pretty cool the first time I saw it in motion. Ping-pong, ping-pong! xD

 

Step three, thumbnailing of level

Another thing I didn’t want to do this time around was to shove all of the art creation onto the last day. I wanted some pretty stuff in the game asap! As I didn’t really know what I wanted, I began by sketching out some rough thumbnails.

 

Thumbnail painting of level layout

Thumbnail painting of level layout

songs

My main source of inspiration for the art was the book cover of the awesome novel by Arthur C. Clarke: “The songs of distant earth”. Which is also the inspiration for the awesome album by Mike Oldfield going by the same name.

Another source of inspiration was the beautiful grass-, wood- and dirt art in Rayman Origins. Such a pretty game. Also, I wanted to add some red hues in all that green.

Rigidbody-based Player controller

After having drawn for a while I got the urge to program some more. I began implementing the player controller. The already existing rigidbody system in Unity is pretty neat, and you can get some really nice results when using it for player controllers instead of the built-in “character controller”-body. And you don’t have to worry about collision bugs and explicit collision events later on. The workings of this was also fresh in my memory from just having implemented similar stuff in 3D, so its implementation went pretty smooth.

After I had it working I hooked the player object up to the time buffer component from before and added some state handling to switch off input and so on during replay.

 

Level

I then went back to working on the level. I began by blocking out all the platforms(based on the layout in the thumbnail), and then I began working on the final art for the platforms. I made several separate chunks with grass and rock formations which I could build up the level of.

 

Timelapse of painting level parts

Timelapse of painting level parts

Then I got determined on making a sprite shader with lightmaps and other stuff. Big mistake. I got completely stuck with some of Unity’s weird sorting behaviours and spent too much time reading confused forum entries and lackluster documentation. I abandoned the idea after a couple of hours, and went for a simpler and built-in shader. By then my mood was at rock-bottom, but luckily this was the only real bump in the road this time around.

 

More work on the player

I then shifted my focus back to the player character. Based on the time I had left and not really determined on the art direction I wanted for the characters, I decided to make the player low-res and in black and white.

Timelapse of drawing player sprite

Timelapse of drawing player sprite

I figured the most importart part was to have the silhouettes there and if I got time to spare I could colour the characters. As I never got that time however, I’ve gotten some critique of the kind of mish-mashed art style I ended up with. And I understand that critique. One could counter with that the mixture of monochrome characters and coloured landscapes are “cool”. However, as it wasn’t my intention to make it that way, the result does not feel intentional, uniform or polished.

 

Implemented duplication of player on rewind completion

Another fun challenge was implementing the “duplication” effect after the player has performed a rewind. In the first iterations I got some hilarious recursion bugs filling the screen with player objects and crashing the game in milliseconds. 😀

When I had all that sorted out, the game looked like this:

Progress after day one

Progress after day one

 

Music

After I felt that the player controller and rewind-stuff was solid enough and the roadmap of permuting objects and components into the remaining game elements felt clear enough, I began working on the music.

Apotheosis music (Soundcloud)

Figure music creation app

Figure music creation app

Prior to the compo I had discovered a pretty neat music app for iOS with simple controls(perfect for a tone deaf audio noob like myself) but with enough depth to make relatively unique samples.

It’s called “Figure” and I really recommend it if you want to make some simple loops or just play around. I used Bfxr to make sound effects, I had planned to record some as well, but by the time I got around to start making sound effects I didn’t feel like I had enough time to spend on recording and editing. Maybe next time I’ll do it as (based on the critique I’ve received on my entries so far) bleep-bloop effects aren’t too well received in non-pixely games. And I can see why they might feel a little out of place.

 

Finale

The last ten hours went by in a blur as usual and this time they involved GUI, particles, sprite animation, a rewindable animation system, enemies with their own animation, some super quick copypaste-magic for enemy AI as well as end-game conditions.

This is a video of the resulting gameplay:

 

And a timelapse video based on the stream data:

 

Feedback and post-compo

I was stunned by all the great feedback I received this time around! Thank you all once again!

I got a lot of response of the gameplay itself, which spurred me to add some more depth to it. And I found out that when you understood the core concept of the game, the powers of the player didn’t make much sense anymore and the game could be beaten with a one second hi-score without any effort. 😛

So in the current post compo version I’ve changed some of the enemy spawning behaviour, added extra difficulty levels and added a rewind punishment when touching enemies(instead of being invulnerable). I’ve also made some changes to the weapon, making it less effective when rewinding far, and more effective the longer you do not rewind(adding some more depth and ways to strategize).

I’m still open for more feedback though, so you’re welcome to try the post compo version if you’ve rated the original!

player_0

Good

  • Prepared.
    I had bought all the food and snacks and made all the errands and downloaded all the tools beforehand. Development went smooth.
  • Location.
    Went to a friend that was also participating and worked there. A lot more fun when you’re more than one. Also, it was a bigger apartment with more shade, haha.
  • Scope.
    Kept it simple. One core mechanic, and a pair of sub gameplay mechanics. Kept the code and art modular, but didn’t overdo it. Ugly code? Yes. Who cares.
  • Bugs.
    Very few of them. One nasty shader ordeal, threw it away.

 

Bad

  • Game logic depth.
    Some of the gameplay aspects confused me, so I didn’t catch some pretty large flaws. Fixed some for post compo. I want to allocate more time for game testing next time around.
  • Stream.
    First time I streamed, I got some positive feedback on the music I played. But other than that I guess my showmanship is pretty lacking, as I had a maximum of five visitors at a time. Maybe I should post more links to the stream next time? I don’t really know.
  • Controls.
    I think almost everyone was confused by the control scheme and the aiming system. I’ve reworked it in the post compo version, but I’m pretty sure what many wanted was soldat-like aiming, which I’ll never add. 😛
  • Mixed art styles.
    I would have liked to allocate more time for creating prettier character sprites more in tune with the environment.

 

Another screenshot

 

Conclusion

All in all, I had a blast making this game and it has better gameplay than my previous entries in my opinion. However, the core gameplay turned out to be yet another cool-code trap sorta. I did not pour hours upon hours on getting it to work though. Making some neat art during day 1 instead of postponing created a great morale boost. Making a 2D game made it easier to create polished art in the style that I’m most fond of, and I got more content done in the 48 hour timeframe.

K.I.S.S. F.F.S. !

player_1Entry pageplayer_1

 

Tags: 10 seconds, apotheosis, post-mortem, postmortem, rewind, time travel, timelapse

Hello!
So LD48 Compo – 27 ended quiet long ago and I finally decided to post few videos of (hopefully) funny bugs!
The Compo was great, it was first time for me and I loved it, totally going to join more!

If you’d like to check out my game, here it is: CLICK!

Click here for video 1.

Click here for video 2.

Videos use music from incompetech.com by Kevin MacLeod! (He’s amazing!)

Thanks for reading and watching,
RedPanda

P.S. Sorry for bad English, I’m not a native speaker.
P.P.S. How do I embed YouTube videos?

Logic Bomb Post-Mortem now on Android!

intro endless

Just also released the post-mortem version of my entry Logic Bomb in Google’s Play Store! Grab it while it’s still hot:

Get Logic Bomb on google play

I did many changes especially to the level generator – the levels are now a lot more challenging. I also added a tutorial for people that are not so familiar with bomb defusion and logic gates 😉

Here is the original LD#48 entry: Logic Bomb

 

 

Tags: android, bomb, logic, post-mortem, puzzle

Turn Fighter Foo – post compo version

After the ludum 27 48 hour compo, I continued to develop Turn Fighter Foo in order to bring out a version that is closer to what I had imagined.

So whats new?

The first major thing (not visible though) is that the code base has been ported from Flixel with Actionscript/Flash to HaxeFlixel  with Haxe/OpenFL. Doing this has the advantage of being able to port it to other platforms natively. Expect something like gamepad support on desktop or a mobile version sometime in the future!

Improved graphics/music

There are a few new hit animations for the fighters as well as new animations for the new moves that they can perform. The background has been spruced up a little to make it less bland and some background music thrown in to accompany the fighting. Here is an example of what to expect:

tffpostcompo

Improved gameplay

The first major change is a rebalancing of the play matrix for moves. You might have noticed that kick is probably the most overpowered move in the 48hr compo version. I’ve tried to create a version where there is always a counter to any move. For example, kick is now countered by the low sweep like the picture above shows. And air attacks can now be countered by a new uppercut move. The play matrix is still not perfect but it is far better than the 48 hr compo version. Along with the new normal moves, there are also a couple of special moves that I’ve added which were inspired (aka ripped off) from most fighting games. The first is a ranged fireball attack and a move called the phoenix punch which kinda resembles a dragon punch (very original I know! 😛 ). Have a look at the moves list below for how to execute the new moves. More special moves to come in future versions hopefully.

The post compo version now has several options that can be customised such as the ability to hide your inputs from your opponent, increasing/decreasing the number of inputs per turn and changing the turn timer duration (or have unlimited time). The last option enables Turn Fighter FOO to be played in Ippon scoring mode which means that a turn ends as soon as one fighter performs a decisive blow on the opponent scoring one point. The decisive blow occurs when one fighter performs a move that naturally counters the opposing fighter’s current move, thus getting the hit. Score three points and the match is over.

tff_menuoptions

Last but not least, I’ve added an AI player for those that do not have anyone to play with. Yes, there is now a single player mode! The AI is not great but it should be enough to get a flavor of what the game is all about. I’ve gotten feedback regarding my compo version about how some players didn’t have a partner to play with so this one is for those players! :)

The post compo version of Turn Fighter Foo may be found (along with the original version) at my ludum 27 entry page here.

New Moves list

  • Upper cut – down, punch
  • Low sweep – down, kick
  • Jump punch – up, right, punch (if facing right)
  • Fireball – down, right, punch  (if facing right)
  • Phoenix punch – right, down, right, punch (if facing right)
  • Duck – down
  • Idle has been removed as an input. Use block instead.
  • Controls for player 1 has changed to w,a,s,d for up,left, down,right and j,k,l,n for punch, kick, block, clear move list.
  • Addition of new ready button for the unlimited time match. When both players hit the ready button, then the turn plays out. Player1 ready – space, Player2 ready – end.

Tags: 8bit, beat-em-up, fighting, journal, post-48h, post-compo, postcompo, turn-based

LD26 postcompo #2: XY Cannon, first gameplay video

Yes, you read the right, LD26.  I’m still not finished with that one.  The original was called Axis Invaders (actually inspired by the Jeff Minter game Laserzone) and was created in 135 minutes.  In this shooter you control two cannons at once, and you need both of them to destroy the enemies. I completely remade it.  It took weeks, and I learned OpenGL ES 2.0. It was great fun playing around with shaders, and I really enjoyed using shadertoy to create fragment shaders (although that website can lock up your computer, be warned!).

I call the game XY Cannon.  It will be released on Ouya and Android.  This is my first Ouya game, my second game with music in it (not my own!), and my first game in OpenGL ES, so I’m really excited to get this out of the door.  Here is a gameplay video of the work in progress being played on a cheap tablet.  It’s not a very good video yet.  It’s unedited and the video quality sucks.  I’ll spend more time on a better video when the game is finished.

 

Comments

08. Sep 2013 · 10:48 UTC
Crazy cool aesthetic!

10SecTD Postmortem

Play Here

Screen_F_01

 

Tools Used:

Flash
FlashDevelop
Audacity

 

Summary:

This was definitely not my first games jam game, in fact i’ve done quite a few including but not limited to: Global Games Jam, Brains Eden, GameHack and more. However, this is my first games jam that i participated in alone, if you don’t include the NanoLD which was only 48 minutes long! I’m a designer by day and at jams I only usually do design and code, this time i enjoyed getting my hands dirty with the art side of things. I also had some fun editing foley sounds in audacity which i haven’t done since my first year in University! 

 

 

What Went Well:

  • Fast Pace: I have had a fair bit of good feedback relating to the pace. The objective i set myself was to create a fast paced turret defense game, i’m pretty happy with the pace.
  • Art: I haven’t really done much art in the past so it was nice to try my hand at it, i’ve had some pretty positive feedback relating to it too. I’m happy with how it fits with the style of the game.
  • Length: The length of the game is over 5 minutes (assuming you reach the end). I aimed to make a game that it was easy to fill with content once I had a solid base to work with.
  • Theme: Initially i really struggled to come up with an idea for the theme but overall i’m very happy with how it relates to the theme and i think it’s pretty clear.
  • Strategy: I wanted to make a game where players had to think about their actions. I think so far there is a basic necessity for planning, but this definitely relates to the balancing and it needs some improvement.
What Didn’t Go So Well:
  • Balancing: The game is very unbalanced at the moment, I struggled to find time near the end to balance the game so there’s a lot of issues relating to the difficulty curve.
  • Estimation: I was constantly battling with issues relating to the turrets and enemies. I’ve never made a tower defense game and i definitely underestimated a few of the aspects.
  • Time Management: I wasn’t able to start until a good 12-13 hours after the theme was announced, it was 2 in the morning when it was announced and i was otherwise occupied in the morning. I also had work early Monday which meant making sure i had a reasonable sleeping pattern unlike previous jams I’ve attended! This meant that I didn’t get as long to work on the game as i’d like.
  • Originality: This definitely wasn’t an overly innovative idea, even though i got to try some new things and i really enjoyed the jam i think i’d like to try something a little different next time.

Thanks everyone for the delightful feedback, i’ve really enjoyed Ludum Dare and am looking forward to the next one already :-)

Shameless plug: There’s a few in-dev screenshots on my new blog here.

Jamming with OpenFL

Time for our post-mortem :)

I won’t re-introduce the team, you can go to our “we’re in” post for that. Basically there were 3 of us and we’re pretty awesome!

So what happened?

Well, we made a time-bending tower-defence game called “10 Second Onslaught”. It’s about an onslaught you see, and the onslaught in question lasts 10 seconds:

10 second onslaught awesome

The game wasn’t really “finished” after 72 hours even though it’s completely playable. I’m actually glad we were over-ambitious though: it’s a good beginning and something I’m still working on (in a separate branch of course 😉 )

What went well?

The art pipline was probably the one thing that went particularly well. Thomas is really a 3D artist, so soon reverted back from pixel art to making models and rendering them to bitmaps. To speed things up I wrote a couple of little ImageMagick scripts to mirror and then stick these images together into sheets. Then it was just a matter of using the haxelib spritesheet to have animated characters in the game :)

What went badly?

For various reasons, mostly the technology (OpenFL) being something only I had ever used before, I ended up writing a majority of the code, which is just stupid. Next time we’re going to have to organise ourselves better.

Read on for a rather long discussion of OpenFL, including comparisons to Unity 3D and Löve 2D…

OpenFL

Our company NaturalPad uses Unity for most of our game projects – here we wanted to try something a bit different: “OpenFL”. There’s some degree of patriotism involved as Haxe and Motion Twin are both French. I’m not actually French myself, but that doesn’t stop me from being patriotic about croissants and stuff. Anyway you might remember OpenFL (called “NME” until very recently) from such games as Papers Please and Rymdkapsel.

I’m told OpenFL resembles Flash, but I’ve never used Flash so I wouldn’t know. Unfortunately developers seem to assume that anyone using OpenFL is already familiar with Flash, so their documentation isn’t as complete as it really should be. To be fair Joshua Granick is always on hand to reply to questions if you ask and, all told, this is my only real qualm with the framework so far. Well, that and the fact that installing it on a non-Ubuntu Linux is a serious pain… We started off using Doom-guy and Zergling sprites

We started off using Doom-guy and Zergling sprites as place-holders.

OpenFL vs. Unity 3D

OpenFL resembles Unity 3D in some senses: its tree-like draw-list structure for instance very much resembles Unity’s transforms. As a result scenes are constructed in the same sort of way, by linking up nodes to parents to form a hierarchy. That being said Unity is a game engine while OpenFL is just a framework for cross-platform multimedia applications. There are some OpenFL-based game engines out there, HaxeFlixel for example.

While I was happy to be using something lighter and less proprietary there were certain things I missed. Notably:

These two combined in C# make it absurdly each to find scripts and objects on the fly, something that is often central to game logic. After all, I will often want to find:

  • “all the trees within 500 pixels of the player character.”
  • “the number of enemies with full health.”
  • “the ally with a bazooka with the most ammunition.”

These queries, in Unity C#, would look something like this:

root.gameObject.GetComponentsInChildren<Tree>().Where(t => Vector3.distance(t.transform.position, transform.position) < 500);
root.gameObject.GetComponentsInChildren<Enemy>().Where(e => e.health == 100);
root.gameObject.GetComponentsInChildren<Ally>().Where(a => a.gunType == GunType.Bazooka).MaxBy(a => a.ammunition);
You’ll note that I use root objects as folders and nearly always have a root object called “Root” from which all objects inherit.

In Haxe functions are first-class citizens and so can be passed to queries unlike, say, in Java. However I just couldn’t manage to get Haxe’s templates working. Thankfully I’m wise enough now to know when something isn’t working and to move on to other things, especially during a jam. Even a good few hours were wasted trying to build a nice API for game object queries.

Next up: starcraft Command Center and dancing banana sprites

At 3:00am it seemed logical to replace the Zerglings with dancing bananas. I also added some cool music for the rest of the team to wake up to.

OpenFL vs. Löve 2D

I was able to teach my team to use “Löve 2D” only a few weeks after starting to use it, and Lua, myself. That said Löve 2D is famous for being absurdly simple to use. Want to draw something for example?

love.graphics.draw(thing, 0, 0);

Even though I’d already finished one simple game using OpenFL (or rather NME) I think the framework is just a lot more complicated than Löve. You’re not telling the machine when and where to draw, rather you’re build and maintaining the elaborate draw-list tree structure. I also had a real person teaching me Löve rather than figuring it out myself, and Löve has far better documentation.

All this combined to make it very difficult for me to delegate tasks to the novice programmer on our team. I didn’t really know what I was doing myself! As a result he wasn’t able to make a particularly meaningful contribution to the project, which I’m not terribly happy about.

Most of the sprites in the game, though the colony sprite is still missing

We didn’t want to go with generic insectoid aliens for the monsters, so instead they were based on Wig-wigs… with huge eyebrows. Apparently the eyebrows were based on mine. Not sure how I feel about that.

 

OpenFL vs. user interfaces

Speaking of not knowing what you’re doing: it was brought home to me with this project that I haven’t done enough interface-heavy game to know how to properly structure interface code. Generally-speaking my games have been sprite-heavy with plenty of AI and collision code, but the controls have tended to be direct mappings from a keyboard or gamepad to an action in the game.

Here we wanted a game that could be ported to mobile devices, so it needed to work with an extreme economy of input:

  • touch
  • drag
  • release
Here's what the game looks like now!

Here’s what the game looks like now!

That said the player needs to be able to do a lot of things:

  • buy and place units
    • choose unit type
    • choose positions in space
    • choose position in time
  • modify previous unit placement
    • move through space
    • move through time
    • “sell” unit
  • start the onslaught
  • stop the onslaught

One of the advantages of OpenFL is that it is extremely good for exactly this kind of user interface. As mentioned before however, I wasn’t necessarily experienced enough with it to make the most of it.

Some of these interactions ended up being coded using static buttons but a lot of it was contextual menus. Because I’m not very experienced doing this kind of code the result was a bunch of tangled events and callbacks roped randomly through the code-base.

I’m not altogether sure how one “should” structure interface code for it to be “clean”, but it’s certainly not the way we structured ours!

Tags: C sharp, C++, CSharp, flash, Flixel, haXe, HaXeFlixel, lambda, Linq, montpellier, motion twin, natoine, NaturalPad, nme, npui, openfl, post-mortem, taw, unity, Unity 3D, wilbefast

Comments

11. Sep 2013 · 16:06 UTC
Thanks for the insights. I’m still thinking about using Haxe/OpenFL for a smaller project, so this was useful.

The LDT* Wars

Fight the Urge Postmortem

2013-08-28 21_49_25-TitleScreen

 

My Entry: http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&uid=25189

What went Right:

Theme/Humor:  I felt pretty good about how I used the theme.  I was happy I was able to make a game that fit the theme without any violence at all.  Its the first game I had ever made that didn’t hinge on hurting other people and it was a personal goal to do just that for this compo.  Also so far I think the humor and tone have been connecting with people.  This is especially satisfying since there isn’t any audio of any kind and I was pretty sure the humor would fall really flat without that extra polish.

Practice: I completed a few practice games in the weeks leading up to LD.  All the games were fairly basic and throwaway quality but they were very effective at getting familiar with the basics of Impact.  The impact framework is pretty easy to use but if I had gone in blind I’m sure I would have ended with half my current game.

Brainstorming: I was driving home when the 10 second theme was announced.  I wasn’t going to be able to get to my computer for at least the next 3 hours.  At first this felt like valuable time wasted but in retrospect it allowed me the time to thoroughly brainstorm.  Instead of hoping on my first idea I was able to throw away a number of weaker designs before I ended up settling on the find the bathroom concept.

Abandoning Perfection:  Doing the 1 man compo I knew that I would have to work fast and sloppier than I am usually comfortable with.  That alone is part of what makes these events so great, being forced to push through all your inevitable problems.  I had done a few jams before but this was my first LD and my first solo competition.  I made a conscience effort to not get too hung up on making everything perfect.  There is a really obvious bug in the game where the waiters will get twitchy while pathing.  I could have fixed this by implementing A* pathfinding but it would have taken a good chunk of time since I hadn’t done any pathfinding logic from scratch in years.  I decided to live with the bug and focus on other parts of the game.  It kind of sucked to leave something broken but it was the right decision in the end.

GameOverScreen

 

What went Wrong:

Time Management: Usually I jam when my family goes out of town.  My wife will take my son to visit his grandparents and I’ll take advantage of 48 hours of single living to learn a new programming language and bust something out.  This was the first time I had tried to Jam while maintaining a semblance of normal family life.  What this meant is that I tried to do all my normal daytime family activities and jam late into the night.  Overall it worked but on Sunday I had to escape to the bedroom and work for a solid 6 hours while my son was awake.  Not a huge problem and it was very understood but it is something I’ll remember next time when scheduling my time.

Asset Creation:  I am not an artist…but I tried to do a bunch of art.  I spent many hours one night pixeling out the restaurant and all the different characters.  Overall I’m pretty happy with how it looks but I know that a more experienced artist could have done something far better with a fraction of the time.  One of my main goals before the December LD is to re-pixel this game and try to take my art skills to the next level.

I also had a plan to make my own music and sfx.  I even recorded a bunch of ambient conversation that I had begun splicing together for background noise.  Unfortunately none of that was able to make it into the final game.

Only 2 levels:  The initial plan was for 20 levels that would randomly be presented to the player.  Since all of these levels were to use the same art assets that seemed totally doable.  It turns out just building a level in Weltmeister (impacts level editor) and adding all the necessary level markup took about 30 minutes per level.  I added the second level about an hour before the submission deadline.

What I Learned

Oh man, so much.  It was a really great experience.  I have made a lot of games but I’ve never made a game entirely on my own in such a short amount of time.  I found the dev process incredibly freeing since the idea of creating something perfect was impossible.  I was able to just try out ideas and not worry too much about the consequences.

So far the feedback on the game has been positive, with people pointing out a lot of the faults I see in the game.  That has been very reassuring and gives me the encouragement to take this game a little further and polish it up for a more full featured free release

Awesome Wolf (with a fork) – late post-mortem

In the middle of moving, I still do not have internet until the end of this Ludum. I can not vote, but I take advantage of my presence at the university to make a small post mortem.

My goals were:
-Find a basic concept easy (this point has failed me at the last ludum dare).
-Draw friendly graphics.
-Finish the basic prototype to eventually add more content then.

In my opinion, I succeeded these goals, but I didn’t had time to add more interesting elements of gameplay.

I think I have two points to improve.
First, I started from scratch. I missed code bases and experience to save time on programming basics. Next time I would use libraries and surely some basic code required in any project.
Second, I spent too much time on the graphics. I’m not a designer, so making good drawings was really time consuming. I loved invest my time in the drawing, so I want to continue this. I must learn to get to the point, not wasting my time on details, and better control my environment.

Anyway, I loved this first effective participation and I’ll do it again without hesitation.Through this Ludum Dare,  I hope to come back stronger and better prepared for the next.

See you next time :)

Streaming Production On Our Dungeon Crawler MMORPG!

Hey Everyone,

Gonna be streaming some work on our Dungeon Crawler MMORPG. If you’d like to stop by, here: twitch.tv/0creds

Hope To See You All There,

– 0Creds

Worst Gnome at the Factory: Post-Postmortem

The final look of the game. Can you tell which panel affects which dials? Most people can't.

The final look of the game. Can you tell which panel affects which dials? Most people can’t.

One of the things I said I thought I did well in my postmortem was the user interface. After that, though N0_Named_Guy did a video review for me and then feedback started coming in on the entry page itself on top of that and told me I was wrong. It wasn’t terrible, and it was certainly better by the end than by the beginning, but it wasn’t good enough.

The real problem, I think, was that I didn’t get enough testers. I should have pulled in new testers when I thought I was done, people who hadn’t seen the game at all yet. Without realizing it, I had the same people play the new version, and their praise about how much better it was lulled me into a false sense of security. >_> Oops.

The original placeholder graphics.

The original placeholder graphics.

If you want to try it for yourself, go here. I recommend you actually read the wall of text at the beginning, even though that, too, was apparently a bad idea. I read other people’s walls of text, so it didn’t occur to me that most people wouldn’t.

I’m really happy with the idea and am working to flesh the game out. Once my code refactoring is complete and the bug is fixed, I’m going to start implementing the feedback I’ve been getting. Aside from improved understandability, balancing the game better, and adding more levels, I want to make it playable on touch devices.

Tags: postmortem

Is my game eligible for compo, and how to rate graphics & audio ?

So, here’s my LD27 game, EBDS : http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&uid=9406. This topic isn’t about my particular game tho : it’s just used as an exemple.

Lots of assets come from the Internet.

I made it in less in 48h. I was alone, I designed it myself and I coded it from scratch with Game Maker : Studio, so I logically put it in “Compo”.

However, I made my graphics assets by taking some CC0 pictures from Google Images (mostly redirecting to Wikimedia), and my sounds – except the music – come from the website freesound.org.

I reworked both so they could fit in the game (color mask and filters for graphics, various cuts and mix effects for sounds), but after some comments, I asked my self two things :

 

* As I didn’t actually CREATE (meaning : taking the original basis) most assets, is my game still eligible for Compo ?

* Which criteria could be used to rate graphics & audio ?

 

Maybe one of the issues here is the border between “from scratch” and “not creating anything”. Is the use of internet-assets in another category than the use of a game engine which you didn’t wholly create ? In the other hand, isn’t it the only way to “reward” people creating their own material over people barely copying ? Is this objective something to consider in the frame of the Ludum Dare ?

Discuss !

 

EDIT : Just a small note to clarify my intentions :) I don’t want to complain, to justify myself or to say why-I-should-be-in-compo. Maybe I shouldn’t at all, and I’m perfectly okey with Jam, plus I had a lot of fun to make the game, and this counts the most.

The idea is rather to discuss about the rules, which I’m not really sure to completly understand despite reading them, mostly this one :

“Photos and recordings you make of people or things are acceptable content, just you must acquire them during the competition.”

-> Does “acquire” imply “taking pictures by yourself”, or is “searching CC0 pictures in Google” acceptable ? This may sound like a rhetorical question to justify oneself’s mistakes, but I assure you this is not my intention. :)

EFTToED – Post Mortem

A short Post-Mortem on my third try at a Ludum Dare compo. I made 3 level long adventure-puzzle game called “Escape From The Temple of Eternal Dooom”.

Click to try out my game!

 

What went right:

  • Preparation / Tools  - I knew which tools (engine, media creation / generators) I wanted to use, and kept the weekend appointment-free.
  • Theme – While not as instantly-inspiring as some other themes, it was a bonanza compared to the last theme. (‘Minimalism’)
  • Sound - I am not a sound engineer, or even that musically inclined, but had good fun creating a simple but effective ‘dun dun duunnn’ background tune in SunVox, and recorded my first ever sound effects (footsteps and a whip sound). I did not have sound in my last LD game and that was a major flaw, so glad I improved there.
  • Humor - I like to be funny (or pretend to be), and I had a lot of hooks in my game to reference silly things and have fun with the theme. (a pseudo Indiana Jonesy setting, with a snarky hero)
  • Art - Inkscape has been a excellent tool for me in the past (drew fun detailed DnD location maps with it). It allows me to do a ‘simple but effective’ style that I can do a lot in with not much time. And scalable stuff rules!
  • Concept - Loved my base mechanics and concept (you plan your hero moves, each move costs time, and you only have 10 seconds to reach the next door, or be reset), I could easily expand into whatever I wanted.
  • Planning / Time Management - While not perfect, I stuck to my planning of having the ‘concept’ done on Saturday and polish on Sunday. ‘Polish’ here being ‘adding two levels’. But I did not spend too much time on unnecessary things, stopped trying to perfect ‘ok’ things, and moved on. Could still be improved, but hey, what can’t?

What went wrong:

  • Difficulty – Allowing the player to discover and slowly get into the mechanics of the game would have been best. But I started off rough (you really had to ‘get it’ all for the first level), and it kept at that difficulty level while introducing new elements. I fear that not many got to the end. More hints, more playing, gentler curve.
  • UI – Not necessarily the graphical part, but I was missing some functionality for the players. A ‘remove all actions’ button was oft-requested. Making it very clear that you can pause the game during move repeats would have been good too. Maybe add keyboard shortcuts.
  • Physics Not Pausing – I used Unity’s physics engine to do collapsible floor tiles for room 2 of the game, but due to a short-sighted ‘oh they will get past that if they try a few times’, the physics kept running during pause. That breaks a game rule I set up in Room 1, and makes it more difficult to boot.
  • Lighting - Not from my own experience, but people were complaining that it was too dark. I think it was an important part of the game to keep it really dark, and have light be a proper resource, but I fear that technically, the lighting might look different on peoples rigs. (environment, monitor, OS differences)

I really enjoyed making this LD entry, and I think the results are an improvement over my previous efforts. I am still quite enthusiastic about the premise and concept of the game, and am seriously considering turning it into a ‘real’ game project.

 

Tags: dooom, post-mortem