The answer to life, the universe and unity3d

Posted By: WretchedSid

The answer to life, the universe and unity3d - 08/05/13 22:41

So, Gamestudio is dead and Unity3D sucks... The state of game engines that are powerful and easy to use is bleak, to say the least. But, not all hope is lost, so put your funeral suits away, and dress for rain.

Slin and I have been working on an 3d game engine for the past 8 months, and now the time has come to unveil our baby to the public. Say hello to Rayne. I'll spare you the marketing bullshit, here are the facts you need to know:


  • Cross platform, Windows, Linux Mac, iOS and Android goodness
  • One license to rule them all. No pro version bullshit, no royalties.
  • Pay what you want
  • OpenGL 3.2 and OpenGL ES 2.0 based (geometry shaders, motherfuckers)
  • Tile based forward renderer
  • Support for (lots of!) dynamic lights
  • C++11 based, with AngelScript bindings
  • Sleek asset pipeline
  • GPU bone animations
  • Multithreaded as fuck


Want to know more? We wrote an introductory blog post, and we also have a website: rayne3d.com.

Here is how it looks like:




We either go big, or we go home.
Posted By: Superku

Re: The answer to life, the universe and unity3d - 08/05/13 22:51

It's so... beautiful!
Posted By: Nems

Re: The answer to life, the universe and unity3d - 08/06/13 01:44

Impressive and quite the suprise...I'm mindfull of another user who did similar but not sure how thats going....3DGamemaker or something like that.....

But...Have you heard of Skyline?

Another indie offering still in beta but stunning...as others were too in previous attempts...

All the best and hope to try it out one day....
Posted By: sivan

Re: The answer to life, the universe and unity3d - 08/06/13 09:20

nice concept, great features, and a cool little homepage written in a lovely style grin
I hope Bullet 3 is really coming soon to get more power, and nobody will miss Nvidia PhysX from the engine...
Looking forward further news, screenshots, videos, demos, and marketing bullshit.
I will buy it.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/06/13 12:32

Originally Posted By: Superku
It's so... beautiful!

No, YOU are beautiful!

Originally Posted By: Nems
I'm mindfull of another user who did similar but not sure how thats going....3DGamemaker or something like that.....

Maybe Blendelf by Inestical? As far as I'm aware, the project is currently pretty much dead, I just checked the github page and the last commit was three years ago.

But yes, there certainly are other engines out there. Skyline, C4, Torque, Leadwerks, you name it. But we think there is space for at least one more engine, mostly because there is no silver bullet. And we don't claim to have the silver bullet either, but we have a spot that's currently void: A powerful and modern engine that lets you drop down to the bare metal if you need to.

The thing is, most engines are old by now, have lots of legacy code and not breaking backward compatibility is kind of a huge deal. We don't have that problem, we could start from scratch, take the newest technology that was available on all our target platforms, and kick some ass.

Originally Posted By: Nems
[...]Another indie offering still in beta but stunning...as others were too in previous attempts...

Oh, yes, the road of dead engine projects is long and filled with... well, dead engines. Saying that you want to make a good 3d game engine is kind of like saying you want to make the next WoW or Windows. It's an ambitious undertaking to say the least, but we think that we can pull this off. We are quite clear about what we want, and it's not a CryEngine or UDK killer, these engines play in a very, very different league and we are nowhere near that.

Originally Posted By: sivan
nice concept, great features, and a cool little homepage written in a lovely style grin

Awwww <3
Could you please tell the last part to Nils' girlfriend? She thinks the website is boring frown

Originally Posted By: sivan
I hope Bullet 3 is really coming soon to get more power, and nobody will miss Nvidia PhysX from the engine...

You can write your own plugin for PhysX, if you really want it. We have decided against it because bullet runs on all platforms out of the box.

Originally Posted By: sivan
Looking forward further news, screenshots, videos, demos, and marketing bullshit.

You know what? Here you go:


Also, we now have a showcase: http://rayne3d.com/showcase/ 30% less content, 95% more pictures and 5% more marketing.

And because we said that Rayne is easy to use and blah, blah, blah, here is the source code for the light part to prove exactly that:
Code:
// Create a dual phase LCG random number generator
RN::Random::DualPhaseLCG rng;
rng.Seed(0xdeadbeef);

// The root node that's going to rotate the whole oderal
RN::SceneNode *node = new RN::SceneNode();
node->SetAction([](RN::SceneNode *node, float delta) {
    node->Rotate(RN::Vector3(10.0f * delta, 0.0f, 0.0f));
});
		
// Create a particle emitter
RN::ParticleMaterial *material = new RN::ParticleMaterial();
material->AddTexture(RN::Texture::WithFile("textures/light.png"));

RN::ParticleEmitter *emitter = new RN::ParticleEmitter();
emitter->SetMaterial(material);
emitter->SetSpawnRate(0); // Don't spawn any particles

// Spawn some lights...
for(int i = 0; i < 300; i ++)
{
    RN::Light *light = new RN::Light();
    light->SetPosition(RN::Vector3(rng.RandomFloatRange(-35.0f, 35.0f), rng.RandomFloatRange(-10.0f, 20.0f), rng.RandomFloatRange(-20.0f, 20.0f)));
    light->SetRange(rng.RandomFloatRange(2.0f, 5.0f));
    light->SetColor(RN::Color(rng.RandomFloat(), rng.RandomFloat(), rng.RandomFloat()));
    
    // Create a new particle
    RN::Particle *particle = emitter->SpawnParticle();
    particle->color = light->Color();
    particle->lifespan = 1000;
    
    // Give the light an action to update the particles position every tick
    light->SetAction([particle](RN::SceneNode *light, float delta) {
        particle->lifespan = 1000; // This is kind of hackish to prevent the Particle from dying
        particle->position = light->WorldPosition();
    });
    
    // Attach the light to the root node so that it inherits it rotation
    node->AttachChild(light);
}



The beauty is that Rayne will do all entity updates in parallel, I've recorded the scene on my MacBook Pro with 8 logical cores (4 physical), so Rayne will update 8 entities at a time, completely automatically for you. And, it also takes care of synchronizing the whole thing, so you don't have to think about synchronization.
Posted By: gri

Re: The answer to life, the universe and unity3d - 08/07/13 10:22


you guys are crazy
Posted By: sivan

Re: The answer to life, the universe and unity3d - 08/07/13 11:58

nice video, I hope it can run smoothly on a recent pc. I guess it cannot on android laugh
the code seems to be easy enough to use, but you could think of something like in Esenthel engine, which utilizes C++ but features some macros or whatevers for more easy coding, if you want to gather less advanced programmers too as users. it's probably worhty to check what that guy is developing and how. he said 1-2 months ago that he would not start to develop a game engine now because of the high competition (he started it 10 years ago). but I'm sure you have checked a lot of game engines available, and made your plans already...
I think the editor will require more time to develop than the engine itself. and a little crowd of testers/users.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/07/13 12:34

Originally Posted By: gri
you guys are crazy

You bet we are! Crazy awesome, that is!

Originally Posted By: sivan
nice video, I hope it can run smoothly on a recent pc. I guess it cannot on android laugh

