Level editing in GIMP

Programming for 30 years now, never made a real game, gotta try now!

I've programmed for over 30 years (first program was in Microsoft BASIC v1.0) and never really wrote a real game... It's high time that changed! Love Python and can't wait to get started. I hope I finish.

Awards

Give this entry an award

Files

File Uploader Date
level_screenshot.png
Level editing in GIMP
efloehr 2011/09/14 11:33

Diary Entries

Slept on it

Well, here in the midwest U.S. it was 8pm Saturday when the current challenge started.  I hadn't really done any thinking about the themes, save for one idea I had when I saw "Mysterious Stranger".  But I let my mind wander over the "Mutate!" theme, and talked to my kids and wife about what they thought when they heard that word.

Yesterday, I attended the Ohio Linux Fest and heard a great talk by by Mel Chuna called "Level-up...turn your life into a data-driven video game with FOSS".  In it, she noted that games required four things: a goal, rules, feedback, and voluntary participation.  As I drifted off to sleep late night I came up with the goal, tossed it around a little, and think it will work.

For the rules, and feedback, I'm thinking back to some of the 1980's games I used to play, thinking about their mechanics and making sure that it's something I think I can do in a week.  It's really cool when you think about it that the games I played in the arcade as a kids, are games you can reasonably make in a week (save some polish).  We've come a long way baby!

So today I'm working on rules and feedback, and how best to integrate the theme.  Being a verb, "Mutate!" seems like it would be best incorporated in the rules or other mechanics, rather than the goal or story framework.  I'll work on some sketches of the game, and do a little coding.  The key I've found to a successful software project is enough planning to stay out of the weeds when programming, but not too much planning that you can't innovate as you go.  Also, having quick iterations is important... having something that works and advances the program is key.

Stay tuned!

Add a comment

Step 1: Goal

In my previous post, I mentioned hearing Mel Chuna talk at Linuxfest about gamification, and that the four components of a game are goal, rules, feedback, and voluntary participation.

After brainstorming with my family, we came up with a lot of ideas.  Biology-related, something with genetic algorithms, aliens, evolution, etc.  The ideas were rolling around in my head as I was falling asleep when I started to think about aliens.

Being a father of a 13 and 14 year old, I thought about what alien mothers and fathers might think about.  And where alien children in school might go on field trips.  And what advanced aliens might do with all that technology available to them.

So my thought for my game goal is this: you are an alien parent whose alien children went on a social studies field trip to study the primative life on Earth when the school-bus alien spaceship malfunctioned and crashed.  Thankfully all the children are ok, but they have been scattered around and your job is to successfully retrieve them.

The "collect stranded survivors" theme has been used successfully in a number of older video games, like Choplifter (http://en.wikipedia.org/wiki/Choplifter), Defender (http://en.wikipedia.org/wiki/Defender_(video_game)), and Robotron (http://en.wikipedia.org/wiki/Robotron:_2084).  Its also a theme in many newer games as well, but I'm thinking specifically of games that could be similar in capability for a Pyweek challenge.

As for how to incorporate the Mutate! theme, I'm thinking that the aliens are so advanced that they have no concept of killing or lethal weapons.  If fact, the only tool available to you, the alien parent, is a mutator ray.  So now, how to make a fun, playable game with good rules and feedback and mechanics out of that?  Stay tuned...

Add a comment

End of day 2: more design, less code

Well, I finished up what the game design is going to be.  The theme of the game is alien kids rescue, with only a non-lethal mutator tool.

Choices for the type of game could be 3D, isometric, top-down, platform, or side-scroller.  Since this is my first PyWeek, and I still have a day job, 3D and isometric are out.

With the theme being mutating things to help you accomplish your goal of rescuing alien kids, top-down seems a little limiting, and side-scroller also a little too ambitious for my first effort.  So I'm going to make a platformer.

The gameplay will be level-based, each a new location where kids have been scattered that you have to retrieve.  Each level will present a puzzle where you have to mutate people chasing you into useful items to help you get to all the babies.  You will also have a limited amount of energy and will have to collect energy pods that were also scattered in the spaceship school-bus crash.

As for coding, not so much.  I should have spent a little more time with PyGame prior to the contest, but didn't make time.  So I reviewed some of the tutorials, and have the game window working.  I'm using GIMP to create the level design, each pixel color represents an item/tile, and created the converter to convert into a binary file for quick load.

My goal tomorrow is to have the level showing up, have graphics for the tiles I've identiied so far, and have the ability to move the player.  I need to start coding a little more to have a chance at a playable game at the end of the week.
 

Add a comment

End of Day 3: Not much further


A busy day at work, followed by a number of family obligations in the evening, means I didn't get much time to work on my game on Day 3.

I did do some level design in GIMP.  The program will read in the image, taking specific colors as items in the game.  I figure GIMP is the easiest level editor I could find, and it's already written :-).  The game field is 576x480 pixels, and each sprite is 32x32 pixels.  This gives a field of 18x15 individual items.  It's a small playfield, but should be enough to create challenging levels.  Here is level 3:
 





 

 I also fleshed out the program design.  I might spend a few hours during the work-day day 4 since it's quiet and uninterrupted, to program in the game mechanics so I have something functional.  Then I'll hook it up to pygame with blocks day 5 and create some graphics.  Day 6 I'll add music/sound effects and create some more levels, then the last day I'll test and polish.  Ambitious, but I'll give it my best shot.  Regardless if I'm able to finish this week, I'll finish the game.  This is too much fun!  Onward!

Add a comment

Fin - Not even close

This has been really fun, got me out of my data analysis/web programming comfort zone into something I've always wanted to do.

However, I wasn't able to devote the time necessary to finish a game, which I thought might happen.  No worries, this has been a fun experience and I'm going to definitely finish my game as I have time.

I'll also look to enter a future PyWeek when I have more flexibility in my schedule, now that I've learned a lot about pygame and game programming in general this week.

Best of luck to everyone else, you've got some awesome looking games.  Can't wait to try them out!

Cheers!

Add a comment