Jump to content
  • Advertisement
Sign in to follow this  
Drethon

Where do I find info on CORBA

This topic is 4976 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

A fellow employee suggested that I look into CORBA for use in network games and I was wondering if any of you had information about CORBA or new good places to find information?

Share this post


Link to post
Share on other sites
Advertisement
I do not have any experience with CORBA, however an internet search engine would be a good place to start digging. =)

-=[ Megahertz ]=-

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
CORBA was the second attempt at standardizing distributed objects. It has its roots in Unix's DCE (Distributed Computing Environment) from which Microsoft's DCOM (aka 'Distributed COM') was also inspired. Of all those 'standards', none remain as actively used today. CORBA is still being taught because it has been heavily documented, tested and provide a good background in understanding the next generation implementations, namely Microsoft's .NET and Sun's Java/RMI.

Share this post


Link to post
Share on other sites
Hmm, this may not work so well then since Microsoft .net is a windows thing and Java RMI is (obviously) Java. I want to use Linux and C++... ick.

Share this post


Link to post
Share on other sites
Hi Drethon,

I'd suggest that you take a look at ACE. More specifically, TAO. ACE/TAO will bring you quite a bit of portability should you decide to move from Linux to Windows, and ACE is quite useful for other things besides CORBA.

Off of the link to TAO, there is a CORBA overview and a few tutorials.

Out of curiosity, why did he suggest using CORBA over a custom binary protocol that you develop?

-Halo7

Share this post


Link to post
Share on other sites
He likes CORBA because of the platform independance and because it allows you to remotely view objects (so to speak) instead of communicating data across.

Share this post


Link to post
Share on other sites
Hello Drethon,

Avoid CORBA, It is not very suitable for games.

I have had some use with it a ways back.

Reasons:

Most version form vendors you have to jump through a lot of hoops to get it compiled.

Cost, I do not know of a free version of it.

All it is realy doing is wraping network code into objects so you don't realy care were they are located (ie local or across net) or how they upadted (you just change it and object takes care of update all instances).

Lord Bart :)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Hmm. Don't believe everything written in this thread!

But it's almost inexcusable to not know about CORBA given the immense resources on the web - the only good excuse is "there's so much about CORBA all over the place that I feel swamped".

Quote:
Original post by Anonymous Poster
Of all those 'standards', none remain as actively used today. CORBA is still being taught because it has been heavily documented, tested and provide a good background in understanding the next generation implementations, namely Microsoft's .NET and Sun's Java/RMI.


BS. CORBA is still massively used today, all over the world in thousands of deployments; CORBA is still the main platform for distributed development. RMI and .NET have not displaced it (yet).

RMI is really little more than a proprietary version of CORBA "with some tweaks to make the API a little nicer for java users". RMI interacts seamlessly with CORBA (in it's various incarnations, RMI has been literally a CORBA implementation; IIRC at the moment it is compatible with CORBA, i.e. able to invoke CORBA and be invoked from CORBA).

It is an understandable (although inaccurate) simplification to say that RMI *is* part of CORBA, in the same way that MS internet explorer "is" a web-browser (MSIE deliberately breaks several of the core standards required to be an actual web-browser, and uses proprietary "standards" invented out of MS's butt, but it's "almost" a real web-browser).

As far as usage in games goes it's perfectly viable. However, you do have to bear in mind that CORBA is a communications standard, i.e. it does NOT specify the implementation, i.e. each implementation is of variable quality. Many companies exist that sell higher performance CORBA components, usually tweaked towards particular patterns of usage / particular industries. You can get high-performance ORBs etc that are fast enough for games, but they cost a lot of money.

You can also simply roll your own according to the standard, and tweak it until it's fast enough.

There's even a company selling ORB's IIRC specifically for games development - "ICE Cube" or something like that.

In summary: if you're going to use a DOA, CORBA is your best bet. However, most game-devs are too ignorant or too poor/cheapskate to use existing techs (tongue at lesat partially in cheek :P ), and try to recreate their own DOA's instead. CORBA implemented naively has a lot of overhead, but it's quite easy to optimise that out, to the extent where it's approximately as good as any DOA is ever likely to be without major investment.

PS No, I don't use CORBA in my game projects :) but that's because I hate DOAs.

redmilamber

Share this post


Link to post
Share on other sites
I would like to state that I believe any kind of synchronous RPC will introduce poor design decisions in a distributed simulation system. I am a firm believer in event-based simulation, and co-simulation with divergence detection and repair; such systems typically network much better over narrow and unreliable channels.

The difference between CORBA and most game architectures is actually similar to the difference between TCP and UDP, i e "reliability" versus "low latency" and "clean API" versus "high performance," although of course they are protocols at very different levels of the stack.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!