Games and more at http://noe.falzon.free.fr/dev/
Ludum Dare 17
Ludum Dare 15
Archive for the ‘LD #17 – Islands – 2010’ Category
My game got 15th place on 204 entries. “Yay”, mesays.
And 4th in Innovation, Community and Theme.
So close to a medal! Thank you so much for your votes, and comments.
About the comments, they are very very positive, and this is extremmely rewarding. You all point out very clear downsides, that I am going to list here.
You big enthousiasm gave me the will to rewrite the game. Take your comments in account, try to make it better. More optimised, more fun, more functionnal, more beautiful. It might become my first full fledged game. And that would be nice.
Controls are awkward
True. As I wrote, I designed them with a gamepad in mind, and that was probably a bad idea. First because everyone doesn’t have a gamepad, and second because as it’s been pointed out, mouse controls would be a lot better.
Also, there are far too many controls. Moving, rotating, zooming camera is already 8 buttons. Could be reduced by suppressing the “strafe” left and right controls and probably still be functionnal. Given the height of the hills, we certainly need camera rotation, to reach “behind” them.
In the same vein, the “beacon” and “boat” shortcuts might be removed. They allow for faster play, but are confusing at first.
However, mouse controls were a lot harder to implement (I’m still not sure how to do the inverse transformation to get from screen to heightfield cell), so I went for buttons.
Solution: go for mouse control, as in classic RTS. Mouse to select buildings, mouse buttons to bring up menus, mouse at the edge of the screen to scroll. Mouse wheel to zoom. Maybe mouse in the top corners to rotate?
With of course keyboard equivalents for the poor chaps who still one one button mouses… Wink wink nudge nudge. And good old RTS keyboard shortcuts.
Gameplay is a bit confusing
Some of you mentionned this, and the fact that 3 pages of manual is too long. I can understand that, especially when you have 204 games to grade. Guilty as charged. When I decided to make a strategy game — with different types of buildings, each with its specificities — the game became inherently complex. And not “casual” anymore like many of the LD entries. That’s a choice that probably rebuked many players, and a risk to take. On the other hand, the only remaining ones were the most perseverent, and they seemed to find the game worth the effort. And graded well. Thanks again!
Solution: as suggested, inside help could be useful, as well as tooltips, maybe even tutorials. And pictures in the external manual.
Shading is a bit off at night time, menus sometimes disappear under water, aiming precision is not great, beacon rings should be visible at all times, colors didn’t get unanimity, etc.
Obviously, in a limited time competition, some polish gets left out. Especially since the technical part was quite challenging to me. All that would be corrected/improved in a post compo version. Notably, I would like to:
- replace my lousy 3D icons by 2D, maybe have a HUD à la Warcraft, or just a bring-up menu.
- use 2D sprites as well for the dezoomed view, instead of OpenGL square dots.
- more eye candy. My lightnings are a bit lame, the uniform water is not that nice. could use a sky in zoomed views. Maybe more gimmicks on the land so that it doesn’t look so empty.
- sound effects.
- longer music, maybe different themes.
- different environments, colors themes, etc.
No one commented on that, but I was thinking about it in my postmortem. Although many of you found the game enjoyable as it is, my intention was in fact to make it multiplayer.
- cooperative mode. 2+ players share the same ressources (max number of stuff) on the same map, and try to save as many people possible, together. Allows for more micromanagment and interesting strategic interaction.
- competitive mode. 2+ players share the map and people, but have their own ressources/buildings. In the end, the winner is the one who saved the biggest number of people.
- versus mode. 2+ players play on totally independent games but with an identical starting point. Other players can be displayed as “shadows”. There is no interaction at all between players, the point is to see how many people is saved by each player, given the same map.
Now I’m not sure a solo campain would be interesting. There are few types of buildings, one type of guys, and the point of the game is to control them indirectly. There wouldn’t be heros, or real stories behind.
Of course, there could a be a series of tutorials, introducing the buildings one by one. Or I could radically change the whole thing and add lots of unit/building types, and make it a full fledged RTS with military and bloodbaths and whatnot. But that wouldn’t really uphold the original concept.
I could, later, make a wargame out of this, in a sequel. But for now I’d just like to remake *this* game, since you seemed to like it so much.
I’m not really sure what i mean by “rewrite”. Of course, the LD code is pretty much unusable. Globals everywhere, fake OOP with ugly shortcuts, last minute patches that became core functions, etc. Also, it’s written entirely in Lua, and performance is probably not excellent. That means I should probably move the computation intensive parts to C (or a C based language such as Objective-C that I happen to know): heightfield generation and altitude interpolation, drawing calls, etc.
Sadly I don’t really know where to put the limit, and I haven’t really experimented yet with C-Lua communication and design. For now my library is mainly a wrapper that makes low-level functions available to Lua, and everything from low-level to logic is in Lua.
Might be an interesting challenge. Might also be one of these things I get sucked into and in which I roam around for ages in technical desperation.
The good things
You mentionned awesome, fun, damn cool, interesting, great visual style, atmosphere, “perfect” music, great feeling of doom.
Mission accomplished. Thank you a billion times.
Stay tuned for a possible remake, and see you during the next LD!
Maybe I’m just being anal here, but the rules of the competition clearly state that
- All content must be created during the compo
- Source code must be provided
There are still occasional entries with images obviously taken directly from the web.
And in many entries, the source is forgotten (ignored?). Some even claim proudly that their game is closed soure…
I know it’s an honor system, and it is very unlikely that people will actually check your source for copy pasted code. But how long can it take to zip your project folder and upload it along? You can even just put it in a single archive with the compiled game if you can’t be arsed to make two different zips.
Now it’s too bad because the game are good. But how should these be judged? They should theoretically be disqualified. Should they receive N/A, or minimal grade on Overall?
I’m pretty sure most people didn’t pay attention to that aspect, but somehow it’s bugging me. Has an admin advice on the conduct to take?
The game has been ported! Or more precisely the library behind it, since the game itself is purely in Lua.
Grab it from the entry page.
Remember to read the README, lots of nice info. Also remember that you can entirely change the key mapping if you don’t like the default one (see file keymap.lua)
Please consider rating the game if you already skipped it for non-Windowsness!
Have fun (hopefully)!
Done! My first 3D game ever. I’m tired but happy about it.
Entry is here, for GNU/Linux and Windows.
Arks of Mercy
Be the savior of an endangered nation, as the level of the waters rise ineluctably. Guide your people to the safest mountains, build boats, teleportation towers and mighty shelters before it is too late!
Be sure to read the readme. It might not be very complex, but there are no instructions ingame at all.
EDIT: the readme might not be totally clear, but you can change the whole keymapping (not only for the gamepad) in keymap.lua
Be sure to check the Gameplay video!
Also, no Windows binaries yet, sorry. Will work on it, but I don’t have a Windows computer right here.
Since this is clearly going to be an all nighter, I might as well do the traditional postmortem right away.
Tadaa! Here is the ultimate way to save the dudes! Build them shelters, which will float once the tide rises.
Maybe the game will not be called Islands of Misericord, but Arks of Mercy. Or something mystical like that. Now I hope I can make it fun.
You can make you own little network of them, if that makes you happy. ’cause you know, it’s just a sandbox for now…
Boats can now successfully (most of the time) load and unload passengers! Funny thing is that sometimes the dudes just run into the sea, to their tragic death.
Now more gameplay. A winning mechanism, perhaps?
Look at that, night has fallen on the little island world (yeah, there is a night/day cycle, just for fun).
I have a nice OBJ loader, so I can make 3d “icons” and other meshes in Wings3D. The selected icon in the menu rotates and it’s cool.
Also, the smallish thing in the center is a boat. It doesn’t work yet, but it’s going to!
There is now a simili beginning of gameplay… The player places beacons all over the map, and the dudes within their areas of influence will be drawn to them.
Now we’re still far from actual game mechanics, or even winning condition.
So mmm yeah, more distant guys are just square, closer ones are diamond shaped. Oh and I get about 10 fps. Myeah. I wonder if the final product will actually be playable.
The guys run away from the approching seashore. And if they’re stuck on an island, they DIE! Mwahaha. Ok so now, gameplay. Saving the lil’ dudes.
Genesis 1:9. An Ceiling Cat gotted all teh waterz in ur base, An Ceiling Cat hadz dry placez cuz kittehs DO NOT WANT get wet. An Ceiling Cat called no waterz urth and waters oshun. Iz good.
(slight god complex here…)
Still no precise gameplay in mind, but it will imply raising water level, probably something RTS-y.
Also, I added some Perlin noise to the heightmap. Now it’s almost always nice.
For obvious reasons, it’s not a good idea to use immediate mode (gl.Begin() gl.End()) with an interpreted language (lots of slow function calls).
I therefore tried to use vertex arrays, since it’s apparently recommended by the Redbook of OpenGL. So be it. ‘Twas fine, until I realised that LuaGL would flatten arrays of vertices at every frame, which is slow as hell.
I therefore transfered that part of the code to pure C. Once I have my nice mesh in Lua, I flatten it once, copy everything in one C array, and then uses this one with glDrawArrays. It’s a looot better.
However, I wonder if my EeePC is really a 3D beast, because the following scene:
runs at about 4 fps. Laaaame.
OK now I never did 3D before, so maybe I’m just not doing it rite (insert kitty picture).
- Vertex Arrays not supposed to be used like that? For now I have all the coordinates of all vertices of all polys one after the other into a 1D array of size (n tris * 3 vertices * 3 coordinates). So lots of vertices are repeated. Is that wrong? I see we can also use glDrawElements() to avoid repeating vertices, but that implies using an array of vertex indices. Would that be faster?
- Better technique than vertex arrays?
- Just plain too much polys, try to do level of detail, or manual clipping before drawing?
- Get rid of the nice outline (um, which gives as about 5 more fps…)?
For now I’ll just reduce the size, try to get some proper terrain generation, and gameplay into that. Cause yeah, it’s supposed to be a game at some point…
OK, ten hours have past already, but I just woke up. Breakfast at 13:00, no problem. Have kindof an idea for the islands, but not really sure yet where it’s going.
Also, it looks like I’m going down a very dangerous road, of trying 3D stuff. First time, yay. I’ve been playing a bit with my setup before, going through the Redbook, but never actually applied to a game. We’ll see…
Of course, since 3D is so hard to make look good (how the hell did they do Gears of Wars out of triangles, I’ll never understand), I’m going for a very minimalistic “retro” style, with flat shaded polys (no textures, except maybe for some UI elements)
Also I find the title “Islands of Misericord” to have quite a sound to it, although I’m not even sure it means what I want in English, and also I have absolutely no gameplay or background idea as of now.
Bah, all in good times.
Also, for the curious, I’m using my own lib evöL, more or less a SDL wrapper, along with LuaGL, which despite being quite the suck on some points, is pretty cool.
Also, I’m planning on making the main input device a gamepad (with of course equivalents on the keyboard), because I have one, and it’s cool.