Blog! Team! Forum! About Apricot! Press! Gallery! Development! Yo Frankie! Apricot Open Game Project mee!
Jan 14

Pre-Production Workshop Review

icon1 margreet | icon2 Apricot Press, Blender Institute, Blogroll, Development, Media Gallery, Production, Random Fluff | icon4 01 14th, 2008

Last weekend we had the first workshop for the Apricot project. Frank Richter from Germany, Pablo Martin from Spain, Campbell Barton from Auteam drinkingstralia,
Dariusz Dawidowski from Poland, Marten Svanfeldt from Sweden, Jorrit Tyberghein from Belgium, Brecht van Lommel from Belgium, Margreet Riphagen from the Netherlands, and Ton Roosendaal from the Netherlands met at the very nice and new Blender Institute Location in Amsterdam. There we discussed plans, ideas, and practical arrangements for his ambitious Open Game project. In the mean time we also met with the Peach team and saw the amazing work they have been doing so far. The work they did and are still doing will provide the perfect foundations for the Apricot game project.

1. Type of Game

One of the first things that we have discussed is what the type of game? After seeing the first version of the Peach animatic the team got a nice idea
about the story and setting. The nice thing is that the story lends itself perfectly to adaptation in some kind of game format. Still there are several options. In this meeting we discussed several possibilities and came up with five realistic possibilities:

Idea 1: Platformer style

The objective of this game could be to collect nuts for example. Remember that we’re in a cartoon setting.

  • Pros:
    • Relatively low technology on game logic side so less work on CEL side.
    • Well known concept. Easy to get into.
    • Very extendable. This kind of game is ideal to create a community adding new levels and stuff to the game even after the Apricot project has officially finished.
    • Not much competition in the Open Source world right now.
  • Cons:
    • Relatively big levels. Lots of work to create them. Heavier on the engine.
    • Many great commercial games to compete against.
    • Lots of models to make.

Idea 2: Shooter game

Again, to stay in the cartoon style and theme of the movie this could be a shooter game based on shooting nuts for example.

  • Pros:
    • Same possibility to create a big user community modifying and extending the game later.
    • Smaller maps are possible (compared to the platformer type).
    • In a smaller map it would be nice to concentrate on detail to make really nice scenery. In faster games or games with bigger maps that is not as possible.
  • Cons:
    • Overused concept.
    • Lots of Open Source shooters already.
    • Relatively violent.
    • More work to make computer AI.

Idea 3: Racer game

No nuts this time 🙂 But still it is possible to make a racer type game that fits with the theme of the Peach movie.

  • Pros:
    • Relatively low technology on game logic side again.
    • Well known game concept.
    • Almost the same extendibility of the game.
    • Slightly less competition in the Open Source world.
  • Cons:
    • There is a need for rather big levels again. So harder to create for artists and heavier for the engine. On the other hand, the levels don’t need to be as detailed.
    • There is at least one great game (Super Mario Cart) to compete with.
    • This type of game is more suitable for game consoles and Apricot will not be for consoles.
    • This type of game is slightly harder to fit with the story of the movie. The theme could be the same but other than that the match with the story is not as good.

Idea 4: Trap/puzzle game

Here is the idea is to have a more strategic game where you have to plant traps and solve puzzles in order to win against the computer opponent.

  • Pros:
    • Nice possibility to extend again although this time slightly more complicated since levels have to be created with traps and puzzles in mind. You can’t just slap in any odd level here.
    • This game can be a perfect fit for the movie. Both with the theme and story.
    • This kind of game has good replay value.
    • Maps could be made smaller (compared to platformer).
    • Again the advantage of having more detailed maps.
  • Cons:
    • More work to make the computer AI.
    • Like said above a bit more complicated to make fun levels because of the traps.
    • The game is not as easy to start playing with. First you have to learn a bit more controls (like how to set up traps and so on).

Idea 5: Party games or collection of mini-games with one bigger game combining them in a central theme

  • Pros:
    • This type of game is easier to extend and the advantage is that when Apricot runs out of time we can simply drop a few mini-games.
  • Cons:
    • Harder to come up with different game concepts. Instead of having to think about only one game you actually have to think about multiple (smaller) games.
    • More artwork needed.
    • Probably more suitable for consoles instead of PC gaming.

