|
-
Jun 4th, 2001, 08:16 AM
#1
Thread Starter
Addicted Member
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
-
Jun 4th, 2001, 12:00 PM
#2
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.
-
Jun 5th, 2001, 05:41 AM
#3
transcendental analytic
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.
-
Jun 8th, 2001, 06:44 PM
#4
New Member
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
-
Jun 8th, 2001, 06:53 PM
#5
Monday Morning Lunatic
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
-
Jun 9th, 2001, 01:52 PM
#6
Frenzied Member
Um dont call me ***** but u should use a 3d api and then just rotate the view
-
Jun 9th, 2001, 02:01 PM
#7
Monday Morning Lunatic
*****
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
-
Jun 9th, 2001, 04:39 PM
#8
transcendental analytic
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|