Project Darkstar → Evaluating Project Darkstar: the verdict
Well, I’ve spent a lot of time with Project Darkstar. I put in tens of hours reading forum posts and anything else I could get my hands on. I built a very simple MUD with it, and I looked through a bunch of other people’s code. When Darkstar delivers, it will be really amazing, and what exists today is already very cool. It offers solutions to some monstrously difficult problems.
Probably the best thing I found was that you can treat your game logic like a single threaded application. You never have to touch locks or synchronization unless you go under the application layer (a place I feared to tread).
The data store is also really cool, because you can stop worrying about game crashes and if that will force you to roll back hours of gameplay–it won’t. At most, a few seconds are lost. That’s a huge worry out of the way. One problem here, though, is that there’s no easy way to upgrade or patch the data store unless you wipe it and restart from scratch. You’ll have to write a custom tool to update it without wiping it.
All that said, the real issue holding Darkstar back right now is that it simply isn’t finished. It’s almost finished (give it 6 more months), but there’s one key feature that is a show stopper for me: it doesn’t scale. It can’t do anything besides a single-node right now. If you run multi-node, each node will be isolated, which is the same end result.
This really disappoints me, because the technology is otherwise really powerful, and I like it a lot. Sometime near the end of 2009, the roadmap says the PDS team will have multinode completed. When that happens, Darkstar will finally be a very potent game server solution! And I’ll be going back to it.
Until then, what next? I’m going to look into the Neutron service from Exit Games. (Update: After some deeper digging, I don’t think this is what I’m looking for, although I will still give it an eyeball. It also feels like it’s going to be on the expensive side.)
(Update 2: After some pacing around the house and thinking, I have come up with a couple of options for how to continue to use Darkstar for my upcoming game. I haven’t decided exactly what path to take yet, but I think it will be worth it to try and make it work. I’m counting on you, Darkstar team!!
)
July 7th, 2009 at 4:28 pm
I think Darkstar is really good option . I’m going to test it ! . Waiting for your next post about Darkstar
September 18th, 2009 at 3:25 pm
The PDS team demonstrated parts of multi-node at GDC-Austin this week and say they are on track for an end of the year release.
October 20th, 2009 at 11:14 pm
Heya – I was looking at Neutron too and thought it was okay. I’m interested to know why you didn’t like it or what made you look somewhere else?
October 21st, 2009 at 9:25 am
Hi Spoonman,
Some reasons I didn’t go with Neutron are that I don’t think it would give me enough control over the features of my game and the fact that the server (Photon) is C++ and C#. Cost was another factor.
To explain a bit more, the games I’m making are not typical Flash games to which I want to just tack on a lobby and leaderboards. (In fact, those are features that I don’t need at all.) I consider it critical to be able to control every aspect of my game in order to maximize the quality of the player experience. I really don’t like giving away that control or feeling that I might lose it in the future if policies change.
Photon is the actual server software, and it’s licensed separately (though you can obviously use them together). I am done with C++ (did that for many years), so that was a turn-off. I don’t mind C# as much, but I knew I wanted to use my server code for more than just Unity projects, so I was hoping to find a Java solution for better code sharing between games.
My initial misgivings with Darkstar were overcome pretty quickly, and now I’m using it 100%, and I think it’s great.
It does have missing features (a couple big, quite a few small), but the dev team is responsive to community requests, so I feel like the gaps will get filled in enough over time. Meanwhile, I’m designing around the known limitations and planning to utilize new features as they arrive.
Hope that’s helpful!
October 21st, 2009 at 4:17 pm
Thanks Jason, that’s exactly the answer I was looking for. I also decided not to go with Neutron, albeit for slightly different reasons. Good luck on your project!