I took the demo for the game engine Irrlicht and added multiplayer to it in two days.
I have to say again that Irrlicht is a great engine. Very easy to use, very well documented. I had to go to the source a few times but it was nothing major.
I was thinking lately what a good market middleware is
And thinking to take that to the next step, with a game engine. I’ve noticed that game engines get many times the attention of individual libraries, much more so than the sum of their components. Imagine a game engine where each component is a specialized best-of-class library. RakNet times 7, the other 6 being graphics, physics, audio, AI, UI, and tools. If I knew 6 other developers or small companies that had the same quality as RakNet, at a similar price, it would be a great venture to join forces and make an engine as the integrated sum of those libraries. Such an engine would dominate the market immediately in terms of quality, because no existing monolithic engine, no matter how good, could beat a specialized company that focuses on that a single aspect. If you were to take all these specialized companies together then, all other engines would be fail because none of them could compete in any area.
It’s sort of like how you can take any default Windows application and find a better substitute on the net. It’s not that Microsoft did a bad job, but that their focus was on an operating system. Specialized companies turn around, find a niche market for that application, and beat Microsoft because that is their core focus. If you’re not going to do a way better job then there’s no point in entering the market.
If these libraries could be integrated seamlessly, with the full feature set for each library exposed, it would like astounding.
I’m revisiting Irrlicht to add multiplayer to one of their demos. It’s a fantastically easy to use engine that is well-written and well-documented. A few years ago I didn’t use it for Galactic Melee because of lack of tool integration support. Hopefully it’s better on that now, although Ogre didn’t turn out to be that well-integrated into tools either in hindsight.
I’ve been working with the owner of a new engine lately. It’s an interesting scenario: He paid a programmer to write an engine for him apparently on a contract basis. The programmer did so and went on his way. Then he then hired some artists to make content. That was done. He is now trying to sell the engine, and I took a look at it to see about integrating RakNet.
A concise summary is “Promising but won’t save you time”. Promising in that there are many libraries to do many different things, and with a few script calls you can get a lot done. Won’t save you time in that it is undocumented, complex, heavily specialized for a particular type of game, and uses macros and cast-from-void-pointer hacks to avoid having to write interfaces.
I read a similar complaint in the forums
User: “How do we do this?”
Owner: “Look at the source”
User: “The library is closed source. It is impossible to do anything”
Owner: “It is possible, you just have to figure it out.”
The reason for that is the owner is not a programmer, and doesn’t want to pay a programmer for general forum support.
So I brought this to his attention
Me: “If you want to succeed, you need to document your stuff. I can’t figure out how to do anything. Other people who buy it aren’t going to be able to use it, and will be pissed off.”
Owner: “The programmer said experienced users don’t need documentation. They just look at the source.”
Me: “It is closed source. The programmer is saying that because documentation is not fun to write.”
Owner: “I don’t want to pay for documentation. If we’re successful, it’ll have documentation at some point.”
Hopefully things come through for them, but I doubt it will.