magicspark

LD29

We’re in!

MagicSpark.org was created a few years ago by ouly, nddrylliog and bigsylvain (a bunch of cousins), and are developing video games since 1999 in team, or individually. nddrylliog and I, bigsylvain, have worked on a few projects since then, and also participated in some Ludum Dare contest (LD22, LD24, LD25, LD26 and LD28). For this LD29 ouly and I are reuniting for the first time for a Ludum Dare Jam!

Software and hardware that will be used:

  • A few computers! 😉
  • Clickteam Fusion 2.5 Developer
  • Gimp, Photoshop and PhotoImpact
  • Blender
  • Cubase 7.5 and some keyboards

Ants at War – Postmortem 1/2

Preparation

For this Ludum Dare 29 I teamed up for the first time with my brother, with whom I have collaborated in game development since I am ten years old. But in the last eight years we only produced one game together, so it was a good opportunity to produce something together one more time!

I will discuss in this post the jam from my point of view, and he will do the same very soon.

A few hours before the theme announcement we discussed and thought it could be fun to do a tower-defence game, since we had not yet created such a game. It was also clear that if the theme was not fitting, we could find another genre of game to create.

For the jam he chose to go with Clickteam Fusion 2.5 Developer, since it allows a very rapid development (at least in the first stages of the game 😉 ). Therefore the game would most likely be 2D (and I have very few experience with 3D games), and I had the choice between pixels/vectors/pseudo-3d for the graphics. In already created some graphics for LD jams in Illustrator and also in Gimp, and both were satisfying in the overall aspect, but it takes a lot of time to create something that seems polished and original. So this time I went for 3D renderings that we could use in a 2D game. In fact, our last project was done this way, and looked really nice! It’s also a lot easier to make some artwork for the menus and titlescreen in 3D since it only needs a few change of camera and lighting.

I had not used Blender in years, so six hours before the theme announcement I decided to install the latest version of Blender, and quickly see how the particles system was working, and also the animation (which I never learned before) with bones and key frames. I quickly drew a low-poly pine-tree, and duplicated it using particles system in order to generate a quick procedural map.
postmortem-screen1

It is the same technique that I used later for grass/rocks/crystals generation.

Saturday

After the theme announcement we quickly came on the idea of ants, since its the season where they are invading all the surroundings (and even the house from time to time).

My first objective was to design a good first character, a basic worker ant. It took me the until the middle of Saturday afternoon to achieve a good result:
postmortem-screen2

I also did the following animations: idle/walk/attack/die. As the animation bones are separated from the mesh, I could use most of the animations with little modifications for the other type of ants.

The rest of the afternoon and beginning of the evening was spent on designing a first level.

All the particles (rocks and grass) where generated on the map using some weight maps of the base mesh. I learned a lot from this Blender tutorial: https://cgcookie.com/blender/2012/09/20/creating-realistic-grass-in-blender/ . In the next screenshot you can see the weight map corresponding to the density of small rocks. I had a weight map for the density of rocks, one for the size of rocks, and two similar maps for the grass.
postmortem-screen4

Since our playground is underground I could not produce realistic grass, and by luck my grass was not generated realistic at all! It would have been a problem if I really wanted realistic grass, but in this cas it is producing a strange line effect which gives a small sense of strangeness to the overall mood, so I decided to keep it that way and not spend too much time tweaking the grass properties.
postmortem-screen5

The next idea I had was to create some lava. This is the resulting work of my first day:
postmortem-screen3

Sunday

I was not satisfied with the aspect of the lava, since it was more looking like a glowing ketchup. So on sunday I spent more than two hours just on producing better textures for the lava, and changing various settings (emit, raytracing, glow) which were not satisfying either. For the whole graphics creation I always compared the renderings to real photographies, to achieve a similar looking thing. And then I thought again of particles! Particles are the key to pretty things! And after half an hour I had this result:
postmortem-screen6

The rest of Sunday was spent designing and animating the soldier units, the queens (red and black), and also some turrets (ant-lion, destructible rock, spider-web, a ground bug…). Every unit/turret was rendered in 8 directions for every animation, and later used by my brother in the actual game. End of second day screenshot:
postmortem-screen7

Oups I forgot I designed the second map meanwhile too 😀
postmortem-screen8

Monday

Monday was then the day for producing music, level design maps, testing, sounds effects, and some artwork for the titlescreen, menus, victory and defeat screens. Thanks to the quick map ornaments (using particles), it was very quick to produce a third map: create a base grid layout, deform the mesh a little, add particles, think of a new environment (purple mushrooms), add some lighting and it’s done! In fact most of the time was waiting on the rendering (7 minutes for the biggest map).

I took some hours in the afternoon (not enough for my own expectations) to produce a first music, and also the “defeat theme”, which is the best of the three tracks in my opinion, but since the game is too easy to play no one has heard it probably 😉

At that point its the end of Monday afternoon, and the game was not really working, some path-finding problems, and I tried to not put any more pressure on my brother. Therefore I took some time polishing the graphics, and doing the artwork screens. Two hours before the end of the deadline (1 AM here) I went in the garage to record some sounds effects: for the ants attack sounds I used various gardening tools, such as a machete, a saw, gardening shears, some secateurs… for the ants birth I wanted a popping sound, so I took an empty plastic box of medication which has a nice sound when opening quickly. For the sound recording I used a Zoom H2n which is very convenient for recording anything anywhere with a good sound quality. Then I took some time to polish the sounds in Cubase (add a small delay on the secateurs sound), and normalize all sounds.

