The Spark Engine

2»

Comments

  • SgtBarlowSgtBarlow Level Designer Join Date: 2003-11-13 Member: 22749Members, NS2 Developer
    <a href="http://www.ehow.com/list_6798953_dynamic-lighting-games.html" target="_blank">http://www.ehow.com/list_6798953_dynamic-lighting-games.html</a>
  • culpritculprit Join Date: 2005-01-07 Member: 33527Members, Constellation
    <a href="http://en.wikipedia.org/wiki/Severance:_Blade_of_Darkness" target="_blank">http://en.wikipedia.org/wiki/Severance:_Blade_of_Darkness</a>

    This game released in 2001 was pretty amazing at the time. It used real-time lighting/shadowing, reflections with ripples and real-time physics on objects/weapons. I really haven't played an action/RPG nearly as fun since.

    As for describing Spark, I guess I think of it as something like Doom3 meets Garry's Mod. Spark uses some newer techniques, but there hasn't been too much engine development since real-time per pixel lighting and shaders came into common use. Higher fidelity interactive physics and tessellation are some of the newer engine techs. Global illumination is the latest lighting effect buzzword.

    It's pretty good that gfx engine tech has plateaued because it means Spark can be really pretty competitive with some very popular/accepted engines.
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    i think the dev team should come in here at this point and clear everything up...
  • juicejuice Join Date: 2003-01-28 Member: 12886Members, Constellation
    <!--quoteo(post=1802655:date=Oct 25 2010, 11:28 AM:name=culprit)--><div class='quotetop'>QUOTE (culprit @ Oct 25 2010, 11:28 AM) <a href="index.php?act=findpost&pid=1802655"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><a href="http://en.wikipedia.org/wiki/Severance:_Blade_of_Darkness" target="_blank">http://en.wikipedia.org/wiki/Severance:_Blade_of_Darkness</a>

    This game released in 2001 was pretty amazing at the time. It used real-time lighting/shadowing, reflections with ripples and real-time physics on objects/weapons. I really haven't played an action/RPG nearly as fun since.

    As for describing Spark, I guess I think of it as something like Doom3 meets Garry's Mod. Spark uses some newer techniques, but there hasn't been too much engine development since real-time per pixel lighting and shaders came into common use. Higher fidelity interactive physics and tessellation are some of the newer engine techs. Global illumination is the latest lighting effect buzzword.

    It's pretty good that gfx engine tech has plateaued because it means Spark can be really pretty competitive with some very popular/accepted engines.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Cool, I just played through the first level. At one point my shadow actually scared me! Don't know that I'll be playing through the rest though, M&B has it beat in fight mechanics, and it's just plain dated.
  • duxdux Tea Lady Join Date: 2003-12-14 Member: 24371Members, NS2 Developer
    Severance was a fantastic game for its day. Blew my computer and voodoo 3 card out of the water, though.
  • culpritculprit Join Date: 2005-01-07 Member: 33527Members, Constellation
    Yeah! Other people played Severance! I remember first playing it on a 500mhz P3 with a TNT2 Ultra 32MB gfx card. Choppy frames made it even more challenging to play. Hard to believe it's almost been 10 years.

    If M&B is at all similar in gameplay, I'll definitely have to give that a try.

    Can't wait to see some realtime physics in Spark!
  • ThaldarinThaldarin Alonzi&#33; Join Date: 2003-07-15 Member: 18173Members, Constellation
    <!--quoteo(post=1802634:date=Oct 25 2010, 10:23 AM:name=NS2HD)--><div class='quotetop'>QUOTE (NS2HD @ Oct 25 2010, 10:23 AM) <a href="index.php?act=findpost&pid=1802634"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->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?<!--QuoteEnd--></div><!--QuoteEEnd-->

    Might be worth checking out the limited amount of information on iD's new rage engine.
  • WheeeeWheeee Join Date: 2003-02-18 Member: 13713Members, Reinforced - Shadow
    what makes it tick? sunshine and rainbows.
  • Iced_EagleIced_Eagle Borg Engineer Join Date: 2003-03-02 Member: 14218Members
    edited October 2010
    <!--quoteo(post=1802457:date=Oct 23 2010, 04:45 AM:name=weezl)--><div class='quotetop'>QUOTE (weezl @ Oct 23 2010, 04:45 AM) <a href="index.php?act=findpost&pid=1802457"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->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




    link to this info plz?<!--QuoteEnd--></div><!--QuoteEEnd-->

    Erm, I do know what I'm talking about. I've been a games programmer for about 5 years (still fairly fresh), and I just got a job at Microsoft working on the halo franchise (not sure if you've heard of it. it's sort of a big deal.)

    I've written entire 3D pipelines, even to the point where I'm doing actual rasterization of the triangles (just for funsies of course), and obviously within that pipeline was occlusion culling. So I know all about it. :P
  • Invader_ScootInvader_Scoot Join Date: 2003-10-13 Member: 21669Members, Constellation, Reinforced - Shadow
    <!--quoteo(post=1802868:date=Oct 26 2010, 01:53 PM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 26 2010, 01:53 PM) <a href="index.php?act=findpost&pid=1802868"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Erm, I do know what I'm talking about. I've been a games programmer for about 5 years (still fairly fresh), and I just got a job at Microsoft working on the halo franchise (not sure if you've heard of it. it's sort of a big deal.)

    I've written entire 3D pipelines, even to the point where I'm doing actual rasterization of the triangles (just for funsies of course), and obviously within that pipeline was occlusion culling. So I know all about it. :P<!--QuoteEnd--></div><!--QuoteEEnd-->

    Tips for those trying to follow in your steed? I'm guessing "get the hell away from Java" is a given.
  • cmc5788cmc5788 Join Date: 2009-10-06 Member: 68959Members
    <!--quoteo(post=1802932:date=Oct 26 2010, 08:24 PM:name=Invader_Scoot)--><div class='quotetop'>QUOTE (Invader_Scoot @ Oct 26 2010, 08:24 PM) <a href="index.php?act=findpost&pid=1802932"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Tips for those trying to follow in your steed? I'm guessing "get the hell away from Java" is a given.<!--QuoteEnd--></div><!--QuoteEEnd-->

    Learn C/C++. Know vector math. Start reading tutorials and programming (OpenGL or DirectX -- doesn't really matter, when it comes to fundamentals they're doing the same thing, it's just a matter of syntax). Continue doing this for years.
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    <!--quoteo(post=1802932:date=Oct 26 2010, 09:24 PM:name=Invader_Scoot)--><div class='quotetop'>QUOTE (Invader_Scoot @ Oct 26 2010, 09:24 PM) <a href="index.php?act=findpost&pid=1802932"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Tips for those trying to follow in your steed? I'm guessing "get the hell away from Java" is a given.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I don't know if I'd go that far. A great example of what I'm talking about is <a href="http://jmonkeyengine.org/" target="_blank">JME (Java Monkey Engine)</a>. Granted it isn't as technically capable engine as Spark, but it's pretty damned impressive considering it's Java.

    No, I'm not trying to open the door for the whole "Java vs C++" debate. There are enough circular arguments on these forums already.
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    <!--quoteo(post=1802868:date=Oct 26 2010, 10:53 PM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 26 2010, 10:53 PM) <a href="index.php?act=findpost&pid=1802868"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Erm, I do know what I'm talking about. I've been a games programmer for about 5 years (still fairly fresh), and I just got a job at Microsoft working on the halo franchise (not sure if you've heard of it. it's sort of a big deal.)

    I've written entire 3D pipelines, even to the point where I'm doing actual rasterization of the triangles (just for funsies of course), and obviously within that pipeline was occlusion culling. So I know all about it. :P<!--QuoteEnd--></div><!--QuoteEEnd-->
    halo? that dumbed down console fanboy ######? with the wacky oompa-loompas wackily running around making wacky childish sounds?
    it's like you're trying to impress a woman by bragging about how awesome and big your moms basement is - it only works on other console basementeers.

    now that that's cleared out, with all that graphics knowledge you still made a half-assed comment, and later seemingly corrected for it:

    <!--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-->

    <!--quoteo(post=1802515:date=Oct 24 2010, 03:24 AM:name=Iced_Eagle)--><div class='quotetop'>QUOTE (Iced_Eagle @ Oct 24 2010, 03:24 AM) <a href="index.php?act=findpost&pid=1802515"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->*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.<!--QuoteEnd--></div><!--QuoteEEnd-->

    so i'm really questioning whether you actually work on a big title...
    my respect if you do! but plz learn manners
  • 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
    Weezl please keep the this thread cordial. I didn't start it to see it degenerate into you calling people's contributions half-assed. I'm learning alot here that I hope to pass on to NS2 fans in an entertaining way.

    And Halo may be console, but someone could post here with experience from Modern Warfare, and I would still be interested in their knowledge of engines.

    Question for all: Does Spark handle textures or shaders in any relatively unique way? Or are they handled in a similar fashion to many mainstream engines?
  • 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
    NS2HD: You'd best email or ask Max directly for some of the more technical questions. We only know what has been posted on the forums/website and I think we're near the end of that knowledge. :)
  • Iced_EagleIced_Eagle Borg Engineer Join Date: 2003-03-02 Member: 14218Members
    edited October 2010
    <!--quoteo(post=1803020:date=Oct 27 2010, 02:47 AM:name=weezl)--><div class='quotetop'>QUOTE (weezl @ Oct 27 2010, 02:47 AM) <a href="index.php?act=findpost&pid=1803020"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->halo? that dumbed down console fanboy ######? with the wacky oompa-loompas wackily running around making wacky childish sounds?
    it's like you're trying to impress a woman by bragging about how awesome and big your moms basement is - it only works on other console basementeers.

    now that that's cleared out, with all that graphics knowledge you still made a half-assed comment, and later seemingly corrected for it:





    so i'm really questioning whether you actually work on a big title...
    my respect if you do! but plz learn manners<!--QuoteEnd--></div><!--QuoteEEnd-->

    You completely misunderstood my point, and I didn't correct myself. Both points still stand and talk about two sides of the same coin.

    Occlusion culling has been used since the 90's like I originally stated. However, there are tons of different algorithms and ways to do that. I was merely mentioning the fact that the <b>specific</b> CHC++ algorithm that UWE utilizes is the only engine that I know of that has used it (however, with a quick google search, it seems others are picking up on it). Is it a big talking point? Not really, except for the fact you can say it's a bit more efficient than previously used methods. The algorithm itself is merely an improvement of an older algorithm. However, the way everyone was discussing the fact, made it sound like the concept of occlusion culling UWE was talking about was new to spark. It is not.

    Sorry if my post rubbed off wrong on you, that wasn't my intent.

    And yes, I do in fact work at Microsoft on Halo.

    *Edit* Though, I do want to clarify that I am not a full time graphics programmer. I've done tons of graphics work as I said before, including implementing occlusion culling algorithms into my personal projects, but it's not my actual day job.
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    edited October 2010
    @NS2HD ok the halo thing wasn't on topic, but don't call me on the rest, i wasn't the only one reacting to his borderline trolling post, so did juice and Scythe.
    if you learned heaps from that and consider it contributing, i have nothing further to say.


    edit:
    @Iced_Eagle ok, let's forget it. i'm not getting anything out of this anyway.
    Congrats to you on making it in life though.

    wasn't Reach the last halo btw?
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    edited October 2010
    <!--quoteo(post=1803021:date=Oct 27 2010, 04:53 AM:name=NS2HD)--><div class='quotetop'>QUOTE (NS2HD @ Oct 27 2010, 04:53 AM) <a href="index.php?act=findpost&pid=1803021"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Question for all: Does Spark handle textures or shaders in any relatively unique way? Or are they handled in a similar fashion to many mainstream engines?<!--QuoteEnd--></div><!--QuoteEEnd-->

    @Obraxis: You can always find out more interesting bits by fiddling around with the current alpha build. ;)

    As with most modern engines, Spark uses a Material system. Materials are typically several texture files and specific shaders that are combined to give you your final in-game "texture". Since Max designed Spark to use an abstraction layer between the rendering code/layer and the graphics API (DirectX or OpenGL) allowing it to use either <a href="http://knol.google.com/k/hlsl-shaders" target="_blank">HLSL</a> or <a href="http://www.lighthouse3d.com/opengl/glsl/index.php?intro" target="_blank">GLSL</a> shaders (as I understand it, I could be wrong). It currently uses the FX (or HLSL) shader language. This is specific to DirectX. OpenGL uses a very similar shader language called GLSL.

    An example material for Spark is a bit like this:
    <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><material>
        <maps>
            <map type="texture" value="materials/refinery/refinery_rock_pile.dds" />
            <map type="bump" value="materials/refinery/refinery_rock_pile_normal.dds" />
            <map type="specular" value="materials/refinery/refinery_rock_pile_spec.dds" />
        </maps>

        <properties>
            <property type="surface" value="rock" />
        </properties>

    </material><!--c2--></div><!--ec2-->The important part to notice about the material file is the "type" attribute. This indicates what the specific texture file is used for in the final combined output of a material. The "texture" type can also be referred to as the Diffuse Texture, which is just the base image/colors of an in-game texture. The other types define the properties of a surface and how it should react to light, such as reflectivity, luminosity, transparency, etc. I believe Spark supports the following: Diffuse, Normal, Specular, Occlusion, Alpha, Glow/Emmisive, and Gloss maps. All of these components of a material are combined together into what is seen in-game. The interesting thing to notice about Spark materials is the <properties> element. Currently, I believe this defines what kind of surface a material is and how that surface should react to actions by entities in the game, for example: what sound should play when a player walks on it and what visual effects should be used when the material is hit by a bullet.


    Just for good measure, here is some more information directly from the source:

    <a href="http://www.unknownworlds.com/ns2/news/2009/03/occlusion_culling" target="_blank">Spark Occlusion Culling</a>
    <a href="http://www.unknownworlds.com/ns2/2010/2/spark_engine_questions_and_answers_1" target="_blank">Spark Engine Q&A</a>
    <a href="http://www.unknownworlds.com/ns2/2007/06/client_side_scripting_and_weapons_continued" target="_blank">Client Side scripting and weapons - Part 1</a>
    <a href="http://www.unknownworlds.com/ns2/2007/06/client_side_scripting_and_weapons_continued" target="_blank">Client Side scripting and weapons - Part 2</a>
    <a href="http://www.unknownworlds.com/ns2/2008/12/unknown_worlds_videocast_7_texture_rendering" target="_blank">Spark Texture Creation Process</a>
    <a href="http://www.youtube.com/watch?v=rza--bGIkbE&feature=player_embedded" target="_blank">Spark Level Processing</a> *Warning! Big words and schtuff!* =P

    I don't know if those were posted in this thread or not but there ya go. It's worth mentioning all of the information in the above links could be out of date by now. Enjoy.
  • 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
    Holy crap! That's some great fiddling McGlaspie! Obraxis you're probably right (despite the above post) and I thank everyone who's had a crack. There's definitely alot for me to go through now.
  • McGlaspieMcGlaspie www.team156.com Join Date: 2010-07-26 Member: 73044Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Onos, WC 2013 - Gold, Subnautica Playtester
    edited October 2010
    <!--quoteo(post=1803031:date=Oct 27 2010, 05:39 AM:name=NS2HD)--><div class='quotetop'>QUOTE (NS2HD @ Oct 27 2010, 05:39 AM) <a href="index.php?act=findpost&pid=1803031"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Holy crap! That's some great fiddling McGlaspie! Obraxis you're probably right (despite the above post) and I thank everyone who's had a crack. There's definitely alot for me to go through now.<!--QuoteEnd--></div><!--QuoteEEnd-->Yarr! I enjoy trying to figure out how things work. I'm curious, what are you working on now? Some kind of engine brief/overview video?
  • 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
    At this very moment I'm actually working on a flamethrower video (minus the actual flamethrower, come on Steam hurry up!)

    I want to do an engine overview video where I cut between vidoes of other engines in action and talk about the similarities, the differences, and just generally try to promote UWE's efforts in creating their own engine.
Sign In or Register to comment.