To be continued

FEAW

First time we can be part of a PyWeek \o/

Awards

Give this entry an award

Scores

Ratings (show detail)

Overall: 3.1
Fun: 2.8
Production: 3.6
Innovation: 2.8

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

Files

File Uploader Date
to_be_continued.png
To be continued
GruikInc 2011/09/18 02:13
feaw_pyweek13.zipfinal
Enjoy ;)
GruikInc 2011/09/18 02:05
level-background.png
Levels introduction
GruikInc 2011/09/18 00:52
background-difficulty.png
Difficulty menu
GruikInc 2011/09/17 00:15
teasing_day5.png
Water Stan vs ducks in the bathroom
GruikInc 2011/09/16 00:48
teasing_001.png
elghinn 2011/09/15 01:22
level1-1(600).png
GruikInc 2011/09/14 00:32
stan-1.png
Stan
GruikInc 2011/09/13 01:05

Diary Entries

Day 1 is setup day

Hi fellow PyWeek-ers!

Welcome to the first diary entry of the "Still Looking" (for a team title) .
We hope your day was great. Ours went well :)

 First of all: waited until 2 AM here in France to discover the selected theme. "Mutate!"? Yeah!
 
Then first setup before going to sleep @ 4. Mercurial repository is up and running, the basis of the game engine are coded and allow us to have a basic background and menu displayed.

After a brief night, let's see the detail of our game: FEAW. The story? You are a Cockroach and you are hungry. You begin in the garden of some house and want to get in the kitchen to lay in this wonderful trash can full of food.
A long and hard way to go. But hopefully, you can find and use mysterious gems to mutate and get really useful powers. What kind of gems? Which powers? Well you won't know that today.

Now let's decide how the game should look. The problem: elghinn and GruikInc. (that's me) can't do much for that. So here comes our friend cha and all her nice ideas and drawings. Another talk to decide the details of the assets files and the graphical chart is defined.
And we didn't have to wait for a long time before the first backgrounds and sprites took life. But you'll have to wait for the next entry to have the privilege to see 1 of them ;)

To be continued...

Add a comment

Day 2 is sprites and backgrounds day

Hi fellow PyWeek-ers!

We just finished the 2nd day of this PyWeek and lots of stuff happened today.

First let's talk about the game a little more. FEAW is a platformer where you have to find your way through a lots of different rooms (like in the old Castlevanias).
So the player controls our cockroach, Stan through all these rooms. Oh he came to introduce himself.
 



And to help him, I previously explained that some mysterious gems will make him mutate, giving him abilities. Well these gems are elemental gems : Fire, Earth, Air and Water.

But I gave enough details for today so I'll tell you later how these powers can help Stan in his quest for food.
 
 
Let's talk about the work we did today now.

 cha continued creating really nice assets. A few discussions about the gameplay and she finished the first level. It really is a big step as now we see our ideas drawn and we just have to combine all the parts in the code to be able to walk in the first full level 
 
elghinn worked on the levels handling in code. He can now compose the world by assembling them (by loading some description file). He can also display the backgrounds and scroll in front of them.
So the next step here is to handle all the elements which will populate our levels.

I worked on the sprites: display and moves. I had no problem for the display but encountered a big fail on the moves part.
I wanted to make the player move using basic physics to update the speed vector of Stan: mass * acceleration = sum(forces)
So i coded the system with the gravity as one of the forces, the others being the forces resulting form the player's inputs (left, right, jump). It ended with the character having too much inertia, as if he was a big rock in space (or on the moon) and not responsive enough.
I think this could work but with lots of tuning and I don't have that time this week (but I'll have some one day). So I ended up throwing this system away and now Stan is really responsive and it's fun to control him.

So that's it for today. We'll continue this adventure tomorrow maybe with some enemies and other things.

6 comments

Day 3 is levels and collisions day

Hi fellow PyWeek-ers !

Hope you're all right.
 
So yesterday I said I will talk about the enemies ... well I lied :) I prefer talking about the powers and the levels' rooms.
 



So basically, this is 1 room. The first room of the first level to be exact. You already know Stan.

You can see 2 apple cores. Stan is here to find food remember ? So on his way to the dreamed meal, he will find apple cores not to starve to death. (we thought about the classic coins but he didn't want to eat them)

The orange gem on the platform next to him is the Fire gem. No surprise here : it gives Stan the ability to launch fire balls. And this in two purposes:

  • kill the enemies 
  • burn the obstacles preventing him from reaching his meal
I think you already know what he will burn in this first room ;)
But enougth about FEAW for today, we still have 4 entries to learn more about it :)

 
So what did we do during this 3rd day ?


Well cha keeped creating assets and doing some level design. We now have 3 levels waiting to be implemented in the game. We might be able to have all the levels we wanted by the end of the week.

elghinn finally find a convenient solution to handle the levels as he wanted to. I won't say more about this today as he will stop his diary-lazyness for 1 day tomorrow and will talk about his system ;)

