-
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
-
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.
-
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 ;)
-
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 :rolleyes:. No flames please..
- DesPlesda
-
I won't flame, but your speed will be rock bottom if you use GDI :(
-
Um dont call me ***** but u should use a 3d api and then just rotate the view
-
-
more flames
Hey *****! He want's iso :p
and GDI's Evil! What kind of sprites would be trashed by Dx?