Game Design Music and Art

Speedgame: Adventures of Emma and Molly – HanClinto

HanClinto

Administrator

Posts: 1828
From: Indiana
Registered: 10-11-2004
Hey all!

I'm starting threads to give feedback to all of the entrants to this year's CCN Speedgame contest. Everyone did some good things this year, and I wanted to make some threads to give encouraging comments and constructive criticism. This week, I'll be making threads for 3 games each day, so as to hopefully not bump all of the other discussions off of the main page, and give everyone some daily-focused-feedback on their games. Feedback is an important part of the CCN contest, and I hope that we can give a big "thanks!" to our entrants by letting them know how they did! I don't think everyone should necessarily give numbered ratings like I did -- just some words of feedback and encouragement would be fantastic.

The Adventures of Emma & Molly (by SSquared):
-------------------------------

Clint's Ratings:
Xian: 6 (Not much standalone teaching, but it can be a nice reinforcement to children who already know the stories)
Fun: 8 (A very nice balance of challenge and enough-persistence-will-get-it)
Orig: 8 (A very nice combination of parable minigames, in a very creative format)
Gfx: 6 (They are fun graphics and the visual style is simple yet pleasant, and fits well with the whole "kid" theme)
Stab: 8 (No stability issues, runs great with SDL.Net.)

Summary:
An puzzle/exploration game targeted primarily at kids, but fun for all ages. Help the two girls find their missing sheep stuffed animal, and explore a number of parables along the way!

Feedback:
What a fantastically charming game! I love all of the voice overs and the comments ("Those cranks can sure be tricky!") -- are those your daughters that you got to do the voice overs? I think that's a wonderful way to get family involved in the creation of a game -- very well done!
I really liked the exploration of the mazes -- they were challenging yet fun. I wasn't sure about the controls, but they were intuitive enough that I was able to guess (such as how to plant seeds or use cranks) and I figured it out quickly enough that I wasn't frustrated at all.
Bummer it didn't save my progress, but I didn't get that implemented into my game either, so I can't really fault you for it. I'm amazed at how much of an intro screen you were able to put together and everything -- it just felt very planned out, and it was very nice.
I loved the level loading and the variation that you put into it -- some of the levels (particularly the cranky ones) were a very nice challenge.
The cursor was a little odd to tell where it was pointing (I originally guessed the center of the cross and started mispelling my name), but other that was a very minor point.
All in all, great game! We (my wife and I) really enjoyed reading the intro story text -- it was just such a charming setup and it set a wonderful atmosphere for the whole game. Well done!

[This message has been edited by HanClinto (edited August 27, 2007).]

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
Wow! Thanks for the feedback. I can't believe the work/time you spent for each person.

I was going to make a separate thread for people to write post-mortem's, but I think this is a good enough spot for it. And that way, the post-mortem can remain with the individual game. I will get to the post-mortem sometime later as I am at work.

In the meantime, let me respond to your post. Yes, those are my daughters. They were SO excited to be in the game. Like I stated elsewhere, this game kind of turned out to be a dedication to my kids.

I'm surprised you figured out the controls. This is why I added something in the ENTRY.TXT saying you MUST read the README. I knew I really needed to add a voiceover for the crank so when you get to the first crank, it was going to say, "I think the spacebar may turn this crank." Likewise, some voiceover indicating what to do on the Sower level. But, for some reason, I never recorded them. I think it would have been a great help. Actually, almost all of my helpful voiceovers did not make it into the game. I don't know what happened, but apparently I recorded them but forgot to add them in. All of the Quit/Restart/Main button things had voiceovers. I just realized two days ago they were never added and I nearly fell out of my seat. I have learned from kid games (in addition to reading about software accessible, that is, programming for disabilities) to have audio cues for things. Unfortunately, I somehow left these out of the game. But they are located in the resource directory if you want to hear them.

Saving progress was one of those things I left off. The UserData class contains the last completed level, so I maintain the data, but I realized the game really didn't take long to finish. It is rather easy to complete in one sitting, so I decided to leave off that feature.