And me? Well I'm glad you ask!
I took care of the Stan/ground collision system. I've been wanting to do such a system for a platformer for a long time but I never had (took?) the occasion to do it. But now I can check that on my list :D
The simplest thing would have been to have a flat ground, but it would have been too easy ... plus cha wanted uneven grounds so I accepted to let her express her art with uneven grounds (and then my stress got bigger! Damn graphic artists! :p)

I was a little worried about this part of the dev as I had one idea but had some concerns about the performances.

My idea was quite classic though: have a black and white image for each background and check the box of the player on these images loaded in memory. I also considered partitionning the ground into lots of simple geometries but I finally prefered my first solution. 
I already tried this solution in a personal space game though (a PixelJunkShooter-like) and I wasn't pleased with the result of the collisions: how to know if a collision comes from the top or the left?
After some google-time I found a solution: create 4 boxes! 1 for the top,1 for the bottom, 1 for the left and 1 for the right.
Like that, depending on the player input, I can check to collision with the boxe(s) I want and act accordingly. So I did it and was quite pleased with the result.
I just had to spend a few minutes tuning the boxes in order and the result to collisions and Stan was able to run on uneven grounds \o/

And that's it for today.
Good luck and be brave: we almost reached the half-week milestone \o/

3 comments

Day 4 is elghinn day

So today it's my turn to talk. Lazy Gruik!



I'll talk to you about the level management. Since the begining I have planed to handle the levels like Castlevania: divide the level into tiles like if the whole level could fit in a sheet of LibreOffice calc. It allows to have a simple representation of a level in a plain text file. From this file, we can know the geographic position of a tile in the level and we can load its background image and its informations (like enemies, fruits, etc.).

But we are not in a perfect world: graphists do exist! cha, our graphist, is not very nice with us. So I had to find another idea. After a day of thinking, I finally came with a great one. I realized I did not really need to know the position of the tiles from each other. I just need to know which tiles are linked to each other. I have now a xml file with the tile list and I will have the item list, the plateform list, the enemie list for each of them, with their position. There will be too the list of existing links. With this informations, I will be able to create a graph that represents a level and allows me to know where the player is going when he is changing room.

We do not save any information about the images of tiles and items in the xml file because we can retrieve their names from other informations in this file. For example, with the apple, we only need to know it is a fruit and it is an apple.

When we are playing, we are only displaying the room where is the player. But a tile being small (1200x600px), we allowed cha to use more than a tile at a time to make a room. She was very excited.

And the others guys? They procrastinate! No, I'm kidding (or not).

cha keeped creating assets and doing some level design. We have new fruits, a new level, new animations (for the powers).

Thanks to Gruik, Stan can now use his powers. \o/
He can also fly around like a(n angry) bird. Gruik also upgrade his collision algo to handle more accurately the collisions with platforms.

I hope you will really love this article. Because it's from me and it will be the only one from me during PyWeek #13 (Gruik, if you read me ;).

1 comment

Day 5 is rooms and collisions day

Hi fellow PyWeek-ers!

Only 2 days left! Still lots of things to do but we should end up with most of what we wanted in the game.

So what could we learn about FEAW today? Well
 we didn't show that many levels, no mutated Stan and no enemies. So today you're lucky because you'll see all of these things :D




Here's Water Stan jumping from platforms to platforms. Isn't he nice in blue?
And here is a part of the bathroom enemies: ducks. You can see they aren't that nice when watching their blank look.

So here Stan is trying to get to the tub in some purpose I won't reveal here. I can just tell you that throwing water balls won't be the only power of his water mutation.

 
So that's it for today for FEAW. Let's see what we did during this 5th day.
 
cha, as usual, created more asset. She finished all the levels today and did a few menus. So now all she has left to do is a few animations and 1 or 2 things.

elghinn didn't do that much as he was really tired because of last night diary entry :)
Well he had some time to handle most of the levels filling system. Now we can load and display the items, the gems, the platforms and enemies are almost there too.
He finished the room system so that now Stan car walk in the different part of a level.

We had some troubles with these room changes, mostly in the collision system because of some non homogeneous things in different coordinate systems.

And he even found some time to code a surprise, but I won't say what it is today. We'll give you a hint at some point.

And for my part of the day, I fixed a few bugs in the collision system so that now Stan can walk on the ground and all the platforms as he likes.
I also added the effects when colliding with an Item (gem, food, ..) and with the exits (to go to another room).

We hope we won't have too many problems tomorrow in order to be able to spend our saturday testing the game and tuning the levels.

That's it for today people. Good luck with your projects. We had time to look around and there are lots of really interesting games we can't wait to play to :)

2 comments

Day 6 is menus and enemies day

Hi fellow PyWeek-ers!

23 hours and 47 minutes to go now! We're almost there \o/

We are a little late on our planning as we wanted to have only level design and tests to do for the last day but we still have some things to fix in the code. But we should be good if we sleep "not more than 5 hours" as said elghinn :D

