March 2006 challenge: “It runs on steam!”

Steam Pipe Dreams - Day Four Complete

Posted by andrew_j_w on 2006/03/30 22:48

As I predicted yesterday there wasn't nearly as much progress today as there has been in previous days. Still, the wasn't a complete loss and this is some stuff to report.

The biggest change is that the game now features a working menu system, and a state machine for moving between the menu, level intro, playing the level and the level outro. The menu is very simplistic and features no animation at all yet. If I get time I think I'll make the buttons highlight when you go over them.

Although the menu mentions high scores they still need adding. I intend to have an online top 100, but I'm not sure if I'll have time for that.

On the game side I changed the smoke colour to differentiate it from the steam. I also added a new piece for the player to use, a compressor. This works like a pump and forces steam from one area to another even if the pressure gradient is the reverse of that. The limiter only stops steam 'flowing' in the opposite direction, the compressor actually continues to move what steam there is on the lower pressure side to the high pressure side. I need to make the compressor cost points when you have it running and to allow the user to switch it on and off.

Tomorrow it is important I get the rest of the game pieces completed so I can concentrate on designing more levels, balancing the game out and generally giving it a polish on Saturday. I also need allow the user to adjust already placed items, and to blow them up. Finally I need to change the system such that when you have an incomplete network it vents steam out of the hole. Currently the pressure just builds up it acts as if the end is sealed.

I'm quite pleased with how easy it was to add a new game piece, I think I've done a good job of designing the structure of my program. I downloaded one of the other games today and all the code was in a single, huge file. Mine is split into 23 files, that biggest of which is just 120 lines long and I've used classes and inheritance to good effect. At one stage I even had multiple inheritance, but I've since removed that. Unfortunately the games are not judged at all on their code, I'm much more likely to the win a beautiful code contest than I am a beautiful graphics one :-)

2 comments

TrainTris - Progress of sorts

Posted by mangobrain on 2006/03/30 22:24

Well, nearly - you can't actually save or load level files, nor define completion goals, but it's getting there. It's also accessible from a working menu, which didn't exist a few hours ago, with working, saved options. :)

I know I said I wouldn't post another screenshot until I had some gameplay, but it's taking longer than I'd anticipated to get this stuff in place - not helped by the documentation for the behaviour of

pygame.event.set_blocked(None)
and
pygame.event.set_allowed(None)
being the wrong way round, leading to seemingly random lockups that took a good half hour to track down. Luckily I already suspected the event queue based on past experience, or it could have taken much longer!

Add a comment

gizmo_thunder - Change in Story Line

Posted by gizmo_thunder on 2006/03/30 21:40

You are an upcoming smuggler in the city. Since you are not the only one in this business.. you have to show that you are competent enough for doing the job and so face the challenges. You are unique because you have a steam engine powered robot which requires wood as fuel. You can harvest wood which can be used as fuel. If you run out of wood before reaching the destination (check point), you loose the challenge.

1 comment

Galacticus - Sound and network!

Posted by Treeform on 2006/03/30 20:37

Added sound and better packing for data ... some bug fixes on server and client if you going to test it contact me at in irc at #pyweek i will give you the latest version (becouse this might not work with server)

Add a comment

CrazyIroning - More progress...

Posted by SimRex on 2006/03/30 17:20

Just posted a screenshot showing some progress at last! I've decided that my game is going to be based around the idea of ironing clothes. Apologies if anyone was already doing this, but with one thing and another I've not been able to keep up with what everyone else is doing as much as I'd have liked.

The next problem I'm going to have is finding a way to add wrinkles to my shirt... I think I might be having a look at the bump mapping example in the Pygame Code Repository!

Add a comment

PrintStar - Engine Complete (?)

Posted by PrintStar on 2006/03/30 14:44

Looks like I've completed the game engine at this point. The game now sports a lame menu system, level transitions, and win/lose screens. I also added some snazzy, simple steam effects. All that remains at this point are sound effects and a whole pile of artwork necessary for the levels. Quite frankly, I'm shocked at how easily a relatively complex game can be built in pygame!

1 comment

The Olde Battleaxe - interface work. next level, game over == game?

Posted by illume on 2006/03/30 14:36

I spent tonight cutting out the interface, getting ready to put it in to the game once it has been completed. I still have a bunch to do on the interface. I need to hook up the stat indicators on the left. I need to make the save/load/news/quit buttons work. The text message box needs to work too. But I think I'll sleep for soon.

It has been interesting working with other people on the other side of the earth. You go to sleep and wake up to find all sorts of goodies done.

As well as people on the other side of the earth I am working with someone in the same city. So we have had a few days together working on stuff, which was interesting.

I also got a game over state, and a next level state happening. So you can lose, and win this game now.

Bla bla bla. Too I drank too much coffee yesterday. Time to sleep now. Here is another screenshot.

Add a comment

korg - Slow progress... but finally moving ahead...

Posted by korg on 2006/03/30 14:16

Well Im way behind. *sigh* Mostly its my fault, although Telstra get some of the blame.

The first day went ok with my getting opengl rendering going quite easily.

The next two days were a loss with blending and alpha channels defeating me. *sigh* (Notice the lack of 'game logic' mentioned so far?)

Yesterday was mostly taken with convincing my ISP that our Australian telecom monopoly phone company broke my ADSL link. I had to eliminate everything at my end (including dragging the fileserver into the kitchen to plug directly into the main phone input) before they could even get them to look at it.

Today I made quite good progress. I stopped working on the opengl stuff and went back to a text interface for developing the game logic. Well now I have map loading, path finding and all sorts of goodies.

Its seen here determining what you can see from the room 'K'. It does other stuff too, like path finding along the room paths. Im not sure that it will be fast enough, but hey it works.

I did spend a chunk of time trying to work out why my paths were mostly too lon, only to realise that I was storing the PATH_SO_FAR list but then appending to it later. I should have been saving PATH_SO_FAR[:]. I cant believe I did that. Oh well.

1 comment

python.com.ar - updated url..

Posted by tenuki on 2006/03/30 13:12

http://stim.game-host.org:8080/

Add a comment

TrainTris - Step backwards, leap forwards

Posted by mangobrain on 2006/03/30 13:10

After my last diary entry, I completely removed the train code I had created, essentially leaving myself with something that just rendered a fairly lame isometric landscape. I lost a lot of motivation at this point, and it's not been easy getting it back.

However, it has proved worth it in the end. I now have a train that can follow tracks, and is always drawn on top of them (not with bits of track over it, as in my last attempt); I also have a framework in place for having static "tall" objects on the map. The engine now differentiates between ground cubes, flat 'overlays' such as the rails, and static & mobile objects, which sit on the ground but are not flat and hence must be rendered in the correct order.

No new screenshots, as firstly they would still be of just a train on some tracks, and secondly I just deleted my hard-coded test level in favour of starting work on a level editor. The rest of the game should be "easy" from here on out - there are a few parts that will no doubt need debugging, but instead of jumping head-long into things as I did in the beginning, I have all the remaining algorithms already thought out, and am regaining confidence.

I'll hold off on divulging anything about gameplay until I have a screenshot that actually demonstrates it - something I should hopefully have later today. :)

1 comment