Yes, and yes. The video is lagging because the recording software killed my gpu pretty badly (and I didn't want to lower the resolution from 1920x1200). Android is... well, OpenGL ES 2.0 in most cases (I don't know if there is any OpenGL ES 3.0 capable device out there, since it's a really recent standard), and OpenGL ES 2.0 is rather limited in terms of what you can send and process on the shader. The GPUs are in most cases capable (heck, most PowerVR GPUs are DirectX 11 capable by now), but the functions we need to efficiently push the lighting data to the GPU just aren't there.

Originally Posted By: sivan
but you could think of something like in Esenthel engine, which utilizes C++ but features some macros or whatevers for more easy coding, if you want to gather less advanced programmers too as users.

I haven't used Esenthel yet, so please excuse my ignorance, but what kind of macros are we talking about?
Posted By: sivan

Re: The answer to life, the universe and unity3d - 08/07/13 12:50

no problem, it is not a famous engine, as I know from Poland. a few little things, here is the corresponding page: http://www.esenthel.com/wiki/index.php?title=Code_Editor
Posted By: lemming

Re: The answer to life, the universe and unity3d - 08/07/13 17:59

Awesome lights, multiplattform, automatic threading, C++. If this was here a year ago I propably wouldn't be on Acknex anymore.
Any chance in having LiteC Acknex compatible structs and functions? ^^

Btw, how are your levels build up? Like Acknex an own level compiler or do you just add models to compose it? I think you said something about an own format for models. Is this still the case?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/07/13 21:02

Originally Posted By: sivan
a few little things, here is the corresponding page: http://www.esenthel.com/wiki/index.php?title=Code_Editor

No, sorry, that won't happen any time soon (if at all). The problem is that we don't have control over the compiler, in fact, it's not even one compiler. Windows uses MSVC, Mac and iOS use LLVM/Clang and Linux and Android use GCC, so adding this into the compiler won't happen from our side. The other solution for this would be a custom pre-processor, which would force the user to run their script through it before handing it over to their compiler. This can be done by having the user explicitly call the pre-processor, or we do this on their behalf from within a custom editor, and we will certainly not provide a custom code editor. Nothing that we could come up with can compete to Visual Studio or Xcode, and forcing the user to use an inferior editor instead of a preferred one just for the sake of a few macros... Hell no. And we don't want to force the user to run their code through an intermediate program, we want them to be able to hit build and run in their IDE and get going.

Rayne is all about not standing in the way of the user, and implementing new language features would mean that we do have to get in their way, and that is not worth the marginal gain of comfort.

So yeah, long rant, but I hope that clarifies why we won't be able to provide such a solution.


Edit: Btw, a few points:
"Basic data types": We provide data types with fixed length that work across platforms and architectures (x86, x86_64, ARM)
"Specifying Default Values for Class Members": That's a C++11 feature
"16-bit (Unicode) Characters and Strings": Rayne has something better: A string class that is input agnostic. It can work with ASCII strings, utf8, utf16 and utf32 (eg. because you want to use UTF16 for asian strings because in UTF8 most asian characters are a 3 byte sequence), and you can work with them interchangeably (the string class takes care of transforming its internal storage if needed). It also gives you a ton of connivence methods to work with the encapsulated data.
"Accessing Base Class": There is no __super in C++... That doesn't work because of multiple inheritance, and even if it did, you should know what you inherit from.


Originally Posted By: lemming
Btw, how are your levels build up? Like Acknex an own level compiler or do you just add models to compose it?

Well, we do have a level editor, which generates a custom format, but there is no compilation step. Modern hardware can deal with dynamic scenes, there is no need to have offline compilation of levels, unless you explicitly want to piss of the user. I mean, sure, there are still cases where a compiled level makes sense, eg. to precompute light maps, but there are tools for that.

Now, I know you asked how levels are build up, but as a good marketing PR SEO master shenanigans talker, I would like to talk about Rampart Scenes for a bit: Rayne doesn't force you to use a scene manager. I mean, it does, but it doesn't force you to a specific one. Your game might be a minecraft clone with lots of equally sized blocks, an ABT(ree) can go fuck itself in such a case, what you really want is a spatial hash in such a case. Likewise, there are levels where an octree kicks ass, and levels where you may want to use an AABB tree. Bottom line, there is no silver bullet, and forcing the user to something doesn't do any good here. So Rayne lets you choose what you want, and it allows you to create a custom scene manager. A scene manager is really just an extension to the scene itself (encapsulated in a World object), while the world does the heavy lifting when it comes to scene node management, it also acts like an event tap for various kinds of attachments to it, for example the scene manager. It's plug and play, and the documentation tells you what scene manager you should use in what scenario.

And besides of that, just throw your scene nodes into the world, or place them in the editor. The entities are asset agnostic, meaning you can plug your own resource loader into the engine, tell it how it can identify your files (or provide your own predicate), and then just create an entity and point it to the file.
The custom model format was really just for the beginning so that we had something to get going that was easy to parse and load, model files are a huge bitch. But there are going to be more supported formats.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 08/08/13 11:04

Quote:
Nothing that we could come up with can compete to Visual Studio or Xcode, and forcing the user to use an inferior editor instead of a preferred one just for the sake of a few macros... Hell no.

That's the spirit! Would be awesome if other engines would have the same attitude.

I'm really looking forward for your first release!
Posted By: sivan

Re: The answer to life, the universe and unity3d - 08/08/13 12:32

thanks for the detailed answer. in future I also prefer VS and C++, no engine specific languages, but I have to learn a lot... fortunately I have a little time until you release Rayne laugh
I'm experiencing with the older version of the above mentioned engine in VS, its new version is more heavily built on its own scripting environmant that resulted in a lot of issues... so I can agree with your decision. imo it's mainly a question of targeted users.
Posted By: Quad

Re: The answer to life, the universe and unity3d - 08/08/13 15:47

I already always loved you grin

no need for grammar when expressing love
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/08/13 16:15

Originally Posted By: sivan
imo it's mainly a question of targeted users.

Oh, most definitely! And I didn't mean to come of as arrogant or smug towards Esenthel!
C++ can certainly be made more comfortable and easy, and we have a lot of small helper tools, classes and systems in place to make it as easy as possible. But we don't think that changing the language itself is the way to go, because we don't think that C++ is broken to begin with.

Originally Posted By: Quad
I already always loved you grin

The feelings are mutual! <3 grin
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/13/13 16:02

As you know, we are working on an awesome entry for the Oculus Rift VR Jam, and today we are proud to announce the first gameplay... Okay, it's not gameplay, we got sidetracked when we implemented the killing things part:
http://www.youtube.com/watch?v=LzcuiXskthU

Obviously powered by Rayne!
Posted By: Nems

Re: The answer to life, the universe and unity3d - 08/14/13 02:23

Absolutely impressive, and of course, hungry for more...
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/26/13 04:23

Guess what, we can actually finish a project... Not Rayne (yet), but Occluded, our VR jam entry.
Here is the trailer of Occluded: Goty Edition (with day 1 patch and DLC): http://www.youtube.com/watch?v=-r4YsrBwF9k

And here are some screens, because yay, screens:






And if you have a Mac, you can download a playable version right here: http://rayne3d.com/static/occluded.zip

A Windows version will follow soonish, as well as a more polished version and the source code of the game (though, that's going to take a bit). In the meantime: Rayne is rocking on and on.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/29/13 18:01

A few days late, but here is out Post Mortem to Occluded: http://rayne3d.com/blog/08-29-2013-occluded-post-mortem
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 08/29/13 19:57

Nice read! laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 09/05/13 02:37

Anyone interested in an horrible looking editor sneak peak? Well, here ya go lads:



(Note: This is very very much subject to change (duh), but it's actually something we can show off (changed API isn't really that interesting)

If you look closely, you will be able to see some funny artifacts that happen when the engine tries to render glyphs with subpixel baseline offsets on a retina display.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 09/19/13 21:54

Not quite sure how I could not see this thread right when it came up first, looks like I'm too late for the initial rampage of cheers and halleluja, so I'll just cut to it right away - huge tip to the hat for pulling this off to the two of you (and to the third whoever as soon as he's found and returned), this looks just like what the engine market is currently missing: A rather lightweight, yet powerful solution for indie and hobby devs with all options to go down to the bare metal and mess with dirty stuff.
Based on OpenGL, crossplatform, multithreaded, modular, tile-based forward rendering, etc, etc, pay what you want and freaking Oculus Rift support at release, if nothing all too ugly happens before the first release I'll definitively throw some alibi amount of money at you, then play around with it just to start throwing more money at you.

Joking aside, this look extremely promising, I have deep respect for you guys pulling something like this off, and am looking forward to a release.

Oh and the homepage design is beautiful, nice and clean just how it's supposed to be. Whoever writes your texts (I'd wildy guess and say Sid does that, but I might be wrong), lovely style. Kinda sharp in a refreshing way.

And I would have loved to see a dragon fighting game.

EDIT: forgot to mention it's kinda inspirational to see stuff like this when one just started to fuzz around with opengl and all that.
Jeez that post got way longer than intended.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 09/20/13 22:09

Originally Posted By: the_clown
Not quite sure how I could not see this thread right when it came up first

No worries, we are only mildly offended laugh

Originally Posted By: the_clown
Oh and the homepage design is beautiful, nice and clean just how it's supposed to be. Whoever writes your texts (I'd wildy guess and say Sid does that, but I might be wrong), lovely style. Kinda sharp in a refreshing way.

Thanks! But I'm afraid I can't take the credit for that, we made the website together, including the texts.

Buuut... Speaking of the website, I would like to announce the big social update!
We listened to your feedback, and what we got away from it is that you are all nuts and like this social stuff. So we decided to leave our basement (just kidding, no one of us lives in a basement. We can't afford such luxury), and become social beings for once. Rayne now has a Facebook page like all the cool kids. And a subreddit without content, because we are not only cool, but also raging hipsters!

Also, some of you said that they would like us to send them non-spammy emails from time to time to tell them what we are up to, so that's also possible now: Head over the the rayne website and subscribe to our newsletter.

Oh, and we weren't lazy either. In the past few days we've been busy working on Downpour and a few engine internals. Rayne objects now feature KVO and KVC, which allows the Editor to just poll for the exported variables of objects and display their content. Check this out:



(Please also note our quality UI design)
Posted By: Slin

Re: The answer to life, the universe and unity3d - 09/26/13 22:27

Lights:


More lights:
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 09/26/13 22:37

What Slin was trying to say here: WHERE IS YOUR GOD NOW?!

Edit: We may have to tweak the performance a bit though


Edit 2: By the way, anyone interested in a technical write up of our multithreading architecture and how the stuff works under the hood? Obviously it would be Rayne centric, but also include useful stuff for multithreading in games/engines in general*

* Except of games made with Gamestudio because it's as thread safe as a boat made of sugar is water proof.
Posted By: JibbSmart

Re: The answer to life, the universe and unity3d - 09/26/13 23:55

I'd read it!

Looking good! And the screenshots!
Posted By: Nems

Re: The answer to life, the universe and unity3d - 09/27/13 19:21

Love your style JustSid, the way you write is entertaining and intelligent and the self deprecation goes a long way with my way of thinking...

And Kudos for all your doing here with Rayne...
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 09/27/13 20:10

Originally Posted By: JibbSmart
I'd read it!

Well, I know what I'm going to do on my flight to Canada then! (Unless the plane crashes, in which case I'm going to cry like a baby).
Oh, and Nils is going to write about Quaternions (I officially announced it, so he can't say no anymore)

Originally Posted By: Nems
Love your style JustSid, the way you write is entertaining and intelligent and the self deprecation goes a long way with my way of thinking...

Mom, get off the internet!

Originally Posted By: Nems
And Kudos for all your doing here with Rayne...

Thanks laugh
But I seriously can't claim this for myself, Rayne wouldn't be possible without Slin and SchokoKeks, and a bunch of other people that indirectly contributed to it (shout out to Superku, who by the way, made one commit to the project :p)
Posted By: Superku

Re: The answer to life, the universe and unity3d - 09/27/13 21:51

Quote:
shout out to Superku, who by the way, made one commit to the project tongue

Haha thanks! I didn't know what I was thinking back then, how should I co-develop or at least contribute to an engine when I barely manage to develop a game/ Superku (which is still priority #1, esp. when it comes to my free time spent on programming).
However, as I've said before feel free to see and use me as a mathematic advisor. =)
Posted By: Nems

Re: The answer to life, the universe and unity3d - 09/28/13 00:22

Yeah, I did mean all you guys...But still, looking back at a number of threads, Whats with all the swearing, you'll scare all the fishies away...
..and well, Unity is a B***h to use if your not familiar with it, so...will Rayne work on Components too or would it have the versatility that GStudio provides?
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 09/28/13 12:44

I'd SO prefer the Gamestudio style with OO!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/04/13 08:56

Gosh, sorry for the late response, I've been really busy in the past couple of days and simply forgot about it!

Anyways, I'm afraid I have to disappoint you. Gamestudios approach is just not versatile in any way, it's straight forward, but it's, simply put, very limiting. Rayne features a full fledged Entity system based around scene nodes. A scene node is simply an object that is somewhere within the scene graph, without anything in particular attached to it. It implements the visitor pattern, and gets it update() method called once per frame, and it can have zero or more children attached to it.
By itself, a scene node is kinda boring, so there are subclasses to it, for example the Entity class, which supports rendering of a model and which you can also assign a skeleton to. Then there is the light subclass, which, well, implements a light, and then there is a terrain class, water class etc. We follow the KISS principle here, that is, we encapsulate different logics within their own classes, and don't have a "one fits all, kindaish" gamestudio model. The problem with ENTITY in gamestudio is that, because it doesn't support inheritance, it has to play everything. An ENTITY can be a light, a terrain, an entity, or just about anything within the scene graph, and there are flags that only affect a few of these cases.

In Rayne you instantiate specific subclasses of the SceneNode class (which might be your own) (or you instantiate a SceneNode directly, which is useful in some cases). By default, they are then placed just inside the world without any attachment to anything else, but you can attach scene nodes to other scene nodes. Childs are affected by their parent, that is, if you move/rotate/scale the parent, the childs are affected by that as well. In Occluded we used that to attach the cameras to the player herself, and have the camera move and rotate together with the player, something that isn't possible in Gamestudio for example.

Scene nodes can also have properties attached to them, which is pretty much an inverse relationship; The property affects the scene node it's attached to, for example a collision hull.

Honestly, I think the way we are going is the logical way, although maybe not the one that is most straightforward. But it allows abstraction, and customization. Take Gamestudio for example, if you want to implement your own physics engine on top of it, you then have to figure out how to store the related data for collision hulls and other properties of the entity. You will likely use a skill for that, simply because an ENTITY is static in its way and can't be altered. This is an incredibly unflexible entity system, because it doesn't give you much freedom. On the other hand, if you can simply provide properties for your physics engine implementation, these properties can then be attached to scene node, allowing for a well formed entity system.
Posted By: sivan

Re: The answer to life, the universe and unity3d - 10/04/13 10:18

offtopic: it was a great idea to ask Eurythmics to write a song for you "Here comes the Rayne again" http://www.youtube.com/watch?v=4c9r15O1JVw grin
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/04/13 13:42

Sivan, I don't see how this could be off topic. If I have ever seen an on topic post in my life, it's yours.

Also, let's talk about UI for a bit. A pain in the ass in Gamestudio, not much better in Unity, and in general something you don't really want to touch. Also, it hasn't come up yet and I've got a few questions about it already (Error, Pad, I'm looking at you, you fabulous creatures!)

So, first things first: Rayne doesn't use the immediate rendering approach that Unity uses, but a retained approach like Gamestudio, with the exception that it actually makes sense and doesn't make you want to hit your head repeatedly on the desk until the mental pain is relieved by the physical.

Before I start, let me tell you why Unity got it wrong: Because doing any kind of sensible layouting in Unity goes to shit. It is kind of like HTML in that regard, which is great, don't get me wrong, but loses too much control, which you probably want to have. So retained rendering it is, meaning you create objects and layout them how you want!

So, now that we've got the cleared up, here are the basics: There are three root thingy things, the first one being the ui server. The ui server drives the whole ui, it responds to resolution changes, tracks input, and dispatches input events down the responder chain. Then you've got the Widget class, which represents something similar to a Window, but without any chrome around it. A Widget contains zero, one or many Views, which take care of the actual rendering (and a few other things).
Then, there is the responder chain. The responder chain determines HOW input events are handled. Widgets and Views together build the responder chain, and the ui server passes down input events into the responder chain. I don't want to bore you with too much details, but the basics is that Rayne has a very mature ui and event system.

Then there are concrete subclasses of the View class, which provide all sorts of things. There is the generic Control class, which can be used to implement controls (and which is subclassed for example by the Button and Textfield class), there are subclasses for labels, scrollviews, image views and a fuck ton of other, very high level, stuff, and you can all mash them together to build your interface (views can have subviews, which in return can also have subviews). Even more useful, you can provide your views with layouting options, so your views get automatically resized when their parent view resizes; In a way that you decide! UI that automatically adapts to resolution changes? No problem!
The way Rayne handles the UI allows you to composite highly complex user interface elements out of the basic UI components. For example, the Button class has an ImageView and a Label as subviews, and depending on how you setup the button, it will layout them accordingly (for example, you can tell it to have the image to the left and the text to right, or the image on the top and the label on the bottom).

Here is an actual example of that, a button that displays a title and an image:


And here is the code for that example:
Code:
RN::UI::Button *button1 = RN::UI::Button::WithType(RN::UI::Button::Type::Bezel);
button1->SetImageForState(image, RN::UI::Control::Normal);
button1->SetTitleForState(RNCSTR("Image left"), RN::UI::Control::Normal);
button1->SetFrame(RN::Rect(5.0f, 5.0f, 180.0f, 30.0f));

RN::UI::Button *button2 = RN::UI::Button::WithType(RN::UI::Button::Type::Bezel);
button2->SetImageForState(image, RN::UI::Control::Normal);
button2->SetTitleForState(RNCSTR("Image right"), RN::UI::Control::Normal);
button2->SetFrame(RN::Rect(5.0f, 40.0f, 180.0f, 30.0f));
button2->SetImagePosition(RN::UI::ImagePosition::Right);

RN::UI::Button *button3 = RN::UI::Button::WithType(RN::UI::Button::Type::Bezel);
button3->SetImageForState(image, RN::UI::Control::Normal);
button3->SetTitleForState(RNCSTR("Image overlaps"), RN::UI::Control::Normal);
button3->SetFrame(RN::Rect(5.0f, 75.0f, 180.0f, 30.0f));
button3->SetImagePosition(RN::UI::ImagePosition::Overlaps);



Also note that the button is smart enough to handle the layout correctly, which, by the way, is completely customizable (as well as you can customize different images and titles for the different button states).

Speaking of customization: Raynes UI is completely customizable. There is a JSON file which describes the complete colour scheme, what the default fonts are, how the default controls look like, what textures are used, what the insets are, and so on, and so on. Seriously, it's up to you how your UI looks like (and I hope that you have better UI graphics than we do).
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/04/13 13:43

Then, there is Raynes typesetter, and incredibly powerful class. It builds the core to all text rendering, and is completely accessible to you. You have complete control over the way paragraphs are aligned, how they get truncated, how kerning should be applied, how many lines it should render at max, if it should truncate lines... It's a beast, it knows text, it knows about vertical and right to left texts, and it knows how to style text. It knows where the characters of your text are, so you can perform hit tests against them, for example to check on which character the user clicked. You don't have to drop down to the typesetter level, but if you want to, your possibilities are endless.
Acknex TEXT object is a joke compared to the beast that is the typesetter, and I'm going to prove that to you with a few screenshots:




These three screens simply demonstrate the typesetter knows about linebreaks. The first two are two of the three truncation modes, in which the typesetter will add an ellipsis to truncate the text, the second one is simple character wrapping. Supported are the following line break modes:

Code:
enum class LineBreakMode
{
    None,
    WordWrapping,
    CharacterWrapping,
    TruncateHead,
    TruncateTail,
    TruncateMiddle
};



But that is lame, isn't it. How about something fancy, first of all, all non english speaking people: Rejoice, for Unicode is completely supported in Rayne:


Here is the code for that example (note that I had to change the font because the default Rayne font, Helvetica, doesn't support cyrillic):
Code:
RN::UI::Font *font = RN::UI::Font::WithName("Ubuntu Mono", 16.0f);

RN::UI::Label *label = new RN::UI::Label();
label->SetFont(font);
label->SetText(RNUTF8STR(u8"&#1071; &#1083;&#1102;&#1073;&#1083;&#1102; Rayne"));
label->SizeToFit(); // Automatically resizes the view so that it comfortably fits its content



Right, so, simple, you can do that in Acknex as well. How about this then, coloured text with different fonts?


And here is the code for that example:
Code:
RN::UI::Font *font = RN::UI::Font::WithName("Ubuntu Mono", 16.0f);
RN::AttributedString *string = new RN::AttributedString(RNUTF8STR(u8"&#1071; &#1083;&#1102;&#1073;&#1083;&#1102; Rayne"));
string->AddAttribute(kRNTypesetterFontAttribute, font, RN::Range(0, 7));
string->AddAttribute(kRNTypesetterColorAttribute, RN::UI::Color::WithRNColor(RN::Color::Yellow()), RN::Range(0, 7));
string->AddAttribute(kRNTypesetterColorAttribute, RN::UI::Color::WithRNColor(RN::Color::Red()), RN::Range(8, 5));

RN::UI::Label *label = new RN::UI::Label();
label->SetAttributedText(string);
label->SizeToFit();



That's almost cheating, isn't it?
Posted By: sivan

Re: The answer to life, the universe and unity3d - 10/04/13 14:44

all sounds great, and hopefully it is rendered much faster than gamestudio (which is very slow when using true type fonts...)

what I forgot to ask: is there any article about tile based forward rendering, what is relatively easy to understand? it sounds quite promising and up-to-date, but I found only too detailed ones I don't really get... (and mainly dealing with rather tile based deferred rendering)
Posted By: Slin

Re: The answer to life, the universe and unity3d - 10/04/13 18:16

Since we do a depth prepass, which is anyways needed for the lighting and which helps us to get rid of overdraw, one could already call our approach deferred. The idea behind tiled lighting is, that you split the screen into rectangles of the same size and generate a list for all lights visible in each of those rectangles. Then in the fragment shader used to render the scene, each fragment determines within which rectangle it is and uses the according list of lights for that, which is usually a lot less than the lights of the whole scene. An better approach is probably the so called clustered forward rendering, which also uses 3D boxes instead of 2D rectangles, by also taking the depth into account. I plan to change our system there, but did not yet get to experimenting with it.
I am gonna write a blog post about this somewhen in the future and will post some links for you somewhen later today or tomorrow.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 10/04/13 22:05

Comparison of different lighting techniques with focus on tiled lighting/bimodal clustering systems and how to make it fast: http://bps12.idav.ucdavis.edu/talks/03_lauritzenIntersectingLights_bps2012.pdf

Youīve probably seen this one before, its about techniques from need for speed the run and battlefield 3, like a bokeh effect, but starting at page 64, there is also a very informative chapter about their tile based deferred lighting. I however just noticed that the High-Z chapter as well as the min max shadow mapping part is looking quite interesting, although the latter reminds of some paper about so called smoothies, I read a few years ago...: http://dice.se/wp-content/uploads/BF3_NFS_WhiteBarreBrisebois_Siggraph2011.pdf

Then there is this one about the clustered shading approach in probably the next just cause or something, which is another really amazing paper: http://www.humus.name/Articles/PracticalClusteredShading.pdf
And then there are the power point slides of basicaly the same from this years siggraph together with a couple of other great presentations: http://advances.realtimerendering.com/s2013/

And this is like the first paper you find when searching for it, which is good but not as good as the others in my opinion: http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading

And as a last resource you might want to have look at AMDs forward+ papers: ftp://date.eecs.jacobs-university.de/confMaterials/EG2012/short/pdf/005-008.pdf
ftp://date.eecs.jacobs-university.de/confMaterials/EG2012/short/pdf/005-008.pdf
http://developer.amd.com/wordpress/media/2012/10/AMD_Demos_LeoDemoGDC2012.ppsx

There are probably a couple more, but those should get you started tongue
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/04/13 23:24

Originally Posted By: sivan
all sounds great, and hopefully it is rendered much faster than gamestudio (which is very slow when using true type fonts...)

Well, that was a tad anti-climatic... It does render much faster since it does a lot of smart caching on its content and only renders glyphs that are required. See the Screenshots of Downpour, which feature a huge amount of labels on the same screen.

By the way, Nils just published his blog post about Coordinate Systems, so head over to our devblog and give it a read: http://rayne3d.com/blog/10-05-2013-coordinate-systems-and-other-abstract-things
Posted By: sivan

Re: The answer to life, the universe and unity3d - 10/10/13 19:12

thanks, now tiled shading is more clear (and decided not to write my own system in the following years grin ), and the maths related blog post is also a useful overview.
Posted By: Anonymous

Re: The answer to life, the universe and unity3d - 10/25/13 18:32

Big awe for you guys this is amazing.

It's known that I'm not a programmer to any real effect. I started with no knowledge and you all helped me be able to work in this engine. I can make a lava giant leave fire footprints in 3dgs but can't program a thing outside it..

So I want to know -
I want to know, with my limited skills in LiteC am I going to be able to jump to Rayne?
Will you guys write a guide for the move?

The idea of moving to C++ is a hard one for me. If a uneducated homebrew like me could do it, then it would be with a game engine to teach me and the great help of the people I learned from here.

Thanks
Mal
Posted By: Quad

Re: The answer to life, the universe and unity3d - 10/26/13 16:55

It's not about the language it's about the idea and the logic. This is true for the programming in general.

If you know the logical steps needed(or algorithm) to make that lava giant leave fire footprints you can basically do it in any engine so long as that engine has enough features to let you walk that steps.

create ground-> create lava golem-> make it walk and play animation-> find where it's foot landed-> create fiery footprint

in lite-c one of the ways for that would be

ent_create or level load for ground -> ent_create for golem-> c_move and ent_animate for movement and animation-> find foott with vec_for_bone or vec_for_vertex and c_trace to find where it landed-> ent_create or ent_decal for footprint

in another language/engine you would use similiarly functioning functions/events. Execution may be completely different, like in some other engine instead of tracing from the foot, there may be an event mechanism that fires an event when the foot touches the ground but in the end your logic/algorithm requires you to find where the feet landed in some way. When you are trying to do that footprint thing in another engine you will eventually learn how that can be done in that particular engine and soon you will find yourself at a point where you already climbed what we call "the learning curve" and start to feel comfortable with that engine. Getting to that comfort zone where the learning curve is behind you may take different amount of time in different engines, many things can slow you down and you may find it hard to wrap your head around some stuff but given that you gave enough time you will eventually get there.

It's not about the engine it's about knowing how to get what you want.
Posted By: Anonymous

Re: The answer to life, the universe and unity3d - 10/26/13 23:27

Quad thanks for your reply,

Quote:
It's not about the language it's about the idea and the logic. This is true for the programming in general.


I agree that programming is the use of and design of logic to achieve a idea or goal. Any newbie can copy and paste code they asked the forum to write for them. And advanced newbies can also modify pre-written code. And I do feel I am beyond both in having and understanding the creation and use of logic.

There is a simplicity to the 3dgs engine and LiteC that I'm am asking about. The first time I tried to learn how to program a win32 program -> All that craziness to just create a window ,Hell I still don't know what all that code is I just learned to copy and paste.

I never made the jump to Unity, got stop on the C# language and the perception by me that it took a lot more work to do what I could in 3dgs. But you are right, It's the learning curve I am avoiding and that is holding me to 3dgs. And so I'm asking the Rayne Team - Will they be giving some type of help that will ease my jump by using the skill I have learn in 3dgs. A move guide.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/10/13 06:42

First of all, sorry for the late response. In my defense, the post counter was at exactly 42... And I was visiting my girlfriend.
But I'm back, and ready to give Malice the answer he deserves!

Quad already got the basics covered, but to recap: Once you know one language, you know all of them (with the exception of Haskell, Erlang and Lisp (mom, look, I'm funny on the internet!)). What's important is to master the API that you have to deal with, the rest ist just sticking what you know together in a way that solves your problem. Basically that's what programming is all about, you have a set of tool, you know your goal, and then you try to find a solution that fits your tools and that you base on past experience. That's why it takes so long to become sufficiently good at programming, you just need to learn a lot of things that are everything but the language itself (which can be taught in week).

Well, I've mentioned it already, Rayne uses C++. The most modern flavour of C++, C++11, which is pretty fucking sweet, I have to say. With a different language come new paradigms, C++ heavily focuses on OOP, and so it's no surprise that programming for Rayne feels different than it does for Acknex.
On top of that, I would like to add that Rayne isn't as comfortable as Acknex is. It can't be, and quite frankly, we don't want it to be. Hacking the language and creating a bastard like Lite-C isn't our goal, sorry.

So, let's talk API for a second. We are working very hard on having a consistent API. We have coding guidelines and naming conventions that we follow internally, and we want Rayne to be as easy to pick up as possible. Once you got the basic naming conventions and concepts figured out, you can work with every piece of API that the engine offers you, and you will know right away how its formed and how it should be used. On top of that, there is going to be extensive documentation, not just of the classes Rayne has to offer, but also of core engine concepts, and there will also be example code.

However, there will be no transitioning guide for Gamestudio to Rayne. Why? First of all, there aren't enough people here and it's more than just a few lines that need to be changed. Sorry, but we have to be realistic here: We are three guys with a real life, we can't take time from actually developing the engine and put it into writing a transition guide. Yep, sucks, but there is only so much we can do. That doesn't mean we won't help you, if you encounter an actual problem, talk to us! But seriously, just do the tutorials, read the documentation and you are good to go!

I like your example of a creating a window (mainly because I was the sucker who had to write the code that abstracts away windows on Windows and Mac OS X), so here is how to create a "Hello Rayne" with a window.

First of all, you need a base class that inherits from RN::Application, and a function that creates an instance of it. Here you go:
Code:
// .h
namespace TG
{
	class Application : public RN::Application
	{
	public:
		Application();
	 	~Application() override;
		
		void Start() override;
	};
}

// .cpp
namespace TG
{
	Application::Application()
	{
		SetTitle("My Awesome Game");
	}
	
	Application::~Application()
	{}

	void Application::Start()
	{
		// Entry point!
	}
}

extern "C"
{
	RN::Application *RNApplicationCreate(RN::Kernel *kernel)
	{
		return static_cast<RN::Application *>(new TG::Application());
	}
}



Congratulations, you now have a 1024x768 window with black content on your screen and "My Awesome Game" as title. Exciting, isn't it? With this being done, let's talk about creating a level and a camera. There is no level_load(NULL), instead, you normally subclass the World class and implement your own logic in there, let's skip that for now and just create an empty world!

Code:
// .h
namespace TG
{
	class Application : public RN::Application
	{
	public:
		Application();
	 	~Application() override;
		
		void Start() override;
		void WillExit() override;
		
    private:
        RN::World *_world;
        RN::Camera *_camera;
	};
}

// .cpp
namespace TG
{
	Application::Application() :
		_world(nullptr)
	{
		SetTitle("My Awesome Game");
	}
	
	Application::~Application()
	{}

	void Application::Start()
	{
		_world = new RN::World("GenericSceneManager"); // Create the world, and let it use the generic scene manager
		
		// Let's create a skycube
		RN::Model *sky = RN::Model::WithSkyCube("textures/sky_up.png", "textures/sky_down.png", "textures/sky_left.png", "textures/sky_right.png", "textures/sky_front.png", "textures/sky_back.png");
		
		// Create a full screen camera		
		_camera = new Camera(RN::Vector2(), nullptr, RN::Camera::FlagDefaults);
		_camera->SetSky(sky);
	}
	
	void Application::WillExit()
	{
		// Clean up, because we are nice citizens
		delete _camera;
    		delete _world;
    }
}

extern "C"
{
	RN::Application *RNApplicationCreate(RN::Kernel *kernel)
	{
		return static_cast<RN::Application *>(new TG::Application());
	}
}



So, now you have a camera, a world and a skycube. Congratulations, you could technically burn it on a CD and sell it as the next Simulator game laugh

However, the last example goes slightly against the concepts of Rayne, though technically it is possible: Encapsulations. Unlike Lite-C were you basically litter the global namespace with all your stuff, Rayne focuses heavily on encapsulations. The Application class for example is designed to drive your applications, respond to events and in general just be the vehicle that drives the app. The game logic itself would be encapsulated in entities and a separate world subclass, which would then for example take care of creating the camera and cleaning the world up afterwards.

Anyways, I hope that gave a tiny bit of an idea of Rayne. If you still have questions, go ahead and ask!


Also, if you are still with me, here is a round of announcements!
1) We open sourced something!!! Wohoo, our commit bot. Yeah, boring, but there is more to come in the future: https://github.com/uberpixel/commit-bot
2) We are going to open source a tiny bit of the documentation and the repository that it's in in the upcoming week. Mostly to help us write it, because we would like to get your feedback on it!
3) We are planning on releasing a first beta at the end of the year. Stay tuned!
4) I'm going to double post in a few days unless someone posts first.
Posted By: Anonymous

Re: The answer to life, the universe and unity3d - 11/10/13 17:48

frown I see, This engine is aimed at a higher level of programmer(a trained one). Thank you for the reply JustSid. That's a unfair statemnt, I will try to choke down a beginners c++ book and then make a fair statement after trying to work with a release build.
Posted By: Quad

Re: The answer to life, the universe and unity3d - 11/11/13 00:58

Staying tuned.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/12/13 03:32

Originally Posted By: Malice
frown I see, This engine is aimed at a higher level of programmer(a trained one).

Well, yes and no. We are not going to sugar coat it, you need to know programming to use Rayne. Gamestudio makes the opposite claim, and, at least in my humble opinion, is lying in that regard. Templates only get you so far, and then... Well, it helps to know how things work and how they are put together to actually do anything meaningful with them.

But, don't let the different syntax and idioms fool you; Just because it's not what you are used to doesn't mean it's difficult. I think, and I might be alone in that regard, C++ is a very elegant language and which makes it easy to express things. It takes a bit of getting used to, especially when coming from (Lite-)C, but you can pick it up. I have especially trust in you being able to pick it up since you are already at the point where you realized that copy and pasting isn't doing shit for your knowledge and that coding is basically taking things you did in the past and applying them to your current problem/goal.

Also, here is a sneak peek into the documentation (the texts aren't final, but you get the idea). Thoughts?


Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/15/13 13:38

More open source? Fuck yeah, more open source!
We just released the logging engine we have written Rayne under the MIT license. Say hi to ratatoskr.

What is ratatoskr? Well, it's a std::cout/printf replacement, highly customizable and made for multithreaded applications, which is where it really shines. Oh, and it allows you to create your own custom logging engines, for example like the one we use in Rayne to create HTML based logs!

Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/19/13 19:47

Remember when I was talking about writing a blogpost about multithreading? Well, I did! Please read it carefully, tests will be handed out at the end of the year.

PS: How come we have so many self-proclaimed fans but I still have to tie my own shoes and triple post in this thread?
Posted By: Quad

Re: The answer to life, the universe and unity3d - 11/19/13 22:09

Oh my god, i had like 123546123 questions while reading the article but it appears i only have 2 question memory, so i will ask the random 2 ones that i still remember, before they are lost too.

1) Never used spinlocks so i assume they just keep the thread by doing nothing, so they do not have to give it back. Is that actually doing nothing? I mean is it just a loop that does nothing until a job is thrown at it? Like is it's computational complexity 0? If i fill the place with spinlocks it will just sit there and stall forever with no cpu heat, or can i fill it at all? It appears that i also forgot this question, now that i can't explain myself with the languages of man i know. Or is it because i do not know how to explain myself in any language - not because i forgot.This happens a lot. It's like trying to tell your dream to someone only to realize on the halfway you do not remember the rest.

2) About that sequentiality(sequentialness? no. -ok.). About the parts of game being sequential/deterministic thing : I understand you are only going to do things like streaming and resource loading and what-not in parallel threads right? I mean if you are going to update entities in parallel threads... i mean i just want to make sure when i move 2 cubes head-on directly in to each other i get the collision i want. No wait, head-on thing can work without telling me it does something else other than i think it does. When i move 2 cubes -but like really FAST and really small- in perpendicular paths where they are supposed to hit each other on the 2 path's intersection point, will any problems occur in such scenario? Or the parts of the article about ending up with floating point errors talking about this? Or you think having a lot of frames will compensate for that? While writing this i realize... I think regardless of engine updating entities in parallel or sequential order, i will always have that because there is no definitive limit to FAST? I mean they will never move at the same time either way. How does this even work in the real life?
And i also just realized none of this matters because we are still in the era where you always have like ~50ms lag at best in multi-player environment.


Does it look like i need help when i talk.(post.)

MY POINT BEING TOO MUCH JAVASCRIPT MAY BE BAD FOR ONE'S SANITY and ABILITY to COMMUNICATE PROPERLY. Please excuse my nonsense and know that i love you people.(Not plotting to kill 6.380.000.000 of the planet's population or anything like that.WITH RAYNE.)

3
Posted By: Slin

Re: The answer to life, the universe and unity3d - 11/20/13 01:08

About those particles moving at the speed of light and colliding (now I seriously wonder if their relative speed will be 2*c..., should have payed more attention to physics at school :P) in 2): It depends a lot on how you handle that collision. The naive approach would be to move entity foo first and entity bar second and after each movement, check if their is any intersection with another collider and get how far inside they are in the direction of the previous movement and then move them back accordingly.
Now with a sequential approach, foo will always reach his destination, while bar will always get stuck inside and be moved back. When doing the updates multithreaded however, it sometimes could also be the other way around, resulting in different positions for both. Or in the worst case, when both do the collision check at the same time, the collision would probably not be detected and they would stay inside each other and generate black holes or something. The speed part however is the real problem. Sequentially foo would just be placed somewhere far away first and then the same for bar without any collision, even if they should collide. Multithreading wouldnīt really make a difference.
The solution some physics engines hide as continuous collision detection is to stretch foo and bars bounding boxes along the whole way they are supposed to go and make intersection tests of those two bounding boxes and if they cross and according to their real speed and size would collide there, foo and bar would be placed accordingly. This behaviour should then be pretty much the same in sequential and multithreaded implementations, but multithreaded will need to synchronize their desired speed inbetween or do the calculation based on the previous speed. Thinking about it, sequential would also have to determine the speed of both before moving...

Sid will tell you more.

