Jump to content
  • Advertisement
Sign in to follow this  
Kapoios

Creating a game engine

This topic is 2579 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

I would like to create my own game Engine for a MMORPG 3D game
And I would like to learn which programs should I use
and I also been reading:Code Complete Second Edition and Coding Complete Third Edition

Share this post


Link to post
Share on other sites
Advertisement
Generally speaking there is no correct answer to your question, use whatever tools you are comfortable with, If you have trouble picking appropriate tools you should consider starting with somthing far less complex than an MMO engine.

Share this post


Link to post
Share on other sites

Generally speaking there is no correct answer to your question, use whatever tools you are comfortable with, If you have trouble picking appropriate tools you should consider starting with somthing far less complex than an MMO engine.


I created this topic for asking what tools would you suggest working with on creating my own game engine

Share this post


Link to post
Share on other sites
Unreal Engine or CryEngine3 (should be available soon) would be the best bet by far as far as 3D part is concerned.

Unity3D is probably much simpler and comes with server side libraries as well.

Share this post


Link to post
Share on other sites

[quote name='SimonForsman' timestamp='1304186477' post='4804794']
Generally speaking there is no correct answer to your question, use whatever tools you are comfortable with, If you have trouble picking appropriate tools you should consider starting with somthing far less complex than an MMO engine.


I created this topic for asking what tools would you suggest working with on creating my own game engine
[/quote]

It really doesn't matter, Antheus suggested some engines but as your intention is to make your own engine those suggestions doesn't really apply.

