About Cosmologicon (twitter: @https://twitter.com/univfac)

Christopher Night
Universe Factory Games


Ludum Dare 35
Ludum Dare 33
Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29
Ludum Dare 27
Ludum Dare 26
Ludum Dare 25
Ludum Dare 24
MiniLD #34
Ludum Dare 23
Ludum Dare 22
Ludum Dare 22 Warmup
Ludum Dare 21
Ludum Dare 19
Ludum Dare 15

Cosmologicon's Trophies

Brick Wall Award for Impossible Difficulty
Awarded by blubberquark
on May 3, 2015
HTML5 Master
Awarded by namuol
on May 9, 2013

Cosmologicon's Archive

All the World: walkthrough/tips/map

Monday, December 8th, 2014 12:00 pm

Play All the World

If you’re stuck, here’s how the game works:

  • Use arrows to move around. You can double jump. Space bar to shoot.
  • Press down at a glowing triangular thing (portals) to change “rooms”, which changes the scenery and the portals available to you.
  • Portals are two-way. If you go back through the one you just came through, you’ll get back to where you came from.
  • The object is to find and kill the boss. Release the boss by destroying the hanging thing in the boss chamber, then go to each of the three chambers with a boss killer bomb and destroy those.
  • If you use a boss killer before releasing the boss, don’t worry. It’ll respawn.
  • Releasing the boss and using a boss killer both fill up your health.

If you’re having trouble navigating, know that there are multiple rooms with the same setting (day, night, rain), but you can generally tell them apart by the number of portals in the room. View a complete map here. The room names appear if you’re playing in easy mode.

Spanner – postmortem

Wednesday, September 24th, 2014 7:54 pm

Play Spanner

Here’s my entry’s percentile ranks in each category: Theme 94%, Overall 86%, Audio 72%, Mood 71%, Graphics 69%, Innovation 67%, Fun 66%, Humor 45%. This was definitely not my best entry and it wasn’t particularly fun to make, but I thought I’d say a couple words about it.

The puzzle mechanic is what I dislike most about this game. The puzzles are not elegant, and you just as often stumble across the solution with luck rather than deduction. The mechanics also allow for a very narrow range between too easy and too hard. I wound up with only four actual levels (after the six quick tutorial screens), but I’m not worried about people finishing it too fast because the last level is simply too hard. I suspect most people did not even make it past the first actual level.

I possibly could have figured out a way to improve the mechanics, but I didn’t even have a level editor until four hours before the deadline, and at that point I needed to finish it up. I briefly considered completely changing the game to be an endless puzzle rather than level-based, but I’m sure the balance would have been terrible.

Anyway, the graphics, sound, and controls came together pretty well (though I had a little trouble with the Web Audio API) so it was somewhat enjoyable nonetheless. But I think next time I’ll leave these until I’m really satisfied with the gameplay.

Flajora’s Flask

Monday, August 26th, 2013 7:58 am

Click to play

This one wounding up being a little weird. Here’s how my thought process went.

What if you had 10 seconds to save the world? Well there’s not much room for gameplay, better make it repeat like Groundhog Day so you have to do it over and over again to get it perfect. Wait, wasn’t there an obscure Zelda game along those lines? Yeah, why don’t I just rip that off.

Nobody has tested it yet, so if you have any trouble playing it, please let me know!

[ play the game ]

I wanted to make a game that focused on the story for once. I really like writing dialogue for games, but it’s hard to justify taking the time to write a good story during a game jam. That’s probably why I don’t do it too often, but it’s still fun.

The story for Rise of the Morbels is based on one of the plots from Dirk Gently’s Holistic Detective Agency by Douglas Adams. The character’s name is a reference to Samuel Taylor-Coleridge, whose “Rime of the Ancient Mariner” was supposed to be about this event. The story is delivered in voiceover that plays while you have control of the character, to avoid that “wall of text” feeling. I feel like this was a good choice, and it contributed pretty well to the feel of the game.

The sound quality’s not great, but I’m really happy with how the audio turned out, given that my last game had no audio whatsoever. This was the first time I’ve ever incorporated any voiceover into a game, and I think it actually sounds pretty good, even though I usually dislike my own voice. Speeding it up by 15% makes a huge difference, I guess. This was also the first time I’ve ever composed music for a game. Even though it’s just four notes, I feel like it’s appropriate for the mood, especially since I don’t know anything at all about composition. Combined with some creepy sound effects, it’s not bad.

For the most part, the audio work went smoothly. The music only took a few minutes, and I got five minutes of dialogue in less than an hour. I did have a technical glitch at the end, though. Every line of dialogue is a separate sound file, so you have to download 89 ogg files for this game. About an hour before the deadline, this was causing Chrome to crash. I managed to avoid it by downsampling some of the sound effects, but it was really tense for a while.

Of course, every minute spent on story or audio is a minute not spent on gameplay, so I knew that I would be making sacrifices here. It’s not the most fun or replayable game I’ve ever made, but I may talk about that in another post.

Setting up my workspaces

Friday, August 24th, 2012 4:45 pm

This is my sixth Ludum Dare. I’ll be making an HTML5/JavaScript game again, using UFX, the library I’ve been working on. This will be the fourth game jam I’ve used it for: I also used it last LD, last miniLD, and last BaconGameJam. Each time I learn about some new features I need to add!

I’m currently setting up my desktop workspaces. I think I’ll need at least eight:

  1. web for research, twitter, email, background music, etc.
  2. source control (hg checkout of my googlecode repo)
  3. source editor (I don’t use any fancy IDEs, just gedit for me)
  4. Chrome test window
  5. Firefox test window
  6. Gimp
  7. Audacity
  8. Screencap control for timelapse

I’ll add a few more blank ones, because I’m sure I’m forgetting something. I never feel like I’m really working unless I’m switching between at least 10 workspaces.

Tondie and Zupe postmortem #2: back end

Thursday, April 26th, 2012 10:52 am

[ postmortem #1 | Play the game ]

My first Ludum Dare game required python plus a couple libraries. It got 9 ratings. That’s when I decided I had to learn to make web-based games if I ever wanted anyone to play them. So I tried hard to learn Flash, and didn’t like it. Then I heard about HTML5 and learned that instead. I looked around for an HTML5 game library I liked, and realized I’d learn best if I wrote my own. So a couple months ago I started making an HTML5 game library called UFX. Tondie and Zupe is the first game I’ve made using it, so that’s kind of cool. UFX is still pretty incomplete (the game locks up in Firefox, I suspect that’s due to a bug in UFX), but I hope that by next LD it’ll be good enough for people to use if they like.

UFX uses a component-based entity system. This is the first game I’ve made using such a system, and I’m hooked. If you’ve made a few games with a class hierarchy for your entities, I strongly recommend looking into component-based systems. It honestly felt liberating to write the code!

My code base stayed pretty sane this time around. If I continue development, I’ll be able to keep most of what I have. I do remember thinking to myself, as I was duplicating 10 lines of code, so this is when my camera module becomes an inelegant mess. Fortunately most of my modules didn’t suffer the same fate. JavaScript doesn’t really deserve its bad reputation, which only exists because tons of JavaScript was written by people who don’t know JavaScript.

Most people who comment on HTML5 as a game platform say it’s not ready. That may be true in certain ways, but I think people are still underestimating its potential. The best way to make that point, though, is just to make good games with it. With Tondie and Zupe, I was impressed at the performance I got. I never do any image caching or optimization. I just zoom, scale, and rotate, and draw the graphical primitives I need. Chrome does an excellent job keeping the framerate up, even with many enemies on the screen. It’s fun to see other people’s HTML5 entries too. I hope we can inspire each other to push the envelope and get HTML5 recognized as a contender.

The graphics in Tondie and Zupe are 100% hard-coded vector graphics. If you look at the source, you’ll see it doesn’t load any image or data files. Doing it this way seems like a pain at first, but it’s very powerful if you’re willing to try it. It makes animation very easy, which was important for achieving the right “bouncy” feel for this game.

Finally, I kind of lucked out with the theme. Cylindrical coordinate systems happen to be a specialty of mine. I’ve done similar things before (which I’ll write more about in the next postmortem), so this part was easy. I’ve gotten a lot of positive feedback about the controls and camera, so I think people appreciate it.

Tondie and Zupe postmortem #1: process

Wednesday, April 25th, 2012 11:52 am

[ postmortem #2 | Play the game ]

Many posts here give tips on how to succeed at Ludum Dare, but you know what? Lots of them contradict each other, and lots of them contradict my experience. Everyone’s ideal process is different. I know what works well for me, and that’s all any of us can know. The only way to learn how you can succeed at LD is to do it! But here’s what I know about my ideal process.

  • The shower is the best place to come up with ideas. I take a shower right after the theme is announced, and I have the gameplay figured out by the time I’m dry.
  • I develop on my underpowered desktop (1.6GHz single-core EeeBox). This ensures I have great performance. Getting 15fps for my game is great, because I know that means most people will get 60.
  • Who needs sleep? A few power naps throughout the weekend keeps me going.
  • Focus on your strengths if you want the best game possible right now. For me, that’s math, procedural animation, and story.
  • Focus on your weaknesses if you want feedback that helps you improve long-term. For me, that’s sound, music, and menu systems.
  • Cutting features is not necessarily a bad thing. It’s like editing a novel. If a feature doesn’t contribute to the gameplay experience, it shouldn’t be there. Just try to recognize it before you spend time on it.
  • There’s a great moment about halfway through when, in the course of testing features, you find yourself actually playing your game for the first time. It’s really motivating.

I’ve gotten lots of positive feedback so far, thanks! I’m really happy with my entry. I’ve come a long way since my first Ludum Dare.

Hoping to use my incomplete HTML5 game library

Friday, April 20th, 2012 8:30 am

Over the past few months I’ve been working on a Javascript library for HTML5 games called UFX, which I plan to use for this competition.

It’s still woefully incomplete and underdocumented, but if anyone is interested in trying it, I’ll be happy to help in any way I can! It’s designed to be modular, so you can use one module without using the others if you like. Right now it only covers the very basics, like keyboard and mouse input, frame management, resource loading, and a component-based entity system. There’s also a RNG and a sweet Perlin noise generator. I’ve only been testing it on Firefox and Chrome.

So yeah, I don’t really recommend anyone try it this time around, but hopefully this will help me get it in better shape for next time!

The Last Adventurer postmortem #3 – theme

Thursday, January 5th, 2012 4:11 pm

[ postmortem #1 | #2 | Play the game ]

The theme for LD22 was “Alone”. I have two strict rules for myself when it comes to the theme:

  • some aspect of the core gameplay mechanic (as opposed to just the dialogue/artwork/whatever) must be inspired by the theme
  • never modify a game idea for another theme to make it “fit” with the theme that actually gets chosen

I feel like I put a lot of thought into this theme. It wasn’t enough for me to go with a game where you control one character and have very few or no interactions with an NPC. The large majority of games from any given LD are like this, and they could have filled this requirement with some minor rewriting. I rejected my first game idea because it was like this.

So rather than making another game where you just happen to be alone, I decided to change a game where you’re normally not alone into one where you are. The obvious choice for multi-character gameplay is an RPG. I could have just made an RPG where you only control one character, but that’s not very original, especially for Ludum Dare. So I decided to turn the standard formula around: instead of starting alone and building a party, you start with a party that diminishes until you’re alone. I like this idea a lot because:

  • it’s original. I can’t think of any game I’ve ever seen with this mechanic.
  • it’s inspired directly by the theme, but a creative interpretation rather than an obvious one.
  • it adds an interesting challenge to the gameplay (because you don’t control which characters will leave).
  • it challenges me, because I still had to make five different characters.

So I’m really happy with how I used the theme. Based on the comments I’ve gotten so far, most people disagree with me. They say the connection to the theme is weak or forced. I guess a game about being alone is more accepted than one about becoming alone. I think I would have gotten a higher Theme score  if I had only one character from the beginning, like most of the games in this competition (and other competitions). Still, I’m glad I didn’t. I’m not disappointed in others’ games, but I would have been disappointed in myself if I had gone the “accessible but obvious” route.

Anyway, I’m surprised some people thought my use of theme seemed tacked on, because I feel like I probably put more thought into the theme than most people did, even if I came to a different conclusion. Still, I think it’s great that people interpret the theme in different ways, so I’m not upset that the judges have a different idea of what’s a good use of theme than I do. I plan to keep trying outside-the-box ideas in the future, I just hope it’ll be clear that’s what I’m doing rather than ignoring the theme! :)

The Last Adventurer postmortem #2 – tech

Tuesday, January 3rd, 2012 12:44 pm

[ postmortem #1 | Play the game ]

Thte Last Adventurer is an HTML5 canvas game with Javascript and the GameJS library. My previous LD entries were in python, and I was told if I made a browser game then it would get more plays, but so far that’s not the case. I’ve only got 12 ratings so far, which seems pretty low for a web-based game. Oh well. :(

HTML5 gets used for a lot of demos, and it doesn’t have a good reputation for game making, so I wanted something way more graphically and computationally demanding than Tetris. My game is still a bit rough around the edges, but that’s completely due to the time constraints. I’m sure that HTML5 is more than capable of making an extremely polished game.

I had  a lot of fun working with transformations and transparency. Transparency is used in many places in the game, including shadows, the selection region, the exit portal, and the boss of level 4. I used stretch transformations for anything circular that appears on the ground (shadows, selectors, portal), rotation transformations for the “knock” animation when a character gets hit, and scaling transformations for the level 4 boss and the “quake” spell casting sequence.

The pièce de résistance is the circular gameplay area. An 854×854 square image is pre-rendered. Then, each frame, it’s rotated by the current angle, scaled to an isometric 1:2 ratio, and its drawing region is clipped to an ellipse using the canvas element’s clip method. No caching of transformed images is done, and I think performance holds up well. You can see the smoothness of the rotation when you press LEFT or RIGHT. I should have incorporated that into the gameplay more, but more about that next time!

The Last Adventurer postmortem #1 – process

Monday, December 19th, 2011 11:52 pm

[ Play the game ]

I’d call this one a success!


  • Game is finished, with a lot of content (for me): five playable characters, three spells, three bosses with different behaviors, an upgrade system!
  • I was dedicated. I slept about 3 hours per night and spent almost every waking hour on the game.
  • Game runs (relatively) smoothly. Given how little I optimized, and how many graphical tricks I used, I think 20-30fps is pretty good.
  • I’m getting the hang of Javascript.
  • HTML5 canvas turned out to have a lot of relevant useful features
  • Really pleased with how the boss of level 4 turned out (and I got in a Wayne’s World reference)
  • Really pleased with how the rotating gameplay area turned out
  • Happy with the graphics, sound, and character design for the most part
  • Deploying to web turned out to be pretty easy. I’m very happy to have my first web-based LD game


  • I get so engaged with my game during the competition that I have trouble joining the community. I’ll have to make up for it now that it’s over.
  • Navigating an isometric layout is a tricky problem
  • Had to leave out in-game instructions
  • I wish I had more engaging gameplay, but it’s fine for what it is
  • Had to leave out storyline (which is fine because it was too depressing)
  • Sprites are cut way down from my original idea, surprising no one
  • Had to develop in Firefox because of how Chrome handles trusted domains on local filesystems

Still getting used to GameJS

Friday, December 16th, 2011 5:23 pm

Definitely getting nervous. I should be more comfortable with a tool starting LD than I am with GameJS and JavaScript right now. I’ve spent the last day writing a module for handling game entities in a tree, which is the way I usually like. If you’re using GameJS and you want to use it, get it here.

And I saw that you could submit warmup games so I submitted mine here.

Good luck, everyone!

My first browser-based LD game

Friday, December 16th, 2011 1:09 am

I’m going to make an HTML5 canvas game using the GameJS library. I really want people to be able to play my games easily, so it’s time for me to learn something web-based (my three other LD entries were in python).

I’m pretty nervous, because I just started trying out GameJS for the first time tonight, and I’m not very good at JavaScript yet…. I made an HTML5 game for practice last week, and it was pretty painful. Still, now I know it’s possible! Check out my practice game on your HTML5-capable browser if you like:

[ Intro to Fixology ]

Abigail’s Descent – postmortem

Saturday, August 27th, 2011 9:16 pm

[ Play Abigail’s Descent | gameplay footage ]

My game’s a platformer where you descend around the outside of a cylindrical pseudo-3-D tower. It’s nothing groundbreaking (I’ve seen the tower mechanic in at least 2 other games) but I still felt like I put enough into it that it wasn’t completely derivative.

I don’t usually have trouble coming up with an idea that I like. I started on the tower mechanic 21 minutes into the competition, and I had the rest of the gameplay in mind within a couple of hours.

I think I made the right choices about which features to cut and which to keep. Some highlights:

  • I’m really happy with the 2.5-D tower. This obviously was not trivial to implement, and it turned out pretty well. I wish I could have made the platforms look better, but nobody has complained yet.
  • I like the grayscale characters. It reminds me of Paper Mario. Feedback has been mixed.
  • I really like the clouds. Nobody’s commented on them, but I think they do a great job adding to the 3-D effect and they only took 20 minutes to add.
  • The dialogue/story is good, but I wish I could have spent more time on it. The knight was originally only going to be in one level, and I had other characters planned.
  • I think I got the challenge level just about right. I followed my rule of thumb of making it 1 to 2 levels easier than it seems like it should be. Some players still thought it required pixel-perfect jumps, though in reality every horizontal jump has at least a 14 pixel margin of error.
  • People don’t like jumping games, I know. I really like to have as simple of mechanics as possible and make the most out of them. I think if your character can jump, you should have some challenging jumps. I hope that the frequent checkpoints helped minimize the frustration.
  • The sound and music are fine. I may some day be able to make my audio rather than just using whatever comes out of sfxr and Autotracker-C. But until that day, I’m grateful for these amazing tools.

I had a great time this LD, and I was pretty happy with how the game turned out! It’s already gotten twice as many ratings as my last LD game did during the whole competition, so I certainly can’t complain about that. So far I’ve gotten very constructive feedback.

Thanks to everyone who took the time!

Timelapse for Abigail’s Descent

Tuesday, August 23rd, 2011 5:39 pm

[ Abigail’s Descent | timelapse (youtube) ]

I admit I don’t really “get” the whole timelapse thing – it’s too fast to see anything that interesting. I had my webcam this time (although it stopped working on Sunday) since I was going to be LDing in a variety of cool locations (you’ll have to watch the video to find out where!). I put a big countdown clock on there too, sacrificing a good 30% of my screen real estate for the sake of this video. I still don’t think it’s that interesting! :)

Anyway, if anyone has any tips for making a better timelapse video, lay them on me!

First screenshot

Sunday, August 21st, 2011 7:07 am

I’m making a fairy tale of a self-reliant princess who has to rescue herself from a tower. Pretty crazy, right? The mechanics are pretty simple, so now I’ve got to focus on content. Here’s how it’s going:

Despite the mind-blowing 3-D graphics, this is a pygame (SDL) project. Still sticking with what I know here.

[cache: storing page]