Glad you liked the intro screen. I really wanted it to be my daughter's big chest of stuffed animals and have the sheep sneak out as an animation. So the screen I used wasn't the original idea and wasn't all that planned out. I did the actual screen in The Gimp. Trying out different fonts, spacings, colors, etc. I used the confetti brush for the purple circle since I thought it had kind of a kid's touch to it. The song, well, my daughter totally came up with that on her own on Saturday morning (the final day) while we were recording the final voiceovers (the ones I totally forgot to add to the game). I was a bit ambivalent about adding it. I didn't particularly want the game to appear like I am trying to showcase my kids. But I was so impressed with what she came up with, the words, the tune, everything. And her excitement to be in the game...I just felt like adding it to the beginning. Although I already had a storyline, she added the hide-n-seek idea with the song and it helped to intro the game so you know why you are looking for the sheep.

Thanks for the feedback on the cursor. I will need to update it to something more clear.

Super Angel Steve

Member

Posts: 212
From: Staten Island,Ny
Registered: 05-10-2006
I don't mean to sound Stupid,but What is a Speedgame?

------------------
CCN's Resident Idea Man!

HanClinto

Administrator

Posts: 1828
From: Indiana
Registered: 10-11-2004
Super Angel Steve: Speedgames are games that were created for this year's annual two-week game programming contest. We announce a theme, and everyone races to create a complete game in just two weeks. It's hard, but feasible, and it's an absolute blast for everyone involved. You can read more about it at this link.

SSquared, thanks for the response -- it's great to hear a little more about the process behind everyone's development experiences. I look forward to reading your post-mortem.

--clint

Super Angel Steve

Member

Posts: 212
From: Staten Island,Ny
Registered: 05-10-2006
quote:
Originally posted by HanClinto:
Super Angel Steve: Speedgames are games that were created for this year's annual two-week game programming contest. We announce a theme, and everyone races to create a complete game in just two weeks. It's hard, but feasible, and it's an absolute blast for everyone involved. You can read more about it at this link.

SSquared, thanks for the response -- it's great to hear a little more about the process behind everyone's development experiences. I look forward to reading your post-mortem.

--clint


Cool! Thanks HanClinto!

------------------
CCN's Resident Idea Man!

ArchAngel

Member

Posts: 3450
From: SV, CA, USA
Registered: 01-29-2002
well done game. but the voices gotta go.
jk. The voices put a great feel to the game. Like Sesame Street on crack.
Props to your daughters for having cute voices.
none of those manly sounding daughters.
"Joe? oh, it's just you melanie"

Great cross-parable use.
I felt threatened when you did the sower parable.

if I have one complaint, it's that occasionally the seeds will sit there for a long time doing nothing. Other than that, well rounded game.
(my bro cheered for you when he saw you got Original concept. well, kinda cheered, more like a "YES!")

------------------
"The generation of random numbers is too important to leave to chance."
Soterion Studios

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
quote:
Originally posted by ArchAngel:
but the voices gotta go.

Hahahaha. You got me big time on that.

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
Here is my postmortem. Long, I know. Hopefully you will find it interesting.

-------------------------------------------------------
Please note, I also have a DevDiary inside the release ZIP which gives more details into what was accomplished each day.

The Early Days

When Mack announced the contest I was initially shocked. I didn't expect it for another few weeks. My heart sank as most of the learning I planned to do throughout the year did not take place. At least I had recently updated my game from last year to the latest version of SDL.NET, so I was somewhat familiar with the latest API. Plus, I had done several updates to last year's game throughout the year, but I was not where I had planned to be at this stage of the contest.

I looked over the parables and marked off some as being too difficult and others as definite possibilities. The one parable that kept coming back to me was the lost sheep.

The Game Concept

