Wednesday, January 21, 2015

[CW] Caves of Mars on github

I put the code for Caves of Mars on github:

I've added several more things since the end of the jam, and expect to continue working on this for a while. The experience curve of the game has been seriously tweaked, and you can do a lot more with fungus (fungus like corpses). I also fixed a bug where throwing things wasn't possible when using the laptop key bindings.

Play time of a winning run is about 60-90 minutes.

Tuesday, January 20, 2015

[SAD] Game is up on Google Play

My game is "finished" and is up on Google Play:

[Nigel] Starting Late. Presenting "Bulletin (Working Title)".

Due to "chaos" and other commitments, I haven't been able to start my jam until today. This time around, I decided to make a mobile application rather than a game.

I'll be building it as a webapp using the usual JS/CSS/HTML, but will be porting it to mobile using PhoneGap

In short, the application is a public, location-dependent, ephemeral, bulletin board. A user can anonymously post a text snippet, photo, or 10s video. When a post occurs, all users will be able to view the current post until a new one is posted. Old posts are deleted as soon as a new post occurs. Further, users can only see posts made within a particular radius around them.

Progress: Since starting, I've implemented live snippet posting. I will be aiming to port to PhoneGap before implementing images and video. 

[MMc] Solar Golfing - polish pass

Monday, January 19, 2015

[SAD] Victory, but not done

I know have a game which has basically all of the features I wanted to have, and a reasonable amount of polish. There are additional features I am considering adding, though at this point the only things I may do soon are polishing up the "menu" and "game over" screens.

The most important thing that I want to do before the end of the jam is deploying the app as a package, signing it, and putting it on the Play Store: all things that will hopefully happen after dinner.

Current gameplay shot:

Hello All!

So Kyle and I finally finished up last night but had some trouble getting it online. Thanks to Tony those problems are behind us! Tony's the best. The game can be found here:  I hope everyone has fun playing it! Level design proved an interesting challenge. The core game play mechanism is largely unlike other platformers and building levels that played to its strengths were a challenge. Hopefully we created some levels that work well. There may very well be further versions of this game so any feed back is very appreciated!

Kyle and Yitong

[SAD} Delayed track - Game??

So, I am working on a bit of a delay on this jam, but things are still moving along. At the end of today, I think it is safe to say I have a game, but it is lacking polish in a number of ways: one is that it could look better, the other is that I have some very hard to track down bugs (things that happen sometimes, but not others, yay!). Anyway, I have a score (depth of your traversal), an end condition (air) and at least 3 types of blocks (standard blocks with 1 to 5 durability (shades of yellow), air filled blocks (blue), and bomb blocks that kill you (red)).

Goal for tomorrow: Fix bugs, make game prettier (Start/End screens). Maybe make less silly assets, maybe test it on a different phone to find out what doesn't scale correctly (a 6-inch phone with a 1440p screen might not be the average use case) and hopefully get around to packaging it and dealing with technicalities of actually getting it on the Play Store.


Sunday, January 18, 2015

[CW] Caves of Mars - Victory!

While my starting point technically support win and lose conditions, there wasn't really much of a game there. After putting in about 12 hours over the last 4 days I have actual winning and losing, as well as a much richer set of mechanics and improved UI. I didn't get done everything I'd hoped (though my goal list was unrealistic for the timeframe), but I accomplished more than enough to feel comfortable calling this a victory! The enjoyment of playing it is now one of the things that slows my development :)

[DF] So Many Doors - Victory

I think that's it for me. It has been super fun to work in this game jam and it's been awesome to see the games popping up all over this blog. As for myself, there are piles of things to improve about this game, but none on the TODO list tonight.

So Many Doors

Final Build
Build 6
Build 5
Build 4
Build 3
Build 2
Build 1

The source code can be found on Github.

