Results 1 to 5 of 5

Thread: Writing an engine

  1. #1

    Writing an engine

    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
    BK - we.create (tm)

  2. #2
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25

    Writing an engine

    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.

    Good luck with the 3D engine. Be sure to let us know how it's coming along.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  3. #3

    Writing an engine

    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.
    BK - we.create (tm)

  4. #4

    Writing an engine

    does anyone have a demo on how to do this?

  5. #5

    Writing an engine

    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 ops:

    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
    BK - we.create (tm)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •