Creating a server engine

Started by
1 comment, last by kevin10 13 years, 1 month ago
hello everyone,

I'm very intrested in creating some kind of engine in my server application. Currently I just got a few clases like packet writer/reader, database, file loading, iocp.
which I call my "base" of my server. but some people said that this isn't a very good way to build some kind of server and to focus on writing an engine for your server.

but now comes my question what exactly is such kind of engine? is it just a collection of a few classes which you use in your application or some kind of layer which is between the application and the sockets, database, filesystem ect.

I don't know if it's relevant but i'm using C++.

Thank you very much:)
Advertisement
In my opinion, "engine" is a terrible word to describe whatever code you write to help you build a server.
In general, an "engine" is a complete set of integrated game development subsystems. This includes physics, sound, input, graphics, AI, networking, etc.

I suggest that you figure out what it is you want to do, first! Do you want to write a networked game? If so, write a networked game!
Do you want to write code that other people can use to write networked games? Then download existing products that do something similar, and play around with them, to figure out how this could be done. Then make your own spin on it. (Also, you may want to articulate in some detail what's wrong with the existing solutions, first)
Do you want to learn networked game server programming? Don't worry about providing an "engine" or a "framework" or even a "library," because you're learning! Dive into some existing open source project or library, and learn from what already exists.

Personally, I kind-of like the "library" approach. Define some area of functionality you want to provide -- say, transforming data structures to bits in a buffer and back (marshalling), or matchmaking between players and available game sessions based on some various properties -- then implement a library that performs that function. Write sufficient sample code and documentation and tests that other people can actually understand and make use of it. Then find another area of functionality you need, and develop another library -- repeat until you feel you've covered what you need to cover!
enum Bool { True, False, FileNotFound };
Thank you for your quick reply:)

It's now a lot clearer. I'll dive into some open source projects and see how those people do the job.

thank you:)

This topic is closed to new replies.

Advertisement