Hi! I'm Dirkson. I'm trying to make one of the most accurate space combat simulation games. Ever.

For some reason this includes a lot more space cows and butter than I thought it would.

So far it's got voxels, multiplayer, heat simulation, kilometer long spaceships, real world materials, organic ships, and awesome music. Eventually, it's going to have AI crew, inertia, planets, and more.

  • Want to build a granite mothership with dozens of fighters? You can do that.
  • A spinning battleship with a three meter thick titanium hull? Sure, that too.
  • A butter asteroid-tug than melts whenever you turn on the engines? Of course!

Youtube Twitter Twitter Twitter Steam Kickstarter Patreon

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media

Backend Work

News 0 comments

Hey all!

So image updates have been sparse since the last livestream. Why? I've been rearranging some of the ScrumbleShip backend. Let's dig into that a little.

Backend

Currently, the way rendering works is something like this:

    • One thread locates and Caches nearby blocks within your ship, storing its result inside the ship memory structure.
    • Another thread picks through your ships, locating and assembling blocks into a list. Then, it orders this list, and copies the Cache from its location in the ship memory structure to a temporary Voxel List. Once it's done with that, it goes through every other ship and does something similar.
    • The render thread uploads the entire Voxel List from system memory to gpu memory, every single frame, then renders it with a single opengl draw call.


There's a lot of weird behavior too, like backwards sharing of ordered ship-lists, which causes threads to wait for each other.

The biggest problem with this system is that it requires me to re-send ALL the voxel data EVERY frame. As the ScrumbleShip engine gets better at rendering voxels, I can both send more voxels to the gpu, and send more data about those voxels to the gpu. So I'm starting to use too much bandwidth between the computer's memory and its graphics card. For example, the extra data sent by the lighting change needlessly costs us around 10fps.

So reducing the number of sends is a high priority on my list. But as I was studying to fix the problem, I noticed several interesting facts about the current rendering pipeline, and I developed a plan to make it better. Here's an experiment I did to prove a particular point:

supposedtolooklikethat

This proved to me that I COULD render efficiently using multiple opengl draw calls, which opens up a lot of interesting optimizations.

So the new plan is:

    • One thread maintains lists of ships in distance orders and hands them out as-needed.
    • Another thread maintains lists of ship chunks in distance orders and hands them out as-needed.
    • Another thread uses these ordered chunk lists to create a list of visible blocks.
    • The caching thread goes through this list of visible blocks, preparing nearby blocks for rendering and storing the result in the ship chunk list.
    • The rendering thread goes through the list of nearby blocks, uploading their data to the gpu as they get close enough to render. Then it goes through the list of visible blocks, rendering them in batches using separate opengl
      draw calls.


What advantages does the newer pipeline have?

    • It'll render the nearest blocks, regardless of which ship they're in. No more weird block-unloading when two ships are close together
    • It'll operate smoother on multi-core machines, with less time wasted on waiting for other threads
    • It'll render very large ships and asteroids, up to 1km in diameter. The current system can't handle asteroids much bigger than 100m across.
    • It'll use less system memory to do the rendering.
    • I only need to upload/remove block data from the gpu when its render status changes, rather than every frame. Potentially 10-15fps boost.
  • It'll open the way for the following potential optimizations:
  • GPU-based Occlusion Culling, potentially a 2x-5x rendering performance boost.
  • Voxel-face rendering instead of entire-voxel rendering, for a potential 2x performance boost.
  • Distant ships can be rendered as billboards, for a solid performance boost.
  • Geometry-shader based dynamic voxel creation, with an unknown (1x-5x) performance boost.

Any disadvantages?

    • Rendering in multiple opengl calls costs anywhere from 2 to 10fps.
    • It causes Dirkson to work for a couple weeks on features that don't yet make good screenshots, videos, or bleeding edge releases.

At this point, I estimate I've got maybe another week left to switch to the new pipeline. Then I should start putting out cool videos like this one again:

I'm aiming for the next full release sometime in February. It'll contain the lighting changes, lots of performance improvements, the mining torch, a complete UI overhaul, and a building-system overhaul.

Cheers!
-Dirk

Asteroids

Asteroids

News 0 comments

Asteroids are awesome, contain valuable minerals, and will butter your toast for you.

ScrumbleShip 0.3 - Phoenix

ScrumbleShip 0.3 - Phoenix

News 8 comments

Just another dead game? No, not quite. ScrumbleShip releases its biggest update ever. Also the dev talks about feelings and stuff, but then gets right...

Shadows and Inventories

Shadows and Inventories

News 3 comments

This past week has included a few fun new additions for ScrumbleShip.

Shaders so sharp you'll cut yourself

Shaders so sharp you'll cut yourself

News 17 comments

We increased the number of polygons on screen by a factor of 10. Here's how.

ScrumbleShip Alpha Demo 0.23 - Windows

ScrumbleShip Alpha Demo 0.23 - Windows

Demo 1 comment

Alpha release 0.23 of the ScrumbleShip Demo, released for free on a Creative Commons License.

ScrumbleShip Alpha Demo 0.23 - Mac OSX

ScrumbleShip Alpha Demo 0.23 - Mac OSX

Demo 0 comments

Alpha release 0.23 of the ScrumbleShip Demo, released for free on a Creative Commons License.

ScrumbleShip Alpha Demo 0.23 - Linux

ScrumbleShip Alpha Demo 0.23 - Linux

Demo 0 comments

Alpha release 0.23 of the ScrumbleShip Demo, released for free on a Creative Commons License.

