2D lighting system in motion

I added a funky algorithm to draw soft shadows without blurring everything, colored lights and a few other things.
Watch it in HD!

Watch it in HD!

Lighting system for Cavery

Light (and darkness) will be an important part of Cavery. I want the player to feel small and vulnerable; most of the screen will be covered in black. That's why I'm working on a 2D lighting system. It's based mostly on shaders at the moment. All rendering is made by libgdx, of course!
That's the visible geometry (not covered by shadows):

First, I'm calculating visible area (using straightedge library, don't know if I'll stick with it):
Then I'm blurring it a bit to make the shadows softer and more realistic. Notice how they get softer with increasing distance from light source.
Then I'm merging it with the original geometry with a little bit of additional effects (edges catch light, see it?).
I'm pretty satisfied with the outcome. What do you think about it? Oh, and there's another one version, where objects are hidden in shadows, only their edges catch some light):

New game in the works!

I forgot to post it here, but it's official: I'm working on a new game! Some random keywords: cave exploration, darkness, vulnerability, suspense, equipment, discovering the unknown. I'll call it Cavery for now. Keep an eye for updates!

Pixel Slaughter! v0.5

I just uploaded a huge update. There are 3 levels now (+ tutorial) and some fun things to unlock. Also, finally you can see what I'm trying to accomplish with this game.

Kilgamore Castle is now free!

It's a game created by me for the Android platform. It's been on the Market for a while (as a paid app), but it is now available for free!

Download and play!

And the QR code:

Being like Minecraft (or how to run your libgdx app in web browser)

What's libgdx? It's a game/application development framework in Java. It allows you to write an app, and then run it on Android, on desktop and in the browser. Awesome! If you want to know more, read what its creators say about it.
In this tutorial I'll show you how to run a game written with libgdx in your browser (as a Java applet). So why Minecraft, you might ask - well, Minecraft runs as an applet! (and it's written with Lwjgl - more on that later) And talking about Minecraft is so snazzy these times, you know.
I'm going to use libgdx's "Hello world" as an example "game". I won't cover setting up the project here, Mario (father of libgdx) did it already here.

You should start with something like that:

For applet we'll need to use Lwjgl backend (instead of default Jogl). Don't worry, just one change is required. Edit the HelloWorldDesktop.java file and make it look like that:
 1 2 3 4 5 6 7 8 910