There were several other possibilities that we talked about like adventure, RPG (or even MMORPG) but these types of games are really not possible given
the limited timeframe and resources we have. In the end we didn’t decided the type of game yet given that not the entire team was present at the
workshop. The type of game will be decided during the first week of the Apricot project. But we already have a preference for either a platformer or trap/puzzle game or maybe a combination of those two. Like a platformer with smaller levels where you have to concentrate more on solving puzzles,
placing traps and things like that.

flipover overviewflipover 2

2. Technology Discussions

Depending on the type of game there are a number of technology improvements that we have to make in Crystal Space, Crystal Entity Layer, Blender, and
Blender2Crystal. One of the most important results of this project should be the improvement of the Open Source game creation pipeline using Blender
and Crystal Space. One of the basic principles of this pipeline is that it is the artist that creates the game. Not the coder. The coder provides
the tools, the logic blocks, the scripts. The artist then creates his art, assigns logic to the level or models and assembles the game.

The first technology we discussed is character animation. The movie is a cartoon. In cartoons you need really good character animation. Also in the
game we want to have really amazing character animation. Here a short summary of how this technology affects the four projects:

  • Crystal Space:
    • In Crystal Space we currently have two skeletal animation systems already: one is based on the external CAL3D project and the other is a system made in the past. Both systems are usable to some extent but don’t live up to the standards we expect for this game.
    • So the idea is to start a new animation system. To that end Marten Svanfeldt will work on a new design and document where all the requirements and concepts are documented. After that is done this document will be discussed in the team and at some point implementation will start by another team member. By the end of March we should have a working system here so that the artists can start exporting their animations into the prototype game and see how it will really look like.
  • Some of the desired features are:
    • Bones (obviously) with the possibility to have vertices being attached to multiple bones.
    • Morph Targets would be *very* nice to have.
    • Define transition animations. For example, to go from walking to standing there should be a transition animation so that the walking animation doesn’t suddenly change into standing. Could be done with a kind of matrix describing how to go from animation A to animation B.
    • A good way to specify synchronization points. These are specific frames in the animation where it is good to switch from one animation to another. For example, if you want to switch from walking to standing it would be great if that could happen at well-defined points so that you don’t see disturbing jumps in the animation.
    • Good animation blending system and the ability to play multiple animations at once (like head/ear movement together with the normal walk cycle).
    • Perhaps the possibility to have the animation adapt to the environment somehow? For example if an actor moves on uneven ground it would be nice if the right foot didn’t sink in the floor when the ground level at the right foot happens to be higher than the ground level at the left foot.
    • Perhaps also the ability to have the secondary animations be controlled by physics (for example, a tail flapping around as controlled by the physics system).
  • Crystal Entity Layer:
    • The movement system needs to know about animations so that the object only moves just as far as the feet are able to move it. That way you can avoid the skating effect you often see in Open Source games. One way would be to use a callback system in the Crystal Space animation system that would send a callback to the CEL movement system every time the foot hits the ground (that callback could also be used for the sound system for example).
    • We have to think about what we can do to allow for climbing. This is something that affects movement and animation system as well. Perhaps some way to place and use feet/hand constraints on surfaces (ladders, trees, …).
  • Blender and Blender2Crystal:
    • The artists need a very good way to make their animations in Blender and see how they would look like in the game. We have to see what we can do about in-blender preview in a way that is really compatible with how the game engine does it (in this case Crystal Space). Probably the best way would be to have a fast way to export the current animation and then have the game engine have a window in Blender itself where it can show the animation as it will work in the game itself. Also the ability to see how physics reacts with this and how the animation works on uneven terrain.
    • We also need the ability to specify more complete animation sequences in Blender and export them as complete scripts. These kinds of animations can be used for cut-scenes or predefined places in the game where a very specific type of animation is needed.

Then we talked a bit about physics. One thing that we decided is to try to avoid to use physics for things that affect game play. It would be better to use physics only for secondary visual effects like parts of the scenery animating. In cases we need physics for game play stuff (like some of the traps or puzzles) we have to consider to use of fake physics because that is usually easier to control and make behave like you want it to behave. On the other hand the Bullet physics plugin is mostly working and can be used already. We just have to extend it whenever the need arises.


The next subject was rendering, lighting (shadows), materials, and shaders. The new renderer is in a good shape right now and is progressing well. Using the new renderer it will be possible to create really great effects for the game. Frank Richter will be the member of the team responsible for working on shaders and more advanced rendering features (among other things). As one of the main authors on the new render manager he is the right person for the job. At this moment the new renderer is not yet completely ready but we estimate that we only need the full feature set of the new renderer about three months after starting the project. And even before that the team can most likely already use parts of it. Similar as with the animation system we will
also need an in-blender preview (possibly using an integrated Crystal Space window) of materials and shaders.