Quote:
(Not plotting to kill 6.380.000.000 of the planet's population or anything like that.WITH RAYNE.)

Good for you, because if you did, I am still mindfucked on how it would work with our goals for Rayne, which do not include the world and domination!

PS: I btw think that we DO update the entities multithreaded, at least in theory... and not sure how we handle updates depending on each other...
Posted By: Quad

Re: The answer to life, the universe and unity3d - 11/20/13 02:13

You hinted at some kind of black hole there.

FIRST OF ALL, that's about my PERSONAL goal of making the place a little less crowded so everyone has more room to do whatever it is that they do. My personal goal does not require anyone else's to be aligned with it nor it is exclusive of other's goals. And it's not for domination. How can ,do you suppose, one dominate DEAD people? They are dead and in peace not dominated and in misery. For short, my plans about the number of people on the planet is NONE OF YOUR BUSINESS.

Now about entity updates. As you can read from my previous post i already convinced myself it does not matter if it's parallel or sequential from the user stand point. By user i mean the one's using the engine to make a game, not the ones that just play that game. It only matters from engine developers' stand-point,obviously, because of completely different implementation. I suppose user's ways of moving the entities would not change by how the engine actually handles that movement, though maybe the results of may that movement slightly change, but it's so slight that it does not matter. What matters is one of these ways either performs a lot faster, or adding and maintaining the other in the engine's code-base is a lot easier(Maybe both in one them, if that's the case then PARTY, but it don't think it is in this instance). I am not sure if the performance gain is worth the complexity but, of course, you know better.

Oh and yes, I'd like Sid to tell me more.


I am guessing you are more on the graphics side and Sid covers the lower-level side?

3
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/20/13 13:06

Originally Posted By: Slin
our goals for Rayne, which do not include the world and domination!

Jesus, someone needs to re-read the mission statement...


Anyhow, let's cover spinlocks real quick. In Rayne they are implemented as an atomic flag that a thread compares and swap against a true value until it returns false. Here is pretty much the whole code:

Code:
void Lock()
{
	while(_flag.test_and_set(std::memory_order_acquire))
	{}
}



If you really want to put a computational complexity on it, then it's O(1) in the best case and O(&#8734;) in the worst. To give you a better answer, as long as the lock can't be acquired, the thread will burn 100% of all CPU cycles that it gets.
They really are only good if held for a minimal time, ie for less CPU cycles than the OS needs to schedule your thread out of and back to an active CPU. If in doubt, don't use a spinlock.


So, about entity updates. They are done in parallel, though you can tell the engine that your entity depends on the state of others so that it won't update until after its dependencies have been updated (a bit like PROC_LATE and PROC_EARLY in gstudio, but with more flexibility). That alone will, of course, not stop the engine from moving two entities into each other at the same time, because putting your entities in a dependency chain would be, quite frankly, stupid (unless your goal is to mitigate all performance improvements).

However, collision is a bad example since you ideally want to use something like bullet for these kinds of things. Rayne doesn't keep sufficient data for fast collision detection, nor do we want it to. There is a c_trace() equivalent, but it's slow and requires parts of the scene to be locked and the entities within it to synchronize with each other. Bullet on the other hand stores collision hulls and scenes in an ideal format for collision detection, and it also provides you with a multithreaded and GPU collision solver, and Rayne picks a renderer that is compatible with OpenCL, so ideally you want to use that path.

Anyhow, fast moving objects are a problem one way or the other, like Nils said, physics engines try to mitigate these problems using CCD, but in reality you want to keep tabs on your objects velocity and avoid small objects. Simulating bullets is a bad idea one way or the other, and should probably be avoided.

But moving away from moving entities around (see what I did there?), exchanging state between two objects is generally speaking not a concern. Though, you do have to do manual locking in these cases, unless you told the engine about the relationship between the entities (which you should in case of long running dependencies). Obviously Rayne doesn't have the required knowledge about your games execution to do this automatically, so you'll have to help it out manually there.
Usually though these things are more hierarchical, AI for example: Your have entities that are part of a squad and a squad manager that keeps tabs on them while the general AI manager keeps tabs on the squads and player. These hierarchies can be expressed by parent/child relationships and if they are, the engine will take care of updating them in the right order (ie parents are updated before any of their childs are updated, so childs accessing their parents or a parent accessing their childs during their update is guaranteed to work).
If you need it more sophisticated, for example because you want a birds eye view of everything happening, well, in this case you can just plug into the engines event tap: We need to do that too after all, and so there are interfaces for this. For example, the trigger zones are implemented that way: Instead of polling every entity every frame, it just waits to be notified about entities updating themselves in its vicinity (where vicinity is defined by the acting scene manager)

Quote:
Or the parts of the article about ending up with floating point errors talking about this? Or you think having a lot of frames will compensate for that?

No, the floating point errors are something different entirely. If you detach your movement from the FPS by multiplying it with the delta time, but the delta itself varies (because the frame are varying in length), then you will end up accumulating floating point errors in a different way each time you run your application. A solution to this is a fixed time step, not more frames.
Posted By: Anonymous

Re: The answer to life, the universe and unity3d - 11/21/13 02:09

Hey Sid, with Rayne's day-one support for VR I though this might be a good look for you guys. With Valve looking to put a foot in the VR future, than working with a dev team on a up coming engine like yours would be cool. A Small engine built with Valve VR in mind would be a big selling point.http://www.theverge.com/2013/11/19/51212...r-steam-support

Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/21/13 07:57

Indeed, the Valve VR solution sounds very promising (pretty much like everything Valve did in this year. Now they just need to release Half Life 3).

Anyways, from a developers standpoint, this is pretty much zero news right now. There is no SDK or actual hardware to work against, and especially something like a VR device should be tested with actual hardware. We are lucky in this regard because Nils has an Oculus Rift (and had it pretty much from the first day), so it was "kind of" easy to integrate into Rayne.
Let's see what the future brings though, I can't say anything definite right now, but let's see what they unveil in January.

Also, anyone want to hear a funny story? I lost the passphrase to my SSH keys and can't access the Rayne server nor any of the git repositories. And I know that Nils made some really exciting commits yesterday. Tl;dr: Always make backups kids (and then make sure you can actually use the backup to restore your system)

Edit: Generated a new pair of SSH keys and regained access to the server. Have another Sponza picture made with the new lighting engine in place (written by Nils, so everyone say "thank you Nils for putting your time into nice lights")
Posted By: Quad

Re: The answer to life, the universe and unity3d - 11/21/13 13:58

Since you regained access story is not funny anymore. I was like
HAHAHAHAHAHAHahahhaa hhmmm...

For the screenshot, I especially like the white pixels dancing on that poles. What are they?

You can read the previous sentence as "WHERE IS MY ANTIALIASING?"
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/23/13 20:30

Originally Posted By: Quad
You can read the previous sentence as "WHERE IS MY ANTIALIASING?"

Geez, you guys are a hard to please crowd. What's next? An actual release?!

But yeah, truth be told, not anti-aliasing support for now (and not because I can neither spell nor pronounce that word). The reason is that we use a pretty non standard approach when it comes to compositing the final image that's rendered on the screen. On the one hand that means that it's incredible easy to support colour correction shaders and colour blind modes (which you should! Seriously, people should take accessibility support way more serious), but on the other hand it means that things like anti-aliasing are harder.

It's not impossible, it just isn't in the rendering pipeline yet because, well, what can I say, we are lazy fucks.


But since it's saturday, and that means it's screenshot saturday, here is a collection of old screenshots. Starting with the ones we took after fucking up the rendering:



Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/23/13 20:36

Also, since saturday is basically the same as throwback thursday, here are the first ever made screenshots of Sponza (for a bug report with Apple because the gamma correction broke when rendering in certain ways. Nowadays we do gamma correction ourselves. Suck it, Apple!):


(Age: 9 months. You could literally have had a child in the time we took to increase texture quality and add lights into that level)

And last but not least, one of the very first actual screenshots ever made!


(Showing of the first incarnation of the post processing chain)

And last but not least, the very, very first screenshot ever made!

(Fun fact, the texture was loaded using a custom WebKit that rendered a hand made HTML page into a CoreGraphics context that was then loaded into OpenGL, because for some reason, I couldn't be arsed to write a texture loader)
Posted By: Superku

Re: The answer to life, the universe and unity3d - 11/23/13 20:39

Cool.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/24/13 09:35

Originally Posted By: Superku
Cool.

Thank you for subscribing to Rayne facts. Send "STOP" to continue!

We dug deeper into the screenshot stash, and we found MUCH more glitched rendering screenshots. We will continue with normal Rayne facts shortly, but for now we will have another round of Glitch facts!


This is the most boring one. Just a bit of broken SSAO


This one is wicked cool though! We used to render the scene with a depth pre-pass to minimize overdraw, however, the render chain was set up in a way that the character would move, drag the camera with it and the camera would then render the scene with a slight offset resulting in some fragments not passing the depth test.


Completely messed up particle rendering. The reason was that the particle emitter allocates a large enough VBO to hold the maximum number of particles, but only uses the first n entries of it for the active particles. The renderer didn't care about that and just rendered everything that was inside the VBO.


Something messed up the order of the upper half polygon that is used to composite the final image, resulting in this gradient bleeding into the image.

And now back to Rayne facts!
Fact #1: The first sprite rendered in Rayne was the Unity3d logo. We are easily entertained by ourselves.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 11/24/13 10:40

STOP
Posted By: HeelX

Re: The answer to life, the universe and unity3d - 11/24/13 14:29

Broken screenshots are better than nothing smile

Posted By: Quad

Re: The answer to life, the universe and unity3d - 11/24/13 14:34

Originally Posted By: JustSid




OH! The pinnacle of modern-art! LOVE IT!.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/24/13 22:15

Originally Posted By: HeelX
Broken screenshots are better than nothing smile

Broken screenshots are the best screenshots!

Originally Posted By: Quad
OH! The pinnacle of modern-art! LOVE IT!.

Buy your very own and absolutely exclusive print for just $1,000,000 or the equivalent in bitcoins!


I have some more broken screenshots for you guys, I promise they are going to be the last ones, not that you guys think we can only produce broken screenshots. More actual content coming soon, together with a few announcements for the very first Rayne release (which gets me all excited).

Here are the first two and their really fascinating story:



So, the first one is how it should look like, the second one is how it ended up being rendered (but only on my hardware). We aren't entirely sure what happened there, it makes no sense whatsoever and kept us busy for way too much time. The story is that the quad was rendered using a geometry shader, it was a bit subdivided, but just a quad, and we rendered two textures and the texture coordinates (the gradient) on it. Now, here is where things became interesting: If, and only if, there was a dynamic branch in the geometry shader, the first texture would magically disappear. Like, there was no trace whatsoever of this texture ever being looked up in the fragment shader. Everything else stayed the same. The second texture got rendered correctly, and the UV coordinates didn't become invalid for whatever reason.
There is still a open bug report that we filed with Apple about this, and an unanswered stack overflow question.

Well, we dropped the idea of emulating tessellation with geometry shaders anyways shortly after for performance reasons, so no idea if it's still broken or not. But that didn't stop rendering glitches to creep up on us for no reasons:


This is Sponza being broken. When looking at the scene from this perspective, and only from this one, the frame time would go up to multiple seconds, and the rendering was completely broken. The commit that made this problem appear was a fix for some input handling bug. There were no OpenGL errors, no amount of clean builds and cache flushing helped, we were baffled. We eventually fixed it by rewriting the renderer (which was on the agenda anyways).
The best bet for what happened would be a memory corruption bug, but it doesn't explain why it appeared in these circumstances.

Evidence supports this thesis though, this is from an actual memory corruption bug where we ended up overwriting over the end of an OpenGL buffer that was temporarily mapped into main memory. Pointers, not even once.
Posted By: Error014

Re: The answer to life, the universe and unity3d - 11/24/13 22:44

I, for one, really enjoy your bug-shots.

It's nice to know that you are, despite the rumors, also just mortal beings.

Plus, your behind-the-scenes writeups to them are fascinating, and really interesting. So thank you for that!
Posted By: sivan

Re: The answer to life, the universe and unity3d - 11/25/13 08:01

I like them too, especially this one: grin
Originally Posted By: JustSid

Fact #1: The first sprite rendered in Rayne was the Unity3d logo. We are easily entertained by ourselves.

they are something similar to what you can see at the end of Jackie Chan films laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/27/13 00:09

I'm proud to announce that we just won our first award over at gamedev.net!
The Image of the Day award for November 27th

We honestly don't know either. Some people...
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 11/27/13 00:56

Nice to see, but is there any special effect on the image? I can't see SSAO, DoF or any kind of shading here.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 11/27/13 01:02

Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/07/13 03:12

Today I worked on fixing some lighting issues and it turned out that our blender exporter didnīt export hard edges correctly and that our normalmaps had been transformed from gamma to linear space as if they needed it... The result was strange behaving shading. I fixed those issues and as a result the lighting looks a lot better now laugh
Also our "forest level" got an update:


We are btw always looking for good assets, especially whole scenes to make some nice screenshots, videos and maybe one day even a little tech demo. So in case you know someone who knows someone skilled with too much free time or just have something laying around yourself you are willing to share with us, please tell us! laugh

We also have a newsletter you can subscribe to (if you havenīt already) on our website, as we will definatly use it if there are any big news: http://rayne3d.com
Posted By: Quad

Re: The answer to life, the universe and unity3d - 12/07/13 10:44

[your domain does not resolve when there www. before rayne3d.com]
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/07/13 13:38

Yes, that's a hint to go with the damned time already and realize that it's not 1985 anymore.

Now please go another 24 hours or so with the time until the DNS update went through
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/07/13 17:26

looks nice. are they relatively high poly models resulting in only 40 fps? I would be interested in what features are exactly on/off in this scene (model instancing, terrain lod etc.).
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/07/13 17:41

Instancing and terrain LOD are off. I may or may not have broken the instancing, so I may or may not be responsible for the fact that it's just 40 FPS.

I'll consult with our lawyer to find out if I'm allowed to take responsibilities for shortcomings.
Posted By: Random

Re: The answer to life, the universe and unity3d - 12/07/13 19:08

So to your rayne engine.
Where can I buy it and how much does it cost?
Take my money and give me!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/07/13 20:06

Originally Posted By: Random
Where can I buy it and how much does it cost?

It is pay what you want, so it costs whatever you think it is worth it (or whatever you can pay for it, those two numbers aren't always the same). There is a catch though, and that is that you can't buy it. Yet.
We would rather work a month longer on it and give you something that is truly awesome, instead of selling you something that is more meh. We want something high quality, and that simply needs time. But feel free to subscribe to our newsletter and you will be notified when it's ready!
Posted By: gri

Re: The answer to life, the universe and unity3d - 12/12/13 12:52

I wish you big success with your engine.

Nowadays its a Rise and Fall like this one....
S2 engine

first hyped - then free - now dead.
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/13/13 07:56

maybe because they created a scipt language much worse than lite-c... using c++ C# java lua or whatever is probably a better way.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/18/13 11:29

Serious time, ladies!
Who would be interested to test drive the alpha? We need you to provide us with feedback, report bugs (that are going to be there, promised), and are not afraid of testing a lot of updates in a short amount of time (you don't have to test them all, but just testing it once for five minutes isn't going to help us).

When? January, right after you are done throwing up the new years meal
Reward? Fame(*) and a Rayne license (**)
Requirements? A computer. Some basic C++ knowledge. Internet access.
Motto? Stacktrace or it didn't happen. So yeah, you should also be able to submit stacktraces and repro steps.

Oh and just to be really clear: It's an alpha. Only stupid people would build a game based on alpha API. So yeah, essentially we are looking for free labour. Anyone? tongue

(*) Fame not included
(**) Worth $1 if you are a scum lord.
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 12/18/13 13:15

Me me me! laugh Finally!! laugh
Posted By: krial057

Re: The answer to life, the universe and unity3d - 12/18/13 13:27

Me too! laugh
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/18/13 13:30

from Jan I can surely make tests for you. this is my favourite engine testing month (since this year when I spent a romantic month with UDK). I hope my basic C++ knowledge would be enough to help you...
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 12/19/13 16:03

Count me in!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/21/13 04:23

Everyone of you should have gotten a message from me by now!

But that's not why I'm posting here. I'm posting here because I have exciting news that I can finally announce. We and Dexsoft teamed up and they provided us with models for our Techdemo. While we aren't just quite there yet to show that one off, we did already use a really small portions of their assets to improve our instancing scene. Just enjoy!








Edit: Apparently not everyone appreciates ~40mb worth of pngs... These are thumbnails now, click for un-resized awesomeness without stupid jpeg artifacts!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/21/13 04:23

Double posts because of image cap:




Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/21/13 08:59

"super awesome"!
great to see such a high resolution shadows on grass blades.
Posted By: oliver2s

Re: The answer to life, the universe and unity3d - 12/21/13 11:30

Looks really nice. What technique is used for shadows?
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 12/21/13 12:20

Hey!
The screenshots look really cool although i think the bloom is much to strong.

To continue the discussion from the WAYWO-thread:
How does your shader pipeline work? Auto generated shaders sounds nice, but what about custom shaders?
Posted By: Quad

Re: The answer to life, the universe and unity3d - 12/21/13 15:35

@SID: DID NOT GET ANY MESSAGES.
Posted By: EpsiloN

Re: The answer to life, the universe and unity3d - 12/21/13 16:31

Sid , the scene is one of the most realistic I've seen (in-game). Congratz laugh

The only thing better is Frostbite, but from what I keep seeing, you might best it soon...


PS.: Anyone getting offensive, this is just my opinion! HL2 looks good, but too 'fantasy-like'...
Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/22/13 01:39

Originally Posted By: oliver2s
Looks really nice. What technique is used for shadows?

There is like this one really amazing article on cascaded shadow mapping which I pretty much implemented into Rayne which I believe is the same article jcl followed for gamestudios shadows. But I am using my own math for a bit tighter fitting shadow depth maps than what at least gamestudio does and also some basic technique to get rid of any flickering when moving the camera. The result are quite high resolution and flicker free shadows. To speed up the rendering I also experimented with layered rendering which with the help of geometry shaders would allow to draw the shadow maps with triangle culling in just one rendering pass. But it turned out that the overhead of geometry shaders is extremely bad, slowing things down a lot.
For the surface acne issues I am using a so called "slope scale depth bias" which is an extremely simple to use OpenGL and also DirectX feature which is around for a long time already.
Shadow filtering is a bigger problem and currently not really solved. What is used in the screenshots is just 2x2 percentage closer filtering (actually a bit more thanks to some hardware feature), but anything bigger will get much too slow.

Originally Posted By: MasterQ32
Hey!
The screenshots look really cool although i think the bloom is much to strong.

To continue the discussion from the WAYWO-thread:
How does your shader pipeline work? Auto generated shaders sounds nice, but what about custom shaders?

No! Everything is better with more bloom laugh I often wish the real world had more of it, although I heard that there are some ways...

I always thought that Unity did it wrong and the only correct way to support shaders is the way gamestudio handles it. But working on our own serious engine now I realized that a good solution is much more complicated than this...
What we do provide are several shader files providing some kind of functionality like one for shadows, one to include the default matrices (which otherwise gets a bit ugly if the same shader is meant to support both, single mesh rendering and instanced rendering), one for shading, one for animations and so on. Then there is one big ugly default shader using those templates to implement lots of functionality like rendering with and without lighting, with and without normal map, with and without a texture, with and without fog and a lot more and all those features can be activated with preprocessor defines. Some of those defines are then set automatically from things the engine already knows when rendering (like the existence of lights in the scene, fog or also instancing and a few more) and others can be set by the user on a per material basis. Rayne will take those defines and compile all needed shader variations which are then used for rendering.
Also when loading our custom model format, which is able to specify if a texture is a diffuse texture, a normal map or a spec map or whatever, Rayne will automatically generate a material with fitting defines.
But if you donīt want to use our default shader you can of course just write your own and assign it to a material or change the default shader or do whatever else you want.
The cool thing, other than no need to rewrite everything again and again for only slightly different shaders is, that such defines can later be made accessible in our editor and the level designer can just turn shader features on and off in whatever way he wants and it will just work by still keeping everything as optimized as possible.

Originally Posted By: Quad
@SID: DID NOT GET ANY MESSAGES.

Since so far Sid is handling the alpha testing, I am sure he will get back to you soon (if he didnīt already) tongue.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/22/13 08:14

Originally Posted By: MasterQ32
The screenshots look really cool although i think the bloom is much to strong.

U wot m8?!

Originally Posted By: Quad
@SID: DID NOT GET ANY MESSAGES.

@QUAD: DID NOT GET ANY INTEREST FROM YOU TO TEST DRIVE THE ALPHA.
Biggest fan my ass! tongue
Posted By: oliver2s

Re: The answer to life, the universe and unity3d - 12/22/13 10:58

Originally Posted By: Slin
But I am using my own math for a bit tighter fitting shadow depth maps than what at least gamestudio does and also some basic technique to get rid of any flickering when moving the camera. The result are quite high resolution and flicker free shadows. To speed up the rendering I also experimented with layered rendering which with the help of geometry shaders would allow to draw the shadow maps with triangle culling in just one rendering pass. But it turned out that the overhead of geometry shaders is extremely bad, slowing things down a lot.
For the surface acne issues I am using a so called "slope scale depth bias" which is an extremely simple to use OpenGL and also DirectX feature which is around for a long time already.
Shadow filtering is a bigger problem and currently not really solved. What is used in the screenshots is just 2x2 percentage closer filtering (actually a bit more thanks to some hardware feature), but anything bigger will get much too slow.


Didn't you release this shadow for 3DGS sometime ago (can't find the thread a the moment).
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 12/22/13 14:21

Quote:
The screenshots look really cool although i think the bloom is much to strong.
I agree... the bloom needs to be calibrated better.
but except for the bloom i really like it wink
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/22/13 14:33

this is the engine of the future, so they adjusted the bloom to the future Sun ray strength. grin
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/22/13 14:33

We got it, you guys want more bloom!

A noble request that we are going to be happy to oblige to! Spoiler alert for the next Screenshot Saturday: White screenshots!
I hope you look as much forward to it as we do laugh

#morebloomequalsmorebetter
#stopthebloomhate
#votebloomforabrightfuture
#nofilter
#360noscope
#onlyracistpeoplehatebloom
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 12/22/13 14:36

I'm not saying that a lot of bloom sucks but your's could use better calibration tongue
Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/22/13 15:08

Originally Posted By: oliver2s
Didn't you release this shadow for 3DGS sometime ago (can't find the thread a the moment).

I posted the frustum stuff into some shadow mapping thread from sivan a few months ago. But for some reason there were some issues not sure where I messed that up. It works quite perfect in Rayne so I probably just made some little mistake when converting the code.

Originally Posted By: Kartoffel
I'm not saying that a lot of bloom sucks but your's could use better calibration tongue

What do you mean by better calibration? Sure the sky currently causes some messed up bloom, but other than that?
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 12/22/13 16:21

@slin: it seems like the bloom threshold is too low and the intensity is too high.
also the bloom looks a bit like squares (wrong blur sample weights?)

...but yeah it's currently just the sky.
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/22/13 16:38

Originally Posted By: Slin
I posted the frustum stuff into some shadow mapping thread from sivan a few months ago. But for some reason there were some issues not sure where I messed that up. It works quite perfect in Rayne so I probably just made some little mistake when converting the code.

I think finally it was repaired, I just replied very late to your correction post (somehow I had not seen it in time - maybe because of my high bloom settings), but it currently works fine in my latest improved pssm thread in contributions section.
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 12/22/13 19:22

I love those screenshots. Did you convert the models to an own format or do you support some public ones now?
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 12/22/13 19:36

i bet they're not using their own format... this would just make things more complicated
Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/22/13 22:08

no one wants to use a public format for model loading (except maybe sid...) as that will always be a lot slower. Those are using our own format wich we can load several times faster than it would be possible with any of the commonly used ones. I am quite sure that unity uses a custom format, same with gamestudio, ogre, cryengine and most other engines out there. Because it really is worth it.
So far I converted all models per hand using a blender exporter I wrote but in the future we will provide some other ways to convert all major formats to our custom one.
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 12/22/13 22:11

Okay if there exists a converter, I'm fine laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/26/13 18:38


Nothing else to add...


Well, actually, to bring the topic of model formats back: Nils implemented an Assimp based module in the past few days that allows you to just throw whatever model you want at Rayne and it will most likely stick. Of course, it's not as fast as our format, but for quick prototyping, this is probably definitely easier to use.
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 12/26/13 18:48

will it be possible to use custom object / postprocessing shaders?

also, do you know when we can expect a version to try out ourselves?
Posted By: sivan

Re: The answer to life, the universe and unity3d - 12/26/13 18:54

if I rememebr well assimp can handle gamestudio mdl7 beside many others... once I put this to the future thread of this forum suggesting to integrate it into gamestudio.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/26/13 20:26

Originally Posted By: Kartoffel
will it be possible to use custom object / postprocessing shaders?


Originally Posted By: Slin

But if you donīt want to use our default shader you can of course just write your own and assign it to a material or change the default shader or do whatever else you want.


Originally Posted By: Kartoffel
also, do you know when we can expect a version to try out ourselves?

The first alpha will be send to testers on january first if everything works out as planned.
Over the next couple of months we will probably need some more testers, so you either get to try it then or you will have to be buy it when we are ready

Originally Posted By: sivan
if I rememebr well assimp can handle gamestudio mdl7 beside many others...

In theory it supports many file formats, but often with restrictions. Collada worked great so far, a couple other less common ones too but others donīt work or mess things up or whatever. Otheres like fbx and c4d depend on third party sdks and for example fbx does not support animations. Also blend files donīt work, at least not with the latest blender version.
So as you can see, in theory it is quite perfect but in reality all those formats are really hard to maintain, to support all their features and to combine it into one general solution like assimp.
At the moment we only support static meshes with assimp, but I am working on animations right now and then an exporter to our own format, as well as some ways to automatically try to find and assign unassigned normal and spec maps and lod stages by searching for some patterns in the file names.

Also if Iīve got enough time till the alpha I will write an importer for texture files using imagemagick and hopefully also some easy to use useful tools to convert textures and models into better suited formats.

Edit: in case no one noticed: the screenshot above is one of the first screenshots showing Rayne running on windows, which is what Sid worked on for the last three days or so laugh
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 12/26/13 21:48

Sid works with ... WINDOWS?!?!
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 12/26/13 21:59

@Sid: Congratulations, so you have a 3-platform support now? Or is any mobile OS supported as well?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/26/13 23:09

Originally Posted By: alibaba
Sid works with ... WINDOWS?!?!

Eh, the worst part was having to google how to restart that bloody machine. The rest went relatively straight forward laugh

@MasterQ32: That makes 2 and a half supported systems. If anyone finds Tilman, tell him that Linux ain't working.

The Alpha is going to only have Windows and OS X, mostly because we know how to use these systems and are able to help with them. It also makes it easier on us to distribute nightly builds and support in general. But Linux and iOS and Android are definitely still coming up.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 12/26/13 23:14

Thanks for clearing it up. Nice to see that you did overcome your windows compiler problems. How have you solved it? Workaround code or did the wonder of an compiler update happen?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/26/13 23:46

Both. Some of the stuff we needed was thankfully added in Visual Studio 2013. Stuff like constexpr and noexcept has special compiler switches, some stuff is just flat out our own due to missing support (fixed width types).
The biggest problem honestly was that some things were supposed to be implemented, but then we ended up running into some strange bug... Especially when it came to rvalues, move semantics and (perfect-)forwarding. Oh dear, that was fun.

There's no way to get it running on VS2012 due to missing core language support, but for VS2013 we could work around every obstacle that was left.
That means that, if you want to use Rayne, you'll have to switch to VS2013 as well because of ABI constraints and header that require it, but that shouldn't be that much of a problem I guess.

Edit3: I would love to actually go ahead and switch to C++14/C++1y. It seriously does allow for some fucking neato stuff, and the support would be there in Clang. Function lifting thanks to function return type deduction... Man, that would be sweet as fuck (come to think of it, maybe you can actually do something with decltype() and function templates). But yeah, the future for C++ looks amazing, and C++11 definitely feels like a whole new language. I wish adoption and support for new standards would be much faster, though adoption is inherently tied to support.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 12/30/13 21:28

Hands up, who would like to be either Slin or me right now?



Oh, and by the way, we also have a forum now: http://rayne3d.com/community
Nothing exciting, especially if you are not on our super awesome alpha tester list (and even then, there won't be much fun until the 1st), but hey, details, eh?

(The download links in there are real btw).

Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/01/14 21:27

No one? Well, fuck you guys! tongue

Our alpha testers should have an email with their login credentials now. The first Rayne alpha is released. It was a seriously long night and a much longer day to push the release out today. We actually thought we would be super awesomely in time, and then the last minute bugs and stuff swept all over us.

Not much to say otherwise, over 2000 commits and over a year of development and we just made it into Alpha. It's not too bad of an alpha, but it's definitely not a beta yet; the windows toolchain is kind of crazy... But fuck yeah, we took less time for that than the last Gamestudio minor release took. Take that JCL!

Questions anyone?

Oh: If you haven't got an email from us but got a message from me telling you that you are part of the alpha testers: Check your spam folder and make sure that you allow emails from admin@rayne3d.com. If you still can't find it, message me via PM!
Posted By: sivan

Re: The answer to life, the universe and unity3d - 01/01/14 22:34

first of all, congratulation to both of you!

I'm just upgrading from vs2010 to 2013. I hope nothing can go wrong, then I'll test it in the next days. or is it a wise thing to install 2013 beside 2010? Edit: okay I read they should work fine.
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 01/02/14 11:59

Congrats! My question would be:
Where to start?
Is there any manual or something?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/02/14 12:23

Join the forum!
It already has some useful information, and the manual needs to be updated to the latest API changes before we will publish it (besides of the fact that a lot is still missing anyways).

Also, load the sample game, start it in Release mode (don't report bugs about it crashing in debug mode, we know that :p), tinker around with it. Read the Headers (in \\Visual Studio 12\\VC\\include\\Rayne).

Ask questions in our Forum!
Posted By: Quad

Re: The answer to life, the universe and unity3d - 01/02/14 14:28

Downloading VS 2013 from MSDNAA. Forum is empty for me?
Posted By: sivan

Re: The answer to life, the universe and unity3d - 01/02/14 18:58

-
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/02/14 19:00

It just copies the files. If you run it as admin, everything is fine.

Start the example game in Release mode (yes, I repeat myself. But so far everyone has reported it as bug, despite numerous mentions in the /sdk page and the readme :p)

Edit: Also for the sake of not spamming this topic with stuff that is irrelevant for anyone not participating in the alpha: Anyone mind if stuff like this is moved into our forum? Unless the majority prefers it to stay here, in which case... I don't mind you guys bumping this thread tongue

Edit 2: Just to clarify, you are under no NDA whatsoever. You can freely post in this thread or anywhere else about how badly Rayne sucks or how awesome it is. But this is probably not the right thread for support level stuff (especially for our embarrassingly bad Windows toolchain :p)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/03/14 02:09

Don't cry, but there have been more Rayne updates in 2013 and 2014 than Gamestudio (public) updates:


Yeah, I'm kind of abusing that thread now for all our testers that don't visit our forum or the SDK page (shame on you) (also to publicly diss our competitor. Ha!)


Jokes aside, even if you are not an Alpha tester, check out our documentation! There are about a hundred classes missing, it's incomplete, the guides are empty... BUT! It should give you an idea about what to expect from us in terms of documentation quality. Feedback would be very much appreciated.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 01/03/14 09:59

Wonderful, i love those sites with TBA...

No really, the documentation looks solid and is on a good way. Looking forward for your first public release!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/07/14 02:41

We just released Rayne 0.5.2!
It's moving fast, and it's moving forwards and onwards!

Highlights are the new OpenGL command engine, bug fixes, API cleanups, awesomeness!
The next version is coming probably around the weekend, and we will focus on the documentation in the meantime.

And since we didn't post Screenshots in quite some time, here are two of the Bullet example included in the SDK:

Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 01/07/14 06:44

Very nice!

P.S. 2 things to improve:
- Configure a SSO for your site and forum.
- Link the documentation in your site's menu.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/07/14 18:09

Originally Posted By: PadMalcom
P.S. 2 things to improve:
- Configure a SSO for your site and forum.
- Link the documentation in your site's menu.


The first one is going to be a bit tricky since the website itself is written in node.js while the forum is an off the shelves phpBB. Although we do have access to the php binary from within node, and they have an API. But yeah, we also have a wiki (although not a public one) which should also be part of the SSO... We have some ideas, but for now this has seriously low priority.

The second one will be done once there is more documentation available laugh
Posted By: Quad

Re: The answer to life, the universe and unity3d - 01/07/14 21:49

You infact do not need any access to any php binary for sso, i once made a quick kludge for node+smf, it was simply using SMF username/passwords for login and seting whatever cookies smf is seting. (since smf/phpbb is open source figuring out what they do on login is pretty easy)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/09/14 23:17

It ain't that easy, mostly because of different access control schemes, different databases and the fact that we want to keep both independent and updatable. So we would really prefer the route via the official API and just link the accounts together in Drizzle (our websites name. Shut up, we like the rain theme, okay?).

Anyhow, in the meantime... We released an awesome new update to Rayne 0.5.3!
It's a huge bug fix release, pretty much what we've spend all the past few days on. Some really nasty bugs have been fixed that only showed up in rare occasions but were show stoppers nonetheless, and it's all smooth and awesome now (famous last words :p).

But we also got time for some new features! World loading is now awesome, doesn't block the main thread anymore, and coupled with the new progress reporting API and the sexy new progress indicator UI view, you can pull something like this off in under 80 lines of codes. Boom!


It's live updating... Like, as things happen, not just every couple of frames (hey Source engine, we are looking at you!)
Posted By: Rei_Ayanami

Re: The answer to life, the universe and unity3d - 01/10/14 14:50

Sexy!
Posted By: Slin

Re: The answer to life, the universe and unity3d - 01/10/14 15:24

Amazing (Edit: and sexy) animation sample:

There are 100 of those randomly walking, running or standing around with smooth blending between animations.
Posted By: Superku

Re: The answer to life, the universe and unity3d - 01/10/14 15:41

Why not add some simple flocking behavior and make the scene even cooler with a herd of those running around where randomly every now and then one stops and plays other animations.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 01/10/14 15:52

I could do that, but it is supposed to be a sample for others that want to implement animations and for that purpose it usually doesnīt help to add more than the basic functionality.
But there will of course be a much more advanced general game demo in the future.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/16/14 19:14

Visibly not much has changed, but damn, Nils, I love your shadows so fucking much <3

Also FXAA because apparently you guys can't view screens without anti aliasing or your eyes fall out or something like that.

Posted By: alibaba

Re: The answer to life, the universe and unity3d - 01/16/14 23:02

Wow! This really comes close to some AAA titles graphics!
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 01/17/14 11:07

Quote:
Your website is incredibly uncreative -- Nils' Girlfriend

Guess we are fucked now. Here is to our impending bankruptcy. -- Unity3d CEO

We prefer Unity3d to create our DLCs and microtransactions. -- EA CEO

, grin

good stuff, and long time I heard about OpenGL
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/21/14 00:09

Good news everyone!
We released the sixth Rayne alpha release yesterday, we have great plans for the upcoming 0.6.x release series, which will include our package manager, terrain system and other awesome stuff.

But, we aren't lazy! There is now awesome atmospheric scattering, and screen capturing directly build into Rayne. So, what better thing to do than putting both of them together and create a jif? Right, nothing better to do:


And here are some normal screenshots with more quality and resolution and stuff like that:




Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/21/14 19:15

Okay, we got it, you guys don't like tiny jifs. Sadly, we couldn't upload the 3 Gb full HD jif... However, we managed to figure out how to use ffmpeg and exported a sexy h.264 video in 1080p. Then, we went to a library and borrowed a book that explains how to use the internet and upload videos to youtube, then we somehow spelled youtube wrong and long story short, we now have a video on Vimeo showing our atmospheric scattering:
Posted By: Superku

Re: The answer to life, the universe and unity3d - 01/21/14 19:19

Amazing! <3
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 01/21/14 19:26

Ich glaube, ich werde mir "I <3 Rayne" auf die Brust rasieren.
Posted By: oliver2s

Re: The answer to life, the universe and unity3d - 01/21/14 19:27

Are the ambient and sun colors calculated or are they set manually?
Posted By: Uhrwerk

Re: The answer to life, the universe and unity3d - 01/21/14 20:40

Two words: Awe some! wink
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/24/14 00:05

Originally Posted By: alibaba
Ich glaube, ich werde mir "I <3 Rayne" auf die Brust rasieren.

Pics or it didn't happen!

Originally Posted By: oliver2s
Are the ambient and sun colors calculated or are they set manually?

They are set manually. Mostly to achieve custom ambient/temperature/fog gradients depending on the mood you want in your level. Computing this at runtime would also cost a lot of performance, and that's simply not worth it.

Edit: By the way, happy belated birthday! laugh

By the way, we've finally updated our website laugh
New texts, screenshots, and awesomeness! Except of the features site... Because we are lazy bastards and that requires making screenshots and we are busy watching the sun :3

There is also a new blog post explaining where Rayne is going in the future: http://rayne3d.com/blog/01-23-2014-the-state-of-rayne-and-its-future
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 01/25/14 11:41

Great progress you're making there, this looks extremely promising.
From what I've seen so far, this seems exactly what the market is missing: A modern, powerful yet lightweight alternative both to open source graphics libraries like Irrlicht and Ogre3D as well as to expensive and/or inflexible, rigid packages like Unity, UDK and, well, Acknex.
Looking forward to weekly updates, and I'd totally love it if these would get quite technical.

(btw, the sentence "The techdemo however will require a level editor, which is also something we are working." lacks an "on" at the end, just mentioning it because it really stands out regarding the otherwise extremely enjoyable writing style :))
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/28/14 03:05

Originally Posted By: the_clown
From what I've seen so far, this seems exactly what the market is missing: A modern, powerful yet lightweight alternative both to open source graphics libraries like Irrlicht and Ogre3D as well as to expensive and/or inflexible, rigid packages like Unity, UDK and, well, Acknex.

Thanks! That's exactly what we are going for laugh

We are currently busy writing lots and lots of documentation and cleaning up old pieces of the codebase. That limits us a tiny bit in regards to what we can show, because, well, there isn't much new stuff getting added, but hopefully that makes the next release much much easier to use for everyone (and pushes the API a bit more into a stable direction).

However, we can't not have a new screenshot, so here is something that wasn't possible before, but is possible now thanks to the refactoring of materials:

(PS: This kills the framerate)
Posted By: Quad

Re: The answer to life, the universe and unity3d - 01/28/14 06:51

what's up with the black-red-yellow-white lines?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/28/14 07:21

It's our way of patriotism: By default, Rayne will render the German flag in the background.

(Might just be the Skycube and atmospheric scattering though... No one knows, it runs on magic, you can't explain these things)
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 01/28/14 11:29

Question (digging through the first 14 pages of this thread and nearly all of your blog posts and feature lists didn't deliver the desired answer so I figured it'd be quicker to just ask here):

Is there audio yet?
Posted By: Rei_Ayanami

Re: The answer to life, the universe and unity3d - 01/28/14 20:18

Originally Posted By: JustSid
It's our way of patriotism: By default, Rayne will render the German flag in the background.


Not using Black-White-Red, are you even a patriot... tongue
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/28/14 22:29

Originally Posted By: Rei_Ayanami
Not using Black-White-Red, are you even a patriot... tongue

Uhh... that comment might get misinterpreted badly (and here I was thinking my comment was already close to the edge).

Originally Posted By: the_clown
Is there audio yet?

Yes! Well, not directly in the published version, but we do have an OpenAL wrapper and OggVorbis resource loader module that we wrote for Occluded. They need some de-dusting and cleanup, which is why we haven't packaged them yet, but the long answer is: Yes, audio is there.
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 01/29/14 06:22

I just downloaded the last update. Could you include the version number in your 7z file? That'd be cool. And still there is no link on your page to the documentation! laugh
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 01/29/14 15:05

Is there Network yet?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 01/29/14 18:36

Originally Posted By: PadMalcom
And still there is no link on your page to the documentation! laugh

Yes. That link will be added when we are ready to link something!

Originally Posted By: alibaba
Is there Network yet?

No. But if someone were to implement it, they should probably look into the RN::SceneNodeAttachment class to synchronize scene node states across the network tongue
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/02/14 19:28

Do you guys already know when we can expect something like an open alpha/beta to play around with?

edit: also I'd like to know if features like collisions ( and maybe tesselation laugh ) will be implemented in the future.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/02/14 19:54

Open beta will still take several months. The big things that are still missing for that is terrain, an editor and documentation. At the moment we are working on the documentation which will probably take until the end of the month and while there was already lots of preparation for the editor it will still take a lot of time.

What do you mean by collisions?
In theory tesselation shaders are supported, but we did not yet get to testing them.
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/02/14 20:01

Oh, okay... frown
well, I guess I'll have to wait then smirk

Quote:
What do you mean by collisions?
I just mean a simple collision system which could be used for player movement or bullet impacts.
(like acknex's c_move / _trace)
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/02/14 20:35

Well, collision handling is what physics engines are designed for, so naturally they do a great job at it.
Our bullet module has ray cast functionality (like c_trace) and a basic character controller, which tbh does a lot more than just c_move, but with the same result.
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/03/14 16:28

I See, thanks for the information laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/03/14 16:32

Sooo, remember this weekly update thing?
Well, it's been almost two weeks. So here is the Rayne weekly devblog. Have fun reading! And for our illiterate users: Have fun looking at the squiggly lines laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/06/14 08:31

Okay, alright, we got it. You ungrateful bunch aren't entertained by blog posts or documentation.
Well, Nils is literally throwing away his university degree right now just to make you happy, so you better be entertained already!

Have some tessellation. Because that's what modern engines can do.




Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/06/14 09:21

Looks incredibly good.
Blog post is nice, too, I guess there'll be more hollah about more technical posts (not to say you shouldn't post about stuff like documentation and such, I find that enjoyable to read, too).
Posted By: mk_1

Re: The answer to life, the universe and unity3d - 02/06/14 10:13



Looking good
Posted By: sivan

Re: The answer to life, the universe and unity3d - 02/06/14 10:33

I badly need a fucking working ati driver...
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/06/14 19:08

Originally Posted By: the_clown
Blog post is nice, too, I guess there'll be more hollah about more technical posts

Yes! There are some seriously cool things worth talking about, for example a few changes we introduced this week that cut branch miss predictions in half and also lowered the total amount of retired branches, allowing for more CPU cycles to be available to the game.

Stuff like this in general is really interesting, because usually you are discouraged from doing micro-optimizations, but in our case there are some seriously optimized classes already which only profit from micro optimizations anymore. And thanks to the PMC in Intel CPUs it's now possible to profile for these low level events. Really cool and not something you usually see.

Also, the whole tessellation system now and the dynamic shader system in general, really cool technical things and easy to use, but incredibly powerful.

tl;dr: We do have a lot of technical stuff to talk about, but want to keep the update blog posts relevant to what we did and what we are currently being busy with. So last week that was documentation. This week it's documentation. And next week world domination... Or something like that anyways tongue

Originally Posted By: sivan
I badly need a fucking working ati driver...

Hell yes you do!
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/07/14 20:47

Software engineering related question incoming, I suppose you implemented the visitor pattern in a way such that none of your node subclasses actually performs calls to opengl, but instead the renderer just calls the appropriate method to render a node if it should be rendered, and is the only class making actual opengl calls?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/08/14 06:05

Originally Posted By: the_clown
Software engineering related question incoming, I suppose you implemented the visitor pattern in a way such that none of your node subclasses actually performs calls to opengl, but instead the renderer just calls the appropriate method to render a node if it should be rendered, and is the only class making actual opengl calls?


Yes, and no. The scene nodes don't render themselves but tell the renderer what to do, so far, so "yes". "No", because the renderer isn't the only thing that does OpenGL calls. The light manager for example makes them too, which granted, you can think of an extension to the renderer itself. But the texture classes, the shader class, the shader cache... All these classes make the OpenGL calls themselves, mainly because the renderer does exactly what its name suggests: Rendering.


Anyways, it's Saturday... And for some reason people associate that with screenshots. So we figured, why not? Right? Right!





Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/08/14 09:03

Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/08/14 09:16

Originally Posted By: JustSid

Yes, and no. The scene nodes don't render themselves but tell the renderer what to do, so far, so "yes". "No", because the renderer isn't the only thing that does OpenGL calls. The light manager for example makes them too, which granted, you can think of an extension to the renderer itself. But the texture classes, the shader class, the shader cache... All these classes make the OpenGL calls themselves, mainly because the renderer does exactly what its name suggests: Rendering.



Ah, I see.
Posted By: Error014

Re: The answer to life, the universe and unity3d - 02/08/14 12:07

Real talk, these last shots and the tesselation-shots simply cry out for a nice video with the camera flying around through this scene.

It looks so pretty!
Posted By: Quad

Re: The answer to life, the universe and unity3d - 02/08/14 12:13

It is so PRETTY, yes.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/08/14 23:07

Originally Posted By: Kartoffel

Yeah? Then why don't you ask as if you can get alpha access?! Because you can... If you'd ask us tongue

Originally Posted By: Error014
Real talk, these last shots and the tesselation-shots simply cry out for a nice video with the camera flying around through this scene.

Well, yes, but it's screenshot saturday, not video monday... Jeez, some people here.
There will be a video though... Don't you worry child
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/09/14 08:45

Okay, so Nils is going to hate me for this, but... Rayne is dead and will be open sourced...
Nah, just kidding (suck it, Unity!). But he implemented SAO and I'm going to show it off now because he is sleeping but FUCKING HELL IT'S BEAUTIFUL GOD FUCKING DAMNIT, I can't not share it.

I'm just glad I don't have to throw my own money at myself to buy Rayne. Yup, I'm that arrogant.





The last picture is here without the SAO, so you can tab between them and see the difference.
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/09/14 09:52

looks nice!

but ive got two questions:
- which resolution and how much samples per pixel were used for the ssao?
- what technique are you using?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/09/14 09:57

- Fullscreen (1680x1050) and 11 samples... If I understand this code right. Fucked if I know, really.
- SAO
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 02/09/14 10:12

Originally Posted By: JustSid
Okay, so Nils is going to hate me for this, but... Rayne is dead and will be open sourced...


Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/09/14 10:12

ah, okay thanks.
(I think Nils has to answer the second question (no offense :P))

just wanted to compare it to the ssao shader i've written in the past few days:
(beware of ugly grass lighting)


its using 6 samples at fullscreen resolution and a 4 sample blur filter.
(more samples are possible aswell, but at some point it just kills the framerate)
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/09/14 18:11

Originally Posted By: Kartoffel
(I think Nils has to answer the second question (no offense :P))

Actually, Sid gave you a perfectly good answer.... We use SAO, which is short for Scalable Ambient Obscurance: http://graphics.cs.williams.edu/papers/SAOHPG12/
It is pretty much plug and play and comes with an amazing quality but on the other hand my mobile graphics card doesnīt like it too much tongue
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/09/14 19:53

ah thanks, looks interesting
( I just asked because I googled SAO ambient occlusion and couldn't find anything about it grin )
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/11/14 02:09

Aaaaaand it is time for our next weekly blogpost.
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 02/12/14 11:43

Uh didn't know that there were no shader files in OpenGL!
Posted By: ventilator

Re: The answer to life, the universe and unity3d - 02/12/14 12:00

bigger screenshot of the tesselation tests please! laugh

i am impressed by your skills and your engine.

i just don't like c++ so it would be really cool if there also were a binding to a scripting language later. laugh
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/12/14 12:24


Posted By: ventilator

Re: The answer to life, the universe and unity3d - 02/12/14 12:32

thanks!

must be pretty annoying to walk on a road like that. laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/14/14 11:36

Originally Posted By: ventilator
must be pretty annoying to walk on a road like that. laugh

We asked one of the towns people, they said it was okay as long as no wheelbarrows are involved. They also hate the fact that the tavern is empty.

But at least they have a pretty place to live in!





Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/14/14 11:37

Also, more atmospheric scattering... Just imagine it's a video/gif! Show some creativity folks tongue






Also: Nils wrote an awesome blogpost about displacement map generation in Blender! Check it out, it's awesome: http://rayne3d.com/blog/02-14-2014-how-t...re-with-blender
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 15:39

looks great, will this demolevel be available for testing?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/14/14 16:15

No. This is our internal test level where we just play around and see how things go.

We will, however, publish a somewhat larger level with a similar style as our techdemo, but we've got to first build that and then work out some licensing issues (since it's also intended to be published in its source form)
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 16:38

ah, okay

sorry but I've got another question grin :
I'm currently playing around with the shaders and I'd like to know where the lighting and the surface textures are combined (somehow I can't find it...)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/14/14 16:40

rn_Texture1~150.fsh line 100 and 113.
We've got a forum for these kinds of questions though, just saying tongue
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 16:41

thanks again laugh
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 18:02

playing around with the existing stuff works pretty good so far:


but again some questions (sorry :S)
Do you know when we can expect an example on how to use tesselation and ssao?
I tried to access the camera's position in the Texture1-frag. shader but it didn't work... do I have to pass the vector to the shader manually?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 02/14/14 18:07

Seriously, ask your questions on our forum (General development) and I will answer you there. Thats kinda what we got the forum for
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 18:11

yeah, sorry >_>
Posted By: Superku

Re: The answer to life, the universe and unity3d - 02/14/14 18:42

Wow, this shots literally blow my balls off! Even more impressive when it's no slideshow but runs at a decent framerate - does it?
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 02/14/14 19:01

I'm not sure whose screenshot(s) you're talking about, but the scene I posted does run at a decent framerate (I don't know how much exactly, but it's not less than 60 fps)

However, I'm not sure how fast it is on an older machine (I think the grass shadows need the most processing power)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/17/14 18:38

We've heard in the gutters, a faint rumor about the demise of Rayne. "They pulled a Lotti and went into electronic trading", "They don't care about us anymore", and similar were muttered on the street under ones breath....
But then: Bam! After spending day and night in their Workshop, they released Rayne 0.5.6, silencing the sceptics once and for all.

This release was actually meant to be released on saturday already, but a stupid memory leak kept us busy over the weekend. It's fixed now, and we now have a heavily refactored Rayne with the first draft of the documentation, performance improvements, SSAO, awesomeness and other cool things.

tl;dr: If you couldn't already tell after the last screenshot saturday, we are alive and kicking! Unlike Gamestudio, which is still dead tongue
Posted By: Quad

Re: The answer to life, the universe and unity3d - 02/17/14 18:56

that is some release,alright. gotta check up on it and go all nazi on spelling errors in docs.
Posted By: pararealist

Re: The answer to life, the universe and unity3d - 02/18/14 14:04

All right, All right, it's one thing to advertise on a "competitor?" website, but is it not cheeky to say that they are dead too?(even if it is true). Getting ready to upgrade my PC so i can use c++(still on WinXp) and you are the reason for costing me so much money. Shame on you.
Posted By: mk_1

Re: The answer to life, the universe and unity3d - 02/18/14 16:33

Originally Posted By: pararealist
All right, All right, it's one thing to advertise on a "competitor?" website, but is it not cheeky to say that they are dead too?(even if it is true). Getting ready to upgrade my PC so i can use c++(still on WinXp) and you are the reason for costing me so much money. Shame on you.

It's Sid. So yes, it's cheeky, but it's Sid. Also, A8 seems pretty dead (as it has been for the last five years or so wink )
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 02/18/14 18:32

Slowly and silently this thread became the first one I'm looking into when I open the GS forum laugh
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/19/14 11:30

Originally Posted By: pararealist
All right, All right, it's one thing to advertise on a "competitor?" website, but is it not cheeky to say that they are dead too?(even if it is true).

Ahem, please allow me to illustrate:


Also, this subforum is labeled "Competitor products & game development tools"

Originally Posted By: pararealist
Getting ready to upgrade my PC so i can use c++(still on WinXp) and you are the reason for costing me so much money. Shame on you.

Wow, is there anything that we didn't do wrong?! Talk about engine shaming! tongue

Originally Posted By: PadMalcom
Slowly and silently this thread became the first one I'm looking into when I open the GS forum laugh

Pro tip: You can just subscribe to this thread and get notifications when someone posts in it, that way you don't even have to open the forum anymore! laugh



Also, I'm late by one day, but here is the third weekly dev-blog: http://rayne3d.com/blog/02-19-2014-rayne--weekly--devblog--3

Hopefully the_clown is happy by the amount of technical stuff in it (general feedback by everyone else is still appreciated as well though!)
Posted By: gri

Re: The answer to life, the universe and unity3d - 02/20/14 07:36


Ahem, please allow me to illustrate:


What is this ?
Punching a dead horse while wanki** his dic* ?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/20/14 08:28

Close enough
Posted By: sivan

Re: The answer to life, the universe and unity3d - 02/20/14 08:46

http://www.youtube.com/watch?v=u8X76NRiQLQ
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/20/14 12:44

Originally Posted By: JustSid
Hopefully the_clown is happy by the amount of technical stuff in it (general feedback by everyone else is still appreciated as well though!)


I am, especially because this specific technical stuff is the kind of technical stuff that I still have to wrap my mind around. tongue
Very nice blog entry, not the easiest to read I guess, but I approve.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/27/14 09:15

By god, is it already weekly dev blog time? Why, yes, yes it is!
Here is the most boring weekly dev blog in which I tell you that Nils is on holidays, I spent multiple days hunting a kernel bug and that it was a slow week with nothing but clean up, bug fixes and documentation writing. For some reason it's still over 2000 words, so read it, I put a lot of effort into it!

http://rayne3d.com/blog/02-27-2014-rayne--weekly--devblog--4

(Oh and if you don't read it, the documentation is now open source and on GitHub, so maybe check that out? https://github.com/uberpixel/Documentation)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/01/14 18:22

There is a new version of Rayne posted. It fixes stuff, potentially breaks new stuff (although at this moment I can neither confirm nor deny that) and cleans up stuff. It also makes other stuff faster.

tl;dr: Stuff changed around.

Potentially it is the last 0.5.x release. Maybe it isn't, depending on wether new stuff breaks. We should probably offer an RSS feed for this kind of stuff instead of announcing it in competitors forums (I mean, we also announce it in our forum, but that has a much smaller reach).

Funfact of the 0.5.7 release: It was developed in a branch called "dev-0.6" and pulled in a bit from a branch named "experimental". We can do version control, I swear!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/08/14 03:50

Two things! Nah, make it three...

First of all, no weekly devblog post this week because: Quite frankly, the noteworthy stuff is currently in development, so it's only ready for next week. And we are lazy.

But! Not lazy enough to not finally make a video of our forest level. Here is a super awesome fly through, through the level:


And then: We started with the editor. For real this time. Here is how it looks like so far (much early, many wip, very unpolished):


We also promised that everything would be open source except of the engine core. Well, Downpour _IS_ open source under the MIT license on Github. Go check it out!
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 03/08/14 09:49

So Rayne is Pegi18?
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/08/14 10:49

I really like the picture of Lenna!
The Editor looks pretty much like Unity, but indeed a good start.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/08/14 11:44

Originally Posted By: alibaba
So Rayne is Pegi18?

Eh, it's the default go to image for everything imaging related. Hasn't everyone see her by now?...

Originally Posted By: MasterQ32
I really like the picture of Lenna!
The Editor looks pretty much like Unity, but indeed a good start.

... This guy has! He even knows the correct spelling of her name!

And also... There are only so many ways to build a usable editor interface and Unity happens to have one of the better ones around. To give credit where credit is due though, the layout is actually inspired by Xcode: http://cl.widerwille.com/UK5s


By the way... No comment on the video? Nils worked pretty hard on implementing splines for the camera movement.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/08/14 13:30

Just watched it right now. I really like the overall scene, but i have a problem with the colors. I don't know i just have the feeling that they aren't "right".
Also i noticed that your athmospheric scattering shader makes some nice bloom artifacts grin

But overall a very nice demo video. Shadows are high quality, also Ground Tesselation is awesome, i really like it!

Maybe you could add a nice little decent light scattering effect, not much work but gives an awesome quality improvement imho
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/08/14 13:51

What exactly do you mean by light scattering (its a pretty general term)?

Also the colors get washed out when converting the raw frames into a video. Could be a gamma or color space problem but also data loss from the conversion to yuv420. It also looks a lot different depending on the video player...
I am using ffmpeg to convert the images to a h264 encoded video.

This is one of the raw frames:


This is a similar frame on vimeo:


Edit:
I made some more comparisons between videos and raw frames and all videos look fine in vlc, but in quicktime the video I made directly from the frames looks very washed out and the video I made from a lossless video looks a bit better, but still wrong. Also vimeo looks washed out and youtube is much worse.
Then again, it looks all a lot different on my other monitor...
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/08/14 15:25

I meant a "godray" effect. (Volumetric light scattering)
And yes, the colors are a bit better on the screenshot. But i think the grass is too desaturated in comparison to the houses.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/08/14 21:47

Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/08/14 22:24

Wow, awesome! Looks pretty cool now. How does it shine through a tree with the sun behind?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/09/14 03:35

I'm having way too much fun playing around with the level... Turns out, I'm not a level designer and should not do shit like that.


Posted By: Wjbender

Re: The answer to life, the universe and unity3d - 03/11/14 10:26

great work guys keep it up .

you have shown that you have some great features in your engine , there are some things i would like to ask and please excuse me if you have talked about it and i perhaps missed it .

what standard of model/animation file types wil you try and support ?

wil you design a tool to place events within the animations , they are very usefull for placing sounds / hit / any kind of events within the animation timelines like footsteps etc , i dont know if animation tools already supports this but if you could support reading such events placed in animations that would be cool .

do you have or do you think of starting a forum for the project ?

do you have plans for selling the engine with all the source code ?

does the engine expose thread functionality to the coder ?

again i am sorry if i missed any thing you have already presented about my questions .

great work and i will be watching the developement .
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/11/14 10:43

http://rayne3d.com/
Taking the freedom to answer for the two, this page should answer most of your questions except for the one about the animation event system.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/11/14 14:23

The website already answers most of the questions as the_clown said, but I'll answer them here again in a bit more detail and the reasoning behind it!

Originally Posted By: Wjbender
what standard of model/animation file types wil you try and support ?

Out of the box there is support for our own file format which can load models pretty much as fast as your hard drive can funnel them into RAM. But that is as much fun as having to convert everything to MDL, so there is also an assimp module that provides support for common file formats such as .x, .dae, .obj and fun like that (fun fact: Did you know that the reed model in the instancing test scene is an MDL5 model?)

Besides of that, you can theoretically support any file format that you want, provided that you write a resource loader for it. The ResourceCoordinator and ResourceLoader classes provide functionality to add support for custom file formats, which seamlessly work in Rayne (ie you can simply ask Rayne for an RN::Model instance of your custom model and the resource coordinator and your loader will do the rest)


Originally Posted By: Wjbender
wil you design a tool to place events within the animations , they are very usefull for placing sounds / hit / any kind of events within the animation timelines like footsteps etc , i dont know if animation tools already supports this but if you could support reading such events placed in animations that would be cool .

I don't know of such a tool either. You are talking about things like the F.E.A.R. AI where they added informations for the AI into the animation, right? That's not supported out of the box, mostly because there is no generic way of adding such informations. In theory, again, you could simply go about subclassing the RN::Animation class to additionally hold the information you want and then provide a custom loader for your own animation format that provides these informations.

That's not going to be much fun though I'm afraid, especially since it requires you to roll your own animation format. An alternative might be enforcing a naming scheme for your keyframe animations, which is something you can do with Rayne: It allows you to extract frames of an animation into a newly named set (in case the animation is just flat or provides wrong frames... Hey Arteria!). How much information you can store in them is a different thing though.


Originally Posted By: Wjbender
do you have or do you think of starting a forum for the project ?

http://rayne3d.com/community

Originally Posted By: Wjbender
do you have plans for selling the engine with all the source code ?

No. The engine core will be closed source. We do provide you with release and debug binaries and additionally debug symbols, but that's going to be it. The biggest issue is not so much that we cook some super secret IP stuff that no one is allowed to know, but because it's a nightmare in terms of licensing. The only option would go with dual licensing, GPL and our current license, but what would be the use of that? You either get to hack on Rayne but everything you use it for must also be GPL'ed, or you don't get to hack on Rayne and instead have more or less useless source code.
And we don't want open source coders to work on a GPL'ed Rayne and then have to merge their changes back to us upstream so we can go ahead and sell their code.

Furthermore: Rayne is designed to be extensible out of the box. So you can already add functionality and replace things, without having to hack on the engine core itself. If you don't like the scene manager for example, no one is going to stop you from rolling your own (and you only have to create a custom scene manager, not re-invent the wheel because the engine doesn't like being changed)


Originally Posted By: Wjbender
does the engine expose thread functionality to the coder ?

Sure thing! You have access to the high level thread class and synchronization primitives, as well as the thread pool which does an awesome amount of work on your behalf to get your code running on all available CPU cores.


Aaand now... How about some more editor screenshots?

(Duplication of scene nodes foobar etc. pp. to make fence building easy)

And now for two screenshots of a moving sun:



The Sun class is something that Rayne doesn't know about. It's part of the test game, but Rayne provides a KVO and KVC system to export and observe properties of objects, which is something the editor makes use of. Note the "Time" property in the inspector, which is a property exported by the "TG::Sun" class.
Posted By: Wjbender

Re: The answer to life, the universe and unity3d - 03/11/14 19:29

great stuff , i have to say that the best feature you have given is the flexibility along with the lower level functionality .

really hate to be limited with an engine ,
the second thing i love is the language not being no second to best but full blooded c++ .

the event system was something along the line of
placing a type of marker (perhaps a keyframe) within the animation at any time frame and naming it for example "rightxfootxstepxsound" or "rightxhandxfingerxpullxtrigger" wich when you run the animation you could query in code for when that event(frame) becomes current like
if(event("rightxfootxstepxsound"))playsound(footstep)

but okay i dont think this would be to much of an issue given how much functionality you can conjure up from the fact that your engine provides access to such classes .

thanks i will now check out the forum , by the way ,many many compliments i am impressed !
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/12/14 12:36

Thanks for the compliments Wjbender laugh

Yesterday I started working on decals:

There are still some shading issues and they are too slow to create and have too much overdraw, but other than that it works great laugh.

Edit: MOAR blood!
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 03/12/14 14:21

that's not even remotely enough blood!

(nice feature!)

oh, one thing I forgot to ask:
instancing possible? :3
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/12/14 14:31

How do you create the decals?
Posted By: mk_1

Re: The answer to life, the universe and unity3d - 03/12/14 14:42

Originally Posted By: MasterQ32
How do you create the decals?

http://blog.wolfire.com/2009/06/how-to-project-decals/
Posted By: Kartoffel

Re: The answer to life, the universe and unity3d - 03/12/14 14:56

@mk_1: it's interesting but to me it seems like it's pretty complicated / slow...

I think there are better methods to do this.
Posted By: mk_1

Re: The answer to life, the universe and unity3d - 03/12/14 15:04

It is slow, yes. Should be used for static geometry only but then it's a pretty good technique because it's independent of the used rendering technique.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/12/14 15:21

Well, while creating/changing decals is kinda slow (although can be quite fast if the meshes have their own acceleration structure like an octree) it works very stable and compared to alternatives in a forward renderer it is very fast to render such a decal once it is created.
Also it was actually very easy to implement. Just looping through faces and throwing everything away that is not needed. And cropping what is left, but thats also just some basic maths.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/12/14 18:03

Hey guys, remember this awesome blogpost series we had about weekly updates and shit? Well, it's back!

This week it's about editors and decals. Surprising choice of topics, isn't it?
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/12/14 23:01

Question that always comes to my mind when I read Dave Rosens post about their decal implementation (and I do so very often) is how the whole thing is supposed to work with skinned meshes - as far as I understand it, it's simply a scene node attached to another scene node, with geometry built from cropping intersecting faces. So these faces have to be skinned, too, don't they? Also, as you write you take ALL meshes in the scene into accout when creating the decal mesh, what if you move the scene node that the decal is attached to? Wouldn't that create some rather ugly artifacts when the decal moves with its parent node?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/12/14 23:19

Skinned meshes: Currently decals will kinda break with those. I mean yes, one could also skin the decal vertices, but then I would also have to create custom skeletons for the decals consisting of all bones of the skinned meshes covered by the decal (or only the needed ones, but then with custom animation frames and shit), also it is not really clear if such a decal should then stay the same and just move with the geometry or has to be projected again. Projection would probably be much easier, but also look wrong in most cases. The alternative to skinning the decals would be use CPU skinning for the vertices with the decal attached and update the decal for those. Would probably be the best solution, but still has the tricky part with projection vs following the movement.
I wonīt touch this for now and would use a specialized solution for such cases like just modifying the texture of a character or something.

The decal actually is not attached to any scene node (unless you make it a child of something), instead it is just a scene node itself, can be moved freely and will effect everything in its range. Now if it is attached to another scene node and moves with it it again will effect anything in its range. So if this is not wanted, you will have to make sure it is not bigger than the scene node it is attached to.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/13/14 08:17

Very good that's what I thought.
Posted By: mk_1

Re: The answer to life, the universe and unity3d - 03/13/14 09:15

Actually for moving objects I would propose something else. Usually you're talking about blood here. In that case you could take the vertex closest to the hit point, change a vertex color and use that to create more vertices in a geometry shader with fading vertex color. You can use that to blend between the default surface and some kind of blodd mask
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/15/14 11:38

Kind of off topic, but then again what isn't - May I ask what compiler you use for windows builds?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/15/14 11:48

MSVC in its latest flavour.
We know that there are people who prefer GCC on Windows, but that isn't supported right now in favour of the more predominant Visual Studio crowd.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/15/14 14:20

How much work would it be to port your engine to MinGW? Afaik MinGW can link MSVC-Libs as well.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/15/14 14:34

Probably not much. It "should" just work, especially since for an early linux port approach most issues have been resolved already. So most of the work will be creating a build script for gcc tongue
So it will probably come around the time we do a linux port, where we will use gcc anyway.

Also, its #ScreenshotSaturday and I implemented tangent generation for the decals:

Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/15/14 14:47

Okay thanks for the information.

Nice screenshot, so we can have normalmapped decals?
Also some other thing: Is it possible to create "normalmap decals"? So placing a decal will only change the normalmap and no colors? Would be really cool for some damage effects and so on.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/15/14 15:17

I could add a possibility to attach a decal to a specific mesh and have it copy the meshes texture coordinates or alternatively have it keep separate meshes for the different surfaces it is attached to with each having its own material, but its all kinda messy with forward rendering, so I decided not to implement it for now.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/17/14 09:31

Originally Posted By: JustSid
MSVC in its latest flavour.
We know that there are people who prefer GCC on Windows, but that isn't supported right now in favour of the more predominant Visual Studio crowd.


I have yet to understand why Visual Studio is so popular, I'm absolutely uncomfortable when using it. It feels bloated, the express version has limitations that I don't really understand (I mean, come on Microsoft, you COULD allow me to create a new project from an existing codebase) and the solution explorer or what they call it feels like an unnecessary abstraction layer to me. Code::Blocks on the other hand felt absolutely like home instantly when I started using it, and MinGW/GCC has yet to show me any disadvantages compared to MSVC, which, for reasons I don't quite get, started off by trying to compile every single header in its include folder when I tried to use it in Code::Blocks (admitted, it COULD have been a mistake on my side with the compiler flags, however it didn't work in MSVCs favour regarding my evaluation tongue ). Also, GCC seems to adopt new C++ standards way early before MSVC from what I've heard, so I did actually expect you to use it as you're taking advantage of C++11 to quite some extent.
I do however understand, given the fact that MSVC is still the most popular compiler in software development, that you're concentrating on that.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/17/14 11:02

@the_clown:
The thing is: Visual Studio is not only for C++, but for Software Development. In the bigger versions (Ultimate e.g.) you have a huge pile of refactorings, code analysis, debugging tools, sql server integration, web server integration. You have UI designers, UML->Code-Convertes, Collaboration toolsl, ...
GCC is just a compiler suite, Code::Blocks a lightweight IDE. Visual Studio is a heavyweight IDE. You don't really need any other tools except Visual Studio to realize a project in any size.

Also a personal preference: IntelliSense is just the best code completion...
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/17/14 12:03

You are both right and man, the_clown, I feel your pain.
Visual Studio is an awesome IDE and lightyears ahead of Xcode which is lightyears ahead of code::blocks. MSVC is a piece of garbage and I've written way too many ifdefs and dirty hacks to work around compiler and STL bugs.

And I'm not even happy with GCC either (regexes, anyone?). 4.9 is getting somewhere with C++11 support, but Clang beats it completely. If I could, I would force LLVM/Clang down your throats and switch to C++1y.
Oh well, you work with the tools you got, not the ones you wish you had.

Edit: If anyone wants to know the current state of things in terms of implementation completeness of C++11 compiler features: http://www.italiancpp.org/wp-content/uploads/2014/03/CppISO-Feb2014-r1.pdf
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/18/14 01:08

Today I refactored our particles, so here are shadows!

Posted By: Quad

Re: The answer to life, the universe and unity3d - 03/18/14 10:41

please make it not look so unity-like. Not saying it looks that way right now but it's heading in that direction.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/18/14 16:59

There are only so many ways you can make a functional editor UI.
But it's not going to be Unity, I promise!
Posted By: Quad

Re: The answer to life, the universe and unity3d - 03/18/14 18:36

I know right, assign different shortcuts to every key and every key combination on the keyboard and make them change depending on where the mouse is!
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/18/14 18:37

Looks really professional I think.
There's nothing bad with looking like the Unity editor, which is the best part of Unity imho.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/19/14 15:59

There is a new weekly devblog!
http://rayne3d.com/blog/03-19-2014-devblog--6---editor--bugs-and-other-things

Also I made a video showing Downpour in action:
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/19/14 16:25

Wow. Really impressive!
The workflow can be improved a lot, but i assume you know that better than me.
Decals and Shadowmapping is really good, looks awesome in Motion.

But why does the framerate drop on fullscreen mode? Capturing problem?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/19/14 16:39

I recorded the video on my retina mac book with a resolution of 2880*1600 (the window, the screen is slightly bigger) and while I setup Downpour to render the 3D viewport with a lower resolution, switching back to the game will render at full resolution and it absolutely kills my performance with SSAO and all the other post processing effects. Also the screen capturing does not help tongue
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/19/14 23:06

If you haven't noticed, an unnamed competitor stepped up their game in the anticipation of the Rayne beta release.

We from Überpixel welcome every kind of competition as we believe that it drives the industry and ultimately leads to better products for developers.

As a direct response, we now offer everyone a subscription for Rayne starting at $5.99/Month. Alternatively, you can also buy a license for $1 and keep it forever.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/20/14 00:04

Remember the offer of one cookie per team member + girlfriend? Is it still valid? grin
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/20/14 00:16

I suppose that was AFTER drinking the mead? Because we should not be held reliable for our actions after that...
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/20/14 00:58

Afaik it was right after your demonstration and you both behaved pretty reliable. But could be wrong as well... wink
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/20/14 01:04

Originally Posted By: MasterQ32
you both behaved pretty reliable.

See, that's why we know you are lying and that we were shitface drunk when we said anything about cookies.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/21/14 11:39

I just checked out the source of Downpour to see how your engine is used.
The Source looks really solid and the engine API is pretty cool. Good job!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 03/21/14 12:02

Thanks! laugh
That means a lot, especially from people who don't come from a C++ background.

Also... We going places (like the court):
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/21/14 12:53

Lol xD
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/24/14 15:00

Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/25/14 00:03

Collab editing?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/25/14 00:38

Yes.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/25/14 00:42

Nice. Which network library/protocol?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/25/14 00:44

Open Downpour -> Save Level to USB Stick -> Move USB Stick -> Open Level
(enet)
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/25/14 00:45

Sounds pretty stable and flexible!
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 03/25/14 08:13

Can we also use ENet as Network library. I mean, is it integrated to Rayne?
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 03/25/14 10:41

On The topic of Integration: How much work would it be to integrate a scripting language like Lua?
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 03/25/14 11:39

Originally Posted By: MasterQ32
On The topic of Integration: How much work would it be to integrate a scripting language like Lua?


If I remember correctly, Sid mentioned they have Angelscript bindings.
Posted By: Slin

Re: The answer to life, the universe and unity3d - 03/25/14 18:40

Well, enet is currently hacked into Downpour just for the collaborative editing and while I plan on cleaning it up a bit and also reduce the transferred data, the editor has no real realtime requirements and instead accurate data is more important. As a result we are sending LOTS of data and while there might be a lag of up to a second in some worst cases when working over the internet, it works perfectly fine already.
But instead of this implementation, there will be an additional enet module which then will feature some kind of high level interface to synchronize all the scene node transformations and add additional data where ever needed, maybe even with some simple interpolation approach or whatever. And of course some basic "send data -> receive data -> do something with the data" functionality.
If thats not enough you may be able to get access to all of enet, or if you donīt want all this you can of course just use enet without our module.

We will have Angelscript bindings in a not THAT distant future (sid already did some work in that direction) and once we have those there will be an interface to integrate any scripting language without much of a hassle.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/01/14 17:46

Yo, it's tuesday April 1st. We would now tell you that Rayne is sold to Unity or something like that, but they seem to be already unhappy about us, so to avoid any legal confrontation, let's have a serious April 1st, shall we? laugh

Rayne was bought by Epic, who will kill the product and raise their Unreal Engine 4 price to $100k again now that its fiercest competitor is gone. It's a sad day for indie developers, but honestly, we can't hear you over the sound of all the money!

Nah, actually we haven't been bought. We are still alive, barely tough, and spend the last weekend in Hamburg at the sixth InnoGames Game Jam. The theme was ridiculous and we made a shooter:


If you want to know more, we also wrote a blog post: http://rayne3d.com/blog/04-01-2014-devblog--7---game-jam-
Posted By: Slin

Re: The answer to life, the universe and unity3d - 04/07/14 05:08

We are amazing!
And because we really are amazing, I started working on our amazing terrain system yesterday.
It can currently only handle small areas at acceptable speed for realtime sculpting, but when we are done it will of course be even more amazing.
Also today the amazing Sid started working on virtual texturing, which will make it possible to paint whatever you want on the amazing terrain and everything else will be handled by the amazing Rayne.

Posted By: sivan

Re: The answer to life, the universe and unity3d - 04/07/14 08:55

Amazing! laugh
Posted By: PadMalcom

Re: The answer to life, the universe and unity3d - 04/07/14 10:43

Btw I like the simple UI so far please keep it that way (Not too many menus, ...)
Posted By: FBL

Re: The answer to life, the universe and unity3d - 04/07/14 17:18

Dildo rock rocks.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/10/14 13:17

You know what else rocks? Collaborative level editing! It's level editing, but you can shit talk each other while they work on their stuff. This cuts down roundtrip time and can help reduce the whole moral of the design team down to zero in less than 4 hours!

We made a video to show you how awesome it really is:


And Nils wrote a blog post where he also talked about the Voxel terrain: http://rayne3d.com/blog/04-09-2014-devblog--8---terrain-and-downpour-

tl;dr: Fuck yeah!
Posted By: Dico

Re: The answer to life, the universe and unity3d - 04/10/14 16:13

wow , very nice engine & great features , hope i test this engine soon laugh
JustSid , you're the best cool
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/10/14 16:26

Nils did all of the work on the editing and the terrain. I barely did anything at all, so if anything: Nils is the best!
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 04/10/14 17:36

You both are the best! Really nice work, looks smooth and easy to use (in contrast to the Qt Creator i'm working with right now...)
Posted By: Dico

Re: The answer to life, the universe and unity3d - 04/10/14 18:16

Yes , both are do the best , but i want to ask , is there a date to release it ?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/10/14 18:33

When it's done. We hope to go open beta with the 0.6.x release (probably not the initial release but sometimes later with 0.6.3 or so) and then take it from there.

We would like to release a great product, not just something mediocre. And quite frankly, we have no problem pushing the release back a month or two if it means to have a great release.
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 04/10/14 19:30

Originally Posted By: JustSid

We made a video to show you how awesome it really is:
<iframe src="//player.vimeo.com/video/91576346" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
, on itself this feature could be a Minecraft-like game lol, Raynecraft anyone? grin
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 04/16/14 17:46

Looks extremely nice.

Is there a chance we might get a more in-depth devlog entry or article regarding the reflection meta system? I'm really interested in this, especially as you say it's rather lightweight.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/17/14 17:21

Blogpost time everyone! It's about something that hasn't been covered yet: The backend that powers the website!
http://rayne3d.com/blog/04-17-2014-devblog-9-pimpin-drizzle

Sorry the_clown, your request was a bit too late! tongue
But seriously though, anything you want to know in particular?
Do you just want to know how it's implemented in general, or also how it works together with the KVO and KVC systems?
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 04/17/14 17:41

Originally Posted By: JustSid

But seriously though, anything you want to know in particular?
Do you just want to know how it's implemented in general, or also how it works together with the KVO and KVC systems?


The general implementation for starters... All articles I've read so far basically start with implementing half a compiler, as they all aim towards, well, basically code agnostic, automated introspection. You've stated though your system works only with Raynes object class so I guess your implementation is much more straightforward and maybe a bit easier to comprehend.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 04/17/14 19:29

Okay, so, there are two components at the core: The class Catalogue that holds information about all registered classes, and the registration mechanism which is provided by two macros. The two macros are required and the reason we don't have to hack our own compiler together, there is one for the interface part of your class and one for the implementation side which provides all the glue code that is responsible for actually registering your class with the Catalogue.

All the information we have of the class is gathered at compile time through C++11's type traits, so we know what your class supports and how it can be constructed, so all it boils down to at runtime is calling a method on the class catalogue that will dissect the classes name into its namespace and store it. That is done once at startup when all static initializer run and is the only runtime overhead this system has.

When that is done, the Catalogue knows about your class, its superclass, what things it supports (serialisation, copying, default construction...) and it's querieable from the Catalogue, for example, in Downpour we query all registered classes and look if it inherits from the SceneNode class at some to then display it in the node class picker on the left side. Here is an example that uses the Sun class we have in our Testgame, but doesn't actually need to see the Sun interface header at any point to work!

Code:
RN::MetaClass *meta = RN::Catalogue::GetSharedInstance()->GetClassWithName("TG::Sun");
RN::Object *object = meta->Construct();

object->SetValueForKey(RN::Number::WithFloat(1000), "time");


(Real code should probably add some error checking)

Okay, so that's the general idea and there is nothing really exciting about that. More exciting is setting the time without actually knowing the setter!

On top of that systems sits the KVO and KVC layer of the Object class, this layer provides, at a very high level, the "SetValueForKey(), GetValueForKey(), AddObserver() and GetPropertiesForClass()" methods. They allow setting, getting and observing properties of instances at runtime, for example, the decal system uses that to automatically adapt itself to the underlying geometry, by simply adding itself as an observer for the objects transform it is placed on.

This system requires a bit of manual work, for two reasons:
1) We don't have a compiler
2) Not every property should be exposed and there needs to be a way to annotate what is exported and what isn't.

What you need to do is to wrap all your properties in the Observable class, for example:
Code:
class MyClass : public ...
{
public:
	...

private:
	RN::Observable<float> _myProperty;	
};



At construction time you can initialize the property with a name and additionally your own getters and setters for the property. You can also set wether it is read-only, atomic and what memory model it should use (if the observable wraps an Object). Right now, this has to be done at runtime which adds a bit of overhead, but I'm planning on moving that to compile time with template annotations.

Anyways, underlying of this is a Signal and glue code that provides high level setters and getters that take Object instances and convert them to the wrapped type (the example sets an RN::Number instance which is then unpacked into a float by the observable before being passed to the actual setter, similarly, the getters first pack the value into the appropriate RN::Object instance). This allows one interface that can serve all types of types, more complex objects like structs are wrapped in RN::Value instances.

The signal is emitted every time the value of the wrapped object changes, and provides the observable part. You can observe a property and request the runtime to provide you with the old, new and/or initial value so you can trace any change made to the object. Of course, this also works when setting the property directly, without the getter and setter part, and there is a fast path for when no observer is present so it only adds a very minimal runtime overhead when the feature isn't used.

Of course, there is also a query interface to get the exported properties. Downpour walks down the class hierarchy of an object and queries the exported properties for that class, to then display it in the inspector on the right side. Of course, it also adds itself as an observer of the properties. So when a property is updated over the network, the inspector automatically updates itself without the two systems having to know of each other.

Edit: I should note that non of this is a requirement. Everything will function even if your class doesn't participate in the class Catalogue or the property system. Some things won't work, but only directly affecting that class. For example, a SceneNode subclass that doesn't define itself in the class catalogue is still correctly identified as a SceneNode subclass.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 04/18/14 21:19

Wow, alright, that's a fairly nice explanation so far... I didn't know about C++11's type traits before.
I'd still be interested in more details how exactly the information about the classes is stored though. Note that I'm not asking from the PoV of a potential Rayne user right now but rather that of a c++ programmer.

Also, kinda non-related question that pops up from my mind right now, are you to any extend using the C++ STL library?
Posted By: Slin

Re: The answer to life, the universe and unity3d - 05/18/14 20:09

Though we were quite silent for a couple of weeks, Rayne is far from dead and we are still working on it.
Also I wrote about our shadow mapping solution for the sun which is nothing fancy, but kinda production proven, stable and good looking at good performance: http://rayne3d.com/blog/05-18-2014-shadow-casting-directional-lights

About two weeks ago I also wrote about our clustered shading: http://rayne3d.com/blog/05-01-2014-clustered-shading-in-rayne

Oh and check out my Ludum Dare Game I made alone in 48h using Rayne, it isnīt too much fun and a bit buggy, but at least something and I ported it to Windows :): http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=35658

@the_clown: we do use STL quite a bit. Mostly std::vector, but also a couple of other types and functions.
Posted By: sivan

Re: The answer to life, the universe and unity3d - 05/19/14 06:45

I like your articles, quite informative and the length is fortunately not due to Hollywood standards laugh (unfortunately the game is crashing because of my ugly drivers)

do you plan to implement in future the currently so trendy physically based shading?
Posted By: ventilator

Re: The answer to life, the universe and unity3d - 05/20/14 11:46

i am not sure if "the future" section of your interesting shadow mapping article contains something similar... but have you looked into rectilinear shadow mapping? i read about it on the supertuxkart blog and it sounds like it can easily compete with the quality of cascaded shadow maps while only using one shadow map (which doesn't have to be huge).
Posted By: Slin

Re: The answer to life, the universe and unity3d - 05/20/14 15:17

@sivan: Physically based shading is planned, but probably after an initial release. The current shading works good enough , so for now other areas are more important.

@ventilator: rectilinearly warped shadow mapping looks interesting, but the disadvantage is the need for well tessellated meshes, because the warping has to be used on the geometry. I am not sure how well this would work for a general purpose game engine. Also there is the need to analyze the rendered scene for the warping, which would either cause a CPU stall or if everything is done on the GPU, it would still require an additional pass before the real rendering, which might be needed anyways, but still would complicate the rendering pipeline.
Posted By: Carloos

Re: The answer to life, the universe and unity3d - 05/31/14 16:59

Congrats for the nice work. Iīm waiting for the release. I will probably buy it.
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 05/31/14 17:25

Thank you for the article about shadows Slin. Also your robot game does not work here cause of MSVCP120.dll missing. Probably cause this is an old laptop though (/old drivers or whatever).
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 05/31/14 17:31

You need the Visual Studio 2013 Redistributable Package.

If your laptop isn't supported, Rayne will simply not open (although unarguably it should open a message box), but you will find a log.html file in your documents folder ($DOCUMENTS\LD29)
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 06/08/14 14:29

Hi!

Did you know that Rayne is still alive? Well, it is. We have some really cool changes coming up, which we will talk about soon-ish (hopefully).

But for now, I'd like to take a second of your day and show you a bit more about the UI system that is integrated into Rayne. Here is the blog post about it: http://rayne3d.com/blog/06-08-2014-devblog-10-user-interface

Questions, anyone?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 06/14/14 14:29

Okay, so UI isn't something you guys care about?
How about a blog post about why you haven't heard much from us lately and how the future of Rayne looks like? http://rayne3d.com/blog/06-14-2014-devblog-11-now-what

The tl;dr is: Read the blogpost damn it!

Hope you guys are still excited about Rayne, I know that we definitely are. But we may or may not have a slight bias in that regard. If you are into technical blog post, the upcoming future is going to be exciting for you one way or another though laugh
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 06/14/14 15:21

Excited to hear more about the new rendering system in the future. Especially given the option to put in a whole different renderer as end user, that sounds like some rather difficult abstraction work has to be done.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 06/14/14 15:41

Originally Posted By: the_clown
that sounds like some rather difficult abstraction work has to be done.

Yes and no. You can already put a different renderer in if that tickles your fancy, but it is limited to OpenGL, simply because the texture classes and the shader system expected OpenGL.
The solution is tighter coupling, eg. the renderer exposes endpoints that interact with the GPU, for example the GPU memory manager is managed by the renderer, so is the shader compiler and the texture uploader. Of course, it's not directly implemented in the renderer because, for example, a future OpenGL 13.37 renderer might want to re-use the texture uploader instead of re-implementing it.

So basically it introduces some more indirection, hopefully not noticeable to the users themselves. The high level texture class is still there, it just goes through the renderer to access the texture uploader and the renderers job is it to provide these GPU facing implementations. Lots of virtual classes.

Of course, as the user you can just say "give me just an OpenGL renderer", and then you can just call down to OpenGL if you need to without having to worry suddenly ending up on a Metal renderer and none of the OpenGL functions available. Or you implement multiple paths for eg. Metal, Mantle, OpenGL ES and OpenGL or any combination.

The whole rendering process is also restructured in a way that closer resembles the zero overhead APIs but that also works with the older OpenGL state system. Theoretically it should also be able to implement a legacy FFP OpenGL 1.1 renderer that uses glBegin() and glEnd(), but I wouldn't really recommend anyone doing that for obvious reasons.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 06/24/14 22:57

There is a new blog post about the advances in our memory management, which is to say, for the most parts there is no longer any manual memory management needed. Rayne has now support for strong and weak references! Read all about it here: http://rayne3d.com/blog/06-24-2014-devblog-12-reference-counting
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/08/14 11:40





Click for full resolution (3360 x 2100 pixels -> 11mb / picture)
Just coughing a bit to show that we are still alive and things and stuff.
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 08/08/14 12:03

impressive!
Posted By: HeelX

Re: The answer to life, the universe and unity3d - 08/08/14 18:06

yes, really impressive!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/09/14 00:40

It's here. Old women have talked about it in tales that are now long forgotten (but apparently it's known that they were told): Rayne 0.6 is available to all alpha testers and the NSA!

Changes. Massive list. Extremely massive list. Over 500 commits, yadda yadda yadda. Check it out, when you are done whoring around with Unreal Engine!
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 08/09/14 11:37

The NSA already have your current development version grin.

About those tales of the old women, do they also mention the possibility to use c# with Rayne (in the future)?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/09/14 21:01

The old women, who normally are surprisingly chatty, suddenly become really quiet and you can hear the crickets in the distance.

No, but seriously, C# not from our side. You can write bindings for Rayne, no problem, but we won't provide them because we simply don't have the time nor resources to test and maintain them properly. We also lack the C# background, and everything we could offer would be supbar and would feel to much like C++, rather than C#.

But if anyone wants to write bindings, they are free to do so. And of course we would be more than happy to answer any questions that might come up with regards to Rayne and Rayne internals.
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 08/09/14 23:30

nice to hear that you got Rayne 0.6 on the run! Is there are changelog on your website or anywhere? Really interested in what you've changed!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/11/14 15:25

There is a changelog! It's hidden for normal peasants, but here you go: http://cl.widerwille.com/Wz5B

Also, I come with a slew of new pictures! Click "full" resolution (I scaled them down to 1680x1050 because my internet is crap).
Note the path on the left. While you are creaming yourself because Felix put DirectX 11 and tessellation into 3DGS, Rayne has built-in, non hacked together support for that tongue






Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/11/14 15:25

And here is the rest. Damn image restriction.



Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/11/14 19:37

Originally Posted By: WretchedSid

Note the path on the left. While you are creaming yourself because Felix put DirectX 11 and tessellation into 3DGS, Rayne has built-in, non hacked together support for that tongue


So you have a DX11 renderer in line already? tongue
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 08/11/14 20:02

No they use OpenGL <3
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/11/14 20:16

I know they did so far, but as they wanted to extend the engine to support whichever graphics API the end user desires, I guessed given the formulation that Sid used it could be possible they implemented a parallel DX11 render path to test if it works.

EDIT: Heavily unrelated question, in one of the first posts here in this thread Sid had given an example on how to set up a custom application using Rayne; The process did however not include setting up an explicit program entry point (a main), but instead providing an ApplicationCreate function which instantiated and returned a child class of RN::Application.
Am I right in assuming that you guys actually hide the program entry point within the engine library?
Posted By: MasterQ32

Re: The answer to life, the universe and unity3d - 08/11/14 21:13

i assueme so. and why do you want Dx11 if you can have OpenGL 4.*?
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/11/14 21:49

I don't know, I also prefer OpenGL. grin
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/12/14 06:55

Nah, the OpenGL renderer does support instancing tessellation. No DirectX 11 interface.

Originally Posted By: the_clown
Am I right in assuming that you guys actually hide the program entry point within the engine library?

Nope. You can and are very much encouraged to provide your own main method. Although in simple cases it can be as simple as invoking one method in Rayne.

Code:
int main(int argc, char *argv[])
{
    return RN::Main<MyApplicationClass>(argc, argv);
}



You _do_ have to initialize Rayne from your main method and hand it argc and argv at some point before creating the Rayne kernel and attaching your application to it. You can customize your main quite heavily and do your own bootstrapping, although there is a high level entry point that is supposed to be in the application class which is supposed to do most of the heavier bootstrapping as before that point not all of Rayne is bootstrapped yet.

A more "complex" bootstrapping looks like this (in reality this is exactly what RN::Main<>() does)
Code:
int main(int argc, char *argv[])
{
	RN::Initialize(argc, argv);
	
#if RN_PLATFORM_MAC_OS
	RN::FileManager::GetSharedInstance()->AddSearchPath("/usr/local/opt/Rayne/Engine Resources");
#endif
#if RN_PLATFORM_WINDOWS
	char path[MAX_PATH + 1];
	::SHGetFolderPathA(NULL, CSIDL_PROGRAM_FILES, NULL, SHGFP_TYPE_CURRENT, path);
	
	std::stringstream stream;
	stream << path << "\\Rayne\\Engine Resources";
	
	RN::FileManager::GetSharedInstance()->AddSearchPath(stream.str());
#endif
	
	try
	{
		auto application = new MyApplicationClass();
		auto kernel = new RN::Kernel(application);
		
		while(kernel->Tick())
		{}
		
		delete kernel;
		delete application;
	}
	catch(RN::Exception e)
	{
		RN::HandleException(e);
		return EXIT_FAILURE;
	}
	
	return EXIT_SUCCESS;
}

Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/12/14 17:18

GetSharedInstance()? Objective C very much? tongue
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/12/14 17:23

A lot of API in Rayne is inspired by Foundation and Cocoa. Mostly because Apple is good at designing and shipping excellent API, and also because my day job is being an iOS developer (after being a shitlord, of course ;))
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/12/14 18:54