To make your own engine you basically need a compiler, a text/code editor and a debugger, Which ones you choose really depend on what language you intend to use, what platform you're working on and most importantly , what you're comfortable with. (You really don't want to learn a new language while trying to wrestle with a MMO engine so unless the only language you know is Brainfuck you really should stick with what you know, some languages do make writing scalable concurrent code easier but you can write fast scalable software in any language and you'll almost always get the best results with a language you know well.

For Windows and C, C++ or .Net (C# / VB.Net, and other languages) you really can't beat Microsoft Visual Studio, You could also look at code::blocks or QTCreator for Win/Mac/Linux or XCode for Mac.
If you're using Java instead you could look at Eclipse or Netbeans.

For the actual MMO backend there aren't really anything useful out there to simplify the process, the RedDwarf project (formely project Darkstar) aims at creating a scalable backend for Java MMO/Virtual World servers but its still in fairly early stages of development, It might still be worth looking at though. (This is one of the hardest technical challenges when creating an MMO so no matter what you do this part has to be given alot of thought and your game has to be designed with this in mind, If it doesn't scale you won't ever hit that first M as buying faster hardware simply isn't an option (CPUs really aren't getting any faster, they're just getting more cores and for an MMO you need to not only scale across multiple cores but also across multiple physical machines)

You probably also want to look into databases, SQL databases (such as MSSQL, MySQL, PostgreSQL, Oracle Database, and many others), are a good place to start, They all use pretty much the same query language (SQL) so its reasonably easy to switch between them.

For the client everything is basically the same as for any other multiplayer game.
You should also take a look at either OpenGL or Direct3D (OpenGL is cross platform, Direct3D is Windows only) for the graphics (Those are the only APIs supported by modern hardware).

Other libraries that might be useful for the client game engine could be SDL/SFML (cross platform window/sound/input management, if you're going Windows only you don't need these and ofcourse for crossplatform development you could target each platform directly aswell allthough there is very little benefit in doing so and it requires quite alot of extra work).

For script integration i'd recommend lua (its what i'm using for my upcoming game engine) as its extremely easy to integrate but there are plenty of alternatives, AngelCode is fairly popular and the author is active on this forum (if you use Java or .Net you can use reflection rather than scripts if you prefer that). (Script support is optional ofcourse but it does make things alot more flexible).

On top of the basic tools used to create the software you should also consider tools that aid in managing a large project, some form of source control is a really good idea (SVN is quite popular).

Share this post


Link to post
Share on other sites

[quote name='SimonForsman' timestamp='1304186477' post='4804794']
Generally speaking there is no correct answer to your question, use whatever tools you are comfortable with, If you have trouble picking appropriate tools you should consider starting with somthing far less complex than an MMO engine.


I created this topic for asking what tools would you suggest working with on creating my own game engine
[/quote]

Firstly I assume that you dont plan to code from scratch , at first place I`d suggest :


Unity , Torque , Shiva , Unreal ( a general and rough list by considering prices and royalties , target platforms , communities and product support and features )

Also I have heard of BigWorld for MMOs

Just for netwok side I have heard of RakNet ( I guess Unity has this )



Since your question is quite unclear , that is the most specific suggestion I`d make

Share this post


Link to post
Share on other sites

I would like to create my own game Engine for a MMORPG 3D game
And I would like to learn which programs should I use
and I also been reading:Code Complete Second Edition and Coding Complete Third Edition


Honestly, if you are asking these questions then you should not be creating your own 3D MMORPG. Or your own game engine for that matter. You don't really use "programs" to create a game engine. The only programs you use are your editor/debugger. You use "libraries" to construct a game engine. SimonForsman gave a great list of some of the most popular libraries for networking, database, etc.


But it sounds to me (and I may be wrong) that you don't even know how to develop software in the first place. You need to learn to walk before you can run. And it sounds like you don't even know how to crawl at this point. People would generally laugh at someone with no construction experience or knowledge that suddenly announced "I'm going to build a 1000ft sky scrapper. Now what do I need to build it?".


If you're really serious about this, before you can even begin working on a MMORPG you need to receive years of education and training, preferably from a real-life university or college. I wanted to make video games from the time I was 12 years old, but I didn't start until I was 22, had graduated with a bachelor's degree in computer engineering, and had developed many different types of software from over a dozen different languages that I learned during my studies. Only then did I feel prepared enough to begin developing games in my spare time.

Share this post


Link to post
Share on other sites

[quote name='KillTheCook' timestamp='1304186043' post='4804788']
I would like to create my own game Engine for a MMORPG 3D game
And I would like to learn which programs should I use
and I also been reading:Code Complete Second Edition and Coding Complete Third Edition


[size="4"]Honestly, if you are asking these questions then you should not be creating your own 3D MMORPG. Or your own game engine for that matter.
[/quote]
Quoted for emphasis. You really wouldn't be asking these questions if you were ready to create something as large and complex as an MMORPG (and especially not a 3D one - 3D games in themselves can be quite complex). Learn to make simpler (offline, possibly 2D) games first to build up your experience and then come back to your MMORPG idea in a few years time.


Share this post


Link to post
Share on other sites
I honestly don't know how far along you are in programming, I set out at first to do just what you did, it's a common newbie misconception. I went from 3D mmo to a single player 2D diablo ii clone (not including previous "warm up" projects). Once I finish the clone I'll implement the network and make it a mmo.

If you are new, trust us, don't bother with that. Just don't. You going to get infinite headaches, and your gonna get "code burn" and straight up quit. (It wasted years, I suffered from textbook burnout twice). Start small. Quite honestly, I thought at first programming tetris would be boring as hell, to find I really enjoyed the experience. The fact you made the game makes it so much more enjoyable. And if you don't get a kick outta making a tetris clone, you probably won't have the patience nor ability to program a full blown mmo. (If you can't program tetris, which uses a tile-based movement system with a very simple class definition, your not gonna pull off 3d terrain...)

Start small, and trust me, it'll knock your socks off. Then just keep going.

Make a TEXT rpg. When that's finished, you'll have learned quite a bit from that experience and the mistakes youve made, so drag the project in your recycle bin and start from scratch and make a simple ff2ish rpg. (Don't be afraid to look stuff up, you shouldn't expect yourself to know exactly how to do it, but you should have a basic idea from the start how it'll work). From there you can upgrade to a diablo 2 clone, you'll only need to change a few constants to increase screen size and increase tile size. Then from there, if it's well made, you can move up to 3d. If not scrap and repeat until you get it.

A diablo II clone is actually a reasonable sized project for a single person team.

And also, a recommendation, there are plenty of tutorials out there that allow you to use their source code. Your not gonna make an entire engine yourself. Use their source and give them credit. It will save you a lot of time. And if you somehow hit it big, throw them a few k, it wouldn't hurt.

If your new, read on, if not I wish you the best of luck: (Hopefully newbies in the future might pick up on this post as well).

C++ is the industry standard for game dev. It has a high learning curve, but once you get the hang of it you'll love it. Java is also pretty cool too, I don't know a lot, but I get the basic idea of it.

C++ tutorials:
http://xoax.net/comp/cpp/console/ <- Best C++ tuts around, it's in video.

zeus cmd (google it) is a great second reference, it's in text format.

For a graphics API, I'd personally suggest OpenGL, as it rocks. (Okay fine, DirectX is alright). Don't bother with OpenGL until you know a main language. If you can't grasp OpenGL (like I did) learn SDL. It's simple 2d graphics, but it gives you a good idea what to expect (generally) and you can learn it in two days if you put your mind to it (I didn't lol). You could make your engine in SDL, I just learned enough of SDL to get the hang of how computers understand graphics, and decided to program my engine in OpenGL 2d, so I can easily upgrade to 3d later. (Well, not easily, but it;s better than making it in SDL to purposely recode in OpenGL).

SDL:
lazyfoo (google it)

OpenGL:

videotutorialsrock.net (com?) Awesome, awesome, awesome tutorials, both text and video and the author LETS YOU USE HIS SOURCE for projects. He's the best at explaining everything that I've found.
zeus cmd is, again, a great second reference for opengl.

How to get to the 2d/3d level:

Once you know C++ (if you choose to learn C++) google rdx games, and a site with a text rpg "Wrathlands" will come up, it's a great tutorial, its in video form, it got me from the point where i understood what functions/classes/etc/etc were for and how to declare them, but I still didn't know exactly how to write actually programs. It's helps you get past that speed bump.

That will get you squared away with C++ (to a good extend, you'll still have plenty to learn though, but you should be able to make a nice 2d game [or a real halfass 3d game] with that knowledge). Then move up to opengl. If you have trouble understanding opengl, downgrade to SDL.

At that point you'll have a 2d/3d game. (Or the programming balls to make one).

As far as engines are concerned, it's a very very difficult topic, and there is virtually NOTHING ON IT ONLINE. Your gonna need to buy a book on it. Preferably two.

I suppose then, the final step is to learn network programming. Winsock is REALLY REALLY simple and easy (then again I am net+ certified so I understand how the internet works at the packet level you might not) but it's rather simple to learn as compared as to learning C++.

IF YOU ARE A LEGIT CODER, I DIDN'T MEAN TO OFFEND YOU BY TREATING YOU LIKE YOU KNOW NOTHING. But quite honestly, as someone who could still be considered a newbie programmer (lower level intermediate at best) I'm already getting sick of newbies popping on here expecting to do a 3d mmo out of nowhere. My wish was to assist you, not offend.

WoW has like 400 people working on it at pretty much any given time. Most working full time. No one person is gonna pull that off unless they spend a good ten years on it (or they have time travel). There's a tutorial on how to program a time travel machine somewhere in my bookmarks...having trouble finding it at the moment... I'll get back to you later on that one...

But nonetheless, good luck to you, whatever you choose to do.

But if your a newb, don't aim too high. Trust us.

soaren

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!