I'm not really sure what problem rxjs is solving anymore. I understand the value of reactive programming and being able to construct pipes of relationships, but a part of me also feels like any sufficiently complicated dependent asynchronous relationships should either be (a) moved to a server for processing or (b) storing some easily serializable state which is updating constantly (like a video game). It was fun to use it at the start, but it is clearly not the correct solution for a game system. Mind you, no one designed it for that purpose in the first place, so I can be blamed for spending too much time hammering a round peg with a square hammer.

I'm happy with the art style and the super simple isometric rendering. It was fun to work on, and I'm psyched to give it another shot some time in the future.

[MMc] Solar Golfing final jam build

I added the aliens (it is ok to shoot into space now), added penalty strokes, tweaked some graphics, fixed a number of bugs that were exposed in playtesting, tuned a bunch of constants, and significantly increased the complexity of the planet generator based on your feedback. It seems to be pretty fun, even with just the one solar system--I'm now wasting too much time playing my game and not spending enough time writing it!

All planets still have ALL features turned on from the new procedural generator, so they are very rocky. The next step of post-game polish will be to vary feature probability distributions between planets, like the mountainous planet or the crater planet. There's probably only two hours of work until that bears fruit so I'd like to push through tonight, but have work tomorrow morning. I hope I'll be able to add those features early in the week so that I don't lose momentum.

Play the current build.

[DF] How to open up a door

I had a super fun moment where I made my girlfriend try out the build; she died instantly.
Then I added an intro level that explains the door opening mechanic a little better (I hope).

Current build

[TL] Game is Live!

After a very brief coding session late last night and work this afternoon, my game is now a game! I couldn't get my beat detection algorithm as precise as I wanted it to be (sound processing is hard) but it does an ok job picking up downbeats. The general idea of beat detection goes something like this:

  • keep a threshold volume level, with a beat occurring whenever the volume exceeds the threshold
  • set the new threshold to be the last beat; this prevents a cluster of beats detected
  • let the threshold level decay over time
  • keep track of the time when the last beat was detected to ensure false positives are reduced

I made the gameplay a little more challenging by giving the player obstacles to avoid: columns of "fire" that represent the frequencies of the song. Here's what gameplay looks like now:

Your score is constantly increasing, but when you touch the red/yellow portions of the screen your score decreases. I wanted this game to be a more casual experience focused on the music, so falling off the platforms only results in the player losing half of their points; in a sense you can't really "lose" the game. The beat detection algorithm seems to work best when there is a strong underlying pulse to the song; songs with too much "noise" across the frequency spectrum cause the beat detection algorithm some trouble.

The game can be played here, and you can even play with songs you have locally! The preloaded song takes a little while to get loaded, but local files should be up and running relatively quickly. The preloaded song "Point of Departure," is done by the awesome VeraIcon. People who were in Computational Graphics this past fall may recognize a portion of the song from the procedural cities midterm :)

I think my jam is more or less complete; I may tinker with the beat detection algorithm to see if I can get it to be more precise or try implementing tempo detection (shown here) if I have more time. I worked approximately 10 hours during this jam, with most of it spent reading up on and experimenting with beat detection.

I'd love to get some feedback on the game, as I feel the gameplay can be polished up much more (plus I'm sure there are some bugs). Thanks, and good luck to everyone who's still working!

[DF] Death State

Current Build

Added a death state, the snake monster, and some very basic balancing.
Next on the list is a victory state, to improve the random door generation, and add random coffee generation.

Does the UI make sense?
Do you die instantly?

[SAD] Diggy Ground - Progress and no progress

Yesterday I ended up being incredibly busy in such a way that I never reached a computer, let alone getting any game jam work done: So, I am going to be taking some extra time for the game jam, finishing up tonight if not tomorrow morning. It has been about 36 hours since I last worked on my game, so if we factor in an additional 36 hours, my game jam would end tuesday morning. By Friday night, I had finished implementing the basic mechanics: digging downwards and to the sides, smooth animations for all motions, infinitude of motion, and keeping track of distance. Now I just need to add a time/air limit, and it becomes a game, then I have to add varying blocks, so that it can be a somewhat interesting game, then I will play around with polish features like making things look better, a start screen, etc.

