PDA

View Full Version : Writing an engine



Mrwb
30-05-2004, 09:08 PM
Hi there!

Not sure if this is the right forum, if not, then sorry..

I'm currently trying to create a 3d engine/game engine. The problem is, I have a bad habit of just starting to code without planing anything, so I though that this time, I would do some "research" and planing before actually starting to code. I have a couple of ideas as to how to do the engine, but I could need some thoughts/ideas of people a bit more experienced then myself. ;)

After searching the web, I found two layouts which I found interesting:

- Having the engine in a executable and the game in a dll
- Having the engine in a dll and the game in a executable

The first one seems to me, to be the best, since it would allow easy modding of the game, but I think it'll be a bit harder to do than the second one.

Any thoughts/ideas?

I'm also interested in engine design/layout docs btw ;)

WILL
31-05-2004, 02:16 AM
No worries, we can always move it if we want it elsewhere. ;) j/k

Well, I'm no expert on 3D engines, but seeing many game engine/libraries in my day(I'm even making a 2D game engine myself), I'd say there is a 3rd option.

:arrow: Having the engine in an executable and a DLL or two AND having the game in a DLL aswell.

It might not be easier than your second option, but it'll allow you to make your game engine easier to upgrade by being more modular and it'll allow you to use these same DLLs in other engines/projects with only a little bit of modification. Plus if your using Delphi/Kylix, you add on cross-platform compatability by being able to make SO(DLLs for Linux) libraries aswell.

Lotsa fun. 8)

Good luck with the 3D engine. Be sure to let us know how it's coming along.

Mrwb
31-05-2004, 10:37 AM
Having both in a dll seems interesting :)

Having the engine dll create the window etc. and just have the executable link the engine and the game shouldn't be too hard either. I'll definatly try it out. :) Too bad I have exams all week, not much time to code. :(

IMHO there's a shortage of information on this topic, there's plenty of code, but not many articles/tutorials dealing with the genereal therory, like where you should start, things to remember and engine design/layout. I'll write at least one article on this topic though, when my engine is starting to shape up. ;)

tux
31-05-2004, 01:00 PM
does anyone have a demo on how to do this?

Mrwb
31-05-2004, 05:15 PM
I've thought about it, and I'm now in the process of creating a design/layout document.

This is my soulution:

The engine .dll will act as a server. It may only do stuff/send data if it gets a request. If it gets a request, it will follow it, then it'll send a repond to the "client" (which is the game dll).

The gameloop, and basically everything game related will be resident in the game dll, and the executable will simply initialize the two dll's.
The engine will contain all window procs, as well as all the loaders in addition to what "an engine should include" (world renderer, collision, text output etc.)

I have no idea if this is a good soulution, but I thought I'd try it out.


EDIT: Found a series of articles dealing with therory around 3d engine creation: Only took me about 3 days of searching gamedev.net :oops:

http://gamedev.net/reference/articles/article1947.asp
http://gamedev.net/reference/articles/article1954.asp
http://gamedev.net/reference/articles/article1959.asp
http://gamedev.net/reference/articles/article1973.asp
http://gamedev.net/reference/articles/article2011.asp