Given the theme of the game we will also need good looking trees and possibly a forest of trees. The easiest way to solve this would be to just use manually created trees (manually created in Blender by one of the artists) and also have manually created lower detail versions. At the lowest detail we could let Blender generate billboard clouds. Depending on the status of imposters in Crystal Space we could also try to use a more automatic approach where imposters would be generated at runtime by the engine. This is less work for the artist of course. Automatic generation of lower level of detail for the trees can also be considered.

Other things to do are features like fur and grass. At worst we can always fallback to using a regular texture for fur. But if we can find a nice and usable technique to make fur that actually looks good in real time then of course we’ll use that. Same for grass although using a texture only for grass that is nearby is not really a good option. In this case we will have to find some better technique. Perhaps instancing or something similar could be done.

To make the scenery really alive we probably also want to use various things like nice water (ponds), falling leaves, bugs that walk around, dust that appears at the feet of a moving actor, footprints, and stuff like that. Most of that can already be done with existing Crystal Space technology.

Given the philosophy of letting the artists make the game we need a good foundation on which the artists can actually do that. To that end we decided to use a mix of C++, python scripts, and CEL quests to handle the game logic. C++ would be used for parts of the game logic that require a lot of cpu intensive code. For example, AI could be one of those things. If C++ modules are generic enough they can of course also be put in the CEL or Crystal Space projects but if they are very game specific we’ll keep these C++ modules as part of Apricot. The python scripts would be used for most game logic and the CEL quests would be used by artists so that they can control and edit a lot of the game logic parts from within Blender
itself. To that end blender2crystal has very recently been extended with a very nice quest editor.

We also need sound effects and music of course. For the creation of the sounds we are going to depend on external contributors. We already got a
few offers here. The actual coding of the sound system will be done by the team itself and most likely it will involve some kind of property class in CEL to control when and how to play sound effects. One example of this could be the sound of footsteps. If the animation system sends out a callback every time the feet hit the ground then this callback can also be used by this new property class.

Most of the discussion above focused on improvements in Crystal Space and Crystal Entity Layer. But to improve the game creation pipeline we also will have to do a lot of improvements to Blender and blender2crystal. Here is a short list of improvements we already came up with during the workshop:

  • Extend the Blender Python API to make it easier for external tool writers (like blender2crystal) to access certain parts of Blender.
  • Especially around user interface the Blender API could be extended considerably. Currently there are lots of small problems in the blender2crystal user interface.
  • We need an easier way to interface Blender with an external game engine so that it would become easier and faster to program an engine specific preview. Not only for Crystal Space, but also for other game engines.
  • Billboard cloud generation would have to be improved.
  • We have to examine all the things we can do to help improve the animation tools available in Blender so that they are better suited for game animation. This also includes the ability to define, preview, and export full animation sequences for cut-scenes (for example).
  • With such a preview it would of course also be nice to be able to have that animation preview work in a semi-realistic environment so that the artist can really test his animation cycles (for example walking cycles) against a real environment (like walking on a sloped terrain for example).

So it was a very productive weekend and I’m really very excited about this new game project. It really will be a very ambitious project and I think the Open Source game development community will benefit a lot from it.