A current Screenshot of the game: (yes, the small red thing in the corner is distance/score, I will need to make that a bit bigger):

[DF] Running, etc?

Current build

RxJS continues to cause me pain in my codebase. I think it is much better at normal internet tasks of streaming data from APIs then it is at streaming a massive amount of state changes in a game.

In the mean time... there are levels, a dude who runs, some interaction with doors, but no Win State, no Loss State, and no Deferred Actions. I don't think I'm going to do the deferred actions, I don't think there will be much benefit to it from a game mechanics perspective.

I'll be adding the victory and loss conditions, some additional obstacles, and some more animations tomorrow.

[MMc] Solar Golfing - Victory

Solar Golfing
Solar Golfing is now playable, which means that I won the game jam. The tutorial solar system contains multiple planets, moons, asteroids, and the final wormhole. There are multiple paths through the system and the tutorial is designed to implicitly teach the concepts of the game (except: don't shoot your ball into empty space. The ball-retrieval code won't arrive until tomorrow!)

[CW] winning, losing, and throwing it all away

Polished the win and lose screens, various UI improvements, text fixes, and the big one is implementing throwing things, which makes all those rocks quite a bit more useful. Also tweaked the experience curve a fair amount.

Saturday, January 17, 2015

[MM] 3D Snake: Victory

One more hour and 15 minutes of work in, and I have correct interaction with food (the snake grows), and food placement (randomly in the cube, but not in the snake). I made the food green, and put a light inside of it; though for now it is without shadows, and I think the food should be emissive as well. I also switched to a first-person view!
You also properly die if you run into yourself, and there is a score counter based on your length. So it *is* a complete game, and I declare victory.

However, it has a ways to go before being fun. This first-person view is disorienting with the instant 90 degree turns, so I will need to do some camera interpolation. I am also planning on adding the 3rd person minimap Morgan suggested.

Total time spent planning/coding: 3 hours 15 minutes.
Total time spent blogging: 45 minutes.

I am unlikely to be able to devote anymore time to the Game Jam this weekend, but the 4 hours I have used has convinced me this idea is worth pursuing and polishing, if only for the interesting UI challenges the unique movement of 3D Snake brings; and I'll be trying to clean this up for my January 1GAM. I'm excited for next game jam and will make sure to be able to fully commit at least day next time. Good luck to everyone else on this home stretch!

Lab Hours Sunday

I'll go into lab from about 6pm - 9pm Sunday if others are interested. I could also come in for some time before noon. Comment on this post if you'd like to meet up on campus to finish the jam.

[PhD] Mind Crush: Complete!

I'm happy to report that my game is done! I have implemented everything I wanted to during the Jam, and I am very pleased with the result. The final version is online and can be played here. For those who have already tried my earlier versions, there's isn't any new content. Just a few UI updates and bug fixes.

The title is an obvious jab at the popular "Candy Crush" family of games, but I think my version is far more challenging and interesting, and will force you to think in ways you're not accustomed to. In the future I'd love to add a little more content and publish this game on mobile devices (where it was meant to played!) For now, I have to stop because I must implement Tetris using OpenGL by Thursday for my Graphics class.

Thanks again everyone! Looking forward to the next Game Jam!

- Philippe Demontigny

[DF] Sorta isometric

Had the chance to work on the projection to and from the level space. It's consistent now, but I decided to go with spheres for everything to speed up the process. This means that mouse interactions with the surface are going to be iffy, so I'll have to space out entities a bit. That shouldn't be so bad.

Only the menu is up, now to write a runner and a generating level. I'm going to save interactions for later tonight.

current build

[MMc] Solar Golfing - rocket traversal complete

Shooting the ball in the hole now causes it to board the rocket, which takes off for the next planet. When the rocket hits the next planet it explodes, depositing the ball (the rocket then respawns in its original silo). I'm two special cases away from having a complete game. That should leave me all of Sunday to make the game fun to play and polish up some visuals and audio. Well, at least, the three hours I have to work on Sunday.

Better than your grandfather's golf cart.

[CW] fun with refactoring

