The Spark Engine

HughHugh CameramanSan Francisco, CA Join Date: 2010-04-18 Member: 71444NS2 Developer, NS2 Playtester, Reinforced - Silver, Reinforced - Onos, WC 2013 - Shadow, Subnautica Developer, Pistachionauts
<div class="IPBDescription">What makes it tick?</div>Hi everyone!

In the future, I want to do a video that informs people about the technical aspects of the Spark engine. The problem is I'm no expert on engines or programming in general! Right now the only thing I think I know is that it (quite uniquely?) only uses dynamic lighting.

So I was hoping that you, yes you reading this post, could tell me what you've heard/what you know about Spark in its current build.

What makes it different to other engines, like Source, UT3, Frostbite, the original goldsource, etc etc?

What are some unique aspects of it? Common aspects? Quirks?

Any help would be much appreciated!
«1

Comments

  • DelphicDelphic Join Date: 2006-11-02 Member: 58262Members
    No pre-computation, changes to assets visible on the fly, just save the file (make sure the builder is running) tab back to the game and it's changed! This is awesome for iterative development. That's what makes the engine exciting for me!
  • ObraxisObraxis Subnautica Animator & Generalist, NS2 Person Join Date: 2004-07-24 Member: 30071Super Administrators, Forum Admins, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Silver, WC 2013 - Supporter, Subnautica Developer, Pistachionauts
    Common aspects:

    Normal Mapping
    Occlusion Culling
    Post-Processing


    Some engines that are 'next gen' still do not have Dynamic Lighting and have to have their maps pre-compiled for lighting info.

    Engine currently lacks (as of build 151):

    Motion Blur
    Anti-Aliasing
    Stereoscopic Mode (3D Vision)
    Proper Multi-GPU support.
  • w0dk4w0dk4 Join Date: 2008-04-22 Member: 64129Members, Constellation, Reinforced - Shadow
    edited October 2010
    The Spark engine is one of the few FPS engines that uses a deferred rendering approach IIRC (making it possible to have so many dynamic lights without a severe performance hit).
  • WhiteZeroWhiteZero That Guy Join Date: 2004-06-24 Member: 29511Members, Constellation
    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->The Spark Engine, What makes it tick?<!--QuoteEnd--></div><!--QuoteEEnd-->
    I'mma go with clocks!
  • pSyk0mAnpSyk0mAn Nerdish by Nature Germany Join Date: 2003-08-07 Member: 19166Members, NS2 Playtester, Squad Five Silver, NS2 Community Developer
    <!--quoteo(post=1802320:date=Oct 22 2010, 04:02 PM:name=WhiteZero)--><div class='quotetop'>QUOTE (WhiteZero @ Oct 22 2010, 04:02 PM) <a href="index.php?act=findpost&pid=1802320"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I'mma go with clocks!<!--QuoteEnd--></div><!--QuoteEEnd-->
    Nanites
  • WhiteZeroWhiteZero That Guy Join Date: 2004-06-24 Member: 29511Members, Constellation
    <!--quoteo(post=1802327:date=Oct 22 2010, 11:03 AM:name=pSyk0mAn)--><div class='quotetop'>QUOTE (pSyk0mAn @ Oct 22 2010, 11:03 AM) <a href="index.php?act=findpost&pid=1802327"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Nanites<!--QuoteEnd--></div><!--QuoteEEnd-->
    nano-clocks?
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited October 2010
    <!--quoteo(post=1802329:date=Oct 22 2010, 05:29 PM:name=WhiteZero)--><div class='quotetop'>QUOTE (WhiteZero @ Oct 22 2010, 05:29 PM) <a href="index.php?act=findpost&pid=1802329"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->nano-clocks?<!--QuoteEnd--></div><!--QuoteEEnd-->
    nano-time



    the on the fly loading and stuff fis cool. An editor that is realtime/what you see is what you get (well not entirely true, but it is all still in early development)
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    edited October 2010
    the biggest "thing" i can remember so far is:
    real-time occlusion culling (don't think anyone else has implemented this..!)
    <a href="http://www.unknownworlds.com/ns2/news/2009/03/occlusion_culling" target="_blank">http://www.unknownworlds.com/ns2/news/2009...clusion_culling</a>
    <a href="http://www.unknownworlds.com/ns2/news/2010/3/friday_update_level_processing" target="_blank">http://www.unknownworlds.com/ns2/news/2010...evel_processing</a>

    this also looks to be playing with the top dogs
    <a href="http://www.unknownworlds.com/ns2/news/2009/10/anatomy_of_a_scene" target="_blank">http://www.unknownworlds.com/ns2/news/2009...tomy_of_a_scene</a>
    edit: imagine this together with tessellation and displacement mapping *droool*
    which would also create publicity by putting NS2 on the DX11 games-list, among the 20 (or so) games already there
    <a href="http://en.wikipedia.org/wiki/List_of_games_with_DirectX_11_support" target="_blank">http://en.wikipedia.org/wiki/List_of_games...ectX_11_support</a>


    then there's the whole LUA part, where the whole game-part of the "ns2 package" is virtually separate from the engine-part, think only a handful other games have done this


    haven't you read the blog?
    or are you looking for some new info from the devs?
  • RuntehRunteh Join Date: 2010-06-26 Member: 72163Members, Reinforced - Shadow
    Occlusion culling sounds awesome!

    Also that multi-processor support is not in either (I am guessing it will go in later?) is very interesting, because I have a core2 duo laptop, that will surely mean a big improvement!
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    <!--quoteo(post=1802339:date=Oct 22 2010, 08:53 PM:name=Runteh)--><div class='quotetop'>QUOTE (Runteh @ Oct 22 2010, 08:53 PM) <a href="index.php?act=findpost&pid=1802339"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Occlusion culling sounds awesome!

    Also that multi-processor support is not in either (I am guessing it will go in later?) is very interesting, because I have a core2 duo laptop, that will surely mean a big improvement!<!--QuoteEnd--></div><!--QuoteEEnd-->
    multi-PROCESSOR or multi-CORE ? (i actually don't know if the OS makes this transparent to the application or not...)
    i believe multicore support is already in, since it uses both my cores to 80-95%
    can someone with 3-6 cores log their CPU-usage?
  • RuntehRunteh Join Date: 2010-06-26 Member: 72163Members, Reinforced - Shadow
    Ah, I thought he meant multi-core. Good point... Can anyone confirm which?
  • WhiteZeroWhiteZero That Guy Join Date: 2004-06-24 Member: 29511Members, Constellation
    <!--quoteo(post=1802340:date=Oct 22 2010, 02:00 PM:name=weezl)--><div class='quotetop'>QUOTE (weezl @ Oct 22 2010, 02:00 PM) <a href="index.php?act=findpost&pid=1802340"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->multi-PROCESSOR or multi-CORE ? (i actually don't know if the OS makes this transparent to the application or not...)
    i believe multicore support is already in, since it uses both my cores to 80-95%
    can someone with 3-6 cores log their CPU-usage?<!--QuoteEnd--></div><!--QuoteEEnd-->
    Basically the same thing as far as applications are concerned. Windows/BIOS is the one that needs to worry about making multiple physically processors work together properly.
    That application just needs to worry about making multiple threads for those processors to utilize.

    Really, we should just say multi-threaded instead.
  • Iced_EagleIced_Eagle Borg Engineer Join Date: 2003-03-02 Member: 14218Members
    Not to rain on everyone's parade on how cool occlusion culling is, but it's been a core part of most 3D game engines since the 90's :P
  • CruorCruor Join Date: 2004-11-07 Member: 32677Members
    Even if it isn't entirely tied into the workings of the spark engine itself, I'd say the Editor emulating Google's SketchUp in terms of how geometry is created is pretty unique. Certainly is a quick way to create your map when you're used to it. Easy to create complicated structures as opposed to using brushes or entirely relying on static models like most other editors and engines do.

    Also as has been mentioned, the fact that the actual game play that is NS2 is coded entirely in LUA is rather rare. I mean even tho I have some slight suspicions that it will serve to splinter the community given how easily NS2 will be possible to mod. I also realize the potential of NS2 being a source for 100 games in 1. I mean just look at what the thousands of average Joe's have managed to do with G-mod during the years it's been out.

    I for one can't wait for NS2-Wiremod :D
  • juicejuice Join Date: 2003-01-28 Member: 12886Members, Constellation
    edited October 2010
    <!--quoteo(post=1802362:date=Oct 22 2010, 03:28 PM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 22 2010, 03:28 PM) <a href="index.php?act=findpost&pid=1802362"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Not to rain on everyone's parade on how cool occlusion culling is, but it's been a core part of most 3D game engines since the 90's :P<!--QuoteEnd--></div><!--QuoteEEnd-->

    Dude, Spark has <b>dynamic</b> occlusion culling! <a href="http://www.unknownworlds.com/ns2/2009/3/occlusion_culling" target="_blank">Real-time occlusion culling.</a>

    Which, btw, makes it ideal for a minecraft mod.
  • SN.WolfSN.Wolf Join Date: 2010-03-29 Member: 71115Members
    <!--quoteo(post=1802303:date=Oct 22 2010, 02:55 AM:name=Delphic)--><div class='quotetop'>QUOTE (Delphic @ Oct 22 2010, 02:55 AM) <a href="index.php?act=findpost&pid=1802303"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->No pre-computation, changes to assets visible on the fly, just save the file (make sure the builder is running) tab back to the game and it's changed! This is awesome for iterative development. That's what makes the engine exciting for me!<!--QuoteEnd--></div><!--QuoteEEnd-->
    I want to change assets on the fly!!, it would save so much time. Unfortunately i can's run the game and editor at the same time or my CPU may reach out and slap me. Actually my ram maxes out and i freeze. Maybe i need to visit new egg soon ehh?
  • ScytheScythe Join Date: 2002-01-25 Member: 46NS1 Playtester, Forum Moderators, Constellation, Reinforced - Silver
    <!--quoteo(post=1802362:date=Oct 23 2010, 06:28 AM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 23 2010, 06:28 AM) <a href="index.php?act=findpost&pid=1802362"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Not to rain on everyone's parade on how cool occlusion culling is, but it's been a core part of most 3D game engines since the 90's :P<!--QuoteEnd--></div><!--QuoteEEnd-->

    From memory it all used pre-compiled visboxes though, which tended to require a fair amount of massaging in certain cases to avoid bits of the map that didn't murder your computer.

    --Scythe--
  • marksmarks Join Date: 2008-07-28 Member: 64720Members
    The fact that there are actual <b>real</b> development tools like Builder in the SDK is pretty much a first. You can be guaraunteed that Valve and Epic use in-house equivalents to Builder, but are they in the Source SDK or UDK? Not a chance.
  • HughHugh Cameraman San Francisco, CA Join Date: 2010-04-18 Member: 71444NS2 Developer, NS2 Playtester, Reinforced - Silver, Reinforced - Onos, WC 2013 - Shadow, Subnautica Developer, Pistachionauts
    Thanks for all your input guys, I'm learning heaps.

    So (at risk of sounding like a tard) I assume that the dynamic occlusion culling in Spark is similar to Frostbite and Cry2 engines, and can be contrasted with Source (which requires the Vis tool). Does anyone know how UT3 occlusion works?

    Common themes seem to be a lack of pre-compiling (map geometry, no static lighting etc) and excellent tools.
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    <!--quoteo(post=1802362:date=Oct 22 2010, 10:28 PM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 22 2010, 10:28 PM) <a href="index.php?act=findpost&pid=1802362"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Not to rain on everyone's parade on how cool occlusion culling is, but it's been a core part of most 3D game engines since the 90's :P<!--QuoteEnd--></div><!--QuoteEEnd--> not to rain on your parade, not raining on everyone's parades, but it's been common knowledge even since the 90's to actually know what you're talking about before speaking :P



    <!--quoteo(post=1802453:date=Oct 23 2010, 09:16 AM:name=NS2HD)--><div class='quotetop'>QUOTE (NS2HD @ Oct 23 2010, 09:16 AM) <a href="index.php?act=findpost&pid=1802453"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I assume that the dynamic occlusion culling in Spark is similar to Frostbite and Cry2 engines<!--QuoteEnd--></div><!--QuoteEEnd-->
    link to this info plz?
  • HughHugh Cameraman San Francisco, CA Join Date: 2010-04-18 Member: 71444NS2 Developer, NS2 Playtester, Reinforced - Silver, Reinforced - Onos, WC 2013 - Shadow, Subnautica Developer, Pistachionauts
    <!--quoteo(post=1802457:date=Oct 23 2010, 08:45 PM:name=weezl)--><div class='quotetop'>QUOTE (weezl @ Oct 23 2010, 08:45 PM) <a href="index.php?act=findpost&pid=1802457"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->link to this info plz?<!--QuoteEnd--></div><!--QuoteEEnd-->

    lol no I meant that as a question. I am assuming... Because I do not know. I 'assume' that these engines would not have pre-generated VIS style occlusion because of the destructible nature of the environments, thus I can draw a loose link between them and Spark when I make the video. But I of course I could be dead wrong!
  • JirikiJiriki retired ns1 player Join Date: 2003-01-04 Member: 11780Members, NS1 Playtester, Squad Five Silver
    Man I'd love to see multi-GPU support <3.
  • marksmarks Join Date: 2008-07-28 Member: 64720Members
    <!--quoteo(post=1802453:date=Oct 23 2010, 08:16 AM:name=NS2HD)--><div class='quotetop'>QUOTE (NS2HD @ Oct 23 2010, 08:16 AM) <a href="index.php?act=findpost&pid=1802453"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Does anyone know how UT3 occlusion works?<!--QuoteEnd--></div><!--QuoteEEnd-->

    Pre-compiled.
  • FredDurschtFredDurscht Join Date: 2009-12-18 Member: 69704Members
    edited October 2010
    dynamic occlusion culling isnt that unique..even the free engine xreal (<a href="http://xreal-project.net/?page_id=35" target="_blank">http://xreal-project.net/?page_id=35</a>) supports it!
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    in the level processing video UWE mentioned "coherent hierarchical culling", googling this gives no gamenames
    but searching wikipedia gives the HPL engine 2
    <a href="http://en.wikipedia.org/wiki/HPL_Engine#HPL_Engine_2" target="_blank">http://en.wikipedia.org/wiki/HPL_Engine#HPL_Engine_2</a>

    dunno the exact realtion between RT-OC and CHC.
    CHC seems to be a part of UWE's implementation.

    (interesting that both are indie devs....)
  • SewlekSewlek The programmer previously known as Schimmel Join Date: 2003-05-13 Member: 16247Members, NS2 Developer, NS2 Playtester, Squad Five Gold, Subnautica Developer
    i guess most of the people arent interested in occlusion culling and what it is, if you make a video describing the engine you should show lightning effects
    and other visible stuff.

    but it depends on which people you want to see it
  • Iced_EagleIced_Eagle Borg Engineer Join Date: 2003-03-02 Member: 14218Members
    edited October 2010
    <!--quoteo(post=1802441:date=Oct 22 2010, 11:15 PM:name=Scythe)--><div class='quotetop'>QUOTE (Scythe @ Oct 22 2010, 11:15 PM) <a href="index.php?act=findpost&pid=1802441"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->From memory it all used pre-compiled visboxes though, which tended to require a fair amount of massaging in certain cases to avoid bits of the map that didn't murder your computer.

    --Scythe--<!--QuoteEnd--></div><!--QuoteEEnd-->

    Every engine does something different. Some use pre-computation which means you have a lower run-time cost. Spark does theirs dynamically, which will allow them to have much more dynamic scenes, and possibly better results, at the cost of a higher run time cost.

    *Edit* Also, I guess I'll add that yes, perhaps using the CHC++ algorithm is unique to UWE's implementation as it's relatively new (roughly 2 years old). However, other engines implement other algorithms, which work best for them in their specific cases.
  • HughHugh Cameraman San Francisco, CA Join Date: 2010-04-18 Member: 71444NS2 Developer, NS2 Playtester, Reinforced - Silver, Reinforced - Onos, WC 2013 - Shadow, Subnautica Developer, Pistachionauts
    Thanks again for all this great info guys.

    One of the things I am most interested in is the lighting. Specifically, that there is only dynamic lighting in Spark. Does anyone know of any other engines that do this? I assume that Cryengine 2 does... Any others? I'd be very interested to know if there are any other corridor-bound games running on dynamic-only lighting.

    Does anyone know what kind of performance hit an engine takes when it opts for only dynamic lights? Has it become less of an issue with modern GPUs, or remained the same?
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    i'm pretty sure doom3 was the first game with ONLY dynamic lighting
    and 99% sure it was the first with dynamic lighting

    but yea, pretty much any advanced title since then has dynamic lighting afaik...
  • HughHugh Cameraman San Francisco, CA Join Date: 2010-04-18 Member: 71444NS2 Developer, NS2 Playtester, Reinforced - Silver, Reinforced - Onos, WC 2013 - Shadow, Subnautica Developer, Pistachionauts
    Thanks Weezl, but I mean <b>only</b> dynamic lighting. That's interesting, I would have thought Doom 3 would have had at least some pre-compiled static lighting...
Sign In or Register to comment.