79 Responses

  1. guiliar on

    Hi, guys.

    Should you decide for the racing concept, I’d suggest to take a look at an old masterpiece called “Wacky wheels”. It was too a cartoon-like racer and one with hellish playability, most likely thanks to the ‘split-screen mode’.

    Good luck with your project anyway.

  2. d3j4 v00 on

    Another two cents.

    I perceive two main focuses to this project: to extend the backend, and to showcase the frontend. Making it easier to create future games, and drawing attention with quality entertainment.

    Because the Peach project seems to be more focused on the quality entertainment part, I hope that apricot will lean more towards developing tools.

    Reading through the post I became exited by the talk of easier extendability, and making game creation more accessible to the artist. I’ve had many game ideas rolling around my head for some time, but have been somewhat daunted by the idea of building from scratch, and disappointed by the small scope of tools like Klik and Play, or Blizzard’s map creators. I hope that something will come of this that walks somewhere in between. A set of tools I can play with for a couple weeks and be able to make a basic platformer with models and animations I already have. But also a high ceiling for innovating other game types from that.

    The platformer style game can create a -cough- platform to build other games from. I can picture simply changing the camera placement and controls to create a FPS or Racer within the same environment as the platform, if the physics engine can still make them work.

    And an AI to build off of would be totally hot.

  3. mike on

    I vote for the platformer/puzzle combo game type thing. I think it would be the most fun type of game you coud choose. also if you could add a few mini games to it somehow, that would be nice. Good Luck!

  4. mike on

    is there a way to make a texture that changes based on the angle? this could be used to make 3D looking grass with low processing power.

  5. Antonio from Mexico on

    Man, a Mario Kart type of game would be great, those games are always so much fun, instead of coloured boxes you could use the nuts to get the stuff you throw and you could also add some secret characters for when you’re done with all the circuits, etc.

    Keep on the good work guys.

  6. horace on

    i think people will work more with the material of this project than with orange or peach so the game type should encourage modifications. things like doing additional levels should be fun which probably is more the case with something like a platformer or a racing game and not so much with a puzzle game or with a mini game collection. what do you think?

  7. Rakunko on

    Great work on the planing I’am in the making of my own game using the blender game engine and a external (due to its limitnations lol open gl…). I love how simple yet complex the current game engine is, but i would love to to see the game in both direct x and open gl. Good luck with the game guys!!! Blender 4 life!!!

  8. Brendon on

    I like the idea of a platform game.
    their could be ‘bonus’ areas, like shoot the nut into hoop, quick race & solve the puzzle. Also this could be extended as some genre work would have foundations laid down. So the mini games could be extended & maybe evolve into games in their own right, if the framework is already there.
    Thinking like mario bros bonus levels, with ff7 style bonus games, simple yet fun. It would also show off many different capabilities of the BGE & CS.
    whatever you decide I’m sure it will be great. Best Regards. Brendon.

  9. Carlotta on

    A platform would be nice!!!!

  10. spaceseel on

    One suggestion that I should point out is that it may be a good idea if the engine is not genre specific. One of the many flaws of some game engines is that they sometimes tend to focus at a particular game genre. If you make the engine more flexible, it would leave room for making games of other genres as well. I would vote for a 3D level editor. It would offer more flexability to what you can do with it and you could edit entities and other elements a lot easier than it would be in a 2D game engine. I have compiled a list of pros/cons:

    – Would make it possible to make a game of a different genre (RPG. FPS, RTS, etc.).
    – It would benefit those who don’t want to make a game of your chosen genre.
    – Offers better flexibility
    – Wouldn’t worry about modifying the engine if the design changes on you.

    – Would take a bit longer to make than just making it specific to the chosen genre.

  11. jorrit on

    To spaceseel: a 3d level editor? It is a bit weird to do a 3d level editor project with Blender as a partner as the idea is to use Blender for level editing. Also we’re not developing a game engine. The game engine is already there (Crystal Space) and is already generic and flexible enough. We will have to make improvements to it of course.

  12. Danny Redfern on

    Having modded for a couple decades now and believe its end is near heh I can urge you to consider what is both not out there and of great interest to modders so please consider 1. keeping it third person and 2. giving it a melee based interaction with objects & mobs and 3. magic (beautiful particles lol)

  13. spaceseel on

    To jorrit: I thought that was a decision being made (guess I was wrong) to do that. And I guess I wasn’t clear enough to say now that I already know about the engine. What I should have said is the tools and all the components that would be developed with the engine to make the game. Dang…this is the second time that I’ve said something that I haven’t thought through before sending and ended up having to explain myself better. I’m sorry, this is the first open source group that I’ve really talked to (ever really). I was just making sure that the tools used to create the game itself should not be made to a spacific genre, so I could benefit from it with my own game project when the game gets released.

  14. jorrit on

    To spaceseel: No problem! And yes, we also think it is very important to make everything as generic as possible. We don’t want to make tools that only work for one type of game.

  15. epat on

    I’ve said it once, and I’ll say it again – Platformer! You don’t have to do mini-games, you can just create different game ‘modes’ like: ‘time-trial’, ‘collect all the nuts’, ‘beat hard-mode’, ‘find the hidden objects’, etc… That’s what makes platformers so fun! They’re flexible enough to make an entirely new game out of the same basic level with maybe some object placements moved around or the objects themselves changed slightly! Obviously, the things I’ve mentioned have been done before, but maybe the fun is in coming up with something that nobodies ever played before!

    With the game OSS, people can tweak it and add their own modes, which makes it good for modding, and also enables maybe some bright spark to actually create something that is entirely orignal like I just said, and the best bit is that they needn’t worry about making a whole load of levels from scratch to test out their prototypes or even at all. Some fiddling with objects slightly and a bit of tweaking could render the levels very playable and new twists on old levels are always fun to play!

    ~epat. 🙂

  16. conso on

    Please make it a 3D-plattformer. since there would be no other serious open source game in this genre. A Mario Kart like game would be in competition with supertuxkart, wich is already cuddly and heavily developed by a good (even though to small) team (we still look for artists!!). We are just working on implementing bullet physics, what will make the game feel much more natural in the future. We really hope, that with the next release (probably in february) some more artists and programmers will find their way to us, but if we would have to compete with the blender team…. sigh.
    A simple puzzler could get boring quickly and there are quite some puzzlers out.
    I would really like to see a semi-3d-platformer in a sonic-like environment.
    colorfull, fast pased, but not to hard. with a sideviewing semi-3d look you could possibly save some time on leveldesign and it would be easy to set up a leveleditor for further community work. The time you save could be filled with integrated multiplayer-features, good physics and an easy scripting framework to implement puzzles.

  17. horace on
    maybe some ideas from little big planet could be used but i am not sure if the bullet physics engine would be up to this task yet. 🙂

  18. conso on

    I guess, such a physics-orientated gameplay would raise up the system-requirements enormously. But I must admit, that would be great. A fusion of a sonic-like game with elements of little big planet… great 😉

  19. horace on

    are you the main programmer of supertuxkart? i just had a look into it. it’s nice!

    it shouldn’t be that hard to find artists if you post on the blenderartists forum. i would like to do some tracks too but in february i will have absolutely no time. maybe if you still need someone later. 🙂

  20. conso on

    No, I’m only one ot the two webadmins and try to help where I can.
    Anyone can commit patches or artwork over the mailinglist and if you contibuted some things, you can surely get part of the team when ever you want.

  21. yman on

    I’d really like to see a game that is based on a story first. I’d like it to be a platform game, where the story advances through interactions with other characters and challenges (quests and mini games). I’d like a vast, open world, with lot’s of places to explore, and bonuses to discover.

    it would be nice if the game is built as a “world”, with the ability to add “story-lines” to it. a story-line consists of characters, quests, and mini-games. in this way, the artists will only have to create the world and one story-line, but the game could be extended through new story-lines (or new worlds).

  22. yman on

    I think I got mixed up about what “platform” means, so scrap it and replace it with something like GTA or Lego Island.

  23. RH2 on

    1. Mario 64 puzzle,view,slightly cartoon feel
    mini objectives + shooting + vehicles + powerups.

    expandable forest, players can download service packs to expand map + new puzzle/objectives.<–(supports claim that game is open source)

    2.(a)online version of counter-strike based nut gathering?(for squirrels)
    (b)online RPG where you can level up your apricot character?

    (GO TEAM APRICOT!!!!!)

  24. on

    Yo creo que lo importante independientemente del tipo de juego que sea el que elijan; plataformas, de carreras o puzzles, lo mas importante de esto es demostrar que con estas herramientas es posible desarrolas juegos de CALIDAD comparables a los juegos comerciales, y dejar la posibilidad abierta para que la comunidad en general pueda hacer contibuciones en el futuro, modificaciones (MOD).

  25. Mike on

    I’m leaning towards the platformer-style game.

    However – It’d be neat to make an RTS-style game.

    Each of the 3 animals are different races. You could compete for territory or for nuts.
    The battlefield could be one of those beautiful trees.

    Either way, GO APRICOT!

  26. conso on

    does anyone remember lost wikings or animaniacs? Since there are 3 very different “heroes”, they could walk together through a 3d or semi3d platform-puzzler, each with different skills. The player could simply switch between them and solve puzzles this way. Multiplayer should be no problem then, either. short singleplayer-interception-levels could be orientated on the skills of a special char and work as minigames like a fast pased jump n run (with the fat chinchilla rolling down ramps), little fps elements with nutthrowing of the dumb ?squirrel? ^^ or brainteasing elements with the evil looking squirrel.

  27. francisco on

    trap/puzzle game It is much more interesting than a shooter(also there are a lot of them)
    better tan a racer there are some… but still I don’t like that idea so go for trap/puzzle
    ==> I like conso’s idea too.

  28. Phoenix221 on

    I saw the genre but i saw not Rpg and Fighting genres.

    but the idea is good

  29. Abigail Clark on

    I like the Mario Kart game because it is more challenging as you get to the next level.”;-