Bit the bullet and did a major refactoring of the keybinding system. Added a few nice UI streamlines along the way - e..g can now do inventory-based actions (eat, examine, etc.) directly from the inventory list. Began infrastructure for a throw/fire system, but nothing yet visible on the surface. Visible changes aren't significant enough to justify a version bump, so I just updated the public v01 codebase:

Frustrating to spend so much time on invisible stuff, but in the long (or even medium) run it will make things much better and easier.

[MMc] Solar Golfing - improved minimap, refactored code

I just used prototype inheritance in Javascript. I feel very dirty, like I should hand in my functional programming badge and gun.

New round minimap in the top left and stroke counts in the top right.
David Bau's seedrandom.js just saved me a lot of time; it is a (minified) single line of code that you can drop into a Javascript program to make Math.random work with a specific seed.

[DF] Menu done

Current Build

I wouldn't bother playing this yet, you can only click the PLAY button

Whelp, there's the menu. I can safely say that I now know more than I ever wanted about the RxJS library, and that it might be approaching levels of 'dark magic with lazy evaluation and complicated schedulers'. 

Sadly, the dude isn't running yet, so I'm behind schedule. I do have a bit of time to work on this today though, so that's exciting. And I suppose I learned something.

[MM] Movement

I went with the control scheme I talked about in my intro post, with up, down, left, and right relative to the way your snake is facing. It is extraordinarily confusing from a 3rd person view; but it does work.

Next up is implementing food and walls; then experimenting with making the controls tractable. I think I will need some sort of widget showing the orientation w.r.t the camera each arrow key would put your snake into if I stick with 3rd person view. Of course if I switch to first person, things get a bit easier on that end, as arrow keys will correspond to the same rotation in camera space all the time.

Time Since Previous Update: 45 min.
Total Time: 2 hours.

[MMc] Solar Golfing: one small step for a man, one giant leap for mankind

Please play the latest version online and give me feedback in the comments.

Multiple planets are now working correctly, and it is possible to make shots that go from one planet to another. The "holes" in Solar Golfing are rockets, which are the normal way to take the ball to the next planet. The solar system is like a golf course, and each planet is like one hole of the course.

Houston, the Eagle has Landed

[CW] Caves of Mars version .01

Changed quite a bit from where I started. I've put a lot of effort so far into the narrative & flavor side of things, and added quite a bit of not-necessarily-obvious functionality along the way. For those who are using a numberpad-challenged system, the Home backslash key will switch you to laptop-compatible key bindings (WASD-ish, but since it's an 8-based topology it's more like QWEASDZXC).

Have fun!

Friday, January 16, 2015

[TL] Basic Beat Detection Working

Hello everyone! After wrangling a bit with the API I'm using, I was able to filter the sound file and isolate where the downbeats occur within the song, drawing platforms appropriately:

This picture doesn't really do it justice, but unfortunately I haven't been able to find a screen recorder that has decent audio quality, so if anyone has suggestions that'd be great :) That's all for now, next steps are to introduce a finer grain filter to capture more of the beats (backbeats, syncopation, etc.) as well as adding some game logic.

[PhD] Last update for the evening: Title Screen!

Just a quick update, I've added a title screen with some simple instructions! I still don't have a name for the game, so that's the last item on my agenda. Let me know if these instructions are self-sufficient enough for a new player to understand.

Can you guess where the title is supposed to go?
 Click here to play the game!

[PhD] Falling Blocks Update!

Thanks again to everyone who tested and commented on my game! I have now successfully updated the game to include the "falling blocks" mechanic common to many other puzzle games. I think that this adds a layer of strategy to the game that wasn't present before, and makes the player feel like they're a bit more in control of their score.

Play the game here.
Read the instructions in my previous post here.

Cascading Symbols in action

[MMc] Playable Solar Golf

The game is now playable (but not winnable...there is no hole). I left the debug visualizations on because they look neat to a developer. I'm temporarily hosting the game here, try it out!

Debug visualizations while working on coordinate system issues.

[MM] Shockingly my hour estimate was off...