My one thought was I wanted to make the game unique. I wanted to come up with something different. When I play a game, I always try to find perhaps that one little thing which makes it different from the rest in a genre. I mostly wanted to get my thoughts out there and present several possible ideas. I now realize this thought caused some features to be lacking as I had a skewed focus on what was most important. I am absolutely thrilled I placed in the category I did. It was definitely a goal of mine to have an interesting concept.

Last year I made a game with a computer AI. In the middle of last year's contest I realized my mistake. I vowed NOT to make AI in the next contest. So, AI was completely out of the picture.

I knew I was going to make a 2D game. I knew I was going to use SDL.NET. I knew I was going to use a certain tileset, too. I also knew I was ready and willing to make quick cuts in scope whenever necessary. Anything which wasn't necessary or was going to be a little complicated to code, I would need to stop.

I've been focusing on playing and examining casual games the last several months, but so many of them follow the same idea or pattern. This is what really led me to want to create something different. My first thought was kind of minesweeper-like. I then thought about some casual games I've played with a similar premise where you walk around and need to find the safe squares in a room. As I thought things through, I came up with the hidden maze idea.

The first thought was, obviously, to use a shepherd. But then my daughter's little "Jesus Loves Me" Lamb popped into my mind. "Aha! We are off to look for the missing stuffed lamb from the girl's toy chest. And the goal is to help them find it."

