Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: Hartland

  1. #1

    Hartland

    Hi, I just started working on Hartland, an MMORPG, I want it to have a Game it self, Level Editor, Messenger, and a few other things. Howevere I have no idea where to start. I am no begginer in programing, or maybe I am.
    Right now I was thinking about creating engine, basically by that I mean Player walks around, levels are actually drawn with help of level files, and tha's it. Howevere I ahve no idea where to start, or how. Help?

  2. #2

    Hartland

    Hey Androk,
    First of all I have no idea what an MMORPG is, but I think I can give you some basic information without nowing that!

    I would start by making the basic map-engine, with that I mean, when you want to make a 2D game you may consider a tile engine, but sometimes one bitmap to fill the entire screen might do just what you need. In the last case you might use objects or sprites for walls or things like that, in the first case (tile-engine) you have to use something like an array to store the tile-information in. In my rectangular-engine (tile engine) I used records to store tile information in and created multidimensional dynamic arrays of the recordtype as map. For Example:

    // The Record
    Type TTile = Record
    Index : Integer; // Image Index
    Passable : Boolean; // Sprites collide if True or pass if False
    End;

    var Map : Array of Array of TTile; // The Map


    Then you can write a drawing procedure that passes all of your tiles and draws them at their predifined position. If you use tiles that are 32x32 pixels than you could determine the position by using (pseudo):
    For Y := 0 To MapSizeY do
    For X := 0 To MapSizeX do
    Begin
    TileX := X * 32;
    TileY := Y * 32;
    End;

    Of course before you can use a tile-engine in your game you'll have to have an editor, but that's pretty much the same work. To save the files you can simply store the multidimensional array into a file.

    Only when all of that is done, then I would look into placing a character on the map and making it move and for that I would use objects and a simple sprite engine... So basically what you want to do is create two things a tile-engine and a sprite-engine.

    Hope this helps
    Do it by the book, but be the author!
    <br />
    <br />Visit the Lion Productions website at:
    <br />http://lionprod.f2o.org

  3. #3

    Hartland

    MMORPG = Massively Multiplayer Online Role Playing Game.

    Btw, you don't need the muls if you're doing a tile engine - instead, you can simply add a value each time. I.e., in pseudocode

    [pascal]screen_y := 0;

    for (y)
    begin
    screen_x := 0;

    for (x)
    begin
    draw tile(x,y) at screen_x, screen_y
    inc(screen_x, 32);
    end;
    inc(screen_y, 32);
    end;[/pascal]

    That will be a bit quicker, plus you have the added advantage of easier scrolling - you can simply adjust the starting screen_x and screen_y values based on the offset and let clipping take care of the rest.

    [EDIT: oops, slight mistake about setting screen_x to zero outside of loop]

    [EDIT2: and btw, you'd store your tiles in a 2d array, probably, taking the form "map: array[0..map_height - 1, 0..map_Width - 1] of TTile". The pseudocode above really should be "draw tile(y,x)" but I didn't want to cloud the issue. If you don't take care of correct ordering for your array then things get very slow indeed.]
    "All paid jobs absorb and degrade the mind."
    <br />-- Aristotle

  4. #4

    Hartland

    An MMORPG is quite an undertaking :shock:
    I suggest you start writing things down first. Write down everything you think is needed for the game. What kind of engine (2D/3D), editors, script engines, graphics, IA (if needed (npc's?)). Don't take this too lightly though, look at other mmorpgs for reference.

    Then for every item specified above, write more detailed what is has to do, what it's requires and how long you think it would take to realize and more important if you can realize it. For example, a tile-editor should be no problem, but how about pathfinding?

    Once you have finished this 'blueprint' (and still think you can do all the things you wrote down) you can start thinking about programming.

  5. #5

    Hartland

    I agree about the size of this undertaking. I've never seen the attraction towards "massively multiplayer online xyz" to be honest. What's wrong with good ol' single-player fun, where the unreliability of network connections can be avoided? Damn these people with their online shenanigans!

    You might want to have a chat with the bloke who's working on this online game (Age of the Ancients) to get a better idea of what to expect (btw, quite a few bits of the site give 404s, but the forums work - try to drag him over here if he's not already a member :twisted: ).
    "All paid jobs absorb and degrade the mind."
    <br />-- Aristotle

  6. #6

    Hartland

    Heh Thx, I was going to make walking engine first, but it makes more scence to make tiles first. I thought I can do it in 3 levels/layers:
    1st level is walkable.
    2cnd level is all the blocking stuff.
    3rd is level are NPCs (This miuht change to water).

    Links to Screenies:
    http://forums.graal2001.com/forums/a...&postid=688828
    http://forums.graal2001.com/forums/a...&postid=666585

    I have more recent screenies, but until I get my site up and al, NO RECENT SCREENIES! I got about 3 times more tiles now x.X

  7. #7

    Hartland

    Quote Originally Posted by Androk
    ]http://forums.graal2001.com/forums/attachment.php?s=2150e2782a69ec40203a15be0ce4e5c0& postid=688828[/url]
    http://forums.graal2001.com/forums/a...&postid=666585
    The backgrounds look very nice!
    But i think a mmorpg is really difficoult to program.. i've done something like a mud times ago, and it was very hard to do. A mmorpg is far more difficoult!
    As i always say, the most important thing in programming a game is complete it! So it is better to have a simple completed game than a complex, uncompleted one.

    Bye
    If you save your data in a proprietary format, the owner of the format owns your data.
    <br /><A href="http://msx80.blogspot.com">http://msx80.blogspot.com</A>

  8. #8

    Hartland

    I have a question. What is easier on memory of computer 2-3 Boolean arrays, or 1 interger one?

  9. #9

    Hartland

    *Deleted*
    Do it by the book, but be the author!
    <br />
    <br />Visit the Lion Productions website at:
    <br />http://lionprod.f2o.org

  10. #10

    Hartland

    Quote Originally Posted by Androk
    I have a question. What is easier on memory of computer 2-3 Boolean arrays, or 1 interger one?
    A boolean is one byte - which means you can get four of them into 32 bits. If you use an integer, you can get 32 values per int (32 bits) - 8 times more!

    [pascal]procedure Test;
    type
    TTest = array[0..3] of Boolean;
    begin
    ShowMessage(IntToStr(SizeOf(TTest))); // allows 4 values
    ShowMessage(IntToStr(SizeOf(Integer))); // allows 32 values
    end;[/pascal]

    You can either do the packing-to-integers yourself ([url=http://www.alistairkeys.co.uk/bits.shtml]]) or you can have a look at the TBits component of the VCL.
    "All paid jobs absorb and degrade the mind."
    <br />-- Aristotle

Page 1 of 2 12 LastLast

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
  •