new game - comments? (warning - large image files) | |
maxhamner | Working on a project and thought I'd post this for feedback...
I'm writing a 2D tile based RPG in visual basic, using DX7. The shell of the engine is there, and the editor is comming along nicely (the editor will allow editing of map, items, npcs, coversations, triggers, etc.
Although a 2d tile system, I have 5 layers of tiles, overlayed and offset (and of coruse smooth scrolling), to get a psuedo-isometric view. The games supports all common resolutions (640x480, 800x600, 1024x768, 1280x1024, and 1600x1200), allowing you to see a larger area of the map if you have the hardware to support it.
I'm currently getting about 60FPS at 1024x768 x 32biit on a P500 with an ATI RADEON 7500 (slows to about 40fps when there is a lot of water on the screen as all water tiles animate). I use an integer per tile - allowing for huge diversity in tiles, although I'm creating it around two sets of 2048 tiles (one for ground (level 0), one for buildings/trees/objects(level 1-4)), which does not include items. (yes, I'm using vblank on page flip). My roomates computer (1.7G? Radeon 9xxx?) gets about 110 FPS at 1024x768..
Here are a few screen shots (frame rate a little low, I have a zillion things open on the desktop and ran it from the IDE to grab these), your character passes 'under' things like trees and wood structures, but buildings (which are multi-floored) will hide the levels 'above' you so you can see yourself when inside.
Seems like decent performance to me, any comments?
Image Insert: [img]http://www.vbgamer.com/msgboard/uploaded/maxhamner/200411411040_Image1.jpg[/img] Image Insert: [img]http://www.vbgamer.com/msgboard/uploaded/maxhamner/200411411113_Image2.jpg[/img] Image Insert: [img]http://www.vbgamer.com/msgboard/uploaded/maxhamner/200411411920_editor1.jpg[/img] [?] |
VBBR | Looking great to me! Keep up the good work. [:D] |
timbo152k | This game looks awsome! Is it going to be single-player or multiplayer? Very nice work on the graphics - did you draw them yourself, or get them from a library? |
Eric Coleman | Sweet! Keep up the good work. [:D] |
Zarneth | Wow. I have to admit even I'm slightly impressed. And that's really saying something. I'm assuming you made all (or at least most) of the gfx yourself? |
maxhamner | Wow! Quick responses!
All tile graphics are hand-drawn by me (no rendering, just PSP pixel editing) except the 'cobblestone' which was sized down and edited from a larger texture.
The player graphics start off as a rendered image from a guy in germany who makes them available free. Then I heavily edit them, both changing all the colors as well as details like the hands (his renders have 'open' hands instead of wrapped around objects).
The 4 'spell' icons at the bottom were taken from a site with free spell icons intended for EQ. Doubtful they'll be used unless I get specific artist permission, but was working on the code and wanted something quick.
I'm hoping to get some kind of 'test' demo up at some point to get frame rates back from other users (with various hardware and resolutions) as I'm most worried about it and if the rates I currently get seem reasonable...
Just for fun I pulled an image of the game running at 1600x1200 that shows a much larger area of the map... framerate sucks... will try to attach it so it doesn't autodownload in the post... (appears to have worked)
Thanks again for the great comments!
Download Attachment: [url="http://www.vbgamer.com/msgboard/uploaded/maxhamner/2004114124129_Image1600.jpg"][img]icon_paperclip.gif[/img]Image1600.jpg[/url] 206.12 KB |
VBBR | quote:Hey, did I see someone post something, just a little, like this... like, 2 posts above? ...no, maybe it's just me. That's probably what you get from a sick PC which needs to reset itself 2-3 times a day so it's happy. (and that's just 2 ou 3 weeks after it had blown my XP partition; lucky I'm paranoid and have 98 and 2000 installed too... not to mention all the data I've lost... *sigh*...) |
Sion | It's looking great! [:D] It's kind of a funny isometric perspective though, but if it works well then all power to you. Really looking forward to an interactive demo [;)] |
ballistik | Nice job! Look forward to giving it a play. [:D] P.S. The gargoyles look great! |
Zarneth | quote:Arn't they're a bit out of balance with the rest of the graphics though. Not that they're bad. But they just dont' fit in. YOu gotta keep all the grpahics the same style or it looks bad and unproffesionnal? |
maxhamner | The gargoyles are actually a very edited digital photo of a gargoyle I have sitting on my desk. :D Interesting comment on the gargoyles "don't 'fit in"... have to agree to some degree... While they are not exactly the same style, I did 'posterize' the image (basically dropping the number of variations across gradients) somewhat to make it closer to the style of the game than a photograph. I tried dropping the contrast ratio of the gargoyles (the most striking difference from the game content) but as they look more like the game content they seem less and less like an overlay and kind of 'disappear' into the game - and I didn't care for that much. I am considering moving them to the left and right edge of the screen with the life/mana bars side by side down near the control bar. But since my game allows running at any resolution I would probably have to produce quite a few additonal image pieces to make it look right at any resolution (i.e. how they meet or don't meet in the middle) Definately appreciate the input... |
Almar Joling | Looks nice ;) |
Zarneth | quote:Adiditonal images for each resolution? Not nesseciarily. Have each gargoyle and mana bar on each corner. and the lower bar part just centers on the screen. It is a tad oddd scicking up into the center like that. |
Eric Coleman | I think you did a really great job with the map in those screenshots. The river looks very natural in the mini map, as well as the placement of the trees. Overall it is probably not something that one would notice, but I've seen maps that look more geometric instead of having a natural "lived in" look to them. Most typical RPG games have standard towns. 4 buildings with more people wandering around than the town has houses for. The layout of your town looks like it could be a real place, and I think that's really interesting. |
maxhamner | Wow, talk about picking up on a small detail - sharp eye!
This is the 'main' town for the game... the capital and probably the one that will be most visited - so it is large and has a lot of attention to detail for the 'lived in' look, even though it's not finished.
If all goes well each NPC will have a schedule with a home, a place to sleep, a place to work, etc so I had to provide proper 'housing'
My Map editor lets me view the world with a full screen view of the map, so I cut out the section that has currently been 'drawn' It's very clear where I stopped, some large buildings in town are too big (was playing around) and will have to go.
The cathedral (to be moved to another part of the map later) will be up against a mountain, but those layers are not drawn yet so the 'catacombs' that will stretch back into the mountain are visible here... (my map view automatically shows the topmost solid tile for each x,y coordinate - anything blank or > 50% transparent is treated as transparent)
The crop fields are smaller than is realistic in proportion to the town, but within reason (the 'clone paint' tool of my editor makes stuff like that a lot less laborious)
This image is 10% of the area of one map. [img]http://www.vbgamer.com/msgboard/uploaded/maxhamner/200411614251_map1.gif[/img] |
maxhamner | Oh, on the gargoyles - I kinda agree about them being in the center - they do seem to always come up as one of my design issues... But if I put them in the corners I run into issues at low resolutions (640x480) because stuff would overlap, and at 1600x1200 everything is too far apart. I am considering using the stretchblt functionality to scale the status area for the screen size, using one of two 'layouts' designed for 'smaller' and 'larger' resolutions... |
Eric Coleman | The fields are irrigated, very nice! |
maxhamner | LOL - yes, they are. Debating having a 'sluece' and letting the player open/close it as a sort of easter egg (i.e. no effect in game) but all the water tiles in the fields would be 'instant' on/off - not worth the code to have it 'flow'... |
Zarneth | quote:Holy F**k. o.o quote:Oohh. that'd be awesome. Little insygnificate detailes like that can really improve a game. Would makeing the water flow into the channels be all that hard thoguh? I guess mabye a little. A small piece of well designed code would probably be all that's needed though. Kinda like a floodfill tool in a paint editor. 'corse it does require a bit of effort still. Perhaps mabye making all the water in the chanels just fade in simultaniously, with 2 or 4 diferent frames? and of corse the same for when you turn it off, the water seeps into the ground fading away. What kind of game will it be? Realtime combat, Final Fantasy style, or turn based stratagy? Will it be single player or mmorpg? Will it be just combat or adventure/puzzles too? quote:You're monitor can't do 2048x1536? (Not that mine's supposed to be able to accordign to the specs) =D |
maxhamner | This map will be the main map with several towns. A second map will probably contain a large and small island. A third map will be used for dungeons. Each map is 2048x2048x4 levels. They compress very well, but uncompressed a single map requires 40 megs of hard drive space because I use two bytes per tile. I aborted an initial design to break the each maps into 'sub-sections'. Well, I actually had thought about it after your suggestions, and making the water flow into the channels wouldn't be hard because unlike a flood fill the channels are very limited (i.e. once you fill a tile you move to it's neighbors and you are done with the original tile so you don't have to use a stack to backtrack to the last branch - just allow for X simultaneous 'flows') . Having water 'fade' or 'soak into the gorund' is even easier because the change would be simultaneous across all tiles of the same type, and could be handled at refresh. I agree on the idea that little details seem to add a LOT to a game. I pondered how I could work it into the game - like having to find a part to fix the sluece gate - but never came up with anything I liked, so thought it would make a good 'fun' detail if I didn't waste time on it. I don't want to burden the game down with too many little things that grow big because there is already so much complexity involved for stuff like the NPC's each having a 'life'....still, you have me considering it. It will basically be real time combat - with quests that involve puzzles... probably figuring out the order of things in combinations with clues and riddles... still up in the air as it will be affected by how well I am able to impliment the full schedule/life details for NPCs. Working on a new vb DirectX sound 'manager' module tonight that handles all the multiple sound loading (priorities for determining which buffers are over-written on loads, lockable buffers, easy to impliment callbacks) and makes it transparent to support multiple formats (bit rates, samples sizes, etc). When I get it working I'll post the code for anyone that wants it. |
Zarneth | 40 megs for the map? Are you sure that's right? Hrmm. 2048x2048x4x2 IS a bit over 33megs. :\ Rather a shame that. Though I guess that's not too bad with the ammount of ram in this day and age, but if you wanted to run it on older computers you'd run into trouble. :( |
maxhamner | Yeah, it it is actually 2048 x 2048 x 2 x !5! (there are 4 layers for buildings and trees, plus a layer for 'ground') giving 40 megs. Level 4 of the map is virtually empty (roofs of tall buildings and tops of tall trees here and there), level 3 only slightly more so, etc. The current map compresses to a few hundred K in winzip without turning on the 'maximize compression' mode. But having 2048 current tiles, with the ability to add more if needed allows me to make the map so it isn't "blocky" (if you load a different size bitmap as the tile 'source' image in my editor it will automatically resize the arrays with the tile attributes so adding tiles, even a single row, is beyond trivial). Graphics could probably be dropped from 32bpp to 16bpp, but my video card (an ATI Radeon 7500) won't even initialize directX7 in 16bpp in several video modes. I can drop the color count in the images for distribution without loss of quality and let DX upconvert them at load so they distribute smaller, but the video RAM requirement will be 'up there' Actually given the size of the game and number of graphics it's going to require a decent computer anyway... My guess is 400/500 Mhz or better, probably 60 -70 megs of RAM, and a decent video card with 32 (64?) megs of RAM. That's extrapolating for the stuff that isn't in yet... definately not a 'small' game, which means the quality, character development, and 'value' will have to be kept very high. |
Eric Coleman | I guess my crappy 8 MB ATI card wont' be able to play this game. And it looks so cool! |
Zarneth | quote:Dear god you poor thing. Please tell me you're only using that 8meg card becaues your top of the line 3d card reciently died? o.o Admittedly though you can get some damn good dos games that'll work sweet on that thing. ;D |
maxhamner | 8 megs? that's like, what? 1 bit per pixel at 320x200? LOL! J/k! (ducks) If you had a super bad-ass computer with that 8 meg card in it, you might be able to play... The direct draw surfaces will get bumped to system memory rather than the game not running (willl probably add a video mem check and advise the player)... so if your FSB and video interface are top of the line it might still be playable.. ;) m |
Lachlan87 | Actually. . . His card could hold one fairly big texure with that much space: 32 bits * 1 600 * 1 200 = 7.32421875 megabytes. I love google calculator. :) BTW, why did you abort your attempts to split the map into smaller sections? It doesn't seem like it should be that hard to do. |
maxhamner | Well, lets see, I have 2048 ground tiles in a bitmapof 1024 x 2048 x 32bpp(4bytes) = 8megs, another bitmap the same size for the objects (buildings, trees, etc), plus images for the player, items (stuff you can pick up etc), npcs, the status area, map view, etc... and I used a per-layer prebuffer system for updating tiles to get the best refresh at full screen so that uses more memory.... moving any of that stuff from video RAM to system RAM has a terrible impact on the bitblt performance. As mentioned I originally was going for 16bpp, but noticed that my on my fairly good ATI card DX7 fails to init on 16bpp in several modes.... odd, but troubling, so I decided to go to 32bpp. Splitting the map itself into smaller chunks would be trivial. However managing the chunks real-time in game, given that my goal is to give each and every NPC a full daily schedule with minor variations and possibly weekend variations begins to get complicated if the npc is supposed to show up from a part of the map that isn't loaded. Additionally I would only split the map up if I can 'cache' chunks as you move so the entire map remains completely seamless... (games where you hit a 'border' and have to wait for a load really irk me). So even if I keep the NPCs all loaded (even if their 'map chunk' isn't loaded) causes issues because they can't path-find to where they are going.... there were some additional issues as well and it added up to making me feel it wasn't worth it, especially after looking at the requirements of a lot of the higher end shareware/freeware games comming out now. WIth one big map I can have triggers that modify remote locations on the map, etc without convoluted cache processing... And by one big map I basically mean 'per continent' - there will probably be 3 maps total, but the transition between continients (boat ride, whatever) will make a transitional pause more acceptable. |
maxhamner | BTW, I don't mind answering those kinds of questions, they are actually what I'm looking for! Sometimes I have thought it out and have an answer. Sometimes I dismissed something that I should have thought about more... (i.e. I'm more thoroughly re-examining both my map handling and the bit depth now)... |
Lachlan87 | Hmm. You could make your textures in 16bit and make it up to user preference what DX is initialized in. That should cut down on the video memory requirements. Your reasons for not splitting up the map sound logical. Like you said keeping your system requirements that low is probably not that big of an issue. I think that keeping the Video ram requirements low is more important. I can see requiring a 32 meg card as being acceptable, but I think you would find requiring a 64MB card to be pretty limiting. It seems like you have it thought out pretty well. It will be interesting to see how your game progresses. |
Eric Coleman | My card is limited not only by memory but by processing power. 1600x1200 resoultion is nice, but my card just barely handles 640x480 for games :-) I have a Compaq Deskpro, and I should really take a picture of the inside of the computer because it's just difficult to explain the video card, but it's in a special slot in the computer, and newer video cards simply won't fit in my PC. I used to have a voodoo3 but it died and I had to break off a small corner of the video card to make it fit in this computer. For me, upgrading the video card means upgrading the mother board and that means upgrading the case and the cpu. And possibly the memory as well, there are so many different kinds I have no idea if my current memory would work with newer pentium 4 processors. Don't they require that expensive "Rambus" ram? Overall my computer works fine, the only limitation is that I can't play modern games, but even if I had a better video card I probably still wouldn't be able to afford those games. |
Sr. Guapo | quote:Why would you want a P4? I'd go for an AMD... They are cheaper than the Pentiums. A mobo ($60), AMD CPU ($100), 512 MB DDR RAM ($100) , and a Radeon 9600 ($150) can be very affordable... Add a cheapo Case/PSU ($75), A new HD (if neccesary, $60), and CD burner ($25), and you have a pretty decent system (better than mine at least). BTW - The RD Ram you speak of is worthless. It is the equivalent to a betamax player, it was all the buzz for about a week, then better technology came out and is now obsolete and more or less unsupported. Just go for a good ol' 512 MB stick of DDR 3200 (400 MHz), it is pretty darn cheap nowadays. |
Zarneth | quote:Assuming all collidable objects are on the same layer, keep that layer in a fully loaded seperate array. Then the others can be devided up. Then just background load the nearby sections ready for when you cross into them. It's more complicated. but if it works it'll definitly reduce the memory usage. here's how I'd considder doing it. The layer with the collidable objects is of corse, seperate from the other layers and is alwayse fully loaded. then you have 9 arrays, each which can contain a section of the map, in a 3 by 3 grid. depending on how you do it you shouldn't need a section to be bigger than the what can fit on one screen (in the largest resolutino thoguh). it background loads/moves cashes the surrounging sections you're not currently on. Have it so the sides of the grid wrap around too. So you don't have to keep moving the section your'e on to the center of the grid. Dunno if that'll make any sense, or if it's the best way though. Alwayse helps to look at all the possibilitys thoguh. quote:I definitly aggree with AMD. Much better choice. But a Radeon? I dont' care what anyone sais ATI is EVIL!!!! *huggles his overclocked gforce FX5700LE* And $75 gor a case/psu? you've got to be kidding me? My housemate picked one up the other day for $35.... and that's in australian dollars. Admittedly all the other cases here were expensive but but not all were that expensive. o.O |
Sr. Guapo | I realize a case can be had for around $20 (hell, you don't even need a case [;)]), but you definately want a reliable PSU, which can cost around $50 (though I guess it may be less for only a 300 Watt or so...). About the ATI vs nVidea: It really doesn't matter. I suggested the 9600 because it was cheap and still fairly competant in todays games, that and I don't know too much about midrange nVideas [:D]. For brand new video cards, though, nVidea pwns (*Drool* dual 6600 GTs in SLI). |
Zarneth | quote:*laughs* don't mind me. I have a tendancvy to do the complete opposit to everyone else. And with the fx/r9000 series everyone was all going for the raedons. So naturally I had to support Nvidia. Not to mention how god damn fathefull my old gforce 2mx was while I struggled to save up for a new card. Same reason why I'm so obsessed with VB, besides being damn easy to use and gettig a bit of a sting when I was forced to do a java corse, everyone else seems to be agaisnt VB. :( You have a point with the powersupply. That $35AU case was listed to have a 300w. We only intended it for an old server we were setting up. Didnt' even know what it looked like. thoguh it was a nice supprise to find a 450w in there instead. Generic power supplies arn't really all that bad as long as you unplug your pc when there's a lightning storm. Though you gotta be carefull not to short 'em out. First night moving into a new house, 2am in the morning, everyone else was assleep and I decided to rearrange my case lights. Only took one brief touch and my power supply was dead..... So now I've got a decient qualty power supply with 4 power out thingies on the back. >:) |