A screenshot of one of the three levels that made it into the game

Wibbly-Wobbly the Canine Screwdriver

All of a sudden, the Gods have started to communicate
with screwnineanity using a previously unknown language!

They are clearly commanding you to do something,
but what?

Awards


One idea fits all themes
Presented by shundread

What is going on here?
Presented by shundread

Most Random Award
Presented by ciaran.mooney

Give this entry an award

Scores

Ratings (show detail)

Overall: 2.7
Fun: 2.6
Production: 2.5
Innovation: 3.1

2% of respondents wished to disqualify the entry.
Respondents: 27

Files

File Size Uploader Date
Screenshot-pygame window.png
A screenshot of one of the three levels that made it into the game
152.7 KB adrwen 2010/04/04 21:14
WWtCS-1.0.tar.gzfinal
The final version of the game, compressed as .tar.gz
1.3 MB adrwen 2010/04/04 14:49
demolvl4.png
Oops a baddie is chasing me (they are 50% faster than wibbles)
15.6 KB adrwen 2010/04/02 19:22
demolvl3.png
I don't believe in... Hey wait a minute
15.0 KB adrwen 2010/04/02 19:22
demolvl2.png
God tells us something about the strange object, in english
15.3 KB adrwen 2010/04/02 19:21
demolvl1.png
When the demo level starts
13.9 KB adrwen 2010/04/02 19:20
democut0.png
a cutscene where Wibbles runs across the screen
3.1 KB adrwen 2010/04/02 19:20
wibbles.png
The new and improved Wibbles
4.6 KB adrwen 2010/03/30 22:48
screenie1.png
Demo of the cut scene thingy
548.8 KB adrwen 2010/03/29 22:27

Diary Entries

Well, there we go

The final version of the game has been uploaded. After a bit of research into the many different versions of the files, I managed to find a combo that works really well (it lacks sound though). After a bit of packaging and ReREADMEing, I can present to you:

Wibbly-Wobbly: the Canine Screwdriver

The aim of the game is to finish levels by reaching a particular area of the screen. The area, of course
is invisible, and so are the switches that modify the map in order to make it possible to reach. Luckily there's an omnipotent somebody there to tell you, Wibbly-Wobbly, what to do, God.

For some reason however, God doesn't seem to speak screwdriverish. God uses some weird language that doesn't seem to make sense... Or does it?

Turns out it does (every single word of it)! You "can" finish the game without learning a word of God's language, but it will take a LOT of time, I hope.

Controls:

Arrows: Movement
Space: Skip cutscene
Escape: Skip cutscene or lose level

The game contains 3 levels 4 cut scenes and an easter egg.

"Enjoy"

2 comments

Uh oops

Well, at around half past one last night (the competition ended at two where I live), I decided that I needed some sound. As such I fixed some public domain piano music (musopen.org) and threw it in quite randomly before each level, so that there would be at least some music in the game.

When I created the tgz it trurned out that my entry was in a class of it's own. The size is a staggering 52.8 MB (that's way more than twice the size of any other entry) for a game consisting of 3 levels and 4 cutscenes. Of course the problem was that I hadn't taken into account that I wouldn't need 10-20 minutes of music for each level, and thus hadn't removed anything from the original recordings. Additionally I had converted everything from mp3 to ogg, which resulted in (most likely due to me being tired) two 20 MB music files and one and one 7 MB music file.

Of course, you can't really compress ogg files, since they are already compressed, and as such my entry became the biggest entry with the least content (if I manage to upload it that is).

Did I mention that I also removed the font, causing the game's text to become microscopic! just skip the cut scenes, and you'll be allright.

Lessons learned this PyWeek (my first!):
  • Don't change anything at half past one at night
  • Sound is not your friend
  • It's a good idea to include fonts
  • The Skellington package is your friend


So I guess I'm going to try to upload the lot now, wish me luck.

1 comment

Why programming levels is a bad idea

Simply put, it takes forever. Today, I have produced 2 levels and one cutscene so far in about 10 hours, all of the levels were of the size 640,480 and don't take more than a minute to finish if you know how.

4 comments

Time saver

I have replaced the somewhat cumbersome:
 Gods_text.relocate(306,110)
 Gods_text.render_text("*plop*")
 Gods_text.retime(s.cycles(1000))
 s.add_text(Gods_text)


With the rather more practical:
God.say("*plop*",s,s.cycles(1000))

So now, hopefully it won't take 1 and a half hour to make a 30 second cutscene (it actually did yesterday)!

Add a comment

making the content

I've started making the content now, seems like it's going to take a long time to build the dialogs in the cutscenes, at the moment each sentence requires you to check if the time is right, reposition the text object, render the text, set the timer which will eventualy remove the text and add it to the text group. that all takes a LOT of time.

Add a comment

So what's that god bar nonsense anyway?

I have actually fixed all of the things I set out to do today, the god bar has been implemented, baddies have been implemented and so have "triggers". Now most of you probably know what "trigger" and "baddie" could mean, but what on earth is a "god bar"?

The god bar is an object that sits in the top of the screen, it contains a picture of god (a canine screwdriver with a halo) and a message from god.

Obviously, a god bar doesn't help much in many games, but in Wibbly-Wobbly: The Canine Screwdriver it is absolutely essential. This is because the aim of the game is to learn the language of the gods (they have started to communicate with you using a weird language).

Basically it is a game with puzzle game like levels that are almost impossible to finish, unless you know how to finish them. How each level is supposed to be finished can be extracted from the gods, as they will be guiding you verbally in their very weird language. For each cutscene and level you will hopefully familiarize yourself with the language so that you can eventually take direction from the gods and finish the levels quickly.