I came up with this whole backpack system idea. The user will have a backpack of three stuffed animals which have special abilities. A bird will let you fly over the water areas, the elephant will let you push objects, a duck will let you cross water, etc. (Some of these PNG's are still in the resource directory.) The player will have an assortment of stuffed animal choices prior to starting a level, but only three will be available during gameplay.

---The Game Contest Begins---

The First Two Nights

We were on vacation, so I wasn't able to start until around 10 PM the first few nights.

My first problem was the size of the tiles. I felt the tiles were a bit too big and may not allow for some really tricky mazes. Oh well. I'll live with it for now. I may be able to just move the screen as the player moves to the edges, but I really did not want to code that in. The bigger problem was I had no pathways in the tileset. Uh-oh. So I would need to search for some pathways the next day.

I looked through Reiner's Tilesets and found various pathways. I found one I liked, but Reiner's tile sizes did not match with my other set. Uh-oh. There was a small 2 pixel gap at the bottom of each path tile. So I decided to programaticaly take the bottom two lines of pixels and just redraw them again and voila! The gap was gone.

By the end of the second night, my map contained the bottom layer tiles (grass/water), a path, and was able to display the hidden pathway as the user walked. So, I had a game concept, but no "clincher". There was no real gameplay.

The Night of No Sleep

That night, I got maybe 3 hours of sleep. I was tossing and turning all night thinking through the game and deciding on what will work, what won't work, what will be the draw, all that kind of stuff. By the time morning came, I was bright-eyed with glee. There will be multiple parables intertwined in the game. Some levels may require you to find the mustard seed and push a mountain blocking the pathway. I just started coming up with all sorts of gimmicks, tricks, and situations the user needed to resolve. The levels would also be timed so you had the incentive to try and do better and a "Ready, Set Go!" to start each level. And...the ultimate game value would be randomly created levels. Yes! I had my game idea and finally had a real goal to work towards. Intermingled will be character voices to add some life.

The Rest of the Thought Process

I spent a few hours one night beginning the backpack idea. My kid's were ALL hot on it as they were even throwing out animal ideas. A dinosaur to let you see extra spaces. An eagle to let you fly over high obstacles. But by day 3, I realized it just wasn't a necessary part of the game. It might work if the tiles were smaller, or I could somehow get a bigger area, but with the limited size, it just wasn't going to add anything and would probably make the levels just super easy. So, I told the sad news to my family. No tears, but sort of got some, "What? Noooo." (The initial code I wrote for this is still in there.)

I eventually worked it out to five parables each having two levels. A Molly level (easy, giving you the basics of the level style) and an Emma level (tends to be a little more difficult to complete). I had the lost sheep, faith like a mustard seed, the good Samaritan, the persistent widow, and the sower. I thought, wow! If I could come up with different styles of gameplay for each level, that will give the game just what it needs for some variety. In the end, I eventually realized the mustard seed was not on the list of parables, but may or may not actually be considered one. Didn't matter because I didn't think I'd be able to finish 10 levels by the time I figured this all out. The persistent widow eventually changed to the parable of the guy asking his friend for something.

I started creating the levels since the basis of all the levels was going to be a maze. So I knew I had to at least do that part. (I did not work on the maps in sequential order.) As I worked on levels, I would think through potential gameplay elements. The lost sheep levels were easy. They would be my original idea of simply trying to find the sheep in a maze. For the Samaritan level you would need to find a hurt man (that is me in the game) and take him to a hospital. For the persistent level you would have to keep finding things until you would eventually be allowed to find the sheep. And the sower level would have something to do with finding bags of seeds. Originally the seedbags would give you points, but I later developed the idea of throwing the seed and having various outcomes occur. For some reason, this level loses the maze idea and has sort of a different feel. I was starting to get worried I wouldn't even get all eight levels completed, so I'm happy I chose this easier layout. The maps take a long time to plan out, so the sower levels ended up giving me the breather I needed to finish the other, more complicated maps. The second sower map was simply a turned version of the first one and I knew I needed a better gameplay conflict than the first level of birds. That's how I came up with the idea of the random flying. It is quite random, although it waits several seconds between checks to see if it should fly in a different direction.

With most of the levels decided, I still didn't feel quite right about the Samaritan levels. They were more of a variation on a mixture of the lost sheep and persistent levels. That's when I came up with the cranks idea. Probably my favorite concept of the game. I felt it gave the game a good challenge and some thinking problems.

I added the high score board early on and at one point, felt I was wasting my time. I wasn't sure if I was actually going to add it and several times was ready to start on more important items. In the end, I'm very happy I added that whole screen. It doesn't do much, sure, but I was trying to give a more cohesive feel to the game. Plus, it includes my first sound effect I added to the game. It was really a learning screen for me. It introduced me to several handy SDL.NET classes and concepts, and also my first foray into getting sound into the game. It really contains a bunch of ideas and was a turning point in getting a better understanding of SDL.NET and its abilities. These are exactly the things I should have known prior to this contest.

My saddest thing was to let go of the random map idea. Really, that's what this game needs. Once you learn the level, it becomes easy. (The hurt man is actually in a random position within a set block of tiles.) By Monday night of the 2nd week, I was really burnt out from all the hours I put in and wanted to take the rest of the week easy. Plus, we also had two extra young girls (friend's of our daughters) over for the entire week. So I decided to forgo the random map idea and just completely focus on what I had left to complete, which was mostly designing several maps/levels and recording voices and more sound effects.

If I had some extra time, I had a plan for a pseudo-random map. This would be where most of the map remains static, but a few special adjacent tiles would have maybe 4 different possible path outcomes. I thought even just a small difference in the maze may offer a completely different feel to the map. Well, I didn't even have time for that concept, so I was left with the static maps.

Last year, I crammed right up until the final minute. I took a different appraoch this year and it really made the second half of the week a lot more peaceful. I think it came down to realizing what to cut, and to cut it sooner rather than getting too far into it. Amazingly, I was almost done by Friday night. This gave me some time to add a little bit of music. So on Saturday morning, I recorded the final voices and wrote the little song for the name selection screen and the ending fanfare.

The original opening screen was going to be a photo of my daughter's toy chest with all of the stuffed animals. Then the little sheep was going to crawl out and walk away. Obviously that didn't happen.


Issues/Problems/Oddities:

Basically, these are the things I know I need to clean up and fix. Any other advice is welcome as well. Like Clint mentioned the mouse cursor. Except for bugs, and cleaning up the code, my main goal is to implement a random maze generator.

