The rest of the game design notes

Here’s a dump of all the design decisions I’ve made on The Sentient Cube.

levelDebug

First, the debug level. Always gotta have one for Unity. It’s a great place to create prefabs, and tweak the numbers to apply to the rest of the levels. Also a great place to test stuff, like the water block (top-left), unattainable block (top), bouncy block (top-right, unused in game), ice block (not shown), and rocket boosters (red, left).

levelHowToPlay

How to Play was a nasty one. The first curve is there to give a clear and empty view for the player to practice the controls. It also puts the Goal out of view, making it easier for me to teach the basic objective of the game: collect smaller objects. The first bend is where I scatter the smallest objects, and provide the instructions to roll into them. I’ve put a lot of objects there to show them lighting up as you get bigger.

Proceeding forward, I have this weird bend that stretched all the way to the left. The straight-way itself is intended to let the player practice collecting bigger objects, in a true breadcrumb fashion. It’s also here that I mention the arrow at the top of the screen, that it indicates where the goal is (straight ahead). It’s worth mentioning that I call this bend “weird” because it was also intended to hide a problem: Unity’s default GUI shader draws over all other objects. By placing it to the far-left, the player wouldn’t see the text at the beginning of the level. The shader that corrects this weird overlap is openly available online, but to respect Compo rules, I didn’t copy this shader; I merely hid it.

level1

Level 1 was actually the second level I created, code-named “pyramid.”  This level simply acts like a practice level, where the goal was clearly above you, and the objective was simple get large enough to be able to climb up the steps.  The bouncing spheres was a small challenge I’ve added to make things a little more interesting, i.e. you have to time it correctly to obtain each sphere.  Past that, it’s a pretty generic Katamari level.

level2

In Level 2, I wanted to establish that the Goal could be anywhere.  In this level’s case, directly below you!  This was actually the first level I created, and you can tell from the knocked over objects I really just zoomed through this.  It was the first place, though, where I got a good handle on the amphitheater formation.

level3

In Level 3, I introduce the rockets!  I initially intended the rockets to help you fly upwards, but that was nearly impossible to do with the given control scheme.  Instead, I found it useful to traverse great distances due to its added speed, and decided to do a level designed to demonstrate just that.  To acknowledge that players may simply wants to play around with the rockets, I placed slopes around the Goal to make it easier for them to reach it.

level4

In Level 4, I introduce the water block and the ice block rather haphazardly.  This was the last level I created, and I simply had very little time left, so I dumped every new assets I had into it.  The walls surrounding the ice is there to prevent both you and the objects you’re trying to stick from falling out, making it easier to collect things.  The objects are placed almost randomly, partly because of the chaotic nature of the ice-block.  The water blocks were intended for helping you adjust your controls, but in the end, they ended up being pretty useless.

levelCredits

And the Credits. This was actually hard to design, mainly due to tweaking the size of the breadcrumbs so you can definitely grab each text. Other than that, it’s intentionally a breadcrumb-to-breadcrumb level with no other purpose than, well, providing the credits.

Interested? Try The Sentient Cube here, and please rate the game!

Post-compo improvements on The Sentient Cube

I’m not exactly fond of doing this, but the complaints were too strong to ignore.  I’ve decided to create a new web build to address the issues below.  Let me be clear that you should play the original build and rate it first before playing this one.  Otherwise, that’s unfair to everyone.

Played it?  Good.  Here’s the new webplayer:

http://wp.me/P3bFDA-5m

It contains the following improvements:

  1. Significantly improved the controls.  This was done by combining several methods:
    1. Re-calculating the center of gravity to where the camera is focused
    2. Increasing the gravity on the cube you’re controlling as you get bigger.
    3. Increasing movement assistance as your cube gets bigger.
  2. Added camera controls via mouse and right-control stick on the Xbox 360 controller (only supports Windows).
  3. Fixed the Goal’s 3D text shader to not show through objects.
  4. Changed the tutorial level to be more straight.  This makes the arrow direction less deceptive for beginning players. Also added camera control instructions in that level.
  5. Rocket boosters are adjusted to be more effective.
  6. Fixed bug where newly lit objects will sometimes not stick to the cube.
  7. Added a brief 0.1 second delay before the next object sticks to the cube.  This makes the poles in “Level 1” actually collapse first before it sticks to you.  Also note that that level has changed to accommodate for this change
  8. Slightly increased the threshold necessary to pick up objects.  Only slightly, though!
  9. Picking up bouncy spheres (and potato!) no longer makes you bouncy.

Please tell me in the comments below how these improvements fare to the original build.  I really want to work this into a full game in the near-future, so the sooner I know how to improve the game, the better!

And once again, thanks for all the help!

Understanding Katamari: the level design of The Sentient Cube

