Friday, March 27, 2015

Steaming Ahead - WEEK 06

The sixth week of work since I got Steam Green-lighted has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

This week I added two new levels, bringing the total level count to six. Both levels involve operating the crane, as opposed to a bulldozer or excavator. I also created a truck for hauling cargo. And I've spent a lot of time tweaking the soil simulation. For instance, merging back the soil particles in the terrain has been improved, so that the resulting terrain is smoother, with less hard edges. The quality of the soil simulation is getting close, but is still not ready for release.

A lot of work remains to be done. I want to release with a minimum of 8 levels, so I need to create at least two more. I need to look into the Stream SDK, and integrate it into my game. I need to create a convincing sound for the pickup truck, as currently it sounds like a diesel bus from London. And there are a lot of other loose ends to be tied up.

Friday, March 20, 2015

Steaming Ahead - WEEK 05

The fifth week of work after the Steam Green-lighting has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

I have added two new levels for the bulldozer. In the first level, you need to clear a helipad covered by a landslide. I especially like how this one turned out. I also added a level where you recover a stranded truck with the bulldozer. That one is a little less refined.

A added a cheat-sheet graphic that shows the controller mapping. It displays dynamic information, which changes as you switch vehicles, or switch modes from driving to camera to hydraulics. It's not pretty, but it is effective. I don't have controls remapping yet. I fear that may be a hairy one. I will have to see what the steam sdk expects for this.

Lastly, I have been tuning the excavator physics, so that it will properly scrape dirt from the terrain using its bucket. Oh, and as a bonus: I've finally switched my shading from Gouraud to Phong.

Friday, March 13, 2015

Steaming Ahead - WEEK 04

The fourth week of work after the Steam Green-lighting has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

I have added a level selection screen to the game, using my Dutch-Blunt vector font. Like the font, the screen is very minimalistic, see below.

I have created the first level for the game, which is a simple driving exercise where you need to follow a parcours trough the hills. Here's a map of the current parcours.

I have added a game-over screen that gets triggered when you win or lose a level. And then I also added a second level as well, which is an exercise in loading cargo.

I spent quite a lot of time getting a topographic map in the game. But I am pleased with the results.

Saturday, March 7, 2015

Steaming Ahead - WEEK 03

The third week of work after the Steam Green-lighting has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

This week I started to think about actual level design, and what missions to assign to the crane/bulldozer/excavator/whathaveyou. And I am also having second thoughts about the title 'The Little Crane That Could'. The new engine's main feature is the soil-simulation, could it be that the bulldozer and digger will be more prominently feature in the game that the crane?

  • The Little Diggers That Could?
  • The Little Dozer That Could?
  • The Little Machine That Could?
  • Mud Machines?
  • The Little Crane That Could II?
Frankly, I don't know any more. The steamworks interface lets me rename the game, but it could very well be that this renaming is a one-chance only, so I need to get it right.

So back to the level design... I think that after a driving tutorial, the first mission will be a loading task, where the crane truck will load a pickup truck. So first order of business was putting a pick-up in the game. I decided on using this pickup model from turbo squid. It took me a day to reduce the vertex count of the model so that it was suitable for in-game use, and then I had to rig up the physics for it. I think it looks pretty good, but still needs better audio, because I am still using a very low-revving big old diesel engine sound for all the trucks. It is fine for bulldozers, excavators and big rigs, but for a pickup truck not so much.

With the pickup truck added to the world, I then had to put in a mechanism to switch between vehicles. So first you operate the crane truck so that you can load the pickup truck. Then with the TAB key, you switch controls to the pickup truck so that you can drive around with your freshly loaded cargo.

And lastly, I've been distracted with the design of a new font to be used in my games. I created a low poly font called Dutch-Blunt and I open sourced it.

Friday, February 27, 2015

Steaming Ahead - WEEK 02

The Second week of work after the Steam Green-lighting has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