package com.badlogic.gdx.helloworld;
//import com.badlogic.gdx.backends.jogl.JoglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
public class HelloWorldDesktop {
public static void main (String[] argv) {
new LwjglApplication(new HelloWorld(), "Hello World", 480, 320, false);
Now you're using Lwjgl as your backend! All the cool kids use it, so you can consider yourself as cool too. Cool, eh?
Next step: add a new file called HelloWorldApplet.java (in the same directory as other source files). It's similar to what we had before:
 1 2 3 4 5 6 7 8 910111213
package com.badlogic.gdx.helloworld;
import com.badlogic.gdx.backends.lwjgl.LwjglApplet;
public class HelloWorldApplet extends LwjglApplet
private static final long serialVersionUID = 1L;
public HelloWorldApplet()
super(new HelloWorld(), false);

Create a directory called applet in your project dir. It will contain all files needed to run your game through a browser. Put the following files in there:
  • gdx.jar
  • gdx-backend-lwjgl.jar
  • gdx-backend-lwjgl-natives.jar
  • gdx-natives.jar
You can copy them from your libgdx distribution. But that's not all! You will need a few more files:
  • lwjgl_util_applet.jar - this is the actual applet launcher. The Lwjgl guys made a sophisticated tool for that. It is configurable via an html file, which we will add in a moment. Get this launcher by downloading the latest Lwjgl distribution. It's 2.7.1 as I write it. Copy lwjgl-2.7.1/jar/lwjgl_util_applet.jar to your applet dir.
  • helloworld.jar - this is your game. Just export the whole project as jar in Eclipse:
    You can click "Finish" in this window.
  • index.html - this is the actual page that your browser will open. You should set some options for lwjgl_util_applet.jar here. I'm using these:
     1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <div id="applet_container">
    <applet code="org.lwjgl.util.applet.AppletLoader" archive="lwjgl_util_applet.jar" codebase="." width="800" height="480">
    <param name="al_title" value="HelloApplet">
    <param name="al_main" value="com.badlogic.gdx.helloworld.HelloWorldApplet">
    <param name="al_logo" value="appletlogo.png">
    <param name="al_progressbar" value="appletprogress.gif">
    <param name="al_bgcolor" value="000000">
    <param name="al_fgcolor" value="ffffff">
    <param name="al_jars" value="helloworld.jar, gdx.jar, gdx-backend-lwjgl.jar">
    <param name="al_windows" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar">
    <param name="al_linux" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar">
    <param name="al_mac" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar">
    <param name="al_solaris" value="gdx-natives.jar, gdx-backend-lwjgl-natives.jar">
    <param name="codebase_lookup" value="false">
    <param name="java_arguments" value="-Dsun.java2d.noddraw=true -Dsun.awt.noerasebackground=true -Dsun.java2d.d3d=false -Dsun.java2d.opengl=false -Dsun.java2d.pmoffscreen=false -Xmx800M">
    <param name="lwjgl_arguments" value="-Dorg.lwjgl.input.Mouse.allowNegativeMouseCoords=true">
    <param name="separate_jvm" value="true">
    <param name="codebase_lookup" value="false">
    All the options are documented here.
Now we've got everything we need! Open index.html with your browser and... it won't work. Why?
By default applets are allowed to use a restricted subset of Java. This is not enough for libgdx/lwjgl, so you need to sign ALL jars in the applet dir. It can be done by standard JDK tools (they may be not in your path though). First, create a keystore with one key. Run the following command in the applet dir:
keytool -genkey -alias gdxkey -keypass gdxpassword -validity 360 -keystore .keystore
This command will create a .keystore file, which will contain a single key named "gdxkey". I recommend setting the keystore password the same as your key password ("gdxpassword" in this case).
Now you can (and should) sign all jars. I'm using the following batchfile for that (copy the code and save it as sign-applets.bat in the applet dir):
@for /f %%i in ("%0") do @set curpath=%%~dpi
@cd /d %curpath%
@for /r . %%X in (*.jar) do jarsigner -keystore .keystore -storepass gdxpassword %%X gdxkey
Of course this will work for Windows users only. Linux users are capable enough to write a bash script or anything similar, and Mac users... well, sorry. :)
After signing the jars fire up index.html again. Answer some security question and enjoy libgdx in your browser!

I know it looks pretty complicated, but one you've set it all up, releasing a new applet version of your game is easy:
  1. Export .jar containing your game
  2. Sign this jar
If you're smart, you can write an Ant script for that. Obviously I am smart, but I'm also too lazy to do that.

The last step: show me your game! You need to upload everything except .keystore and sign-applets.bat (so basically all jars and index.html) to some web server and give me the link! :)
I recommend Amazon S3 for hosting purposes (I'm using it for Pixel Slaughter!, Minecraft's using it too), but you can even publish it in your Dropbox. I did this too with my example project.

Interview with Vlambeer

You know Vlambeer? Of course you do. You killed yourself with a Disc Gun in Super Crate Box dozens of times, while still having lots of fun. Vlambeer consists of two nice guys: Rami Ismail and Jan Willem Nijman. Want to know more about them? Read on!

What's your background on making games? How many games have you started/finished before Super Crate Box and Radical Fishing?
The both of us are really different. Before we started Vlambeer, Jan Willem was a prolific indie game designer - he made dozens - if not hundred of games. Rami used to work on somewhat longer-term games as a developer and business guy - he has a dozen of games he worked on. We started Vlambeer when we found out our skills complement rather well.

