Unvestigate

LD 38

I'm in!

First time jammer here, this will be fun!

I have my idea!

Seems like my game will be about Christopher Columbus. I think I am onto something here!

Humble beginnings

Would you look at that, it's a small world!

http://www.sourcedrive.net/LD38/small_world.png

Game description and progress video

So, about 2/3 of the first day is gone and I should probably write something here. For some reason, when I saw the theme "A Small World", I thought about how people used to think the earth was flat and how they would contemplate what would happen if you "fell off".

Based on this I started making a game where you navigate the seas of the world, trying to get from the "Old world" to the "New world". I am not completely sure about how the controls should work in such a game, but after some pondering I went with an Angry Birds-like "slingshot" system where you use the mouse to aim and set the power and the ship goes in the direction you let go. Check out the video below for some very early movement mechanics.

https://www.youtube.com/watch?v=HBgE4GS5sgs

Naturally, for the game to be challenging there would have to be more interesting obstacles and mechanics. My plan is to introduce "wind areas" that throw you off course (maybe even off the world :)) was well as sea monsters and/or pirates to avoid.

Ideally I would have several levels and the scoring would be based either on time or on how few slingshots you need (kinda like golf/minigolf). As you can see the art is also highly WIP, so I may only have time to do one level for the jam, but we'll see.

I am doing this solo and using my own game engine. The software I use are:

  • Visual Studio 2013 (for the majority of the programming)
  • Sublime Text (for some content creation)
  • Blender (3D modeling)
  • GIMP (texturing and other 2D graphics needs)
  • (most likely Audacity if/when I get to audio)

End of Day1 - situation update

It's time for me to clock out for the day. The current progress can be seen in the screenshot below. I added ship waves and finished the texturing on all meshes.

http://www.sourcedrive.net/LD38/endofday1.png

Today I have mostly been working on visuals and assets. Tomorrow I'll have to finish up the core gameplay loop ASAP before attempting to do any more visual polish.

Like these things normally go, when working with your own tools you end up spending way too much time figuring out some bizarre edge case you have never encountered before. In this case I have found bugs both in the skybox rendering and in how SSAO is applied. Still, working with your own tools means you don't have to read docs all the time as you know most things by heart.

All in all, I am fairly happy with today's progress. Tomorrow will be an interesting day. Sleep tight (whenever it is your time to do that) and good luck with your games!

Quick morning update

Good morning from Finland! I woke up, looked at my game and realized how far from a proper game it is in its current state. There's no failure state, no success state, no gameplay really. So I need to drink a gallon of coffee and wrap the core loop so I have something that can actually be played.

Happy jamming everyone!

Progress video 2

With about half of the second day gone I have implemented win/fail conditions and started working on the wind areas. My plan was to have pirates and/or sea monsters too, but it seems I am running out of time. I still need some time to design a proper level. However, I want all of the mechanics in a somewhat workable state before I do that. The UI still needs a lot of work and the win/fail conditions are simply texts on the screen. So much to do...

https://www.youtube.com/watch?v=Q94C8p37xtE

Game mechanics complete

The wind areas now have their final (?) visualization and the input handling is vastly improved as well. You can no longer launch the ship in any direction as often as you want. Instead there is a five second recharge time which is displayed on the ring around the ship when you hover the mouse over it.

ld32_progress3.png

I think that's all the time I have to spend on mechanics. Here's a video showing the new systems in action:

https://www.youtube.com/watch?v=k-q4TNjbl4Q

Right, now about that level design...

Last stretch - level design and final polish

For me tomorrow is a work day so even though I participate in the jam I only get about 2 days to work on the game. That means that I have about 4-5 hours left. Right now my main focus is on designing one cool level. The game has no problem supporting multiple levels but I simply don't have time to design them so I'll go for one (hopefully) good instead of multiple not as good.

ld_editor.png

Other things left to do:

  • Make a visual hint for the goal, ie. something that makes it clear where the player should go.
  • Balance the gameplay physics
  • Make one or two more models (strech goal)
  • Decide if there should be fog or not. It looks good on the level but weird against the space backdrop. I've been back and forth on this one.
  • Decide on a name for the game (!)

Unfortunately it looks like this game will have no sounds. Tech-wise I am all good to go but I haven't had time to look into sounds effects or music and I'd rather have no audio than bad audio. Maybe next time!

Land Ahoy! released!

LandAhoy1.png

Well folks, that's it for me! The game is done and uploaded. Get it from here: https://ldjam.com/events/ludum-dare/38/land-ahoy

This has been super fun and I am quite happy with the game even though I had to drop many features I wanted to include (such as pirates, sea monsters, multiple levels and sounds). Also, the game could have used some extra balancing/tweaking since the gameplay is a bit bouncy at times. Next time I'll try to bring someone to do the art so I can concentrate on programming/design. Should be good!

Big thanks to the LD people and all of the very friendly developers I have met here! See you next time!

Land ahoy! updated

LandAhoy1.png

Hey guys! I updated my game, Land Ahoy!, fixing a small but annoying bug where sometimes the water simulation would "skip" forward in time causing the water to flicker in an ugly fashion. It was not a critical bug but I felt really bad every time it happened so I figured I'll just take care of that.

If you haven't played the game, head on over to its site at: https://ldjam.com/events/ludum-dare/38/land-ahoy

Thanks for reading!

Land Ahoy! - post-mortem

Hey folks! I did not want to advertise my game too much during the last two weeks as I have had almost no time to play or rate other games, but now that the rating begathon is finally over I thought I would write a few words. This was my first game jam ever and I am fairly happy with the game that I managed to produce, Land Ahoy! https://ldjam.com/events/ludum-dare/38/land-ahoy

