Entrance to the lunar caves

Journey to the Center of the Moon

Exploration and fun! Procedural generation! Complete lack of gameplay! There have been several expeditions to reach the center of the moon; so far, none have been heard from. It is your assignment to reach the center yourself, and discover what happened to the others.


Give this entry an award


Ratings (show detail)

Overall: 3.2
Fun: 2.9
Production: 3.3
Innovation: 3.3

5% respondents marked the game as not working.
Respondents: 17


File Uploader Date
Entrance to the lunar caves
Cynerva 2013/09/07 23:59
Source/linux distribution
Cynerva 2013/09/07 23:35
win32 distribution
Cynerva 2013/09/07 23:34
Standing on the lunar surface
Cynerva 2013/09/04 04:33
Cave generation
Cynerva 2013/09/04 04:32
Surface generation
Cynerva 2013/09/04 04:32
lunar surface prototype.png
The lunar surface
Cynerva 2013/09/01 17:18

Diary Entries

I'm not crazy! Oh, maybe I am.

Sooo, last minute decision to enter this! Actually, the contest started a couple hours ago. Whoops.

I am working on this as part of a two person team. I'm Ava, and I'll be doing the programming, sound, and music. Ami may do some artwork and design (yay!) but mostly she'll be beating me up when I fail horribly to keep up with my workload. With any luck, I may come out of this a horrible bloody mess, but hopefully the game won't :D

So we have no idea what kind of game we're making yet. This is a great start!

1 comment

Day 1: Spaghetti code!

Well, it's the morning of day 2, but I'll reflect on what Ami and I got done yesterday.

The contest started Saturday night for us, and we signed up shortly after that. No real plan going into it, so we spent the night brainstorming, and once we had a vague plan I decided to compose a simple song for the main menu. Also made a github repo (https://github.com/Cynerva/jttcotm).

Before I continue, a quick summary of the concept: Journey to the Center of the Moon. It's a platformer, and the name speaks for itself. Our focus will be on exploration and atmosphere, so there likely won't be any combat. Oh, and just to remind you how stupid I am, I'm trying to do the world/level generation procedurally! YAY!

Sunday, I started with the actual implementation. A basic game loop, game states, and a working camera. Made a nice flickering star field, and a background for the lunar surface -- in hindsight, I should have focused on the player movement and foreground first.

Wanted the platforming to work with smooth terrain, so I went for a box2d approach to physics and player movement. I've never done this before, but the idea is to throw a sensor beneath the player's feet to see if they're on the ground or not. Works better than I expected!

After that, I spent the rest of the evening wrestling with the foreground of the lunar surface. Didn't really get anywhere with that. Ami made some nice sprites and animation for the player and surface features, though!

Plan for today:
  1. Add player animations
  2. Implement a generic chunk-based world
  3. Realize I don't know what the hell I'm doing
  4. Do it anyways so Ami won't beat me up
Today's my last day of freedom. Back to work tomorrow, and I'm also buying a car and looking for an apartment this week. Whyyy did I enter this

1 comment

Day 3: Carving polygons!

I'm tired @.@

The world is now implemented with a chunk-based system; unused chunks are saved to disk and can be reloaded later.

For world generation, I needed a way to be able to shape the world easily, abstracting away the concept of a chunk. The hardest part was finding a way to allow for arbitrary physical shapes in Box2D. The idea was that I wanted to "carve" away pieces of the moon with arbitrary polygons.

It turns out that there's a python library, Polygon, that does this and works pretty well with Box2D. You can define polygons and subtract them from eachother. Now, you can end up with pretty complicated polygons with multiple contours, and Box2D doesn't like that, but you can just call a triStrip() method to break it up into simple triangles. This works surprisingly well!

Surface generation works by carving out the top chunk based on a 1D midpoint-displacement heightmap. The carver sweeps from left to right:

Cave generation is a similar approach. The width of the carver again uses midpoint-displacement, and the carver wanders in random directions with some constraints:

I also have player movement and animations working. Here, have a shiny picture of the lunar surface!

I haven't made any new songs yet, but Ami's made a ton of sprites for us to use. Whoo!

Add a comment

Final Submission: Journey to the Center of the Moon

Whew. I'm tired. Brief description, screenshot and downloads below. I'll do a post-mortem later.

Exploration and fun! Procedural generation! Complete lack of gameplay! There have been several expeditions to reach the center of the moon; so far, none have been heard from. It is your assignment to reach the center yourself and discover what happened to the others.

Linux/source: jttcotm-source.tar.gz
Windows: jttcotm-win32.zip

1 comment