But 1:15 in, I do have infrastructure in place and the main simulation loop done. The snake even does the classic "start as a single block and extend" at the beginning!

[MMc] Solar Golfing UI Done

I've created planets with appropriate gravity and randomized terrain, a ball with the desired physics, and a UI for hitting the ball. The atmosphere is not just visual--it indicates the region within which the planet's gravity is constant, to allow somewhat normal golfing around the planet's surface. Gravity then falls off quadratically outside of there.

Solar Golfing in development with all rendering and physics done

[SAD] Mobile Digging

For this game jam, my main goal is to make a game that is natively mobile. So, not a web game that happens to be playable on mobile devices, but an actual android/iOS (but not really) app. What this means is that I probably want to use some library to abstract away annoying packaging details with making an app for any platform; I also didn't want to use any tools that would put me under restrictive licenses in case I wanted to actually release (or polish, and then release) my game.

[DF] Rendering things and playing audio

First Build

You can't do anything, but there is definitely a pixel or two being drawn on the screen.

I would really love to have a Python Script that automatically writes every git commit I make to an Amazon S3 bucket... I might write that at some point today because it seems like a useful thing to have. That would probably throw me off my schedule though. :(

Selfie Thread / Jam Begins!

We're off! Good luck to everyone on the jam.

Since we're distributed at multiple sites, I encourage you to mail me a selfie at that I can add to this post. That way, that everyone can put names with faces and see each other's development setup.
Chris (VT)
Dan (NY)
Mike (CA)

Morgan (MA)

Sam (MA)
Kyle (MA)

Tony (MA)

Nigel (MA)

[MM] 3D Snake

Hello! I'm Michael Mara, Williams Class of 2012, Stanford PhD Student, part time researcher at NVDIA, and developer at Casual Effects.

I have negative time for this jam (yay SIGGRAPH deadline...), but it's been a while since my last game, so I am still going to do it. However; in the interest of keeping it short and sweet; I am simply doing a clone of an old classic; with an overused cliched twist!

Enter Snake. The cliched twist is making it 3D, instead of 2D. I should hopefully have a prototype done within an hour of starting. Any other time spent will be on polish.

One interesting thing to note: in classic snake you use the arrow keys to turn; but at any point in time, two of the arrows do nothing (forward or backwards along your direction of travel). In 3D, you can take advantage of this to still use the four arrow keys; if you make the controls relative to the direction of travel (since you don't need keys for forward or backwards). Then the tricky part is just the display.

[DF] Runner with Queued Actions

Hi, I'm Dan, and I'm a developer at Amplify Education in NY. I graduated ages ago, but I've always loved a good excuse to try to program a game in too short a period of time. I'm usually overly ambitious in my game jams, so let's try to keep this one simple.

Thursday, January 15, 2015

[KC + YT] Momentum Game


We want to make a game that introduces a new way of moving around in a world.  Instead of the typical wasd movement controls, players will control a ball and a grappling hook.  He/she will shoot the grappling hook and use the momentum of the spike shot to move around in the world.  We also hope to introduce destructible terrain in the world.

Kyle + Yitong

[PhD] Game is Running! Please give me feedback!

As I said in my previous post, I have started a day (or two, but who's counting?) early in making my game, and I have finished implemented all of the major gameplay elements! That means that, while I would not call the game "finished," you can now play it here.

Not trying to brag or anything, but that's a pretty good score...

[CW] Caves of Mars starting point

Figured folks might be interested in seeing the base from which I'm starting - this is more or less the result of following the coding cookies tutorial, plus a few extensions of my own:

It is playable (and winnable... and lose-able), but not entirely bug free (e.g. healing over time is not working at all).

Have fun!

[TL] Game Idea: Music-Based Platforming

Hi everyone! My name is Tony Liu and I'm currently a junior. My game idea is to take the simple mechanics of an "infinite running" platformer and mesh it with music and rhythm. I envision platforms and obstacles appearing in the players way in time with the music. My main inspiration is this great little game called 140 created by some of the Limbo designers:

Tuesday, January 13, 2015

[CW] Caves of Mars

Hi folks! My name is Chris. I graduated from Williams in '96, and after doing various other things I ended up back at the mothership, working in OIT as a developer.

I have an ongoing fascination with rogue-like games, starting with Moria, then Angband (and a number of its variants) and ADOM. As a coder, game designer, and GM I've long toyed around with the idea of putting one together but somehow never quite gotten around to it. Over the recent holidays I decided that it was time to do more serious hacking around and I tracked down some good tutorials. I recently finished a decent javascript-based tutorial over at Coding Cookies and now that I have some basic functionality and understanding of the coding domain my general goals are a) add more functionality, and b) make it my own game instead of a more-or-less generic product of a tutorial.

[PhD] Game Idea: Set meets Boggle

Hey everyone! My name's Philippe, and I'm a grad student at the University of Waterloo who used to go to Williams College and hang out with Morgan. Originally I was not going to participate in this month's Jam because I have decided to take a Graphics course this term and thus have little to no free time. However, last night at around 2:30am I had a sudden bolt of inspiration, and so here I am.

Monday, January 12, 2015

[SAD] Game Jam 1 - a card game

So, I did successfully make the game, just not as fully featured a one as would have been desired. The game is a fully functioning game, with playing and winning and losing, the following are the main successes of the jam:

Sunday, January 11, 2015

[MMc] Solar Golfing

I'm Morgan, a professor of computer science at Williams. My jam games are frequently space-themed and usually driven by a graphics or input idea. I'm staying with my science fiction obsession for this jam, but this time I'm going to lead with a mechanic instead of I/O.

Saturday, January 10, 2015

[SAD] Winter Study Game Jam 1 - Card Games

In addition to the public machinis ludo game jam, Nigel Munoz and I are doing 3 48-hour game jams this month as part of our Winter Study course. For the first one, beginning very soon, I plan on implementing an idea for a card game that I have been working on for about a month. So, the following are the things that this game jam will entail:

Thursday, January 8, 2015

Machinis Ludo 6 Game Jam

Machinis Ludo 6 is an invitation-only three-day game jam hosted at Williams College by Sam Donow, Nigel Munoz, and Morgan McGuire with participation from around the world via this blog. It is the latest in the Machinis Ludo series. The jam runs Friday, January 16, 2015 at 9 am though Sunday, January 18, 2015 at 9 pm (Eastern time, but who's counting?). You're welcome to work as much or as little as you wish during that period. E-mail Morgan if you'd like to join and didn't receive an invitation, or are having trouble posting to this blog.

There is no theme and there are no technical restrictions for the jam. However, it overlaps the following game jams and you might want to participate in multiple ones:
  • JamGame (Jan 10-Feb 16), make a pun on an existing game's name 
  • TAG Jam 8 (Jan 14-Jan 18), three themes announced on Jan 14
  • One Game A Month January (Jan 1-Jan 31), optional theme "resolution"
  • Awesome Music Jam (Dec 20-Jan 20), make a game about music, theme "wonderland"
  • Jam for Leelah (Jan 17-Feb 17), based on interests of Leelah Alcorn or trans and gender-identity-positive themes
The process follows our previous jams:
  1. Prefix your post titles with your name or initials in brackets, for example "[MMc] Star Lance Vortex: Added enemy ship AI".
  2. Post an introduction and your game idea to this blog at least the day before the jam. Earlier is better, because then we can give each other ideas and feedback.
  3. During the jam, post at least once a day...although more is encouraged! Show us screenshots or movies as well as talking about what you're doing. These posts build camaraderie for our distributed jam and get you support and feedback.
  4. At the end of the jam, give a post-mortem post and a link to your game (or video, if you don't want the game to be public).
Anyone on the Williams campus is welcome to join the local meetup in the graphics lab, where we have connections for laptops, WiFi, some spare monitors, and sometimes music and takeout food. Because guests who are not members of the graphics group must be accompanied in the lab, Sam or Morgan will be in the lab hosting most of the time.