I know, I have kind of cheap, lousy blue screens. But they didn't fit into my focus of trying to show ideas of gameplay, so these kind of got the backseat. I certainly didn't have time to create 8 different screens for each level so I decided to have voices for the transitions. Although you can see I started with an idea for the lost sheep level. But nothing really came of it nor was there any start for the other screens.

The cranks are a bit complicated and perhaps confusing at first. I wish I had added a voiceover when you get to the first crank to state, "Press the spacebar to change the path". But I added a description in the README.

The crows are too random on the second level. By the way, the outcome of the seeds are sound coordinated. If the seed is to be eaten by a crow, then you will hear the 'caw-caw' signifying this is seed to be eaten by the crow. The problem with the random flying is it can be awhile for a crow to get to the seeds. I was going to fix this and have a bird purposely fly towards the seeds, but after playing the level a few times, I was still able to complete it in around 3 minutes, which I didn't think was all that bad, so I just left things the way they are. Again, time was an issue. I created the random birds on Monday night and that was sort of the end of my late nights. The code was getting a bit out of hand by this time, so I was also trying to avoid significant code changes.

I'm a little surprised at how rare a flower sometimes pops open. It has twice as a high a percentage as any of the others. Sometimes you see several pop up in a row and other times it seems to take awhile. I don't think I figured out a good balance here.

I was showing the game to someone the other night and realized two glaring issues:
On that final Saturday morning, I recorded voiceovers for all of the Yes/No screens. Things to ask, "Are you sure you want to quit/restart/go to the main menu?" But I somehow totally forget to add these in.

The other issue is, well...I won't say. I'll just say this, the bug escaped me since I tended to hard code what level I wanted to play/test or I would play the entire game all the way through and then quit the game.

Thanks for reading! Did you get this far?

[This message has been edited by ssquared (edited August 29, 2007).]

ArchAngel

Member

Posts: 3450
From: SV, CA, USA
Registered: 01-29-2002
I usually fear longs posts, but that was a good read.

------------------
"The generation of random numbers is too important to leave to chance."
Soterion Studios

samw3

Member

Posts: 542
From: Toccoa, GA, USA
Registered: 08-15-2006
Yup. Read every word It's great to share in your experiences! I really enjoyed both your game and this post.

God Bless!

------------------
Sam Washburn

Check out my CCN SpeedGame 2 Blog

HanClinto

Administrator

Posts: 1828
From: Indiana
Registered: 10-11-2004
Excellent post-mortem! Thanks so much for sharing it, and good job on being the first one to write it up!

I really enjoyed reading it. I think posting it in your feedback thread is a great way to keep information about each of these games in one place -- I would recommend that others follow this as well.

Cheers!

In Christ,
clint

SSquared

Member

Posts: 654
From: Pacific Northwest
Registered: 03-22-2005
Thank you for the comments. I'm glad I wrote it up. Yes, Arch, I feeeeeaarrrrr long posts tremendoulsy, so I was worried about posting it. But I know this subject is interesting enough to me, I wouldn't mind reading others if they wrote long ones, so I went for it. Glad you guys found it interesting.

I remember reading a good developer story on the adventure game "Star Wars: The Phantom Menace" back in 1999. They discussed all sorts of cool ideas which didn't make it into the game and why. They also discussed some of the creatures and vehicles they used in the game which were actually supposed to be part of the movie, but got cut from the movie. Anyway, I always reflect on that article as an idea of what to write about.

If I may add something, too. I knew there was something I couldn't think of last night as I wrote it.

I also really wanted a way to select a game level to play. Maybe you want to keep retrying Level 7, or something. In addition, I wanted a way to remember the player's progress. Without GUI components/widgets, I wasn't sure how I'd implement the first idea. The second one I started to implement. In the end, after playing through the game a few times, I realized you can get through the game in one sitting fairly easily, so I didn't find these features as absolutely necessary for the contest. Although thinking about it this morning, it may still have been nice to add the "select a Level to play" concept as you may have a particular level you want to improve upon.