title screen

Dr. Chemical's Lab

Windows binary: dr-chemicals-lab-0.1.zip

Use a grapple gun, a ray gun, and a lazer gun to stay alive in this strange mixture between action and puzzle. Play against other PyWeekers in Multiplayer mode, or hone your skills in Survival mode.

See the latest diary entry for instructions on how to play.


Best adult ballpit simulator in a video game
Presented by ChipX86

Give this entry an award


Ratings (show detail)

Overall: 3.7
Fun: 3.2
Production: 3.9
Innovation: 3.9

Respondents: 11


File Uploader Date
source version 0.1
superjoe 2012/05/13 09:49
title screen
superjoe 2012/05/13 00:32
telsa monkey tank
Squish 2012/05/10 14:51

Diary Entries

Dr. Chemical's Lab - Day 1-2

Day 1:
  • Watched Venture Bros. Season 1 while making out
Day 2:
  • planned out some sweet stuff on paper
  • started out with pygame + hand-rolled physics
  • made some programmer art:


  • pygame is dumb and slow. switched to pyglet

Day 3:

  • Try to convince my room mate to make art for me
  • Full time job
  • Ability to swing around on a rope like spider man
  • Ability to re-arrange atoms with your gun thing

1 comment

Dr. Chemical's Lab - End of Day 3

Day 3:
  • tweaked physics
  • went from 24x24 blocks to 32x32
  • recruited squish for art:

  • aiming line pointing from gun to crosshair which auto targets atoms
  • fleshed out the game mechanics in my mind a bit more. You'll have a progress bar for each color which increases with the number of atoms of each color you have contained in your tray. your goal is to get to a certain amount before your opponent. If you have too much of a certain color, you can choose to spend some of it to get a weapon or defense powerup. You'll have to balance attacking and defending with trying to get your atom counts up high.
  • lines of code: 402
  • repo: https://github.com/superjoe30/dr-chemicals-lab/
  • Sneak Preview on YouTube

I didn't get my goals from yesterday done, but I feel good about the progress squish and I made today.

Day 4 Goals:

  • Ability to shoot stuff! C'mon, jeez!!
  • Bonding mechanics for atoms

Add a comment

Dr. Chemical's Lab - End of Day 4

Day 4:
  • lots of beautiful new art and animations from squish.
  • tweaked physics a lot
  • spiderman has nothing on Dr. Chem's grappling hook
  • atoms bond together. tickled a few more game mechanics ideas in my mind
  • lines of code: 564
  • "In Dr. Chem's Lab... physics struggles with YOU"
  • see it in action in the Sneak Preview on YouTube
  • had a lot of trouble trying to install it on snow leopard. ran into this issue and didn't want to troubleshoot it over remote desktop. Is there an easy way to deploy pyglet+pymunk games on os x?
Day 5 goals:
  • figure out exactly how you win/lose and implement it
  • weapons and defenses
  • alternate guns to use

Day 6 goals:

  • online multiplayer mode??

1 comment


telsa monkey

This is the thank image as it is right now, sans animation. I worked on this, the intro and some other small bits. Im very excited about the tank animation! 

1 comment

Dr. Chemical's Lab - End of Day 5

Day 5:
  • Planned out how the core gameplay will work
  • Began implementing it. Atoms disappear when linked.
  • Got stuck fighting with pymunk trying to implement a lowering ceiling. Will have to work it out tomorrow when I'm more awake.
  • Figured out how to get it running on a mac.
  • No video preview because the game is in a state of Very Broken And Not Working

Day 6 Goals:

  • 2 more guns
  • implement weapons
  • ability to get crushed

Day 7 Goals:

  • multiplayer!!

Add a comment

Day Exhasted

Exhausted today but finished tanks. And lots of little updates

Tomorrow: finish title screens, and other little adjustments as needed. 


Dr. Chemical's Lab - End of Day 6

Day 6
  • the lowering ceiling falls and raises smoothly and has physics
  • 2 nice animated tanks to act as the ceiling
  • ability to get crushed and lose
  • physics tweaks and graphics improvements
  • ability to switch weapons and FIRE TEH LAHZERS
  • and a ray gun!
  • more intuitive controls for grapple hook
  • 865 lines of code
  • sneak preview on youtube
  • squish worked ridiculously hard today and then crashed at the end.
Day 7 (Friday Evening) Goals:
  • get randomly attacked by weapons
  • title screen
  • sound effects
  • music
Day 8 (wait what, i counted wrong [Saturday before 8pm]) Goals:
  • multiplayer!!
  • fix all teh bugz


Final Hours

Try as I might to stay awake, I am just unable! Found some sounds that I think will work under the CC licensing.  