LandAhoy2.png

The original plan was to team up with a few other people and make something in Unity or GM2 or some other fancy tool people usually use for this kind of thing. However, as the date grew nearer people bailed out and I was suddenly left with a choice; make something on my own or skip this LD altogehter. As my wife had already arranged other plans for the weekend I dedided I would try to make something on my own.

I have spent a considerable amount of my free time during the last few years writing my own game engine, so I decided to use that instead of an off-the-shelf tool. As I was to be the only team member this time around there would be no need to teach the tech to other people. Instead I could just jump in and start developing. Here's how it went.

What went right

I decided very quickly on what to make

I woke up on Saturday morning and checked out the theme for the jam. Unfortunately "A Small World" was not among the themes I had hoped for. However, I decided not to think about it that much but instead make the first thing that came to my mind. Somehow I thought about Christopher Columbus and how people used to be afraid they would fall off the world if they sailed too far. The gameplay kind-of organically formed around that idea. My tip is to not think about the theme that much. Even if the idea of the game is stupid, a nice execution can save it. (Not saying my execution is all that nice, more on that later).

I played to my strengths

I am a programmer, not an artist nor a designer. Because of this I made the gameplay mechanics very simple (maybe too simple?) and the art very basic. Since I wrote the tech that is running the game I knew exactly what to avoid and what to include. Also, I recently made the terrain editor for the engine (screenshot of the level editor below) and I was excited to try that out in an actual game. Eat your own dog food and all that...

ld_editor.png

For the art I went with a very simplistic approach. Low-poly, fairly quick to model and texture. The animations are all code-driven (the movement of the ship, the movement of the waves, chimney smoke particles etc).

I had a lot of fun!

I know this is not something you just "decide to have". However, the whole point for me was to have fun and develop my game making skills and I feel I did both of those. It was especially fun to make the art assets for the game, as that is something I don't get to do in my day job.

I finished it.

I made a game and released it, and within less than 72 hours I might add. I made due with what I had and came up with, sometimes hacky, solutions when required.

One example of a hacky solution involves the green arrow pointing towards the goal. I wanted to have a nice light pillar rising up from the goal, clearly signalling where you need to go. However, I had no time to do that as it would have required a special shader so I ended up modeling a big green arrow instead.

After adding the arrow to the level and making it move up and down I realized it is not visible enough. However, my engine's material system is really bad (I am rewriting the renderer as we speak) and making a glowing material is not really supported. To add to that, the front side of the arrow was in shadow. One easy way would have been to rotate the sunlight 180 degrees around the up-axis. That did not really work because the sun on the skybox was on the other side and rotating the skybox means swapping out the individual images which is error prone and would have taken too long.

At this point I was really tired so I did not think of the fact that the camera is locked to a top-down view and you only see the sun in free camera mode. Anyway, I did the thing that required the least amount of work and added a spotlight to the scene that makes the front of the arrow light up.

light_hack.png

Tadaa! Nicely lit arrow. This is probably the worst possible way to make such an effect but I did not want to break anything at this point. It might be a small performance hit but who cares.

What went wrong

I completed the core loop too late

The core loop of Land Ahoy! goes something like this:

  1. Consider where you want to launch the ship
  2. Aim and launch
  3. See how and where the ship went
  4. If the ship went over the edge of the map -> game over
  5. If the ship reached the port on The New World -> you win!
  6. Repeat steps 1-5.

At the end of day 1 I had almost none of that working. That was a very bad thing as I could not really call what I had a "game". Because of this I made it my top priority to finish the core loop as one of the first things on day 2. However, the core loop of any game should be one of the first things you make, to see if the game turns out good. I did finish it, but there was literally no time to iterate on the mechanics and I had to cut a few features. The biggest reason for all this is that I spent so much time during the first day on the art assets. The end result is a relatively nice looking (well, probably my nicest looking) but gameplay-wise fairly shallow game.

I spent too much time on non-essential art assets

Did I really need to make those fences? Or those shipwrecks? No, no I did not...

I left too little time for level design

The original plan was to have one large level with many paths and objectives to complete. Once I realized doing that would fight against the "small world" theme, I changed my plan to have 3-4 smaller levels where you would progress from one level to the next. This is one of my biggest failures with the project: I spent a few hours coding the system that would allow me to easily add levels to the game and chain them together. However, I only had time to design the one level.

ld32_progress3.png

The level that ended up in the game was made during the third and last day of the jam. I made no changes to the code at that time, save for a bugfix or two, and the design process was not nearly as fun as when I made silly test levels to try out newly developed features. In the end, the level turned out OK but it is fairly uninspired and easy to complete. Many people have finished it in three launches. Has anyone done it in two?

I had to drop too many features

I planned to have other ships in the levels, friendly ships that you would simply bounce off, as well as pirates that would sink your ship. I planned to have sea monsters that would throw you towards the edge of the map. I even planned upgrades, eg. the targeting computer system (yes) that would allow you to see the effect of wind on your trajectory. I wanted to have more animations, eg. the ship would visually fall off the world instead of simply stopping, I wanted to have water particles fall off the world at the edges.

And I wanted to have audio. I feel a game like this really should have a nice soundscape to help build the mood. After some consideration during the third day (which was a normal work day for me btw) I came to the conclusion that I should rather have no audio than bad audio. I am really very bad at making sound effects myself so I have to go through the slow and painful process trying to find good ones on the internet that I can use. This time around there was no time for that. I feel the end product suffered a lot from this.

Conclusion

I am glad I took part in this Ludum Dare. The end result may not have been what it should have been, but I am glad I released it. You people have been wonderful in your response, so thank you for that! Most of you seem to think there is potential here, which makes me very happy.

Until next time!