Often, we write these blog post to brag about our amazing accomplishments, but sometimes, just sometimes, game programming can be just that: …programming. This week there are no heroic successes, no courageous stories, no valiant efforts or exaggerated achievements. No this week it was just work.
So what does a ‘normal’ Friday of working on Caromble! looks like? Well, we’re rewriting how we save our assets in the build script, fixing issues that are causing micro stutters in the menu and explosions, improving gameplay for levels in the last chapter, working on the new paddle and alien models (yay!), building the menu, fixing and adding sounds, celebrating Sinterklaas, buying a new bicycle etc, etc. I guess nobody can accuse us of being lazy on Fridays. But as you can see, we need more Fridays in a week!
So what to do with lack of content. How do we get away with this? Screenshot!
It’s been 2 weeks since I last wrote you and many things have happened. I told you about my troubles with my physics tests at school, but these worries have no meaning anymore. Not since last Wednesday. The school is closed and the city abandoned.
It seemed like a bad promotion stunt, when we saw the first giant balls rolling through the streets on YouTube. Unfortunately it was more than a well crafted special effects video. This was real.
Most of the city has now been evacuated, but daddy doesn’t want to leave. “Some black eyed red Martians don’t scare me!” he says. But they do scare me. The screeching sound they make scare me. The explosions they cause scare me.
I have seen one of them. It was near. It had a metallic reddish kind of skin, or more like a shell. It’s eyes were of the deepest black you could imagine. I think it saw me and it screeched. It produced a deafening high pitched tone, as if it was about to attack me or crying for help. Why are they here? What do they want?
We have no television down here, but we have a working radio and enough food and water to stay here for months. Months… I don’t believe I can stand another week of daddy’s End of Day stories: “It was only a matter of time that something like this would happen. I told you so, didn’t I… I told you boy. We have deserved this. We screwed up and now we’re punished. But I knew, didn’t I? I was prepared!”. He doesn’t understand that none of this has any meaning whatsoever. It just happened. That’s it.
Yesterday, the men on the radio said that the giant balls wrecking the city are not created by the Red Monsters. They even seem afraid of it. Some people claim to have seen a white machinelike creature, infused with light, that seems to battle these monsters. It appears that it uses these balls as some kind of weapon. I’d like to belief that there is something out there, helping us.
Although I’m scared, the stories of the light-machine-creature thrill me. It’s exciting to think that some alien races are fighting an intergalactic war and that our planet is their stage. Just like in that show Transformers I used to watch as a child. I’d like to think that something is out there to watch over us…
I intend to post these letters whenever it’s possible and until them I’ll keep them save for you.
Last week, we stumbled upon some old gameplay videos of Caromble!. It is fun to see how the game has progressed over time. Some feature changes I couldn’t even remember. For example, I forgot we ever had red bumpers. This made me curious and I looked for even older footage. The oldest video I found was from INDIGO 2011, where Caromble! was playable for the very first time. To show the evolution of Caromble!, I created a small video to show the different versions side by side, with the same levels being played:
The most striking difference are probably the graphics. The paddle is different, some better lighting is added and of course, newer textures. Also, we’ve improved some of the feedback to the player: the paddle reacts to its own movement and ball collisions, we’ve added camera shake and there is an effect when a ball hits a wall. Gameplay wise, you can see that the camera is positioned higher in the newer version, which gives a better view of the action.
I must admit that I kind of liked the very fluorescent yellow boxes in the older version. Because of the higher contrast with the floor, they really stand out as something you need to destroy. However, with a more ‘realistic’ style in mind, we felt that those kind of boxes wouldn’t fit in anymore. Mmmhh… perhaps we could still squeeze them in somewhere:)
We are working steadily towards the next step in the evolution of Caromble! and expect to bring Caromble! ‘Sapiens’ into your living room in the beginning of 2014. Stay tuned!
These are the two pens I use for drawing the textures.
I want to write a bit about the texture-making process for Caromble, which is quite different than I learned to make textures for bigger games. Early on I decided to try a more analogue texture look, while not going too experimental.
All textures are done first on paper with a simple ink pen (the Pilot G-Tec-C4 0.4mm). Before that step I put the A4 paper on the monitor and trace the texture layout on with a light blue pen (Pilot Color eno 0.7 “soft blue”). A bit of a low tech approach, but it works quite well. On the side picture you can see the blue traces.
Over the years of working on the game, the style and process changed a bit. Earlier Assets used to be much more detailed. Here are some of the later assets (with the signs you can see in a recent post). There you can see the lineart, that I scan and then color on the computer. Without effects it looks quite bland, so there are always specular maps (that change the shininess of an object) and normal maps (which add surface details). Sometimes some other render effects like illumination maps, that for example make windows and car-lights glow.
The textures of the bus. With the linart first, the colored texture, specular – and then the effect map that shows which parts should glow.
The textures for a commercial sign. With the linart, the final diffuse, specular – and a normal map.
Another commercial sign. Showing linart, diffuse, specular and normal map.
I think going for that low tech pen workflow was a good choice, since it saved time compared to tougher lead-penciling styles – even if that might have been easier to show off with. This way I can gather more experience before trying crazier art styles. For example I learned over time that I can work really small – a 512 texture only taking up 3cm. By now I could nearly fit the whole game on two A4 papers.
On the scan below you can see some earlier textures. While more detail looks nicer on paper, in the game (surrounded by lots of items) these just disappeared. The simpler and much quicker way looks better in the end. Win-Win!
This is the A4 sheet I use for inking – it has half the textures of the game.
Here I’ve made a render with just the line-art. It looks also interesting – definitely something I will experiment around with more. The next one shows how it looks with all textures applied – the colors help the gampelay a lot, making it easier to distinguish items and their function.
This is how the game looks with just the line-art (and a small black outline around the objects).
Here it’s the same textures, but with shadows, shading and some effects like blur.
This is a plain render – with no shadows or effects, showing the added color layer.
And this is after turning on some of the effects you see in the game, like the normal maps, glowing lights, blur in the depth, and of course shadowing. The game actually has some more.
Since most of us working on Caromble! are programmers, it shouldn’t come as a surprise that we wrote our own game engine for the game.
In the animated image below we show a few of the effects we apply to Caromble! to get it to look the way it does.
Click to enlarge
In the first of the images you see the scene with no texturing and only the main light applied, in the next image you see the same scene with secondary lights and the specular map enabled.
After that, we add bump mapping, basic colors, shadows, bloom & depth of field, ambient occlusion, reflections and soft particles.
On low end machines, you might have to disable some of these effects to get to run the game with decent speed. But on high end machines, we still got some room to spare. Maybe, very maybe, we just might add motion blur to get the game to look even better….
A few weeks ago, our artist Thomas S already showed some of the newly created assets for the new theme: Metropolitan/Commercial style. We have been working hard to create some levels with these and I got official permission to give a sneak peek:
We hope you like it! It’s not only the graphics style that is different in this theme. There will be some new gameplay features that could lift you right up:)
Also nice: this week the gaming news website Gamingbolt published a piece we wrote in their section ”Developer journal’. You can read it here. We hope to have some more journals there soon.
Oh, and if you accidentally find yourself in Amsterdam tomorrow evening, you should go to Pakhuis de Zwijger. There will be another Control Gamelab. This time it is on making Game Trailers. We hope to learn enough to make our upcoming trailer super awesome! Expect it on youtube soon, of course with moving footage of our new graphics theme.
After showing our first levels with an industry setting at the GamesCom in Cologone we’re concentrating now on the next chapter with a commercial look. The scenes will be less dominated by pipes and machines, but by neon signs, skyscrapers with glowing windows and city traffic.
Here are some asset renders of finished assets.
As many futuristic/industrial cityscapes, this chapter is inspired by Blade Runner. But also by some visits to Tokyo.
When Microsoft’s Kinect was released, I imagined all the cool kind of interactions that were possible and what this could do for gaming. Now a few years later, I haven’t really played any great games that used the Kinect. The only exception would be Child of Eden, which was awesome. I think the main problem was the precision. It feels like 1 out of 5 times the Kinect misinterpreted your actions. Of course this could be poor software implementation and not the hardware, but still. Were motion controls doomed?
Now, it is less than one month until the release of the Leap Motion. Instead of full body detection, it does hand and finger recognition. The poor precision that in my opinion degraded the Kinect is not an issue here. It has a precision of 0.01mm with almost no latency (~5ms). I remember that I saw the video about a year ago and I was convinced, with many others, that it was a hoax. That kind of precision was just unreal, especially for the price they aimed to sell it.
When the possibility arose to apply for a dev-kit, curious as I am I did not hesitate and filled in the form. A few weeks later, after attending a game jam for Empowerment for Children, I came home finding a package directed to Crimson Owl Studios. This was the first mail we ever received that was directed to Crimson Owl, so that was already special in itself. Even better, it contained the Leap Motion dev-kit. About 15 minutes later I had it plugged it and a demo running… WTF! It wasn’t a hoax. It worked, just as in the video. Wow, nice… It did have some problems with detecting multiple hands simultaneously, but that was solved in later firmware updates.
So how to use this for Caromble!? Let’s just try something and first let it detect my finger positions. The SDK is simple and intuitive and comes with a Java binding, so in less than an hour we had something up and running. Moving your finger left and right moves the paddle, simple as that. I was tweaking the parameters to adjust the sensitivity, when I came up with the idea to use my finger position in z-axis direction to influence the sensitivity. That turned out to be a pretty good idea. During gameplay I sometimes used high precision and sometimes high moving speed. The ability to adjust this during gameplay felt really nice. The two other actions we have in Caromble!, charging and activating powerups, have been implemented by directing your finger upward and tapping respectively. This implementation makes it possible to play Caromble! with the Leap Motion as can be seen below and I must say, for me it adds to the fun.
Perhaps motion controls for gaming isn’t doomed after all! We will try and find the best way of using the Leap motion to control Caromble!. Perhaps you readers have some ideas of how to use it to charge the paddle or activate powerups? Perhaps we could add a second hand? Possibilities enough. Let us know in the comment section below.
In Caromble! it is possible to charge the paddle and give the ball a boosting power such that it will not bounce off objects, but goes right through them. Adding the charging mechanic would make the gameplay more interesting and gives high-score hunters more possibilities. However, we have been struggling with the implementation. How can we strike the right balance between a powerful powerup and not making the game too easy?
In our first implementation, the paddle could be charged in a continuous manner; the more the paddle was charged, the more boosting power the ball would get. If the power was maxed out, we would not only boost the ball, but also give it the ability to crash through objects, instead of bouncing off them. As a trade-off for using this power, we reduced the movement speed of the paddle significantly, making it far more difficult to reach the ball.
For some reason, this did not feel right. Blocking the paddle was too annoying, and it seemed impossible to find the right speed for charging. Either players would charge all balls, or none at all.
Also it felt a bit gimmicky as it was not needed to complete any levels. To solve this we introduced hitable blocks that could only be destroyed with a charged ball.
Now, after several tries, we finally found an implementation for the charge mechanic that feels in place. Instead of boosting the ball proportionally with the amount charged, we only have two possibilities now; the paddle is either fully-charged, or it is not charged at all.
Pressing the charge button (LMB or SPACE) fills the charge meter. While charging, the paddle cannot move at all. When the button is released, the meter empties quicker than it was filled. If the ball hits the paddle when the charge meter is not full, nothing happens.
However, if the charge meter is full, the paddle is charged, and stays charged until the ball is hit. The charge button can be released, and the paddle can move freely. Having the possibility of aiming the ball whilst being charged, seemed to be the missing piece of having a good charge mechanic. It works and feels good. Now all we need is an awesome graphics effects for charging the paddle and boosting the ball.
Because pictures tell more than a thousand words, here is also a video of the Charge mechanic (charge meter in upper left corner):
… is the reason why the team had to work without internet for over an hour. This Friday it was my turn to provide a working location (indie to the max), so we were all at my place. However, as a bigger brother, I sometimes sacrifice my dignity for the goodwill of my little sister, meaning I was about to stand in the digital queue for tickets for Beyoncé (singer / actress / model / idol for my sister). As my router sometimes refuses work when too many machines are connected, I had to politely ask the team to disconnect, because disconnection for me would mean re-entering the queue. What I expected to last for 10 minutes, took more than an hour. And I didn’t even get the right tickets! One for sitting in the back, and for standing in the front (sorry sis).
After all this nuisance, we could finally do some business, and on the menu for today was: the new Trailer! Our first trailer was very simple: a few seconds of gameplay, from different levels. We didn’t put much effort in editing slickly or adding juicyness. Why would we need that, the game speaks for itself doesn’t it. Wrong! The youtube statistics showed that many people already clicked away whilst showing the logo’s. They hadn’t even seen anything from our game and they gave up on Caromble!. So our GameTrailer 101 was: start with the action. Show immediately what your game is about, because the attention span of your viewers is… well, probably less than you’d hope or expect.
We think our next trailer is much juicier than the previous one. Also we show some more of the content from Caromble! We hope you like it. Expect it to be online somewhere in this week.