Let there be multithreading

It’s been a fascinating odyssey/nightmare, but the Vessel engine is finally multi-threaded! What does this mean? Much larger volumes of fluid, much larger fluid creatures, and generally just a lot more splashing about.

Martin had already done his share with rendering being multithreaded ages ago, but it wasn’t until after the IGF/IGC builds that I decided to bite the bullet and pull apart the physics and gameplay code into separate threads. This caused a seemingly never-ending stream of issues because the gameplay and the physics are so tightly coupled in Vessel, but luckily they proved to be a finite number and it’s working well now. We’ve got three threads running pretty solidly, and the stage is set to easily break the physics thread up into even smaller individual jobs which can then be scheduled from a thread pool (which will really speed things up when we make our way to PS3/XBox and have a lot more hardware threads to play with).

This was something I wanted to get out of the way ASAP because it will have such a dramatic effect on the design of the game – the design of the Fluros, the types of puzzles we create, etc. It also represents a direction we want to push the game in generally – more about interactions with the simulations on a grand scale.

So just for fun I dropped a tsunami in the workshop level:

This entry was posted on Thursday, February 25th, 2010 at 5:14 pm and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

8 Responses to “Let there be multithreading”

  1. Marco
    10:31 am on February 26th, 2010

    Wow, I am excited for this game; please announce a release date and price as soon as you can!

  2. Kika
    12:56 pm on March 3rd, 2010

    I agree with Macro.

    I heard about you guys becoming a finalist for the indie game challenge and have been interested in your game for a long time.

    It all looks epic and I can’t wait to play.

    I’ll be waiting!

  3. Tegzyer
    2:19 pm on March 6th, 2010

    I’d like to see the largest possible liquid creature you can make.

  4. John K
    7:21 pm on March 7th, 2010

    Tegzyer- We’ll definitely put that in. Testing some large ones now and its pretty cool, especially when you mix fluid reactions in there.
    Thanks Kika and Marco!

  5. Lee R
    12:46 pm on March 10th, 2010

    Sounds like you guys have created some advance tech. Is the liquid
    simulation done using SPH, by any chance?

  6. Figfewdisgewd
    4:04 pm on March 12th, 2010

    I will have to look up more info on this but I am just really have to know. Could we expect any kind of multiplayer? Maybe something like a 2nd player controlling a fluid creature or another person? Sorry if you already answered this.

  7. John K
    9:42 pm on March 14th, 2010

    Hi Lee, thanks, yep it is SPH as a matter of fact, for the core algorithm. We’re doing some other tricks on top of that for the fluid characters.

    I would love to do multiplayer with this tech. We’ll see if it’s in the cards. I went to a talk on ‘networked physics’ at GDC and my head is full of ideas now…

  8. LemonScented
    4:38 pm on March 18th, 2010

    Hi guys, great looking work. I’m working on a game based around SPH as well, so I’m curious to see how Vessel develops. If you don’t mind me asking – how’s the performance at the moment? How many particles can you throw around, at what framerate, and on what hardware?