Designing the levels for The Sentient Cube was a fascinating exercise, and one that provided a great insight in how Katamari Damacy was designed.  Both games have very lenient win conditions, and as such, have equally lenient level design that can be both creative and flexible.  Broadly speaking, there are two types of object placements used in The Sentient Cube: the breadcrumb and amphitheater formation.

breadcrumbFormation

Breadcrumb Formation

The breadcrumb formation is the easier one to understand, yet harder to setup.  In short, it’s a placement of increasingly larger objects placed into a trail for the player to follow.  It’s purpose is simple: to lead the player towards a specific point of interest.  This is most obvious in The Sentient Cube under the “How to Play”, “Level 3”, and “Credits” levels where they’re designed to introduce the player a new concept.  In “How To Play”, the breadcrumbs literally lead the player to the goal.  In “Level 3,” it leads the player to the rockets, which they can use to traverse through the large expanse very quickly.  Furthermore, the rest is intended to lead the player to the goal, much like “How To Play.”  Lastly, the “Credits” leads the player to each text in the game, making it more likely that they’ll spend the time to read it.

One interesting tidbits I learned from using the breadcrumb formation was that making a simple, straight trail was actually the worst way to implement this idea.  With the exception of the “How to Play” where the player needs to be guided to the goal, a straight trail feels too easy and boring.  Instead, it’s better to have the trail curve, and even place obstacles around those curves to emphasize it.  This is most evident in “Level 2” where I zig-zag the breadcrumbs; “Level 3” where it creates a small ‘C’ to lead you to the rockets; and “Level 4” where obstacles obstructs your view from seeing the next breadcrumb.

amphitheaterFormation

Amphitheater Formation

The amphitheater formation is a little less easier to understand, yet easier to implement.  In this formation, objects are placed in concentric circles with each layer consisting of similar sized objects.  As the layer gets farther away from the center, the objects gets bigger.  The formation is like that of the breadcrumbs, but in all direction.  Unlike the breadcrumb formation, amphitheater is flexible enough to allow quite a difference in size for each circle, which gives the level designer some flexibility.  This is seen in “Level 1”, “Level 2”, and “Level 4” where the objective is simply to grow big enough to roll over walls.

Similar to breadcrumb formation, variation in sizes within each layer is a lot more interesting to the player than the same size.  Additionally, each layer should increase in size exponentially rather than linearly.  Other than that, you can be pretty creative with it, making it square-shaped, putting objects at different elevations, putting gaps between cross sections, or even making them bounce.

Conclusion

Honestly, this game genre is surprisingly simple when it comes to level design.  With its loose restrictions, it’s easy to get creative on what kind of setting you’d like to create, let it be in Japan, USA, underwater, in space, etc.  Hopefully this will help and encourage others in exploring this great idea.

Interested? Try The Sentient Cube here, and please rate the game!

Katamari love letter: The Sentient Cube post mortem

So much fun, chaotic, fresh and sweet.
McFunkypants

Katarami + Cube + Original Design = WIN
EdoMiyamoto

I love the music. I also love the reinvention of katamari. And the visuals are fantastic. By the time that I figured out what the game was about, i had a huge smile on my face.
eteeski

The Sentient Cube

There’s something to be said about a game that, within the first 3 hours of development, felt instantly magical. It’s one of those moment where you stop asking questions about the game, and instead just make it. Nothing could go wrong.

Usually, that feeling never lasts.

I’ve went to many Game Jams before: some 48 hours, some only 8 hours, some with team of up to 7, or as low as 1. Generally, in all of these cases, I’ve always felt like I had to compromise the vision to create a more popular game. I expected this when joining Ludum Dare for the first time. After all, I’m doing this alone. The lack of resource is a significant limiting factor.

The Sentient Cube was different. For one, I never felt limited by the tools I was given. Two, I never compromised with anyone else: it was just me. And three, making and playing the game remained fun even through the bug fixing phases. I can say with great confidence that this has been one of the best projects I’ve ever made in my Software Engineering career, and the comments above more than confirms it.

Without further ado, here’s the post mortem of The Sentient Cube, and how I made it happen:

The Sentient Cube

