Results 1 to 8 of 8

Thread: 2.5D Game Engine

  1. #1

    Thread Starter
    Addicted Member
    Join Date
    Apr 2000
    Location
    England
    Posts
    246

    2.5D Game Engine

    Starting next term (late september) I have been tasked with creating a 2.5D game (isometric) engine, that can be used by students at my university to create games. The Engine has to work in both C++ and VB, so i will proberly do it as a set of activeX object that can be referenced in both languages. with a ocx viewport componet

    Atm, I'm looking for ideas on what capibilities game creators want from such an engine (it has to have a wide range of uses, and is a Game engine rather than a game itself)

    Basic Spec:

    It must support an isometric view,
    (Optional: the angle may be adjustable)

    it must support tile height, Transparent Bitmaps, Full animation (both tiles and objects)

    background for transparent tiles

    multi tile Areas

    tile set

    object paths

    limited imput support

    Optional Spec:
    Sound Support
    Imput events
    Redraw events
    Game events (eg. object on tile, new object entering viewport, object death etc.)


    I will get a more detailed spec in september, I have approx 150 hours in which to get a working version + documentation finished with an addinational 150hours study work (whats already out there, graphic methods, game methods reports etc) + game development around the engine. The engine with be given to approx 50-100 university students to help them with a new game development module the university is running in march. (game methods rather than game engines, hence needing a games development enviroment)

    Worked out more or less how to the above stuff in pure VB. But will be reading upon DirectX and looking at samples to see if I should use that. It may be a bit of both.

    Any sugestions welcome

  2. #2
    Zaei
    Guest
    Isometric games are usually just 2d games except that the tiles have been draw as diamonds, so they look (psudo-)3D. If the angle of view might change, either you must draw a complete set of tiles (and sprites, maybe), or the game is then a 3D game. The same goes for tile height. you can draw tiles that look like they are higher than other tiles, but if the view changes, youll end up with a 3D game. Tile animation is just a series of cycling regular tiles. Transparent bitmaps are just bitmaps with a mask, you can find info just about anywhere on that. Generally what game developers are looking for in a game engine is to be able to do what they want to come up with a game they like to play =). I reccomend C++ for your task.

    What do you mean by backgrounds for transparent tiles, multi-tile areas, and object paths?

    From what you are describing, you arent actually creating an engine, but a game development API (like DirectX), that is wrapped up into an ActiveX control. If i were the one running the program, i would have asked you for a game template, something that just needs the actual logic (ie, all rendering, media loading, etc are already wrapped up in functions, and/or classes).

    Anyway, just my two cents.

    Z.

  3. #3
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221
    If you rotate the view in 90 degrees, like in for instance simcity2000 you won't need to create subsets of tiles for the same tiles can be used in all angles, at least those that looks similar from all 4 directions.

    Anyway a decent isometric tile drawing procedure that supports heights needs these characteristics:
    * Convert from isometric to screen to pixels with either pixel or screen offsets.
    * Either isometric or screen nested loops that runs from source respective target mapped coordinates where within you increment source respective target coordinates and pixels, with the pixel/screen offsets
    * Map Sprites(Objects) to the screen in target coordinates, that is if they overlaps each other, actually you need to do the same for the tiles if they overlap each other. To keep track on what sprites that needs to be drawn you could use a target mapped quad tree, that is with screen coordinates.

    Finally i recommend you use DirectDraw to blit the tiles and objects, that should save you a lot of time, both runtime and your time
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

  4. #4
    I'm actually doing something similar, just not for a university . The site's http://jonathon-manning.virtualave.net, and it's designed as an addon for the Dink Smallwood engine.
    My bulletin board's http://<a rel="nofollow" href="http:...tsoftforum</a>, let me know what you think.

    Re DirectX: That actually trashes the sprites I use, so I'm going with the GDI32 API . No flames please..

    - DesPlesda
    Code:
    If DinkSmallwood.Rocks = True
        Browser.URL = "http://dink.telefragged.com"
    End If

  5. #5
    Monday Morning Lunatic parksie's Avatar
    Join Date
    Mar 2000
    Location
    Mashin' on the motorway
    Posts
    8,169
    I won't flame, but your speed will be rock bottom if you use GDI
    I refuse to tie my hands behind my back and hear somebody say "Bend Over, Boy, Because You Have It Coming To You".
    -- Linus Torvalds

  6. #6
    Frenzied Member
    Join Date
    Jun 2000
    Location
    England, Buckingham
    Posts
    1,341
    Um dont call me ***** but u should use a 3d api and then just rotate the view

  7. #7
    Monday Morning Lunatic parksie's Avatar
    Join Date
    Mar 2000
    Location
    Mashin' on the motorway
    Posts
    8,169
    *****
    I refuse to tie my hands behind my back and hear somebody say "Bend Over, Boy, Because You Have It Coming To You".
    -- Linus Torvalds

  8. #8
    transcendental analytic kedaman's Avatar
    Join Date
    Mar 2000
    Location
    0x002F2EA8
    Posts
    7,221

    more flames

    Hey *****! He want's iso
    and GDI's Evil! What kind of sprites would be trashed by Dx?
    Use
    writing software in C++ is like driving rivets into steel beam with a toothpick.
    writing haskell makes your life easier:
    reverse (p (6*9)) where p x|x==0=""|True=chr (48+z): p y where (y,z)=divMod x 13
    To throw away OOP for low level languages is myopia, to keep OOP is hyperopia. To throw away OOP for a high level language is insight.

Posting Permissions

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



Click Here to Expand Forum to Full Width