psychonull

LD28

Postmortem – mumps: fear of contagion (jam)

This is the first time we participate in a game jam, though we have been following ludum dare for a long time now. After a couple of weeks, it’s time to write a post-mortem about this great experience.

Play the game!

What went wrong:

Character movement
One thing that made its way into the final game, is a bug where the closest rotation angle for the people to reach an objective was incorrectly calculated. In some scenarios people would make a 358° spin just to face 2° to the left. It seemed to happen only sporadically, but it turned out to be very annoying. (we already fixed this in the post-compo version)
Other point is the player controls. Since movement controls are the only one availables in this game, we wanted to make them not the trivial “move with arrows or ASDW”. We wanted controls that could make you feel uncomfortable, sightly anxious. One movement at a time, you are not in control all the time. I think we got there, but sometimes the controls feel awkward, even frustrating.
We must rework it, and should be the most polished thing since it is central to the gameplay, but we are definitively not adding stuff such as pathfinding or any kind of ai assistance.

Level design / level editor:
In the middle of the development, we faced one of our biggest dilemmas: to build or not to build a level editor. We ended up not building the editor with the only purpose of not getting distracted by stuff that’s not essential.

We left the levels design for the last couple of hours. Time constrains + no editor = :(
We have one big json file per level, each one containing info about position, collisions, behaviors. Making all the pieces fit together resulted to be very tricky. Position trial and error, and after we got things as we wanted, we had to iterate trying to make it not so frustrating nor boring (no editor, trial and error again).

This is how a level config looks like. Not fun.

This is how a level config looks like. Not fun.

Result? Levels not properly balanced, and things like the chapter 3, with so many people getting stuck because there is no clue about what should be done next.

What went right:

ECS
We used our custom ECS microlibrary (no docs, it’s not finished). Having all the behavior decoupled, allowed us to make big changes really easy, and the code to feel more maintanable and robust.
For example, I can add the “contagionFocus” component to any object, and from there the object will infect near objects, whose once infected will also have the “contagionFocus” component.
The only drawback here might be that performance optimizations are a little bit harder, though for the jam we didn’t need to worry about that too much.
Tooling
We used webmake to have node-style requires, and jshint for static code analysis. Having everything orchestrated with grunt allowed us to have jshint watch any file changes, and throw an error if any issue was encountered. This reinforced best practices, but also saved us time by anticipating syntax errors or typos.
We were pretty familiar with the workflow / tools / language so it definitively made us go faster.
Rest & food
No crazy stuff. We ate healthy food mostly, and didn’t skip any lunch or dinner. We only had some beers after the first journey right before sleeping. We had a reasonable time of sleep, and that allowed us to make it through the sunday energetically.
Teamwork
We worked really well together. Our thoughts were mostly aligned, and we complemented each other very well in terms of skills.
Feedback
We are amazed with the quality and the power of the feedback received. Every negative remark was highly constructive.

Next steps:

We feel there is a big room for having fun developing this idea. And a big oportunity for learning and experiencing with some stuff we haven’t done before.

Iterate and polish what we already have: quirks and known bugs(player movement, collisions, AI), redesign and fine-tune the levels, improve the graphics, sounds, and UI in general.

New game modes. We thought about adding some game modes apart from the story mode (survival, infect others?, multiplayer?).

Procedurally generated levels

TL;DR

Happy new year everyone, see you next LD!

Tags: jam, javascript, postmortem

LD30

Daydream Runaway: It will be tough

TLDR: The end result is not what we imagined when we started to work on the game, but overall the experience was great, and we are really happy we keep participating. Go and play the game! (BEWARE: Frustration guaranteed)

Here is a little gameplay video. Sorry for the bad quality, but when I realized it was too late. While recording this gameplay, more than ever I felt how the game is damn frustrating and urged me to burn down my computer a couple of times. Anyone up to beat my score? 😛

 

What went wrong

Theme announcement

It was friday night here when the theme was announced. We were at a pub with some friends. Everyone was talking and making suggestions of what game we could make. While that’s great, having a lot of ideas dancing in your head is sometimes not that cool. We were suffering an “idea overflow” and every idea seemed unoriginal or not doable. The same night we picked the best looking despite doubts, and started working on that one saturday morning.

TIME, TIME, TIME!!

We couldn’t get to the point of our original idea. The game was intended to contain “dream objects” as obstacles. Each level should have been aesthetically different, resembling a escape from different connected dream worlds: Level 1 should have been vectorial art, level 2 pixel art, level 3 doodles, level 4 realistic objects and so on (with some effects and transitions in between). We were running out of time so we ended up using photoshop filters over the same sprites, getting not good results. PLUS the game goes so fast, that anything but the player is noticeable. I guess that’s why the link with the theme might be weak to nonexistent for anyone playing.
+ More time would have bought us a much polished game with less coding horrors (and better level design, and better everything). I guess this can be improved a little doing a couple of “warmups” and exercising so everything is “fresh” when LD begins.

So you think this game is hard?

Nobody but us tested the game before submission. I guess by doing that we could have seen how the game runs in different machines, and how frustrating the game and each level could be.
Our record for the entire game is ~9 minutes (the first times ranged 15-20), but there is a noticeable unbalance in some levels.
For example these are the marks for each level:

daydream_scores

I’m sure little to none people other than us finished the game.

What went right

Compact core mechanics + simple controls

We knew we wanted to make a “little fun game” with simple mechanics and controls beforehand.

We had fun

Being friends and getting together a whole weekend to make a game is great. LD is a great excuse to reunite, share meals, drinks and enjoy moments doing what we like to do :)

Level editor

We made a great level editor, that allowed us to visually place every element, and  export / import as json.

Difficulty – Challenge vs. Frustration

What draws the line between challenge and frustration? There are a lot of readings and thoughts on the topic and this experience was a trigger to further learn on that game design topic.

Closing words

Thanks to everyone in the LD community that helped and contributed with cool feedback, games and stories.

Hopefully in some near future we will get the time and motivation to fix and improve all the things that were wrong with the game, but meanwhile you can play it get frustrated here.

Tags: javascript, LD30, phaser, post-mortem