What went right:

  1. Being prepared.
    As mentioned earlier, I’ve been to enough Game Jams to know what to expect for this event.  The only real difference I felt this time was that I was going to work alone (I rarely do that).  Just in case, however, I did get in contact with MrPhil, and he helped address parts I may not have considered, including the food situation.
  2. Having a schedule.
    My schedule was pretty simple: first 30 minutes is brainstorming, and the first day was to test an idea out.  Since this idea worked great, I went straight to developing more concrete features, using Fossil’s ticket tracker system to keep trackthem.  I aimed at submitting the game an hour earlier from the deadline, to have a decent chance at submitting the game before the site crashes, and decided to make any final touches the hour before.
  3. Great tools.
    If there’s one thing I learned from Game Jams, it’s to take as many shortcuts as possible.  Unity, Garage Band, Photoshop, and others greatly helped this capability.  Additionally, the Fossil ticket tracker proved to be a great device to prioritize which tasks were more important, such as the tutorial, score-keeping, and so forth.
  4. Minimal modelling and texturing.
    I love cel-shading, from an artistic perspective (yay, Windwaker!). Both this theme (minimalism) and Unity’s toon shader gave me a great excuse to spend the minimal amount of effort modelling and texturing. Add that with the edge-detecting post image effect, and you’ve got a masterpiece! I further minimized the work by generating the object’s color random, and automatically calculating each object’s size on loading each level.
  5. Starting with the third level.
    In what seems like a counter-intuitive decision, I made the second level first.  This was a tip I took from the famed Mario creator, Miyamoto Shigeru-san (sorry, I’m Japanese.  I have to be extra formal to this legend!), and it worked wonders.  By creating the later levels first, I got a brilliant insight at Katamari Damacy‘s level design (an article I may write later), which helped plan how to create the first tutorial level.  With the exception of Credits, the rest of the levels came very easily.

What went wrong:

  1. Realizing I forgot to put the splash icon, and spending an hour on it.
    It was a complete waste of time for an inconvenience on the player. Worse, I attempted to fix this in the last 2 hours, and realized it wasn’t worth it.
  2. Tunnel vision: the controls.
    The biggest complaints I received were the controls and the floaty physics. The thing was, I knew I had this problem, and never bothered to fix it. For some reason, I didn’t think it was as important, which in hindsight was ridiculous! First rule of game design: a game is not fun until it’s playable.
  3. The scoreboard.
    I realized after playing other people’s games that during judging, the scores and replayability of your games aren’t all that important. All judges expect the game to be playable within 5 minutes, so they wouldn’t be too concerned about the longevity of the game. Programming stats tracking takes quite a bit of time, so I felt I wasted a lot of time on a feature very few people would be concerned with.
  4. Live-streaming with webcam.
    I deliberately keep myself as transparent to the internet as possible. Using my real name as the display name on the Ludum Dare’s website is part of this. But even I have my limits in privacy, and in this case, the webcam portion of the live-streaming really went over the edge. I failed to realize until too late that you can actually see me washing the laundry, cooking food, eating, and other aspects of my life I’d rather not reveal so openly. I think the live streaming is great, but on the next event, it won’t be with the webcam (only microphone).
  5. Timelaps fail.
    I didn’t have much hard drive space left on my dev computer, so I timelapsed every 10 minutes. Terrible idea: the resulting video just flashed meaninglessly. This is hilarious in hindsight, because I had 2 external hard drives available with plenty of GB to spare.
  6. No Linux export.
    I am so very, very sorry. Signed, Arch Linux user.

What will I do next:
I’m a busy guy, so the short answer is improving on games I was already working on long before Ludum Dare. In all seriousness, though, I will revisit this game. For one, it opened my eyes on what it’s like to produce the game online for free, and this was extremely gratifying. I’ve been eyeing on Kongregate and GameJolt, so I’ll probably start working on the game to make it compatible to such sites. It’s been stated by my colleagues that the game must distinguish itself from Katamari more, so I’ll be strategizing on that while covering all the other stated complaints. Lastly, I’ll probably learn Garage Band a little more to compose better music.

Interested? Try The Sentient Cube here, and please rate the game!

Unexpectedly useful things

Now that Ludum Dare is in judging phases, here are a few tools I found extremely useful…when I least expected it:

Fossil, and its Ticket Tracker

Fossil in a version control much like Subversion.  In fact, it’s commands are nearly identical to SVN, yet has the advantage of a Distributed Revision Control (e.g. offline commit support).  But every programmer knows Version Controls are important!  No, I’m going to talk about a feature that I honestly didn’t expect any use out of: its built-in ticket support.

FossilTickets

Ignoring the ugly HTML v1.0 visuals, this thing is just…clumsy.  Nonetheless, I found myself using this over Google Task.  Why?  Well, it loads fast, and I can indicate if I did or didn’t feel like fixing things.

Garage Band…on the iPhone

This is iPhone’s piano. It’s very tiny.

keyboard

This is iPhone, with orchestral strings, on auto-play.

strings

Life became so much easier, since.

Ludum Dare entry: The Sentient Cube

The Ludum Dare 26’s entry,  The Sentient Cube is now up and running!  You can play it here, online, or download the executable!

The Sentient Cube is an Action-Puzzle game that combines Katamari Damacy and Crazy Taxi into a unique adventure! You play as a blue, sticky cube that can roll into other objects smaller than itself to grow bigger. By increasing the cube’s size, the cube can reach to the Goal with more ease. Scattered around the level are various physics-changing items and power-ups. The Sentient Cube focuses towards the puzzle aspect ofKatamari, rather than its score-keeping.

Remember the game is available for voting on Ludum Dare’s website, so vote!