April 2013 challenge: “nemesis”

Last Will of the Emtar - Warm-up game: Hatchery

Posted by Cosmologicon on 2013/04/12 13:45

Download Hatchery

I've never made a game with online multiplayer before, so I did one as warm-up. It was a really good learning experience. I hope I'm ready to pull it off for PyWeek now. Feel free to test it out at the link above. Instructions are in the README. Python 2 + pygame required. Please let me know if you encounter any bugs, such as being unable to connect to the server or being unexpectedly booted.

What did I learn from this?
  • Suggestions I read online said to make the game work locally first and then add the networking. I wish I had gone the other way, though, starting with the networking. It was hard to add in after I'd already gotten started.
  • Lag is higher than I expected for using web sockets. I was hoping for ~300ms but I typically get ~1000ms. That's fine, I'll just choose my mechanics appropriately.
  • Sound logic is unexpectedly hard. For instance, making sure when you jump you play the jump sound once and only once. I usually throw sound in an the end, but this time I'll be sure to incorporate it earlier.

7 comments

Nemesis - Bred for Combat; Built for War (or: Why the heck am I doing this?)

Posted by Python Jedi on 2013/04/12 01:58

(I will once again attempt to use Halo references as diary entry titles, the first part of this one is from the cover of the original Halo:CE)

This is going to be a challenge.  I'm not going to lie, I probably shouldn't be competing.  But I want to do something more productive with the time that I'm not completing schoolwork or already engaged in other activities.  

I can count off at least 25 hours that I did have last attempt (MEEG - PyWeek 13) and I will likely have even less time than that.  I will counter this lack of time by implementing a much simpler engine.  No scrolling, top down or completely flat, and most importantly, minimal collision detection! That's what really killed me last time, that and my animation system, would have been easier to draw out each frame as it's own picture.

Enough blathering about a year and a half ago, I am going to be striving to complete something.  It will be short and simple, both from gameplay and code standpoints.  Elegantly simple code is beautiful, and python allows for simple code if used correctly.  I will be aiming for only one or two mechanics, and a similarly small number of objectives.  Toss in a nice GUI (pray for my sanity there) and you have a strong pyweek entry...

Why does it always seem so simple?

Add a comment

Last Will of the Emtar - Cultural context of the theme candidates

Posted by Cosmologicon on 2013/04/09 23:58

Here's my take on the cultural context of the theme candidates. The common theme is superhero fiction.

Secret identities are occasionally used in real life to avoid discrimination or for artistic purposes, but in adventure fiction they're extremely common. Alter egos serve many purposes, such as evading authorities, protecting loved ones, and blending in to keep a job or associate with people. They're often maintained using extremely transparent pseudonyms or terrible disguises. A secret is something hidden, private, or mysterious. Your identity is your sense of self, how you see yourself, including your characteristics and personality.



A nemesis is an opponent or obstacle. Classically, the nemesis would cause the hero's downfall, but modern fiction prefers nemeses to be evenly matched arch-enemies, leading to frequent encounters and a longstanding, personal rivalry. Nemeses commonly complement each other: they're either very similar or completely opposite in certain important ways. The Greek goddess Nemesis was responsible for inflicting divine retribution on guilty mortals, and was seen as a force of justice and balance. The debunked Nemesis Theory involved a dwarf star named Nemesis orbiting the Sun and causing mass extinctions on Earth.



A sidekick is a companion in a secondary role. Sidekicks serve many functions with respect to their primary character: protégéeassistant, accomplice, comic relief. They may embody the audience point of view, have their own unique skill set, highlight the primary character's eccentricities by virtue of their own normality, or cause conflict through their own incompetenceThe side kick and flying side kick are martial arts moves involving sideways kicks. Sidekick is the brand name of a series of mobile phones.



A bat cave is a cave where bats live. They exist all over the world. Bats are winged mouse-like animals, the only mammals that can fly freely. Culturally, bats are often seen as frightening. They're known for clinging upside-down to cave ceilings, being active at night, and using sound to navigate via echolocation. They're associated with vampires and witches. The Batcave is the secret headquarters of the comic book superhero Batman. It's a literal cave containing high-tech equipment, including a supercomputer, a crime lab, and vehicles.



Kryptonite is a fictional material in the DC comics universe. There are many kinds of kryptonite with different properties, depending on the needs of the plot, but most famously it removes Superman's superpowers, and poisons and weakens him. It was formed when Superman's planet Krypton was destroyed, and pieces of it fell to Earth. It's often used by Superman's enemies (or allies) against him. Metaphorically, your kryptonite is your weakness, your Achilles' heel. Kryptonite is also the name of a brand of bicycle locks, and a 2000 song by American band 3 Doors Down.

2 comments

Python Wrath of The Gods - Practice before the D day :)

Posted by herrv on 2013/04/09 20:42

I managed to follow superjoe's advices so i start to code some basic task with pyglet.

1 comment

Pythonic Havoc - Pythonic Havoc

Posted by Havocreature on 2013/04/09 06:16

Okey, so now I have officially created both an account and entry for this week's challenge, as well as cast my vote for the theme. Just 4.5 days (ish) left now, exciting :D!!

Add a comment