That was almost the end of my work for the jam. The last half hour was dedicated to testing and preparing the submission post with nice screenshots.

Conclusion

I’m quite satisfied with the looks of the game, and with all I could learn about Blender, animation, rendering techniques (use of mask, composite renderings), particles, animations… The gameplay is overall satisfying, we were just a bit frustrated to remark that a small change in the last hours disabled the enemy queens to drop soldier ants, so the game was too easy. But the game was working, so it was not a too big deal.

Like almost every other Ludum Dare jam I entered, I think we (my team) spent too much time on thinking of (and implementing) difficult gameplay mechanisms, and not enough time actually playing or testing the game. But maybe this is how this short-time jams work. It’s also a good opportunity for experimentation, so I’m not saying it’s necessarily bad to think about different gameplay mechanisms than what we’re used to.

One more thing that I need to be careful about is how the game is presented to the player, and how to help him discover the mechanics quickly. For example in our game, we forgot to mention anywhere that the player controls the black ants and have to defend the black queen. We had no time to implement the units/turrets descriptions, and I even forgot to mention them in the description of the game during the first day.

To conclude, I think it was really nice, the sleep management was very good (although too much excitement prevented me from sleeping much), the work flow was also good, so I’m really looking forward for next the next jam! And maybe with a bigger team!

The jam game is available here http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=36462, and a new version with less bugs and 3 level difficulty will be released very soon (maybe even today!)

Ants at War – Post-jam version

Our game “Ants at War” has been updated! The overall gameplay has been greatly improved by fixing some bugs, and difficulty has been increased on the map “Crystal Canyon”.

screenshot-update-1.2.4

 

POST-JAM UPDATE (version 1.2.4):
– Several bug fixes (path-finding, ants sometimes freezing, enemy queens were not spawning soldier units, queens were not checking spawning area and consequently stacked units…).
– Path-finding weights has been changed on each map.
– Multiple enemy queens on the third map.
– Buttons “play”/”stop” added in the pause screen.
– Units production can be queued.
– Costs of turrets/units has been balanced a bit.
– When clicking on an unit, a description has been added to the tooltip.
– Several code changes to ensure that the game runs fine on Wine (Linux).
– Rocks and spider-webs have now four different visuals.
– Destruction of rocks is now visually progressive.
– Multiple buildings can now be created by a single click (as if you were painting with the building).

 

You can download the post-jam version on the page of our jam entry: http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=36462

Comments

BoaHeck_ArtGent
04. May 2014 · 18:43 UTC
BUG fixes??? ^U^

Ants at War – Postmortem 2/2

My brother did a great job presenting our LD29 participation. But he still asked me to write a post-mortem post on Ants at War. So, more than speaking technically about the project, I will focus on presenting my personal feedback on my first participation to a LD event.

Graphics

Being the developer of the project, I ran the game for a while with just colored square on the screen. It was already nice to see the things moving as expected but it was even nicer when the objects started to obtain their final look and animations. Importing the graphic into the game gave me two important points:

  1. Adding the graphics, especially when they look nice, really boost yourself during the competition. So I think it’s a really good point to import them not too quickly to have something bringing back motivation when you start to be tired (this doesn’t mean that the time at which you will import the graphics will depend on your tiredness but just that it is a great side effect).
  2. Graphics are not totally disconnected from programming and, in this sense, a part of them has to be imported completely (and not only in some test applications/scripts) to be sure that the whole chain from the graphic artist to the game does not bring any problem. In fact, as the graphic artist could prepare and export the graphics in different ways, the programmer has to check that the process is going the right way. Additionally it will give an information about the time you may need afterwards to import the whole and will help checking the game’s behaviour with the final graphics. Just to give an example on this last point, if you are checking collisions between objects according to the visual bitmap, you may have some trouble with noisy pixels (close to zero but non-zero pixels) in alpha channel (eventually, collisions in Ants at War are not dependant on graphics but it was the case at first).

External libraries

In my opinion, it is not a good idea to look for and use an external library you are not used to use. Having a limited time, it is better to focus on the game and ensure to be able to bring this game to an acceptable point than creating a kind of proof-of-concept using unknown libraries.

But, the second conclusion on this part is that even with known libraries, do not try to use them further than what you have already done in the past. During Ants at War conception I tried to create different perceptions of the environment for the ants. For example, the red ants would have not been affected in path-finding by black ants’ buildings (and vice versa). Using one map for path-finding was already well-known on my side, but using multiple maps eventually turned out to be not possible with the library used (in fact, in multiple maps scenario, one and just only one function of the library was always referring to the first map created). This is a waste of time and looking at the current result, using only one shared map is already good. Consequently, do not try to push libraries out of known states! You will probably not obtain something worth it but more certainly waste your time.

Conception

To finish this post-mortem post, perhaps just a note and conclusion on the way the game has been designed and what should have been done. With the limited time allowed, we focused almost completely on designing the game and make it work as expected. This may sound great but in fact it is loosing sight of one important point: the player. Even if we were playing the game to check that everything was working fine, we did not try to see it from players point-of-view. Therefore, the game was lacking enough explanations how to use and play it. We really should think and focus on the player, even if the time is short, during game conception.

Conclusion

This Ludum Dare participation was really great. A little bit stressful at beginning, I should admit, but worth it at the end. Jam competitions are great at allowing a team to work on the same project for a short time and to see progress in another area (like graphics, music and so on) what really boost yourself. So more than the result obtained, it is really this time shared with my brother on a specific project that made of this LD 29 a great and fun experience!

So, hopefully, see you another time for a new LD 😉

ouly