The game has actually changed quite a bit since I last uploaded a screenshot, so before i start writing menus and levels, I will add a bunch of screenshots (of the demo levels I have been using to test the different components of the game). The source is rather ugly though, so I wont upload it until I absolutely have to!

Add a comment

Collisions in place!

Today I should have implemented baddies. Problem is I have been terribly busy... Watching TV and playing Super Tux Kart! As such I have really only managed to get around to creating some form of base for solid objects that the player can't walk through.

At first the collision detection turned out to be quite flawed. Initially, solid objects were recognized as crooks, which resulted in death for the player if he touched a pillar, bush or brick. After that had been "fixed" (actually I just disabled dying from colliding with crooks) I found that magically, Wibbles could walk under objects like walls.

I didn't quite understand why at the time, but after a bit of experimenting I understood the problem. The sprite group which contained solid objects and the one which contained baddies were passed in the wrong order to a function, so crooks became bricks and bricks became crooks.

Once that had been fixed, it turned out that Wibbles would magically be teleported from the right side to the left side of a square if he collided with it from the top. Luckily hitting the square horizontally worked. Yet amazingly after a bit of hacking, collision didn't work at all, Wibbles was beeing teleported all over the place by the collision detection. Eventually I decided to try with the code I wrote yesterday (which had only teleported Wibbles around if he hit the box vertically) and IT WORKED FLAWLESSLY! Despite the fact that it had not been working just "minutes" ago.

So basically, today I have implemented a class that loads a picture, changes it's position to a given  set of coordinates, and then does absolutely nothing, in a matter of just hours! What that means for tomorrow is that I will have to make baddies, triggers and messages from the gods work in the first half of the day, so that I can make menus the other half and then start making levels. Looks like it might become a rather short game (right now it includes a cutscene and a level with a square on it, neither of which will be included in the final game).

Add a comment

progress?

As I predicted yesterday, I didn't really make any progress today. I tried the level code out and it turns out that Wibbles doesn't animate himself! Ahh!

In any case, I will have it fixed tomorrow, when I MIGHT have more time to spare.

Add a comment

Today's progress!

As I might have mentioned previously, I was able to stay at home today! The result is an astonishing progress (sort of). Here's a brief summary of my progress today:
  • New and improved Wibbly-Wobbly (name of the main character, I know it sounds funny)
  • Wibbly-Wobbly has acquired the nicknames Wobbles and Wibbles for convenience
  • Thingy has been adopted into the official terminology of this project
  • Cutscene thingy has been extended
  • Lots of work done on a level creation thingy
As I said, I repainted Wibbles so that the screwdriver would looks more like a screwdriver. The animation has also been remade (the new one isn't really that good). Wibbles' size has been increased somewhat.

Thingy is now used by the members of the team (me and Wibbles, yes he IS real) to refer to a piece of code that has a function for another piece of code that may or may not exist already, isn't that convenient! Actually it's just lazy (oh shit), but I really do not want to spend time learning good terminology at the moment, I'll spare that till after I have learned to use good coding style.

Backgrounds have been introduced in the Cutscene thingy, they pretty much cover all of the screen. other additions:
  • A function for transforming milliseconds into frames
  • The possibility of stating the time at which a certain event should happen
  • The possibility of giving "actors" (automated things that can walk) the instruction to reach a target in a specified time, rather than having to hard code it all every time
  • Automatic event handling,  drawing, clearing of the screen and other forms of automation
Additionally I have spent the evening trying to build a thingy that can be used to construct levels. It will resemble the Cutscene thingy. I haven't had the time to test it however, so it might turn out not to work.

I don't think I'll have all that much time to spare again until Friday, which is a "red" day (holidays are called red days in Sweden). So basically, Good Friday means no school for me! And since I'm not particularly religious, it means more Wibbly-Wobbly the Canine Screwdriver for everybody.

Add a comment

Cut scenes

Ha! Maybe this isn't vaporware after all! I've actually managed to finish a component (I'm happy with it at the moment anyway).

I am talking about my super high-tech cut scene programming kit. As I might have mentioned earlier (I really don't remember if I did) the levels are going to be written in python.

All I have really done so far is a demo cut scene where a text stating my intentions with the scene floats above the main character of the game, Wibbly-Wobbly (silly name, but it fits into the theme). Of course, since the cutscene toolkit thingy manages animations, good ol' Wibbles actually walks across the screen and turns around as he reaches the end of it.

So, in short this is what I have accomplished today:
  • Completed the text thingy
  • "Completed" the animation engine (engine is really an exaggeration)
  • Pre-alpha artwork of main character
  • Cut scene thingy
I'm going to try to upload a screenshot of the demo cut scene once I'm finished writing this entry.


Oh BTW, it seems like I don't have any classes tomarrow, which means I'll be able to stay home coding.

Add a comment

Vaporware

Well, it looks like this might become a great example of it, BUT I am still trying, sort of. To be quite honest, I don't think that the current language game idea is going to last for a very long time.

Add a comment

Text and animation

I'm going to try to start with some animation thingy and text widget thingy today.

As such I'm expecting the following to be finished before I go to bed:
  • Animated version of sprites
  • Text widget thingy
I wont test anything today though, so it might turn out to be useless.

It seems like Enkronan is going to drop out, I'll keep him in the team member list for at least another 24 hours though (in case he changes his mind).

Add a comment

My favorite theme !

Of course the '!' is the "not" operator from C.

Well, Wibbly-Wobbly the Canine Screwdriver... Here I come!

Add a comment