I needed an account system for my MMO but I couldn't find much info on designing such a beast. Having figured out much of this on my own, cobbled together from stuff I read, I thought I'd put together an article on a few of the things I learned while building my login server, LoginD.Disclaimer: I am not a security expert, so this system undoubtedly contains flaws. Take the information here as a starting point for your own design, or better yet, hire an expert.
Some things seem like a good idea - and then there's the reality.
Using C/C++ means dealing with pointers. You can trick them up with smart pointers
to reduce the chance of error, but sooner or later you're going to get memory leaks - little bits of memory you've allocated and never freed.
For software that needs to run for a long time reliably, these are death. You can watch the memory use of the process increase and increase over hours, days or weeks, until the server falls over.
To catch these, you need a system that can track memory use and help you find where the leaks are occurring.
Something else that is really useful, is a system to help you track when you stomp memory outside your allocated blocks.
So I have this CGI-BIN application written in C++ that uses several very old libraries. It was originally written for OS/2, then ported to OS X, and now Windows as I switched servers over a number of years.
My new server is running Ubuntu 9.10 (not the server edition.) I initially spent a few days trying to port the CGI app to Linux before finally giving up when the old library code started spitting out thousands of template errors because the old templates didn't match current C++ standards.
While I was working on that, I read this article on Wine which made me think - maybe Wine can run a Windows version of the app under Apache2!
The last few weeks I've been implementing a scenegraph on top of my renderer. It had renderable nodes (meshes, vertices, material lists etc.), transform nodes, various visitors, serialization, and it is all basically working. The problem I find now, is that I want to get rid of the whole thing.
The reason is something that has been bothering me the whole time I've been working on it. I am building a modern
game engine, free of as much historical cruft as I can arrange. The biggest challenge of modern hardware is effectively using the sheer number of processors (CPU's, GPU's, SPU's etc.) you have access to.
If you're attending Game Developers Conference Canada
in Vancouver in 2010, keep an eye out for me with the big orange logo on my shirt.
I attended last year and found it really interesting. The presentations I attended were very good, I got to talk to some interesting folks. My only disappointment was that only 9 out of 40 or so presentations ended up on the conference website, so I missed out on a lot of interesting stuff.
This year I signed up for the admission that includes access to The Vault
so I'll probably spend the first couple days after the conference watching every presentation from the last few years of GDC shows.
I've been interested in MMO development for some time. I thought it would be good to point out some of the best resources for the potential MMO developer.
So it has been a good week for me. I've been working on the rendering system for about 6 weeks. That's a lot of time to go with nothing to really show. Usually programmers should be able to finish a reasonably sized feature in a week or two at the most. I have been writing unit tests and those I got running successfully to get a little shot of success from time to time (more on those another time), but mostly I have been looking at a giant inert pile of code.
This is the story of a lone developer's quest to build an online world.
The last few years I've been working at Electronic Arts as the lead software engineer for Wii and PSP online client development. I worked on a lot of franchises - Madden, FIFA, NBA, Need for Speed, Grand Slam Tennis and Tiger Woods Golf, but my absolute favourite two games were Medal of Honor Heroes and Medal of Honor Heroes 2.
These games brought 32 player multiplayer to Wii and PSP. For me, it wasn't particularly the genre I liked, it was building the technology to get all those people playing together. Those games were an amazing learning experience. EA Canada was a cool place to work and I can't say enough nice things about the people there. That said, I wasn't able to pursue a project I've long thought about - making a small MMO.
I'll state up front, I realize how ambitious a project an MMO is. Even a small MMO is huge, I get that. But I still want to try. Chances are at the end of my time on the project, there will be nothing resembling a game. I think the value here will be what is learned along the way.
The goal is a game running on Windows and Mac.
Linux is unlikely. Source availability is unlikely. There are a myriad reasons for these decisons. Please don't bug me about them.
Initially I'll be posting infrequently. Mainly because I have a design to flesh out and a game engine to write. :)
I'm also going to remain deliberately vague about the game I'm building for a while.
Thanks for dropping by. Feel free to post here or in the forums if you have questions or comments. I hope you'll come by again.
Thanks, I'm still looking for ideas of what people think could be fun to do in an open world RTS.
Sounds awesome to me, i like the idea of NPC encounters/quests etc,one thing i found when i played was you are right once you build a base and get harvesters running etc, if noone is there to fight you kinda float about waiting. Dont know what you ...
I had an absolute grand time playing this weekend. Thanks for helping me out whenever you could, Rob!
Looking forward to an awesome future
Hey Dondergod, what firewall program, and what did it complain about? It's not BitDefender
I tried to get in, but my firewall kept blocking it.
Unfortunately I did not have the time this weekend to look further into it. Probably an easy fix, but I had too much to do.
Hope I will be able to enter the next test!