A new power was added today when Stan is Air Stan: twisters! With this, Stan can get rid of obstacles and his enemies like this psycho rabbit:




Isn't he scary? Imagine what he could do to Stan if he hadn't the chance to find Mutation gems on his road to the trash can!

 And so you can see with this screenshot most of the work done today by Cha and elghinn.

Cha did mostly all the menus and buttons for the game. Even a few help pages to explain how the game is played. This clearly is better than the black backgrounds and pyglet Labels we had before today as menus.

Elghinn created all these menus in the code thanks to his sweet State system which allows us to stack them as we want.
He also took care of the enemies and obstacles loading and drawing. So now we really have all our data structure to handle everything in the game.

I began my day creating a simple HUD for the score and the lives in order to have information about Stan's state.
Then I handled the obstacles and enemies during the game: collisions and their effect, moves for the enemies and other things. This included again some collision development.
 The collision system became really more complete now. Even when Stan is at several Tiles intersection, so at several collision map intersection. This allows the player to walk in the levels without any problem.

And I think that would be all for today.
See you for the last post tomorrow when we will upload the game. We hope you will have fun playing it.

1 comment

Day 7 is Murphy's day

Hi fellow PyWeek-ers

Here we are: the 13th PyWeek is done !!! \o/
And sadly for us the last day was the Murphy's law day :)

As I said yesterday, we were a little late on schedule (or so we thought) for the code but had all the assets for our 5 levels.
We wanted to finish coding yesterday and level design/test today. Well it wasn't like that at all.
I finished addind features and mostly fixing bugs 5 hours before the contest end!
What was elghinn doing during this time? He finished his things before me and started to create the levels like 6 hours before the end. So 6 hours to create, tune and test 5 levels without any editor, just filling xml files by hand?
 
So elghinn started to do an idea we like but gave  up this morning: a level editor! Yeah you read it well: we decided to start creating our own level editor at H-6 :)
And you know what? We did it \o/ First, elghinn worked 3 hours and then 1 hour both of us. And now we have a level editor in which we can select the items, enemies, obstacles, platforms. Place, rotate, flip, delete, drag them with the mouse and save all that in a XML file.
For this last part we used FluentXML. This is an XML library written in python, distributed under the GPLv3 license here http://fluentxml.last-exile.org/ and made by our own elghinn.

So then we just had 3 hours to go and 5 levels to make ... elghinn started the 1st one and I tried to take care of the 2nd one to begin with. And Murphy's came and we discovered bugs, some problems we reported to the moment when we would have 1 level complete and other things.
elghinn succeedeed and finished his level, he helps me finished mine while I was fixing a few bugs.
 The 1st level works and in the 4th room of the 2nd one, we discovered a huge collision bug at H-20minutes.
So we dropped it too and finished with only 1 level. So you will only be able to play with Stan in the garden and finishing this level makes you win the game now.

So we are really sad to have our full system working (with 1 or 2 bugs) and 5 levels ready to be done but only one finished. But we will continue the development to have a version 2 with all of this (and maybe more).
But we're most of all happy because it was our first PyWeek, our first GameDev contest (except for elghinn who did a few in the past), cha was abel to make the menus and all the assets for 5 whole levels.
elghinn and I made a complete platformer code.

So here we are. We just have to upload the archive and after that it will be the time to test all you amazing games :)

We hope you'll enjoy FEAW and that we will meet again, maybe for the next PyWeek


Ah just one thing which is in the README but I tell you here: to play our game, go in the "feaw" directory and launch the file run_game.py.

And a last screenshot just to present the levels we wanted to have in the game


 

Add a comment

Final Post

Hi again people.

So we dev on Linux with elghinn so I just rebooted on my old Win XP to install the libs, check the integrity of our zip file and tried the game. I had no problem so here is our final archive for this week:

 http://media.pyweek.org/dl/13/gruik_inc/feaw_pyweek13.zip
 
As I said only 1 level in it but it took a lots of effort to have it :D

For the tech part, here comes a detail about the libs needed:

- FluentXML -> it's in the archive and is full python so no problem here (http://fluentxml.last-exile.org/ if you're curious)

- Pyglet -> http://pyglet.org/download.html
  -> They say to install AVBin with pyglet so : http://code.google.com/p/avbin/

- Rabbyt -> http://pypi.python.org/pypi/Rabbyt/  (big performance gain for sprites compared to pyglet's

- PIL -> http://www.pythonware.com/products/pil/  (use for our collision maps)


And I thinkg that's it. We tested it on Debian and Ubuntu with python2.7. I tested it on Windows with Python2.6 because I didn't have the courage to fight with Rabbyt tonight (it's 4 AM here)

[[EDIT]]
I'll 'py2exe' FEAW tomorrow so that's it will be easier to try it on Windows
[[/EDIT]]
 
And now that's it. We really hope you will enjoy playing FEAW, even though it's unfinished.
And I leave you with a final screenshot announcing what is to come for Stan.
Bye

 

7 comments