I feel like I have forgotten a vital piece of art. 

No samples to share, to tired! 

tomorrow: ALL OF THE THINGS!

Add a comment

Dr. Chemical's Lab - End of Day 7

Day 7:
  • implemented rocks and bombs
  • in a bout of insanity, I decided to begin implementing multiplayer support
  • thanks to my coworker steve, it works, kinda
  • more physics tweaks
  • squish went on a sound effect hunting spree

Final Hours Goals (15 hours left)

  • sleep (7 hours)
  • travel (1.5 hours)
  • finish implementing multiplayer so that it's playable (~3 hours)
  • implement the lobby so people can find people to play with (~1 hour)
  • title screen (~1 hour)
  • sound effects (~1 hour)
  • music (~1 hour)
  • integrate more of squish's graphics (~1 hour)

1 comment

...where physics hurt you!

Well several hours ago we uploaded what we had. I think there are still some bugs but its at least functioning! I'd love to hear critical feedback on the artwork. Can't wait to play everyones games, but right now Its time to see my friends.

Live long and go mad!

Add a comment

How to Play Dr. Chemical's Lab

Windows binary:  dr-chemicals-lab-0.1.zip
Mac binary: <in progress>
Source: dr-chemicals-lab-0.1.tar.gz

How to play:
This game is made to be multiplayer - for the best experience, find a partner. If you can't however, that's fine - there is a survival mode. To play multiplayer, just start the game up and wait at the title screen until you see your partner. Then click each other's name.

Your goal is to survive by not getting crushed by the descending ceiling. You can raise the ceiling, and lower the enemy ceiling, by bonding atoms together to form a chain, and then by closing the chain so that it becomes a loop.

If your loop contains more than 3 atoms, you will drop (number of atoms in chain - 3) weapons into the enemy tank.

Control your player with WASD. Up is jump. Down does nothing. If you use dvorak you can pass in a --dvorak option. Same for --colemak.

Use the mouse to aim. Left click is main fire and right click is alt fire.

The Grapple Gun:
Press `1` to select your grapple gun.

Main fire: Click to shoot out your claw, which will attach to the first thing it hits. Hold to retract the chain in, pulling you and the claw closer together. Release when the claw is near enough to you to retract the claw so that you can fire again.
Alt fire: When the claw is attached to a faraway object, this will release it.

Strategy: Use this to move around quickly and get a better angle with the other 2 guns. Note that you can switch weapons while your claw is attached to something. (A ceiling, perhaps?)

The grapple gun is also good for maneuvering large chains of atoms into a position to make the ends touch.

The Ray Gun
Press `2` to select your ray gun.

Main fire: Click to draw in an atom and hold it with your gun. If the atom is bonded to others, this will disconnect it. Click again to shoot the atom out.
Alt fire: Click when you are holding an atom to drop it.

Strategy: Use this to move atoms about exactly where you want them to go. It can be tricky, since you destroy the bonds when you move an atom. It is most effective when putting unbonded atoms into place.

The Lazer Gun
Press `3` to select your lazer gun.

Main fire: Destroy atoms.

Strategy: This is good for getting you out of a dire situation, or for getting those annoying atoms out of the way so you can connect a big chain.

Known bugs:
  • At some point, physics goes crazy for a second or two, and then the game becomes unplayable.
  • Intermittent crashes.


Postmortem - Doctor Chemical's Lab

Video of multiplayer mode in action.
Video of me playing survival mode for 4 minutes.

Things that went well
  • Squish and I worked well together. I handled all the programming and game mechanics and she provided art and animations in exactly the format I requested it in. Very little time was lost in overhead costs.

Things that went poorly

  • Had lots of trouble getting the game to work on OS X.
  • People can't be bothered to find a buddy to play with - if you want a top score in PyWeek, don't bother with multiplayer. Check out the video linked above to see what multiplayer mode looks like.
  • The gameplay is rather complex, and the game does not help the player learn to play gradually, but instead, drops the player into a difficult arena, totally unprepared for what is happening.
  • Squish put incorrect instructions in the "How to Play" screen, and I didn't catch it until way too late. However, as BlueDragon pointed out, even the real instructions are confusing.
  • Atoms fall down too quickly - the speed at which they fall should start out very slow and then slowly increase.
  • The crazy physics glitch bugs that remained are bad enough and occur frequently enough to almost render the game unplayable.
  • No score in survival mode.
  • Bombs are actually helpful, not hurtful.

Next steps

  • I'd like to port the game to html5 canvas + javascript. I'd like to see how lowering the boundaries to getting the game up and running affects the game's popularity.
  • I'm considering creating a new game just to explore the grapple gun concept. I think that there is some complex and ridiculously fun gameplay to be had there.