PlaneShift
Development => Development Team Blog => Topic started by: Talad on January 08, 2009, 11:02:20 pm
-
Even if in 1992 PlaneShift was one of the first graphical MUDs, because there was a real lack of visuals in all MUDs at that time, in reality we never aimed for extreme graphical quality, because we knew would have been impossible for us to keep the pace of commercial game development companies. Commercial products have a pretty different operational model, which is working tightly with hardware makers, getting new drivers and specifications before the hardware reaches the gamers, and plan their engines on that. So when the new hardware comes out their product is ready for it. Lately they have gone even beyond that threshold by making games which actually run slow on latest hardware and become fully playable (with all details at maximum) only in 1 year or more, so the game gains more longevity, well, at least this is their view ... to me it's quite frustrating to see your just-bought-shining-titanium-made-ice-cooled-hand-sprayed-long-awaited-blood-of-your-blood computer running slow with a new game. :D
Anyway for many reasons we have always tried to keep very high standards in terms of graphical concepts, style and design, but to avoid stretching the hardware requirements too much. It's also important to mention that even apart from the connection with hardware makers, we surely lack resources compared to commercial companies, and so our engines will never match their performance (I know now the engine team will be displeased... :) ) . Even with the best programmers PlaneShift remain a free project made in people's spare time, so the final performance is a bit lower (I said "a bit" so engine team can be less displeased :) )
I have to say that the overall experience of the casual gamer has always been good and our graphical quality has been mentioned to be nice and appealing. Not being up to date with commercial standards never represented a real issue and our strategy is to upgrade the game continuously. To move forward with the progress of technology, we keep regularly enhancing our 3d models, our engine and our textures. If you check the newer PS models, they have larger textures and more polygons, compared to the old ones. Also the levels have followed the same path, increasing texture resolution and size. Look at the winch level today, it's pretty big and for sure we couldn't afford it few years ago.
[I know you were waiting for a sentence starting with a "But..." ]
But today we are facing a big issue ... recent games are drastically different from us for at least one aspect: shaders (http://en.wikipedia.org/wiki/Shader). With this term we refer generically to the advanced graphical effects that you see in modern games, where you have realistic lights, you see shining metal shields, you see rivets on benches which seems to come out for real, while those are just textures. PlaneShift has none of those today, and it's starting to look too old. Yes, it looks a bit old (I said "a bit" ! ...) if you compare it even to commercial games made few years ago, like Oblivion. Oblivion for example was (and is) making heavy usage of those techniques to render grass, torches, and in general everything that gets displayed on screen. In the following screenshot you may notice the shining effect on the shield and the light reflections on the armor, plus the saturated light effect on the sword.
(http://www.planeshift.it/graphics/blog/oblivion.jpg)
[THIS IS NOT A PLANESHIFT SCREENSHOT !!!! READ ABOVE]
We can still say we are better in many other things (or we will be), but the point remains.
In the past years, I never cared too much about those kinds of effects (even if I was always amazed by those) saying that PS didn't need such features to be enjoyable, and to a certain extent I still think that. We should aim for playability, roleplay, artwork, storyline, deepness of background, making the world look alive and real, etc... But in the last two years the difference with commercial games has increased a lot due to shaders and I think ...
(drum roll)
we have to face the new era now, or accept that new players will not be immediately interested in PS, and we will lose lot of potential gamers.
This is not an idea that just arrived today--we have been working on this concept for at least 1 year or more. Many tests were made by our engine team on shaders, and our Crystal Space engine has been using those in many test levels. But it's not so easy to move from a test or demo to a feature added in a real game, due to performance, platform compatibility and mainly the work needed to implement those all over the game.
Actually already in 2005 (!) we made few tests of "bump mapping". You can see how the question mark and the X seems raised or engraved on the two cubes. The geometry is actually flat, it's just the shader doing the work with the light reflecting on the cube.
(http://www.planeshift.it/graphics/blog/bump1.jpg)
After working on just some tests with simple geometry, we started to do real tests on our characters and we took the Kran model and his plate mail. In the following video you can see the model which is in standing position, still, while the light is moving to the left then to to right, then up, and then down. If the light was still and the char was moving you would have a similar effect.
[Click the image below to see the movie.]
(http://www.planeshift.it/graphics/blog/kran_plate.jpg) (http://www.planeshift.it/graphics/blog/kran_plate.avi)
This was still outside the game, but anyway it was a major step forward in proving that we were able to use such lighting effects with our models.
We also made a number of tests with our levels--for example this one in the podium level (which is the level you see in char creation). In this one you can see two effects:
- light reflecting on the golden plaque on the wall, giving to it a shiny look
- the drawings on the plaque being raised from the wall thanks to "bump mapping", a technique that cheats your eye with proper shading to have certain areas look raised. The geometry there is flat.
[Again, click the image to see the movie]
(http://www.planeshift.it/graphics/blog/dermf.jpg) (http://www.xordan.com/dermf.avi)
We recently have done more testing like this on our larger levels to see how this stuff was affecting performance (don't ask for now! But it will improve ;) ). In the next screenshots you see a glowing effect applied to the stones in Gugrontid, and some bump (stones raised effect) applied to a table in gugrontid tavern.
(http://www.planeshift.it/graphics/blog/gugbj8.jpg)
(http://www.planeshift.it/graphics/blog/gugtot3.jpg)
[I know you are waiting for a paragraph with a "So...." and some conclusions]
So now you are wondering if we are implementing those for real or not. Well, being a dev blog (so pre-release information), I can say that we are doing our best to put those in place as soon as possible, but starting step by step, like we always do.
You might ask: "Why not enable the feature everywhere if your engine supports it??"
Eh, it's not that easy unfortunately. To create such effects you have to create one additional texture for the "bump" and one for the "reflection" for each texture we have in game. It takes time and resources, also those have to be tested, and the current implementation has to be improved to reach acceptable performances.
You can now say: "Damn, means it will take years??"
Well, we will try to have it implemented for small parts of the game first, maybe one small level, or one set of weapons, or maybe just the plate armors (my preferred choice atm).
Ok, so now you know the background the why and the plans. You also know that we are willing to look straight into the eyes of this new era and say: "You are a pretty challenging new era, but we still are Planeshift team... Draw your sword!"
The rest is up to the creative minds of PlaneShift developers and inspiration of our art department.
-
Talad, that's a truly spectacular article. Thanks so much for writing it!
-
Wow, Kran look good for once :P
But seriosuly, nice one.
-
Yay, thanks for keeping us updated!
Looks rather promising!
-
There has been a parallax and specular podium (http://planeshift.svn.sourceforge.net/viewvc/planeshift/art/world/podium.zip?view=log) available on SVN for quite a while now. This is not the same podium shown in the video though. One thing you cannot do is if you're using it you cannot just turn the effects off if you don't want them.
-
\\o//
Wow
Thanks Talad for showing us this and taking time to explain things. I love this dev team blog, it is exciting to see what is planned.
Thanks to Dev team :thumbup:
-
:D Yay! I actually thought the reason it wasn't in game is because it was impossible for the engine to do it. I hope to see glowys in game. :thumbup:
-
:woot: Shaders! Weeeeee!!! O--)
-
Very nice! And at this point also a big thank you for this forum part \\o//
Is this a purely client side development?
And if yes, is there any possibility to activate it oneself to test, e.g. downloading form another svn source and compile the client?
Sen
-
After the next update you could, the current version of PlaneShift has a much older version of the 3D engine so the latest shaders might not work with it correctly. Also, you'd still have to get the actual shaders and bump-maps to see the effects.
-
This looks great!!!!! :D
-
Geloren nods in agreement
It's a fact that performance is really important. If you keep in mind that every potential player is somehow a tester, you can't exclude players based on hardware limitations. (of course, there are always limitations, but keep them reasonable)
Otherwise... if you can't offer some nice graphics, certainly during the years of development (and also playing for the players) you will lose existing players and won't attract new ones.
We see the same thing happen in the world of OS'es. Look at Windows Vista with the aero interface. Although Vista sucks major, people seem to like the glassy interface, transparency, widgets, etc..
Same thing with Mac OS... eyecandy
Linux... well, there are always alternative Desktop environment... but let's take a look at my favourite: KDE
KDE4 was built to create a newer, better and more futuristic foundation. Also, and this is my point, it looks waaaay more polished, nicer and smoother.
I do have to mention that in all three examples above... performance is lacking compared to their older material.
Where is the balance between eyecandy and making something attractive and keeping it lightweighted to have a more wider public...
In my opnion, just try... with just a little bit. You will get complaints if performance drops too much and you'll be praised by the ones who find it fantastic. Compare these two groups in number and it should be clear.
just my point of view on this great news. I'm really exited about it and can't wait to see it implemented (even although i am a performance freak)
Greetz, and see you guys in Yliakum (wich is currently still shader-less)
-
I do have to mention that in all three examples above... performance is lacking compared to their older material.
The examples above are being run with no optimisations, inside a debugger. This heavily reduces performance.
When released to players it will be much faster. In addition to that, we will provide options and fallbacks to allow people with older hardware to continue playing at a good speed.
http://www.youtube.com/watch?v=-F_4InyU_wc
http://www.youtube.com/watch?v=26xScqxVwJQ
These are some early tests I did of dermf plate armour.
-
A fallback method will certainly be also welcome since we often see performance problems :)
Sen
-
wow that' looks really good! Finally we'll get lamps which really shine from the inside!
And maybe we'll soon get better water as well?
I just wonder one thing, are you going to update the PlaneShift 3Ds Max Exporter to support those new maps?
Anyway thanks for this forum section, I'll watch it closely. :)
-
I am seariously impressed, and always Love what the Development team are doing to make our gaming experience more enjoyable. Thank you Talad - for such an informative and illustrative post.
-
Wonderful stuff. Compatibility is probably the most feared thing in any IT company/project. EVE-Online another MMORPG splits the client into premium and classic graphics(possible graphics branch?). This allows them to still support people with slow systems. Also from now on you could do the extra work on newer models and work up from there. I speak for myself only but i would rather see a richer world than have my character making me blind with their sword and armor. Good luck with this, I believe it to be a great step forward (Again..)
-
Um... just had a thought here... but with this shader work and "shiny" surfaces that can glow... could this be a long-term fix for all the claims that PS is too dark?
I am asking this as a serious question, not tongue-in-cheek.
-
the brightness or darkness of a map is related to the lighter [which is part of cs] so no this should have no effect on lighting on any map.
-
I was just curious after watching a couple of the demos with the shining gold seals on the walls and the glowing jewels in gug. *shrug*
This looks incredibly interesting all the same, and I look forward to seeing it in-game.
-
Just read the article and enjoyed it. Thanks for the update Talad. I like to keep updated with the game and posts like this really help! :flowers:
-
Congratulations!
There are so many possible ways to play with such effects.
Like, how about a rat, the fur over-frozen by a spell? Not as overlaying texture, but as hoarfrost shader... :D
And even more important: Fluid-looking water surfaces. And cobblestone roads. And brick walls. And brass and copper fittings on the Winch...
-
I just want to say that as far as graphics go, even though PS isnt trying to be graphicly impressive i still look at runescape and i laugh my ass off.
the sheer amount of revenue generated by jagexx and they spit out this "game"! I mean its a joke.
-
As far as performance and compatibility goes, keep in mind two things:
1) As far as compatibility goes, the first cards to support shader model 1.1 (not sure about OpenGL equivalent) were the Radeon 8500 and the GeForce 3 (non-MX version). These days it is much less likely for someone to NOT have shading capabilities in their cards (in general - maybe the planeshift population happens to have lower end systems?). And you can always use a non-shading backup. Doesn't CS have an "effect" model now that allows you to define an effect, with backup methods where the preferred method is incompatible (or if the user has a setting to turn it off), and apply them to maps? It's been so long since I've had a look at the code. I'm guessing you'd actually want to target shader model 2 or greater (Any directx 9 card or OpenGL 1.5 I think).
2) As far as performance goes, not all shaders are designed for glowy/shiny/bumpy effects that you can see. Some shaders actually improve performance by taking some load off the CPU. There are three main areas I could see shaders being used to improve performance in planeshift without any real visible change: character animation, the terrain engine (maybe - it's pretty good already), and animated ground clutter (grass, trees, etc..). But, of course some of these things would need to have support in CS first, if they don't already. I think Cal3D at least has hardware skinning support doesn't it?
-
Dear Talad, and the rest of the team!
Great article, really love it. Really love everything you guys do for the game. Its awesome and ive been playing since 2003. Just wrote to say this, and I really feel sorry for you guys that as soon as you say, "We are testing this"...Everyone has an opinion on what you NEED to implement next! /me shrugs Keep up the good work, I'll be here to play.
Thanks for your time.
Madoring
-
I'm an ignorant non dev, but these are my thoughts.
Planeshift is rather nice in that anyone can run it on relatively minimal hardware today. While most people would prefer better graphics, I would hope that shader effects be added as an option that can be turned off for people with minimal hardware. (Note my new desktop I'm building right now is a Phenom II X4 940 quad core with 8 gigs of RAM and a Radeon HD 4850 1 GB).
Next, if you're talking about changing aspects of the rendering engine, shouldn't that work be done upstream with the Crystal Space engine team? Perhaps e some other teams/projects utilizing the engine can also help out. Maybe look into recycling code from other FOSS projects like Ogre, which not only supports shaders, but also some nice physics and particle libraries?
-
CrystalSpace 1.9 already supports new graphic and shader effects like those you mentioned. I have already seen a lighting model similar to DOOM 3, with detailed surfaces, bumps, shading... done in CrystalSpace.
PlaneShift 0.4.03 still uses CrystalSpace 1.4 (IIRC) and still mostly graphic features and effects on a level of an earlier CrystalSpace version.
You see - the potential is already close. It just needs to get used. And that requires some development manpower and time. But it is not impossible.
-
So instead of reinventing those features, shouldn't the PS team work towards migrating compatibility to the newest version of Crystal Space?
I'm assuming one might be able to get help from other people working with the engine, and the Crystal Space engine devs themselves who've already been down that road.
-
So instead of reinventing those features, shouldn't the PS team work towards migrating compatibility to the newest version of Crystal Space?
That's exactly the road PlaneShift is on. The dev version (aka trunk) is using CS1.9 already. ;)
-
I apologize for the double-post, but I'm not seeing an edit button. Crystal Space's website lists 1.2 as the upcoming version. Looks like they don't update it that often. On their Trac page, it lists 1.4 as the upcoming version, but there is a roadmap for a version 2.0. When you said 1.4 and 1.9, I assumed there was a huge gulf. I assume now that 1.9 is just the development trunk for the 2.0, which will be the version following 1.4 apparently. The gulf between the two versions may not be that great.
I wonder how stable the 1.9/2.0pre branch is, if 1.4 isn't even officially released.
Either way, if the Crystal Space team is already adding shader support, then why reinvent the wheel?
The weird thing is that the apparently old info on the Crystal Space page says 1.2 is the upcoming version, but it already has support for shaders, and it shows a screenshot of a fur shader.
-
So instead of reinventing those features, shouldn't the PS team work towards migrating compatibility to the newest version of Crystal Space?
it is not as easy as it looks to update to a new version of CS, it has taken us over 6 months to get to a semi stable client with CS 1.9 and we have a bit longer to go before we get a client that is stable enough for a release. The release version of PS will always use a pretty stable version of CS to make sure we dont get major bugs into the release client that we dont have time to test and try to get fixed, We also have several ps devs that are on the CS team so the devs are well aware of the progress the CS team is making.
-
But migrating compatibility to future CS releases will be even more difficult as PS diverges. If PS uses their own rendering techniques for shaders, then any code in future releases of CS that depends on their internal shader code won't work with PS. If 1.9 is unstable and difficult to work with at the moment, perhaps the prudent course of action is to wait until 1.9 is more stable.
That being said, I willingly accept that I'm somewhat ignorant here as a non-dev.
I haven't even been able to get into the game yet. The server appears to be down. And I can't speak for everyone, but I'd prefer to see the PS devs work on PS features, like adding more skills, and more crafting types and let the CS team worry about CS issues such as rendering.
Either way, I am grateful that volunteers have provided a free game for me. Assuming I get into the game, I'd be willing to volunteer some time and effort myself, but I'd likely only be able to do voice acting or writing.
-
all the shaders PS users are CS shaders, they are copied from the CS tree into the proper PS location. Also a FEW PS devs work on CS so that features PS needs gets in CS and gives them a better understanding of some of the features/functions that ps has to offer. Also PS has no issues with updating its code base each time a CS version bump is done, this would be required either way as we have to keep up with CS changes, and most of the time there is atleast one dev working on this change for months before it gets merged into trunk and the testing team and other devs start using it. Trust the devs they know what they are doing and are not reinventing the wheel in this project.
-
Good to know. I'll go back to reading the website and wiki.
-
We don't reinvent the wheel.
We are changing the axes and wheel cases so they are able to take the new wheels with the wide base tyres.
It takes more than pulling just one switch to migrate from CS 1.4 to CS 1.9; it is not just exchanging the engine, it is also exchanging the resources to match the features of the new engine.
Imagine: You were used to drive the good old Diesel AT car you got from daddy. Now you are about to get a brand new sports car ... don't you expect some amount of training time to get used to the new engine power, to the new accelleration level - and don't you wish to learn how to handle the manual gear shift, after you were used to the automatic transmission and never learned gear shifting? And remember that you will need unleaded gas now, not Diesel fuel anymore.
The switch of a 3D engine generation is just as complicated. All the engine features and tricks you learned for a specific level of graphic features may now be partially obsolete. There has been Lambert and Gouraud shading on vertex and triangle level before - there will be Phong and Normal map shading on a pixel level now. There will suddenly be normal (bump) and shininess and reflectivity maps ... new art content has to be made. That means, the shadows are no longer painted brightness changes in the textures, but calculated brightness changes related to lighting and surface directions. The good old textures are now wrong and useless! You need artists, lot of artists, to change all textures - and you need to explain to them how they can do that correctly. And that is just one example...