In related matters, I'd be really interested in an article about how you're designing Rayne from a software engineering point of view, that'd be worth a blog article I think. Especially because there's a lot of articles about possible approaches available when it comes to that matter, structure and design of a game engine's architecture, but few articles in the style of "This is how WE did and, and why we did it that way".
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/12/14 21:28

That's indeed an interesting topic to write about! Anything you want a focus on in particular? We've had a couple of API iterations before we settled on something and there have been substantial changes based on how we used Rayne internally.

Making game jam entries also helped shaping the API, so yeah, there is a lot to cover.

Also, here are more screenshots, because I love flying through the level and making screenshots.




Posted By: the_clown

Re: The answer to life, the universe and unity3d - 08/12/14 21:34

Originally Posted By: WretchedSid
That's indeed an interesting topic to write about! Anything you want a focus on in particular? We've had a couple of API iterations before we settled on something and there have been substantial changes based on how we used Rayne internally.


If I had to choose I'd say I'm mostly interested in how the different subsystems are coordinated, communicate with each other and so on, and how that eventually is exposed to the end user. There's a lot of options on how to compose such a complex piece of software, I'd be interested in the decisions you took.
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/12/14 22:10

Gotcha. I like the idea. Just to give a real quick and short summary about what you asked specifically, loose coupling and message passing!
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 08/12/14 22:51

