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 :-)
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!
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.
Galacticus - Sound and network!
Posted by Treeform on 2006/03/30 20:37
CrazyIroning - More progress...
Posted by SimRex on 2006/03/30 17:20
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!
PrintStar - Engine Complete (?)
Posted by PrintStar on 2006/03/30 14:44
The Olde Battleaxe - interface work. next level, game over == game?
Posted by illume on 2006/03/30 14:36
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.
korg - Slow progress... but finally moving ahead...
Posted by korg on 2006/03/30 14:16
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.
python.com.ar - updated url..
Posted by tenuki on 2006/03/30 13:12
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. :)