The Teetering Towers of San Gimignano

My fourth solo Pyweek!


Give this entry an award


Ratings (show detail)

Overall: 3.3
Fun: 2.8
Production: 3.2
Innovation: 4

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


File Size Uploader Date
Version including dev data (blender files and original music MP3)
22.5 MB Cosmologicon 2010/04/03 23:48
The Teetering Towers of San Gimignano
12.6 MB Cosmologicon 2010/04/03 23:46
14.8 KB Cosmologicon 2010/04/01 02:36

Diary Entries

Partners wanted for Pyggy

Assuming there's going to be a Pyggy competition like before, I'd be interested in a team. (For people who don't know, you get to expand and develop a Pyweek game over three months.) The only thing is that I hope to have at least three people on the team. If there's just two of us, I might prefer to enter individually.

If I wind up going solo, I'll probably do my Pyweek #9 game, but I'm open to doing any game as a team!


Teetering Towers - final

I'm worried that people who haven't studied harmonic oscillators in physics class will have trouble getting the hang of my mechanic, so in addition to "cheat mode", I included a video walkthrough of the tutorial level (thanks to An_Ony_Moose for help encoding it!). If you can't get past the tutorial, check out the video!

The Teetering Towers of San Gimignano

This version doesn't include my original blender files and the OBJs, to cut down on space. I also uploaded a "dev" version, so if you want those too for some reason, check out my entry page!

1 comment

Level 1 complete

Hopefully I'll have enough time to get two more levels done, but I'm posting this now in case there's any feedback before the deadline.

Teetering Towers, Level 1 (6.25 Mb)


Jumping between towers

I got a lot of things working today, but the game doesn't look that different. The main new mechanic is jumping between adjacent towers, which you do by simply getting close enough and running in that direction. The main skill you'll have to acquire is getting the towers to sway enough to get close enough.

Behind the scenes, I got fast model loading accomplished using the lessons learned from my warmup demos, and I got some text to appear on the screen, which I've never done in OpenGL before. It doesn't seem to hurt the framerate much.

I still haven't decided what the protagonist will be, so for now you control an enemy, a castle guard.

Teetering Towers 2 (2.2 MB)

Mouse: move camera
Scroll wheel: zoom camera
Arrow keys: run
Esc: quit


The Teetering Towers of San Gimignano

Tuscany, 1256. The Ardinghelli and Salvucci families have been engaged in a medieval arms race to build the most imposing towers, regardless of their structural instability. You're an assassin or chimney sweep or something. For whatever reason you find yourself atop these towers, and you have to learn to use their sways to your advantage.

Teetering Tower demo (800kb)

Mouse: move camera
Scroll wheel: zoom camera
Arrow keys: run
Esc or Q: quit


Warming up: scale demo

For me, one of the most interesting things you can do with a 3-D game better than a 2-D game is play with different scales. You can much more easily have a boss that's 100 times the size of the player character. To that end, here's a demo of something I'm thinking about. None of the sprites interact or anything: you just run right through each other. Controls are:

Esc: quit
Arrow keys: move
1: Drink me
2: Eat me

scale demo (4.4 MB)

I'm not sure how I'll make this into a game, if at all. I've got some ideas, but nothing's really "clicked" yet. Still, it's fun to think about.


Warming up: motion demo

I'm very interested in reducing load times for Pyweek games. I like to jump right into the action. So I tried an experiment. I have a 3-D model with 60 frames that takes about 20 seconds to load into pyOpenGL. So my experiment was to just load 4 frames of the animation to start with, and then add the rest as you go along. I'm guessing you shouldn't generate a GL list in one thread while rendering the scene in another, so all the loading has to take place between game frames. Each animation frame, though, takes about 300ms to generate into a GL list, and that's way too long to stick into a single game frame. But I found out that you can chain together a sequence of GL lists, and it works just as well. So each animation frame comprises 20 GL lists, and each game frame, one of these lists gets generated. I'm still not very familiar with GL optimizations, though, so this might not be the way to go.

I'm pretty satisfied with the result. The framerate and load times are about the same whether you preload it or load it during the action. It starts off pretty jittery as you'd expect, but I think it's a good tradeoff. For an actual game, it would be better, because you'll have more than one action. No need to load the shooting frames before the game begins, if you'll have plenty of time before the player even gets a gun.

Anyway, just thought I'd share. Anyone with more GL experience is welcome to give me tips! :)

motion demo