What tools/languages are you using (I know it doesn't matter that much, but people always like to know)?
Jan Willem prototypes everything in Game Maker, we then take the prototype, discuss it and if its fun and worthwhile to work on, complete the project in whatever language is necessary. Rami uses anything from ActionScript to C++ to get the final game there. For Super Crate Box, we ran out of time prior to the IGF deadline, so instead of porting the prototype, we polished the Game Maker version.

What inspired you to make SCB? Or was it just a random idea?
The wish to create a proper platform shooter while trying to get rid of the nonsense in the game design.

What was the biggest problem you came across during SCB design/development?
There really weren't that many. Super Crate Box was really created on a roll - first by Jan Willem alone every now and then for a few months, then Vlambeer was founded and we finished the game in two months of ultra-hard work. If anything, it was difficult to decide when to call the game done. There were and are so many ideas we still have, some of which that actually were playtested in the prototypes, that didn't make it to the final game.

Have you thought about commercializing Super Crate Box? (or maybe you are making money out of it somehow?)
Not really, to be honest. We make money with the Vlambeer Light games - the Flash games and smaller projects we do to fund our main efforts - the games we really want to make - games like Super Crate Box and Serious Sam: The Random Encounter. We do intend to continue working on Super Crate Box in the future, to see whether we can do something with all those ideas we still have.

Any chances for SCB: Versus on PC? (so we could play a 2 plyr game on one computer, just like in the good, old times... :))
We don't think so, it's really our way of applauding the Bit Collective guys with idea of and the execution of the idea for the WINNITRON - so its a WINNITRON exclusive. On the bright side, there are WINNITRON systems appearing everywhere, with a recent one launching in New Zealand and several systems underway. If someone wants to play Super Crate Box VS, they can visit an existing WINNITRON or build their own by contacting Bit Collective.

How the work on Serious Sam: The Random Encounter coming along? Will it be playable for everyone (I mean free download), or bundled with the new SS game, or...?
Work is coming along nicely on the game - we just played through the entire first level of the first world. We think it'll be a seperately sold title, though.

Please name a few of your all-time favourite games.
Jan Willem really enjoys games as Quake, Flywrench and Nikujin - Rami is more of a triple-A gamer and would name games as Deus Ex and Mass Effect.

Why are you making games? What do you want to achieve?
We have completely different reasons, but we agree that gameplay should be the focal point of games and I think that is what drives us. In the end, though, we think it's just that we want - or as Jan Willem puts it: need - to create stuff.

What do you find inspiring?
Anything but games. We avoid taking inspiration from other games. Anything from bad sci-fi books to going to the grocery store can be an inspiration for us.

Last, but not least: how come that you received so much attention and applause with such a broken game?! (that was recently fixed, but still)
We have no clue. We like to believe people thought the broken mechanic was intentional, but we're so happy we fixed it for April 1st.

Thanks for taking time to answer my questions! And you, dear readers: be sure to check out their new game, which is a karate-sim done in 2 hours!

Pixel Slaughter 0.1

I did a lot this week! Most important changes:
  • Completely new blood/gibs system! That thing alone makes the game 72% more fun (measured).
  • Revamped control system, it should feel "just right" now (I hope).
  • New, unlockable weapon: shotgun!
  • Press "P" to pause and wipe sweat off your face.
  • New sounds and graphics here and there.
  • Changed overall color balance.

Have fun!

Pixel Slaughter!

Here it is: Pixel Slaughter! My new, stupid game about shooting things. (one level, one weapon, no bonuses yet)

and then tell me what you think :)

Some art for my new game (timelapse)

I'm working on a new game. I'd like to have an old-skool look, so I'm trying to do some pixel art now. That's the outcome:

I'll try to keep you posted about that game. Soon.

10 best games of 2010

Here's a list of 10 games that I liked the most in 2010.

10. Dear Agent (free, Windows)

It's a game made by Jonatan Söderström, swedish game developer known as Cactus. He did it for BTH Game Jam, so it's a bit rough on edges. Maybe I'll pick that idea up someday. That's the idea: you are an agent and in your missions you have to destroy some debris in enemy HQs (?). You have a laser and some bombs, but your supplies are always very low. There are some containers with destructive red liquid (lava?) though... So you have to carefully destroy some walls (with laser and bombs) and let that liquid flow, destroying everything in its way. It's hard, unforgiving and interesting.
Download it here.

9. Pixel Legions (free, Flash)

Now that's an RTS stripped down to its fundamental mechanics. No resource gathering, just moving your units and battles. You have a base that spawns a bunch of "units" (pixels, hence the title) in short amounts of time. And you have to destroy your enemy's base. Simple? Yes, and very addictive! Later levels introduce some interesting twists to the original idea.
However I didn't like that retro-pixel theme, I think it would work better with a non-abstract theme.
Play it here.

