domingo, 27 de septiembre de 2015

Drunkula: Yet Another Post-Mortem (with nice pictures :))

This is an after-the-fact analysis of our experience during our first Ludum Dare, which is divided into three different testimonies coming from three different members/roles in our team.



Welcome to the 33rd edition of Ludum Dare!

Music & Sound by Oliver

I've been participating in game jams during this year for the first time, and LD is the third one. Drunkula is the eighth soundtrack that I've made for a videogame. And although everything can be improved, I'm really satisfied with the outcome.

My intention with Drunkula's music was clear: I didn't want a mere background music, but an interesting composition that conveyed the dark atmosphere bound to a vampiric night together with the drunkennes feeling of the main character.





Setting up our workplace

The composition was the first thing that I did, since it is the most difficult and which takes the longest time. The original instruments are those used for the first two levels. Then, I changed the orchestration to evoke the inners of the chapel (third level) without the need to compose any more pieces. 

For the menu, I cut out a fragment from the theme, changed the instrument of the main theme and I added some audio effects to make it sound like being at the door of a disco. For the credits screen I used a long note in order to simulate that annoying ringing after a night party. 

The serious side of the composition is given by:
  • The choice of D minor because it conveys the feeling of dead and solemnity, like in the Mozart's Réquiem. 
  • The 3/4 beat because it evokes the feeling of an aristocracy hall, like in any J. Strauss' waltz. 
  • The higher dense than usual counterpoint in a jam game in order to convey the overloaded aesthetics usually associated to the vampire's castle, like in the well-known Bach's Toccata and Fugue. 
The comical and grotesque side comes from:
  • The instrumentation, specially with the first two levels trying to represent the outside with wind instruments, and synthesizers and beatbox drums.
  • The continuous apparent lack of rhythmical beat aims to evoke the drunkennes feeling. For some players, I understand that they felt the music kind of grating, but that was actually the pursued effect. 
  • The slightly funky style of some accompaniments suggests the party mood where the guy that was bitten by the protagonist was. 
Some curiosities: 
  • Just before closing the loop you can hear the famous "Mmmmm" by Morshu, a character from CDI's Zelda and one of the most parodied characters ever in a videogame. 
  • Hidden among the counterpoint you can here the main theme from Japanese horror movie Hausu (1977), a psychedelic masterpiece that we watched a couple of times during the jam. 
  • The central part has a sequence of chords taken from the beautiful Valse Triste by the Finnish composer Jean Sibelius. 
Regarding the sound effects and as I did in the two previous game jams in which I participated, I put off the sound effects till the last day. I used a micro to record elements in the house where we were working and then I edited the sounds in my computer. In this regard, I must thank the level designer because the voices are hers and she assisted me with the foley. To make the voices sound more masculine, I simply lowered the tone by software. Given that the sound effects are the last feature to be implemented, their volume are not so well tuned. The forest environment hardly is perceivable and it's a pity, because that day was very windy and I could record that sound in a natural way with the micro. 

Level Design by Esther

The first level was just a tutorial to settle the most basic mechanic of the game: point and click. The second level was about combining two objects to solve the level. In the third screen I introduced another object to solve the level. In this last level I tried to make the game more interesting by increasing a bit the difficulty; hopefully I made it!


I set up the levels with Tiled map editor, although I designed them previously with diagrams using pixels as units of measurement.

I also aimed to take care of the coherence of spaces between screens; that's why the first screen is on a path, the second one is at the entrance of the fortress and the third one is inside the fortress, not the castle yet but the chapel. I would have liked to have more time to introduce more levels, in a cemetery for example and other screens inside the castle itself: things that I keep in mind if we decide to go on with this game ^_^. I also would have liked to have made some sketches of the environment of the screens, not only the diagram of the level, in order to match the background and the platforms completely in a logical way.

The best thing of the jam for me is that we have learned so much in such a short period of time and have earned lots of experience. I have learned how important is to establish a clear and constant communication with all the members of the team (especially with the artists and the programmers).

Programming by Manuela and Francisco

We used the Löve2d framework (https://love2d.org) because we were interested in grasping a better understanding of Lua, a programming language that has been gaining traction among the game development communities during the last years. The main advantage of this choice is that we actually learned a lot about Lua, but the setback (and we were aware of it) is that we needed to build almost everything up from scratch. Given that we had no previous experience with a game jam, and that we had no pre-existing modules or data structures, we were a bit scared that we couldn’t make it to the deadline. Fortunately, this same deadline gave us the productivity boost that we needed to finish everything off. That’s definitely a good thing about jams!

The workflow that we used was the following. The artists handed their assets to the level designer, who used the Tiled Map Editor to set up the level. Then, the level, together with collision information, was exported to a lua format that we could read and show on screen. 


Having a strong breakfast was important!

As for the programming tasks, we started off by loading a simplified version of a level and showing a placeholder sprite for the main character (in particular, an 8-bit Mario sprite…). Then, we made sure that we could read an actual level from the Tiled Map Editor application and that we could show it on screen. Later, we added the main character and the basic collision systems to keep it from falling. In parallel, we tested the anim8 library for loading and showing some animations packed in grids (i.e. spritesheets). Also in parallel, we created the transition system for the different screens and for the introduction, and we integrated the music and sound effects in the last hours. Finally, we had to face some bugs with the change of direction of gravity, but we mostly fixed them all.


Stuff that we liked:

- The workflow was well established from the beginning, and all the members of the team took up their roles perfectly.
- We learned a lot about the Lua language, and the Löve2d framework, which has proven to be very useful not only for game prototyping, but also for the creation of full-fledged games. 

Improvable stuff:

- We didn’t take advantage of all the features of Tiled Map Editor, since we only used it to set up the map and the polylines for simple collisions.
- More play testing would have been beneficial, as some silly bugs could have been identified easily before release.


In the end, this was our results: we were in Q1, which is pretty cool being the first time






2 comentarios: