Friday, May 27, 2011

Lifetime

Lifetime is my first submission for the Experimental Gameplay Project. The theme was Zoom (May 2011) and it might be hard to make the connection at first sight. But this is what the theme inspired me.

And I know this is no business practice but I don't want to pitch you the game.

Windows users: quick play this game on Game Jolt.
Mac and Unix users: install Löve2D and play this version.

I have to say I am quite disappointed with this prototype. The artworks are for young children (though I wanted so), the code must be the ugliest one I made (I haven't wanted that!), and story is so simple. However, I did it so it would be stupid not to release it. Even if I failed to do a great prototype, I learned some lessons at least, and hopefully I will overcome them in my future games.

I encountered some problems with my vision of entities made up of components. Among other component types, a GraphicComponent is only able to show a single image. And an entity can only have at most one instance of each type. What happens if an entity want to have several, independent graphical representations? Because I wanted the possibility to show two images at the same time during a cutscene. Finally this never occurred, but I still coded a class which is not part of the entity principle. I recently discussed with a friend about the entities in Warcraft/Starcraft and I will try next time to change a little bit my design.

This was my first prototype with real dialogs. As I am quite influenced by my programming experience with NeverWinter Nights, my dialogs ended to be some generic containers used to launch scripts (there are dialogs which only run a function, with no text). But I didn't wanted to give a whole structure where just a text is required, so the format has become a mess. I will sanitize that problem in future prototypes... or just use fewer dialogs.

I also realized that, when you are a developer, the bottleneck is everything but the code... therefore I won't do another game based on graphics before a while! There are 119 images in this game. The children's style helped to get them faster, but it's still a lot of work when you aren't an artist (achieved in four days along with studies!).


Update 6/21/2011: Some things I'd change if I had to do it again:
  • I would integrate the cutscenes into the entity system. The main reason is to avoid dealing with different systems on the same game. Rémi suggested that cut-scenes could be composed of several entities, one for each image, and another serving as a controller, reading a track and sending events to the entity-images. Another possibility is a component which can draw some images at the same time, but I guess it's trickier.
  • For the same reasons, I would put the dialogs into the entity system. Here one entity should be enough for the whole game, actually it would only have a DialogComponent. Sending an event "playDialog" to the entity "dialog" would load and play the dialog given as parameter.
  • To allow the previous points, I would have to write another Transform component. The current transform is influenced by the camera, but the entity-images and the text need to be independent of it, though they have still a position on screen. The goal is to have both game and UI using the same entity system. It would allow some tricky mechanisms, such as a button sending an event to the player-entity. But I don't really know how to split entities, i.e. draw the game entities at first, and then the UI in a second pass. Let's think about it.
  • The dialog format should not change, but using some helper functions I could hide the format to the designer/writer. I expected to work alone, but Brice copy-edited the dialogs and he had to deal with that mess.
  • If I had time, I would try to apply a low-pass filter on the music. Some players reported unpleasant ticks. I can't prefigure what it would result.

4 comments:

  1. Nice, you did good on the aesthetic. Sadly as you say the gameplay isn't much, but it serves as a vivid point to those who think games don't need story...

    ReplyDelete
  2. Thanks :)

    From start, I've decided it would be an interactive story, with no real gameplay mechanisms. I quickly discarded the motion in y-axis, because it doesn't bring anything to the story. I just wanted to tell a little story in the form of a game. I concede I just finished to read "Character Development and Storytelling for Games" by Lee Sheldon (I advise anyone to read it :) ), and Heavy Rain showed us it is possible for a game to focus on the story.

    ReplyDelete
  3. Nice job!

    Although the gameplay & graphics are simple, the story definitely carries *a lot* of emotion.

    The music choice is also very nice ;)

    ReplyDelete
  4. I was deeply moved when I was offered the choice to take the flowers, put them on the grave, and take a moment to think of lost loved ones.

    It's very rare for me to be able to execute a choice in a video game that has such a deep meaning. Thank you

    ReplyDelete