8. Depict1 (free, Flash)

A clever game that messes with the player. It uses a standard platforming mechanics... at least it pretends to do so. I don't really want to spoil anything, so just see it for yourself. You can beat the game in under an hour.
Play it here.

7. The Dream Machine (free/paid, Flash)

It's a very polished point-and-click adventure game that happens to have some striking visuals. It's all made of clay and cardboard, and it looks gorgeous. But there's some intriguing story too (very good writing!).
First chapter is available for free.
Try it here.

6. Towerclimb (free, Windows)

"An epic, endless, procedurally generated tale concerning towers, and the climbing of them." - original description. I like every game that has the word "procedural" in its description. And that one is actually very well designed. It's a platformer in which you climb an endless tower. You have some potions that allow for double-jumps (to get higher), destroy some blocks and to teleport yourself. But they need to be used wisely, because it's not so easy to get another ones... Your only goal is to get as high as possible. It reminded me of the great Spelunky in some way.
Download it here.

5. Desktop Dungeons (free, Windows)

How about a roguelike for casual players! It may sound impossible, but the game does it. And boy, it does it so well!
You pick a class (Fighter, Wizard etc.) and start in a random dungeon. The whole dungeon fits on one screen. You uncover it, fight some enemies, gain levels... Standard roguelike gameplay (but very simplistic). The goal is to defeat a lvl 10 boss. At some point all your path will be blocked by higher-level enemies - then the game transforms into a logic game. You can use spells to help yourself or modify the dungeon a little (teleport an enemy, break the wall), there are also altars that can give you some bonuses.
Finishing a level unlocks new character classes, dungeon types etc.
I love games like that; where simple rules lead to rich gameplay.
Download it here.

4. 10 second war (free, Windows/Linux/Mac)

I don't even remember how I stumbled upon that gem. Don't be fooled by simple visuals, this game is well-thought-out and polished. You have some units and there are some enemy turrets. Every unit has 10 seconds to do something (move, shoot). You move one unit, its actions are recorded and you move on to another one. After a while you'll have a plan for every unit - and they destroy enemy turrets in 10 seconds. That's a great idea and it's executed really well here. Just watch the video above to get the concept. Later levels introduce many additional twists.
Lots of fun!
Download it here.

3. Super Crate Box (free, Windows/Mac)

Oh hello, high scores! Haven't seen you for a long time. Super Crate Box is a pure score-based game - and that's a good thing! Your score is counted by crates that you pick up. They are spawned in random places. There are some baddies to shoot too. But here's the catch: every crate contains a random weapon. Some are powerful, others - not so. But if you stick with a powerful weapon, you won't score high, because crates are your score...
Higher scores unlock some additional weapons, levels and so on. It's very addictive!
Download it here.

2. Amnesia - The Dark Descent ($20 ($10 until 3.01.2011), Windows/Linux/Mac)

I want to write much more about Amnesia in some future post, but here's the long story short: it's the best horror game ever. Ever.
No, it's not a "horror" like Doom 3 or F.E.A.R., where something jumps at you from a dark corner, you scream, then shoot and reload. It's much more like Thief - The Dark Project. You will feel constant tension and - sometimes - true terror.
Download the demo and buy the game at http://amnesiagame.com/. It is also available on Steam. Well worth its price!

1. Loved (free, Flash)

Ok, that may be a surprise, but it's the best game I played in 2010. Loved is a small game by Alexander Ocias, you can finish it in about 5 minutes. And then you sit and think about it.
Yes, it's a game that made me THINK about itself. That's not a common thing in video games, but it's very common in art.
I recommend playing it a few times, you'll get more out of it. I have my own interpretation on what's this game's about (interpretation of a video game, holy crap!), but I won't say anything - try to find your one!
Loved lasts 5 minutes and provokes some deep thoughts. Call of Duty lasts 8 hours and leaves you absolutely untouched.
What are you doing, game developers and designers? Don't you want to give players more than just fun?
Play it here.

And what did you like in 2010?

Powered by Blogger