I'm not going to lie: this was a week of frustration. Source of the frustration was a wild goose chase to fix a shadow mapping bug. As a detour, I thought a windows port could help me solve this bug, with some OpenGL debugger tools from AMD, e.g.

So the sub-goal for the week was a windows port. So far I have been developing under GNU/Linux, and occasionally using the Mac OSX port. There are a lot of things missing in the windows world. One of them is pthreads. Fortunately, SDL includes support for platform independent threading, so I rewrote my pthread code to SDL_Thread code, which has a similar API. I am seeing really bad performance on windows though, and I am not sure what the cause of this is. It could be that SDL threads are slower than pthreads. This needs more investigation.

Other missing functionality in windows world is opendir(3), which I worked around with a temporary hack.

So did anything gameplay-related happen this week? Well, at least I can now read in modular level designs, that were created with my Little Crane World Editor. So at the very least I can build things like parking lots, or spawning-platforms, so that not everything in the world is muddy hills.

Friday, February 20, 2015

Steaming Ahead - WEEK 01

The first week of work after the Steam Green-lighting has come and gone. So as promised, here is a weekly update on the progress towards the Steam release of The Little Crane That Could.

I've spent this week on actually building a crane vehicle. The code base so far only contained a bulldozer/loader and an excavator. And now, there is an actual crane as well. The crane turret and cabin are from a model purchased at TurboSquid. The truck underneath, I modelled myself in Wings3D.

However, most of the time was spent on doing the physics sim for the truck and the crane. I'm pleased with the truck, that now has 4 axles instead of 2, and all driven. The wheel suspension is softer than the old crane I used in the mobile version of the game, and they look great. It took quite some time to get the sim stable without too much jitter, but the quality is now pretty close to shippable. So without further ado, shown below is what the new Little Crane looks like.

For next week, I want to see if I can get some actual game-play back in, probably in the form of the old basket-ball level from the mobile game version. I hope you'll follow me again in next week's progress report. Until then, I will leave you with this great shot of the truck's suspension.

Sunday, February 15, 2015

Steaming Ahead - WEEK 00

Such great news, Friday 13th of February 2015: The Little Crane That Could has been green-lit, meaning my game will be published on the Steam store. Yesterday I announced that I pledge to, EACH AND EVERY WEEK, publish a progress report on my steam publication.

So without further ado, here is report 00, where I will report on the current state of the project.

There are two code bases relevant to this steam publication. There is the unified code base that is used to build the iOS, Mac, Linux, Win, Android, OUYA, GearVR versions of the game. This is what I call the Legacy Code Base (LCB). Next, there is a new code base where I have researched soil simulation, with real time terrain deformations. I will call this the Research Code Base, or RCB. The steam build will be making use of the RCB, to make it a fresh new game, with some amazing technology behind it.

Currently the RCB is a capable engine with the following features:

  • Soil simulation where terrain can be scooped up, and deposited anywhere. It is a true isosurface capable of caves, overhangs and such, so is not limited to a simple height field.
  • Supports an infinitely large procedural world. Only changes made to the terrain are stored to disk.
  • Features a bulldozer simulation.
  • Features an excavator simulation.
  • Diesel-engine sound effect.
  • Caterpillar track simulation that leaves depressions in the terrain.

The most notable omissions in the RCB include:
  • Lack of integration with steam.
  • Lack of levels, goals, gameplay.
  • No crane vehicle simulation.
In the months ahead, I intend to address the crane simulation first, and will read up on steam publishing. There are some decisions to be made regarding publication, as there are:
  • Will I do Steam Early Access? I'm leaning towards yes, but gameplay needs to be in place for this.
  • Will I adopt any steam specific technology, as there are steam trading cards, steam big picture, etc?
  • How many game levels will be part of the first release? And how much overlap with levels in the mobile game will it have?
Tune in next week to see what progress has been made. And let me leave you with the current vehicles from the RCB.

Here is a video of the excavator in action, and one of the dozer in action.