ScrumbleShip Alpha Demo 0.20 - Windows

ScrumbleShip Alpha Demo 0.20 - Windows

Demo 0 comments

Alpha release 0.20 of the ScrumbleShip Demo, released for free on a Creative Commons License.

ScrumbleShip Alpha Demo 0.20 - Mac OSX

ScrumbleShip Alpha Demo 0.20 - Mac OSX

Demo 0 comments

Alpha release 0.20 of the ScrumbleShip Demo, released for free on a Creative Commons License.

ScrumbleShip Alpha Demo 0.20 - Linux

ScrumbleShip Alpha Demo 0.20 - Linux

Demo 0 comments

Alpha release 0.20 of the ScrumbleShip Demo, released for free on a Creative Commons License.

Post comment Comments  (20 - 30 of 222)
BrandonZ201
BrandonZ201

To me, $12 seems a lot for it not be a full version. $5 would be a good price and are you going to add a system where you will be able to buy gifts codes? Thanks

Reply Good karma Bad karma-1 votes
Insolent.
Insolent.

$12 is the Full version. You get access to every alpha release, which tend to come out once every month to three months. The $18 version is the Deluxe version, which includes access to bleeding edge releases that come out every week or more often. Those have the newest features not yet available to Full owners. For instance, right now people with Deluxe can try out the basic multiplayer that has been added, and build ships together. Deluxe also includes the awesome soundtrack by Poisoncut.

I think $12 is quite reasonable for the full version, and $18 is reasonable for instant access to all the new features and the soundtrack.

Reply Good karma Bad karma+3 votes
BrandonZ201
BrandonZ201

Thanks for the information! You managed to encourage me to buy the game! THANKS ALOT!

Reply Good karma Bad karma+4 votes
dirkson Creator
dirkson

Thank you - I really do appreciate the support!

-Dirk

Reply Good karma+2 votes
Insolent.
Insolent.

You're quite welcome! Glad to hear it. As for your question about gifting, I'm pretty sure it is possible, but I don't remember exactly how. If you pop onto the forums or the IRC chat client on the website, you can ask and Dirkson will tell you.

Reply Good karma Bad karma+1 vote
Isimiel Online
Isimiel

this kid complaining about 12 bucks

Reply Good karma Bad karma0 votes
HELLO_THERE_BOB
HELLO_THERE_BOB

Not everyone can throwaway money without doing research

Reply Good karma Bad karma+1 vote
BrandonZ201
BrandonZ201

Sorry, i am just giving a suggestion that's all.

Reply Good karma Bad karma+1 vote
fyat66
fyat66

I would absolutely love to get this game, the only problem i have is that i can not use Paypal, it doesn't work with my card

Reply Good karma Bad karma+1 vote
GrandMoffbob
GrandMoffbob

info: Error System Initialized
info: Version 0.20.0 Demo
WARN: Unable to load options file
info: Got compatibility mode
*ERR: We weren't able to grab full opengl access. We're probably going to crash and burn now.
>wut?!

Reply Good karma Bad karma+2 votes
dirkson Creator
dirkson

Heyo!

Usually that error message is caused by having a graphics card with pre-2008 opengl. About the only things that do that these days are older intel gpus and Mac OSX below 10.7. Do you happen to know what graphics card you have?

Cheers,
-Dirk

Reply Good karma+1 vote
cmgran6
cmgran6

I get this error how do i fix it?

info: Error System Initialized
info: Version 0.20.0 Demo
WARN: Unable to load options file
info: Got compatibility mode
*ERR: We weren't able to grab full opengl access. We're probably going to crash and burn now.

Reply Good karma Bad karma+2 votes
cmgran6
cmgran6

What are the video card specifications i need for this to run?

Reply Good karma Bad karma+2 votes
dirkson Creator
dirkson

Any video card that does Opengl 3.1+ should be able to play the card. This includes all Nvidia and AMD cards released in the past 5 years, and all intel chips released in the last year or so. (Intel was pretty slow to jump on the modern graphics bandwagon!)

The error message in your other comment is usually indicative of not getting opengl 3.x. What sort of graphics card do you have?

Cheers,
-Dirk

Reply Good karma+2 votes
cmgran6
cmgran6

Should make the colors and blocks more "solid" looking like minecraft not pure of one color more shades on each and that kind of thing.

Reply Good karma Bad karma+2 votes
mechwarrior24
mechwarrior24

Nah, ScrumbleShip has its own style that I've grown quite fond of. In fact, I'm quite proud of Dirkson in that he hasn't simply gone for the "minecraft in space" thing everybody else has jumped at. :)

Reply Good karma Bad karma+2 votes
Post a comment

You are not logged in, your comment will be anonymous unless you join the community. Or sign in with your social account:

Icon
ScrumbleShip
Platforms
Windows, Mac, Linux
Developer & Publisher
Orangehat Tech
Engine
Custom
Contact
Send Message
Homepage
Scrumbleship.com
Release date
Game watch
Start tracking
Share
Community Rating

Average

9.2

57 votes submitted.

You Say

-

Ratings closed.

Highest Rated (4 agree) 10/10

The parts of this game that are already in place are awesomely fun, and once the rest of it is in place, there will be nothing like it anywhere. 10/10 for concept and fun.

Apr 5 2012 by dubyrunning

Style
Theme
Sci-Fi
Project
Indie
Boxart
Boxart
Embed Buttons
Link to ScrumbleShip by selecting a button and using the embed code provided more...
ScrumbleShip
Statistics
Last Update
Watchers
498 members
Downloads
27
Articles
36
Reviews
17