Anyone up for some nostalgia? I was just going through old screenshots and found these gems. Same level, same test project. First one is about half a year old, the other one is around a year old.


Posted By: the_clown

Re: The answer to life, the universe and unity3d - 09/24/14 07:20

Soooo, what's going on with this?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/04/14 21:49

Well, as you may have noticed we didn't say much in the past. As it turns out, being a responsible adult and having a normal life is really shitty for having such a huge side project. Rayne is not dead, but the original mission we had, an affordable, fast and easy to use game engine, has already been developed by Unreal.

There are still things to do for us though and we are not calling it quits just yet, we are still going big or we go home. We just decreased the pacing a little bit. Our day job has been a tad stressful lately (in case you haven't heard it yet, Nils and I are now working for the same company, although Nils is "only" working half time next to University).

So... The dreadful real life caught up with us while we tried to run away from it. If anyone wants to fund us fulltime development on Rayne, shoot us a message! If not, well, we will just take our time laugh
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 10/05/14 09:11

May I ask what company you both are working for?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/07/14 22:48

I'd like to, but I'm legally not allowed to publicly name the company or product for now. Which makes it sound much more interesting than it actually is, but such is life.
Posted By: gri

Re: The answer to life, the universe and unity3d - 10/10/14 06:32


NSA or BND ?
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 10/10/14 07:04

Four letters, US based. I'll blink twice if you guess right.
Posted By: FBL

Re: The answer to life, the universe and unity3d - 10/10/14 17:37

Too bad "SEGA of America" has too many letters laugh
Posted By: old_bill

Re: The answer to life, the universe and unity3d - 10/10/14 21:46

eBay? grin
Posted By: sivan

Re: The answer to life, the universe and unity3d - 10/12/14 10:49

Unit(y3d)
Posted By: Reconnoiter

Re: The answer to life, the universe and unity3d - 10/13/14 19:32

Epic ? grin
Posted By: alibaba

Re: The answer to life, the universe and unity3d - 12/18/14 15:18

Seems like Rayne has some serious competition:
http://www.godotengine.org/wp/
Posted By: Slin

Re: The answer to life, the universe and unity3d - 12/18/14 16:05

Since their focus is many platforms especially mobile ones while ours is to be as modern as possible with focus on "hardcore" 3d computer graphics, I wouldnīt consider them serious competition. The only real competition I see is Unreal Engine and they are unfortunately quite awesome... I hope we can offer some features differentiating us from them in the future, but for that we first need to find more time to work on Rayne again...

BUT we participated in the Innogames Gamejam last month using Rayne and made the first place! You can download the game here: http://hacktopus.com/
And well, it shows that Rayne is able to handle 2D without bigger issues, but we could have done the same with javascript and html5 canvas elements and would be much more platform independent and it probably would have been easier.
Also I used Rayne to participate in the last ludum dare: http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=35658 (and also in the two before this one).

In other news: we got an updated oculus module, sixense sdk module and I started working on a pathfinding module. Also we have minimalistic but working audio including hrtf for binaural audio using openal soft.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/21/15 17:19

Just a quick bump to check if this is still a thing
Posted By: WretchedSid

Re: The answer to life, the universe and unity3d - 02/21/15 17:31

We pulled a JCL on this one, after giving JCL shit for it. We are both currently sitting in Nice drinking mead and we spend last week in a luxury Hotel in Monaco with a billionaire eating expensive and real kobe beef steaks and mashed potatoes with truffles. Proof: http://cl.widerwille.com/ZtSO and http://cl.widerwille.com/Zt6p

Whelp, this isn't our every day life just yet, but it definitely is radically different from the positions we were in when we started to develop Rayne. It definitely has its perks, as already mentioned, but also the downside that we have to work a lot and there is very little spare time left.

That being said, we have a huge soft spot for Rayne, and we still want to finish it.
Posted By: the_clown

Re: The answer to life, the universe and unity3d - 02/21/15 21:30

Well whatever you're up to, best of luck. wink
Seeing that Rayne is kinda your baby I guess you won't be considering an open source development model or something along these lines?
© 2024 lite-C Forums