PDA

View Full Version : Deathbringer



Gazza_N
09-08-2007, 05:51 PM
(I feel like I've written a detailed description for this game a hundred times over, in numerous forum iterations, so forgive me for giving the abridged version :D )

It's a mech game built in GM7. You prance around urban environments blasting other mechs to dust. You upgrade your weapons along a simple tech tree in the arena instead of picking them up or installing them before the match. There are special modules you can install to give you unique abilities. Oh, and did I mention that it's all in 3D now?

The prototype is available here (1.3MB) (http://www.gamedev.za.net/filecloset/download.php?id=137). It's actually more of a "tech demo" than anything else, showcasing all the cool stuff I've managed to pull off in GM's 3D mode so far (generally with a lot of cursing on my part). Note that the final game will be in first-person - this 3rd person view is just to show off the animations, since I have no AI yet ;). The game uses your standard FPS WADS and mouse configuration, and left-clicking fires off plasma balls of doom. Right now there's no collision implemented (see Help thread for why), so don't be surprised when you charge straight through a building :D. In addition, the camera will go through the floor if you aim high enough. As noted, this is because the game will eventually be first-person, rendering this redundant. There's nothing to shoot at, no objective to accomplish. Just run around and see if it works :P.

Things I'd like critique on include:

>Mech animation and movement: I've spent the last two weeks creating and tweaking the mech animation algs, and I think I've finally nailed them. Are they smooth? Natural? Does the mech bounce enough? Are the controls smooth and responsive?

>Vectorballs: If you fire off the plasma balls, you'll notice that they're actually vectorballs - flat images constantly oriented to face the camera. Do you see any problems with them?

>Models: I'm only an amateur 3D modeller. Are the models (well, there aren't many of them) good and clean? Do they look aesthetically pleasing? If not, I'll be a little worried - I model far better than I draw ;). Note that there are no textures yet, so please don't mention how flat everything looks.

Give it a look see, if you will, and drop off some comments here. I'm also more than willing to share how I implemented these things, if anyone wants to know.

EDIT: New prototype posted.

ANOTHER EDIT: Prototype 3 posted. See (currently) last post.

CiNiMoDZA
09-08-2007, 10:19 PM
Hey Gazza,

This is pretty cool!!! I have no idea how you guys do this in GM!!! (If you could, maybe run an article in the Dev Mag on 3D games in Game Maker!!!)

Ok, I like your mech animations, but I think they could maybe be a bit faster! There's nothing wrong with the vectorballs that I can see! As for the 3D models, well, never done anything in 3D before, so in my opion, FRIKKING AWESOME!!! Nice work! Looking forward to seeing the end product!!!

GeometriX
09-08-2007, 10:20 PM
Can I be completely critical here?

>Mech animation and movement: Eish, it's just not natural. Sure, robots move more "robotically" than humans, but you'd still expect (read: like) them to lope side-to-side a bit. Get some movement in the arms as well. I understand that it's a machine, and such movements wouldn't be required in real life, but they'll make the animation look a whole lot better.

>Vectorballs: Not the prettiest thing in the world, but they do seem to work nicely.

>Models: I'm going to sound like an ass here, but they're really not clean at all. I opened the OBJs up in Max, and poked around a bit. Almost all of them seem to have needlessly intersecting geometry, you'd do well to cut out all internal faces, as they can't be seen. I'm not sure how GM occludes hidden geometry, but you may end up having performance problems later when you start having more objects on-screen at once. There are also a couple of instances where the mesh is needlessly tessellated (has more faces than required to produce the desired geometry). Other than that, they could benefit from being a little, umm, nicer. They're very "primitive", in the sense that a lot of shapes present are not very much different from basic primitive geometry. That's not always a bad thing, but you could spend a lot more of your poly budget on creating more interesting geometry once you've cleaned up the internal and excess faces.

I don't intend to sound mean, it's just advice, so I hope you take it the right way.

CiNiMoDZA
09-08-2007, 11:57 PM
Lol, well, I would take his opinion over my amature veiws :D

R4mzy
10-08-2007, 01:27 AM
I'd go with everything Geo said (emphasis on the animation thing), though I'd have said it when you release a more finished product because, as you said, this is still a prototype.
Though it's a whole lot more than I could do, GM and all kinda fell to wayside for me recently.

Thaumaturge
10-08-2007, 07:40 AM
This is a nice start, Gazza. ^_^

Giant robots can be tons of fun, so very good luck with this project! ^_^

I do agree with GeometriX in saying that the animations could use some work, I'm afraid. I honestly don't mind the immobile arms - that seems quite acceptable to me on a robot - but I noticed that the robots feet seem to move in something like an arc both backwards and forwards, only seeming to touch the ground at the bottom of the arc, and again doing so in both directions.

I would recommend firstly that the foot be on the ground for most of the backward-motion of the leg, and secondly that the foot not touch the ground (or at least only slightly so) on the forward-swing. Note that this might entail lowering the body a little during motion, or perhaps, as, I think, GeometriX was suggesting, rolling the body a little.

If your model's feet don't move, then I suggest allowing them to sink into the terrain just a little and move above the terrain just a little in the middle and at the extremities of the back-swing respectively.

Try observing yourself as you walk, taking note of how the various parts of your body -most importantly your legs - move as you do so. I also recommend doing this away from inquiring eyes, as it might look a little odd. ;)

On the plus side, I like the swing at the end of the back-motion, in which the knee bends as the leg is swung back - that looks good. ^_^

By the way, I think that you might find that, while perhaps a little trickier to animate, you might have better luck getting way with not moving or rolling the body if you switch to Mechwarrior-style "inverted knees", or an arrangement similar to that of a digitigrade animal, the latter giving, in effect, three parts to the leg. In these cases the machine can reasonably be depicted with its legs bent to some degree, I suspect, and thus allow the foot to remain at ground level during the back-motion by extending the leg. For the digitigrade style, try recording the motion of any such animal, such as a cat or dog.

Nevertheless, consider including at least some body movement, to give the impression of its moving about as it is subjected to the various forces of movement.

Note also that I am no professional animator, and so consider taking my opinions with a cupful of salt. ;)

As to the plasma weapon... "Vectorballs"? Where did you come by that terminology, if I may ask? Wikipedia did turn it up in reference to a few old things, such as an Unreal demo and, if I recall correctly, Amiga demos, but it's not one that I would imagine to be terribly common (at least, I don't think that I'd come across it before you mentioned it)... :P

Gazza_N
10-08-2007, 09:29 AM
Thanks for your thoughts, everyone!

@Geo: No offense taken whatsoever. That's exactly the kind of critique I was looking for :). Thanks for checking out my models in detail. I'll clean up all the hidden faces as much as possible and take a look at killing that sneaky over-tesselation. It can only help, and I'll keep it in mind for future models.

In my defense (;)) the models are intentionally chunky at the moment for two main reasons:
(a) Stylistic choice. I like big, rugged, chunky mechs a-la BattleTech/MechWarrior. That isn't to say that I won't refine the models later, of course, but hopefully you see where I'm coming from.
(b) I have no idea for the moment how far I can push GM polygon-wise. The Help file states that the GM 3D engine isn't very efficient, so I'm trying to watch my step. I want to get the gameplay up and running with rudimentary models, then up the ante once I'm happy that performance will be decent. I also want to have plenty of lights in my scenes, which I'll have to balance with polygon count. That's why I'm experimenting with Vectorballs. Ideally I'd just render a big ol'sphere for the plasma, but that means extra polys. I'll see how it goes.

As for the animation...

Quite simply, the animation is hard-coded, since GM has no facility to import animations that I know of. I'm sure you can see how this complicates matters a little. I've already tweaked the whole-body bouncing to look more natural (mech hits the ground a little sooner now), but I'll look at adding more bounciness to the other components as well, especially the arms where it'll be more noticable. I don't know about loping from side to side, but I'll give it a shot. @Thaum: Foot rotation is also on the cards, I just wanted to see if I could get away with static feet first :P.

Anyway, it's early days for this game, but it's becoming a great introduction to modelling and 3D programming principles. I'm just glad that GM handles all the really technical bits, otherwise I'd be completely lost.

CiNiMoDZA
10-08-2007, 01:11 PM
Just one thing!!! Sometimes the vectorballs light up the dark areas and sometimes it does??? Maybe a little advice, make the robot move very stiffly, like a robot in the movies!!! I really like your animations, but try make it move more like a robot and less like a person!!!

P.S: About the Dev Mag thing??? It would be really cool if you give a tut???

Himmler
10-08-2007, 02:29 PM
>Mech animation and movement: Eish, it's just not natural. Sure, robots move more "robotically" than humans, but you'd still expect (read: like) them to lope side-to-side a bit. Get some movement in the arms as well. I understand that it's a machine, and such movements wouldn't be required in real life, but they'll make the animation look a whole lot better.

Personally, i wouldn't worry about models, textures and animation until you actually have a game running. What would be cool, if you can help overs out and show us how you imported the models and the made your animations.

If you need help with modelling, or need someone to make you some mech's, give me a shout, ill gladly make you some models, i'm just not good with textures though.

Good start, now make it work for you.

Cyberninja
10-08-2007, 03:17 PM
I think it's really cool. Like Himmler said, I don't think you should worry about the graphics too much at this stage. This is still the prototype afterall. :-) Work on getting the gameplay/design sorted out first. The game is running a bit slow though. Is this because of the model?

Gazza_N
10-08-2007, 03:32 PM
@CiNiMoD: The lighting thing is because of the low number of polygons. If you look up how vertex lighting works you'll see what causes that. As for the tut, well... This is my first serious foray into GM's 3D mode (barring a couple of prototypes that I built for Overseer Assault 3D). I'd rather wait until I have a better idea of what I'm doing :P.

@Himmler: Point taken, but if I can't get the animation right then it's kinda pointless doing the rest of the game, if you see what I mean. As I mentioned, GM doesn't handle animation natively, so now is the time to try implementing it. As you know, doing 3D involves a lot more work than 2D, and it would break my heart to have a killer game finished in 3D and then have to dump it because I can't animate my game objects. Rather test it now, and if it doesn't work rework it for 2D play.

Thanks for the offer on the models, BTW. I'm going to see what I can do on my own, but I'll definitely get back to you if my own efforts end up sub-par :).

@:Cyber: how many FPS are you getting on your machine? It should be visible at the top-left of the screen.

Cyberninja
10-08-2007, 03:35 PM
I get 59-60.

Gazza_N
10-08-2007, 03:38 PM
That's perfect! The game is frame-capped at 60 FPS. The mech does move a bit sluggishly, but that's due to the fact that it's about 30m tall and weighs quite a few tons!

Cyberninja
10-08-2007, 03:42 PM
Lol. Okay. :P Tell me your'll be making this game multiplayer one day. ;-)

Gazza_N
10-08-2007, 03:51 PM
Funny you should mention that - I do in fact plan on doing multiplayer eventually. I've structured the game's control system in such a way that I can easily plug AI and MP into it in the future. For now, though, I'm trying to wrestle my animation system into submission. Still a way to go! :P

I'm really happy to see all the enthusiasm for this thing. It gives me a great incentive to carry on.

ShellShok
10-08-2007, 04:33 PM
I'm really looking forward to seeing this game reach the light of day. Just hope you can pull it off...

Thaumaturge
11-08-2007, 03:23 AM
Quite simply, the animation is hard-coded, since GM has no facility to import animations that I know of. I'm sure you can see how this complicates matters a little. I've already tweaked the whole-body bouncing to look more natural (mech hits the ground a little sooner now), but I'll look at adding more bounciness to the other components as well, especially the arms where it'll be more noticable. I don't know about loping from side to side, but I'll give it a shot.

Aah, fair enough... Hmm... How does GameMaker specify animations, may I ask, and is there any support for reading in external text files? If so to the last, perhaps you might be able to load in animations from external files of your own design...

(This reminds me - I still haven't gotten around to installing GameMaker... I really ought to get around to that one of these days... ^^; )


@Thaum: Foot rotation is also on the cards, I just wanted to see if I could get away with static feet first :P.

Heheh, fair enough - I've done that myself, as I recall (including in my competition game, but I think that I might have been a little more likely to get away with it (before telling everyone in this post, of course! :D) since my characters are rather smaller on the screen... ;)


Funny you should mention that - I do in fact plan on doing multiplayer eventually.

A multiplayer version of this game sounds like a lot of fun! ^_^


I've structured the game's control system in such a way that I can easily plug AI and MP into it in the future.

I'm glad to hear this - that's a very good bit of thinking ahead!

Gazza_N
11-08-2007, 08:58 AM
@ShelShok: Thanks, man. I hope so too...

@ CiNiMod: Your statement about that lighting has been bugging me all day (well, night, technically). I've actually come up with a new ground-lighting trick that forgoes vertex lighting entirely. It's simple, looks great, and you'll see it in my next release. Thanks for giving me the push. ;)

@Thaum:
GM's 3D animation facilities go as far as allowing you to perform angle, scale, and positional transformations on meshes. My mech is composed of many seperate meshes, with each part individually transformed and shunted into place.

Yes, GM does handle loading from external files. For now my hard-coded system seems to be alright, even though it's slightly less flexible. I've already made some slight tweaks that really make the movement look better, even though the animation itself is exactly the same :P. If it turns out that I do need more complex animation, it's always a good route for me to pursue.

Oh! To answer your earlier question, I picked up the term Vectorball from one of Dislekcia's monthly Game.Dev articles that gets published in NAG. It was an article dealing with small graphical tricks that can make a huge difference in a game's look and feel (including camera movement, etc.). I just assumed that it was the proper terminology ^^;. Wikipedia lists it as a 3D sprite under the Sprites article, if you still want to read up on it.

UntouchableOne
11-08-2007, 11:42 PM
This prototype is nice, I hope you finish this game, especially for multiplayer. Having a game like this under your belt would be fantastic

Thaumaturge
12-08-2007, 03:37 AM
Yes, GM does handle loading from external files. For now my hard-coded system seems to be alright, even though it's slightly less flexible. I've already made some slight tweaks that really make the movement look better, even though the animation itself is exactly the same :P. If it turns out that I do need more complex animation, it's always a good route for me to pursue.

Aah, fair enough. As long as your system is working for you, then good! I'm glad to hear that you've made improvements to the animation. ^_^


Oh! To answer your earlier question, I picked up the term Vectorball from one of Dislekcia's monthly Game.Dev articles that gets published in NAG. It was an article dealing with small graphical tricks that can make a huge difference in a game's look and feel (including camera movement, etc.). I just assumed that it was the proper terminology ^^;. Wikipedia lists it as a 3D sprite under the Sprites article, if you still want to read up on it.

Aah, fair enough again. The term that I've heard most often, I believe, is "billboard". I don't think that either is "improper" terminology - I happen to have heard one term more than the other, but I don't know which is more prevalent overall, and nor do I think that it matters. It was, however, an interesting term to encounter. ^_^

I didn't find that reference that you mentioned on Wikipedia, but their article on "Sprite" did have the interesting tidbit that fire sprites were used in the effects of the balrog in The Lord of the Rings!

"Vector Balls" are, however, mentioned in their article on "Second Reality" (http://en.wikipedia.org/wiki/Second_Reality), in which the term does seem to be used as you do.

dislekcia
12-08-2007, 01:33 PM
Billboards are planes that are always oriented perpendicular to the camera in 3D environments/games/etc. Vectorballs are a subclass of billboards because they're designed to resemble objects that look the same from any angle, thus don't need to be made of strict geometry and can thus be billboarded for a performance gain.

Smart uses of vectorballs are all over the place, you just have to know what you're looking for :)

-D

Tr00jg
12-08-2007, 02:27 PM
Great tech demo. How do you plan on doing collision detection?

Gazza_N
12-08-2007, 02:45 PM
@Dis: Thanks for clearing the terminology up for us. ;) I'm hoping that vectorballs and billboards will serve me well for this project.

@Troojg: Thanks! For now, my collision detection works very simply. I assign accurate 2D collision masks to my objects like I would a 2D game, but I also designate z and ztop variables, representing the object's height above the ground and actual height respectively. This creates a sort of "collision prism" whose shape is defined by the collision mask. When, say, a bullet hits a building, I'll first check for a collision using the mask a-la 2D, but then run another check to see whether the projectile's z value falls between the z and ztop variables of the building. Obviously, if it does fall in this range then I consider it a collision, otherwise I just let the projectile carry on happily.

I am experimenting with generating collision masks on the fly for my mechs (see the GM help thread), but for now they just use a humble collision cylinder. ^^;

Tr00jg
12-08-2007, 04:54 PM
Kewl... Im looking forward to a new release.

CiNiMoDZA
13-08-2007, 09:03 AM
Nice Gazza, cant wait for the next release!!! I must say Gazza, I really enjoy the games you release!!!

Gazza_N
14-08-2007, 05:31 PM
Well, this is hardly a game yet, but thanks! ^^;

Your games aren't too shabby either, sir. Ignore the flashy 3D. There's nothing I've done here that can't be done by you or anyone else on this forum. In fact, most of the guys here could probably do it better ;).

Gazza_N
19-08-2007, 06:17 PM
Alright folks, here's a little something to keep you busy:
Deathbringer Prototype 2 (1.3 MB) (http://www.gamedev.za.net/filecloset/download.php?id=152)!


It's pretty much the same as the first prototype, barring a few extras and tweaks such as:

> AI. Still rudimentary and highly limited, but it works pretty well for simple combat. You'll have two other mechs to duke it out against (or watch, whichever you prefer).
> Tweaked animations and models slightly.
> Implemented new ground lighting method.
> Disabled vertex lights cast by projectiles. Far too slow during heavy firefights.
> Implemented collision detection and projectile impact effects.
> Implemented basic HUD.
> Defaulted camera to first person view. Hit C to toggle between 1st and 3rd person.

All in all, still far from finished, but getting there slowly but surely. BTW, hit F1 for a list of extra keys that may come in useful.

As always, I'd deeply appreciate any comments, bug reports or suggestions.

EDIT: Hmmmmm... Can't rename threads... Admin restriction?
EDIT AGAIN: Linked to a version that actually works... >.<

Cyberninja
19-08-2007, 06:28 PM
Cool! *Cyber starts downloading....

Cyberninja
19-08-2007, 06:32 PM
weeps..:-(...Gazza it gives me a:

"ERROR in
action number 13
of Create Event
for object ModelCache:

File is not opened for reading."

Gazza_N
19-08-2007, 06:45 PM
CRUD! >.<

Sorry folks. I deleted an obsolete model file from the models directory, but forgot to delete the code to import it. Thanks, Cyber. :)

Fixed version uploaded, accessible through same link. Apologies to those who have to pull it down again. :(

Cyberninja
19-08-2007, 07:02 PM
Cool man. I like it. The only two suggestions I have is:

- Make a more aggressive A.I for the bots. They seemed to ignore you if you're not close.
- Make the player move slightly faster. Yes, I know they are big and heavy. I don't think adding a little more speed with hurt though. ;-)

Just my 2cents. Otherwise, awesome jawsome! :-)

Gazza_N
19-08-2007, 07:17 PM
Done and done. :)

Nandrew
20-08-2007, 03:31 PM
Hmm, don't think I've commented here yet. O_o

Suffice it to say, iLike. ;)

Tr00jg
20-08-2007, 05:54 PM
Kewl!

-Some suggestions:

>Move a bit faster?
>Should the AI run out of the map?

Anyway, keep it coming. Quite cool.

Gazza_N
20-08-2007, 08:01 PM
WHAAAT?! The great Nandrew has commented on my game! Huzzah! Playership is going to quintuple now!

@Tr00gj:
- Speed has been increased. :)
- The AI is a simple combat AI. Asides from locking onto a nearby target, shooting, dodging and avoiding obstacles it has no idea what it's doing or where it's going. Yet. ;) In the final version the cities will be enclosed with enormous walls that are justified by some incredibly clever plot device that I have yet to come up with.

Tr00jg
20-08-2007, 09:01 PM
The Matrix version 0.2 perhaps? :P

Gazza_N
20-08-2007, 09:11 PM
Ha ha! In which case my AI has already realized the truth: There is no wall... 0_o

Don't worry, this is still at a very early stage. I have a lot of work to do on this combat AI, I still have to create non-combat AI, and I have to implement the core hook of the game, which is the in-arena weapons upgrade tree and "resource gathering". Then comes balance, models, multiplayer (the implementation of which I still need to study), etc ,etc, blah.

When I first punted this game at Game.Dev Idols last year I had no idea it would take so long to do! :p

CiNiMoDZA
20-08-2007, 10:12 PM
Ha ha! In which case my AI has already realized the truth: There is no wall... 0_o

Lol :D

Cyberninja
21-08-2007, 10:43 PM
Gazza, is it possible to import complete 3d levels and other geometry into Game maker? Will this slow the engine down?

Gazza_N
22-08-2007, 09:20 AM
I don't see why you couldn't, but I still can't say with any authority how many polygons GM is capable of pushing. I suggest you try it yourself!



QUICK RECIPE: One 3D GM game

INGREDIENTS:

1 x Game Maker 6/7 registered version.

1 x 3D model import script
(Check out the Game Maker forums for a great big list of them. Choose the one that suits you. I use Mosaic Light FTW)

1 x 3D modelling program

Over 9000 x Trig skillz
(well, it's not that bad. Just realise that good 3D games cannot be done without a good grasp of trig.)

Directions:

> Download the FPS tutorial from the GM site. I learned most of the basic implementation details from there.

> Read the GM help file for the list of restrictions and commands for 3D. Yes, restrictions. GM still operates in 2D under the hood despite the 3D rendering mode. Many GM functions either don't work properly or need to be reworked a little for 3D (Collision detection springs to mind). There's also a whoooooooooole lot of stuff you'll need to implement yourself.

> Consider what you've learned and make your game!


Do all this and you'll know everything I do about GM's 3D. Which isn't much, really.

dislekcia
22-08-2007, 01:56 PM
AFAIK GM doesn't have a specific system to deal with formatted model/mesh data. So what's happening every time you draw a 3D object is that the model is being drawn vertex by vertex through standard function calls... I'd have to take one of those import scripts apart, but I assume that all they do is decompose a model into a ton of draw_vertex_colored() commands.

I guess the answer is a qualified yes. You could import an entire map, but you'd be wasting a lot of time in overdraw if you simply rendered the entire thing every step. Generally you can't see an entire map at the same time, so some sort of data structure (hah, clever link to my latest NAG article, go me!) would be needed :)

-D

Gazza_N
22-08-2007, 07:09 PM
Actually it does. ;)

The Mosaic script parses .obj files and calls the relevant model definition functions accordingly. The model in its totality has its own pointer and can be drawn by using the d3d_model_draw(blah) function. The GM help notes that it's faster to do this then vertex-by-vertex drawing.

Cyberninja
22-08-2007, 07:10 PM
You were right Dis, I just found the program that Gazza spoke of, and that's exactly what it does. :-) Thanks guys.

Gazza_N
22-08-2007, 07:10 PM
Does it? I'm confuzzed... As far as I know it defines a model once, then GM takes over. Everything's there in the help file...

Cyberninja
22-08-2007, 07:16 PM
Linky: http://gmc.yoyogames.com/index.php?showtopic=193186 That's what he says. O-O

Gazza_N
22-08-2007, 07:38 PM
Ohhhhhh, you mean what I described was right. Whoops... Because we posted so close to each other I assumed you meant Dis' description was the right one. Or am I confuzzed again? 0_o

If this carries on this is going to be a very long thread...

dislekcia
22-08-2007, 07:48 PM
Aha, I see how it works... I guess I should have gone and read the help right away ;)

GM creates vertex buffers and the like for models, that's what the d3d_model_create() and related functions are for. Then you can draw that model in one call using the d3d_model_draw() function. Lobbing a large chunk of memory (ie a vertex buffer) at your 3D card is going to be much faster than slowly trickling individual vertex data at it.

So, what the importer does is go through the .obj and decompose that into a sequence of d3d_model_vertex_normal_texture() commands and creates a corresponding model object, which you can then draw.

Neat. Smart.

-D

Gazza_N
22-08-2007, 07:53 PM
Phew! Glad that's settled. I was getting worried that what understanding I have of 3D GM was being blown apart before me.

Anyway, speaking of data trees, Dis, is it possible to implement BSP or the like in GM? I'd be curious in case I need to optimise things later.

CiNiMoDZA
22-08-2007, 08:27 PM
Hey Gazza, where did you learn to use GM 3D functions? Did you use a tut or just the help file?

Gazza_N
22-08-2007, 08:35 PM
A combination. On the official GM site there are some awesome tutorials you can download that cover most of the functionality. The rest is covered by the GM help and a little experimentation.

Like I said earlier, there's nothing I've done here that can't be done by anyone else :)

Thaumaturge
27-08-2007, 04:59 AM
*rubs his hands* Ooh... perhaps I should disappear from the forum more often, if doing so results in such progress on such games!

I'm looking forward to downloading this tomorrow/later today!

(I'm a little tired at the moment to want to download it tonight - I'd rather head to bed once I've posted a few messages and download at least some of the games and demos that have appeared in my absence tomorrow/later.

In other news, going to bed after midnight seems to complicate indication of the period directly after sleeping; at least, I haven't yet found anything better than "tomorrow/later", I don't think.

Yes, rambling tangent complete. :P)

Thaumaturge
28-08-2007, 09:00 PM
Having now played the new prototype, I feel ready to comment:

First of all, this is definitely an improvement, I'd say - this could be the start of something rather fun! ^_^

I like the impact explosions that your energy balls produce - they're a nice effect, and have the advantage of being visibly three-dimensional when they impact walls, where a billboard-based explosion would probably show its two-dimensionality.

(And thank you, Dislekcia, for your clarification on the definition of "vector ball". ^_^)

I also like the lighting trick that you seem to be using to give the impression of light emission from the energy balls - you're using an additively-blended image placed directly below each ball, at or just above ground level, am I correct?

I had a look at the models that you use, and, while I'm far from a modelling expert, it does look to me as though you are still probably using too many polygons in places. Reducing the polygon count may well improve your game's performance.

It's good to have collision detection present - it helps to give an impression of solidity to the game, I feel. It does, however, seem to be rather "sticky" - when colliding with a wall I seem to simply stop, rather than moving along the wall. I would suggest allowing the player to move along the wall, at least to some degree (although limiting the degree of this might help to give the impression of piloting a big, heavy machine).

Another possibility might be to instead have mechs take a step back when they collide with something - that too might convey their size and mass to some degree.

All in all, very cool!

By the way, when you come to include other mech models, would you like me to put one together? As I've said, I'm no professional, so I don't know how well it might come out, but I'd like to have a shot at it if you're interested. ^_^

Gazza_N
28-08-2007, 10:03 PM
Thanks for the comments, Thaum. Always appreciated!

You nailed the lighting trick on the head. The only problem is that, at the moment, it tends to slow the game down during heavy firefights (especially since I'm now playing with up to 5 bots at once in my testing). I need to find a way to optimise it, because I think it looks awesome.

As for models, I did take Geometrix's advice, and the game shows a noticeable performance boost (duh :p). The reason I slapped so many polys in was to make the vertex lighting look nicer, but since I'm dumping that for speed reasons (ironic, I realise) I can make them nice and low-poly again.

I admit that the collision detection is "sticky", but that's for design reasons. ;) I liked the slightly more realistic, non-slidy method. After all, one doesn't slide along a wall in real life if you run into it! That said, if it causes too many complaints, I'll gladly rework it.

Many thanks for the offer of the other mech models, but... er... there is only one mech in the game, which is the titular "Deathbringer". I'm hoping that once the core gameplay is in place you'll appreciate that this won't sacrifice game dynamism at all. I really should just write up the game spec and post it here again, even if it is for the hundred and first time... G.D veterans must be sick of reading it by now. :p

Thaumaturge
28-08-2007, 10:38 PM
It's my pleasure. ^_^

As to the collision, I would then suggest going with my suggestion of having the mechs take a step back on collision - I think that it might help to give the impression of a collision and reaction, rather than seeming to "stick" to the walls, as it feels to me now.

In terms of realism, if it didn't step back, I would expect a mech such as this to be powerful enough to scrape along the wall slowly, at least (accompanied of course by much squealing of metal and occasional sparks).

Nevertheless, those suggestions aside, I think that I shall await a later iteration of the gameplay to judge.


Many thanks for the offer of the other mech models, but... er... there is only one mech in the game, which is the titular "Deathbringer". I'm hoping that once the core gameplay is in place you'll appreciate that this won't sacrifice game dynamism at all. I really should just write up the game spec and post it here again, even if it is for the hundred and first time... G.D veterans must be sick of reading it by now.

Heheh, fair enough. I'd say to go ahead and post it as a link in this thread - that way people that have seen it can ignore it, and people (such as myself) who have not yet read it and wish to do so can follow the link. ^_^

I'd very much like to see the design document, at any rate!

Gazza_N
16-09-2007, 04:40 PM
Resurrected from the Third Page of Obscurity - it liiiiiiiiiiiiives....

Yea, mortals, fear the coming fury of...... Deathbringer Prototype 3 (http://www.gamedev.za.net/filecloset/download.php?id=197)!

Hit F1 ingame for a list of controls and an explanation of the new gameplay stuffs. Note that the AI is still a little eccentric in its actions, so bear with me here. It should still give you a decent fight, though, especially since there are now six (6) enemy mechs to duke it out against. Also note that enemies (and you!) will respawn once killed, so the game will continue indefinitely until you quit. Fun!

Some changes:
> Numerous model tweaks and animation tweaks. Increased building sizes and fixed overtesselated models (Found out that the "triangulate" option in Blender's .obj exporter is a little overzealous).
> Gave AI pathfinding ability, so it's a little more autonomous.
> Added weapons! Added Upgrades! <---This is supposed to be cool stuff, BTW.
> Killed fancy lighting for speed reasons.
> Added Ammo stations and Ammo cylinders.

Some considerations:
>I mentioned the AI. It will get stuck at times and run on the spot. It will fire when you aren't in range. It will blatantly ignore you in the middle of a firefight. It will run out of ammo and not get more. What I'm trying to say is that there's still plenty of work left to do!

>The game slows down inexplicably during the first few seconds of play, then jumps to its regular rate of 57-60 FPS. I assume that this is due to GM loading/caching textures and models, but I'm trying to find out whether my code is at fault. Just be aware of it.

>The Flamer weapon slows the game down several FPS despite my best efforts at optimization (especially if several mechs use it at once). I'm currently trying to find a new way to implement that weapon, but I've left it in for illustration purposes. If anyone can give me any hints as to how to speed things up, I'd be grateful.


Now go, play! And give comments, for crying out loud, so I can turn my tech demo into a proper game! ;)

Thaumaturge
16-09-2007, 08:40 PM
Ooh, very nice! I very much like the idea of upgrading weapons, and of eventually having multiple paths along which to upgrade.

I would caution to have information on the various available weapon types available somewhere, so that players can make more informed decisions regarding their upgrades.

I love the laser effect, by the way.

An idea that occurred to me is to allow the player to upgrade not only the weapons but also the 'mech itself. If you use a system similar to your current weapon upgrade system, and base it in various key parts of the 'mech (reactor, motors, head, etc.), you might end up with something a little like Deus Ex' augmentation system...

For example, the 'mech's head might include two sub-systems: scanning equipment and targeting equipment. At the outset, the 'mech has only a standard visual scanner (which theoretically provides the in-game view) and a simple cross-hair targeting system.

The scanning system might be upgraded to allow alternate vision modes (infrared, for example, or light amplification), or status information for the 'mech under the crosshair. (To take examples from Deus Ex.)

The targeting system might be upgraded to allow either missile locks or a target leading indicator for the selected weapon.

Furthermore, I would suggest having the two upgrade sets draw from the same pool, making the upgrade decisions yet more strategic... (I imagine.)

I did notice a few elements worth mentioning for improvement:

Firstly, as with Battletechst, it would be useful, I feel, to have an indicator of a target being in weapons range - at the moment I'm not at all sure of the range of the laser weapons, for instance.

Secondly, I noticed that weapons don't seem to be converging on the crosshair, but rather below it, and ballistic weapons seem to cross each others' paths eventually. To the latter, I would suggest either calculating the distance to collision and adjusting their angle accordingly, or, more simply, having them travel along parallel paths.

Lastly, it doesn't seem that enemy 'mech explosions damage nearby 'mechs (the player, specifically).

All in all, however, I very much like the direction that the game is taking thus far. ^_^

Gazza_N
16-09-2007, 09:01 PM
I would caution to have information on the various available weapon types available somewhere, so that players can make more informed decisions regarding their upgrades.

One word - "manual". ;)


I love the laser effect, by the way.

I'm glad to hear that. I'm particularly happy with how it turned out myself. :)



An idea that occurred to me is to allow the player to upgrade not only the weapons but also the 'mech itself. If you use a system similar to your current weapon upgrade system, and base it in various key parts of the 'mech (reactor, motors, head, etc.), you might end up with something a little like Deus Ex' augmentation system...

That was the original idea. In fact, an early 2D prototype that I posted two forums ago had something very much like that in place. However, when deciding to continue with the game, I realised that having too many upgrade choices would create far too much complexity for an in-arena upgrade system (what with the pace of the game and all). What I am planning (and always have planned) is to allow the player to install a Secondary Ability Module (SAM) before the match that gives their mech a unique ability. I have eight SAMs planned at the moment, and there will be more if inspiration strikes. These range from enhanced imaging systems to rate-of-fire accelerators to jump-jets to short-range teleportation devices.



Furthermore, I would suggest having the two upgrade sets draw from the same pool, making the upgrade decisions yet more strategic... (I imagine.)

That's the plan. ;) I currently have three tiers of upgrades planned for each of the four weapon types, with a minimum of two selections per tier. That amounts to a minimum of seven upgrade choices per weapon type, although some (such as the AutoCannon) will have more. This, combined with the SAM system, is what I was talking about earlier in the thread when I said that having a single mech type wouldn't sacrifice dynamism. ^_^

As for the rest - the enemy mech explosion doesn't harm surrounding mechs because there is no explosion yet. ;p The effect you see is a pre-explosion effect, which will be followed by a big boom and flying mech chunklets :D.
Secondly, the weapons did originally follow parallel paths, but I found that it rendered the crosshair somewhat useless. I will play around with that though - it's something that I never seem to be happy with no matter how much I tweak it. >_<
Finally, there is no range indicator because I want people to work it out for themselves. Deathmatch games like Unreal Tournament require players to discover for themselves what the limits of a weapon are - it's part of the skill involved. I wanted something like that for my game.

Thanks muchly for the comments!

Cyberninja
17-09-2007, 08:59 AM
Really cool! ^_^ I dig the weapons FX and added animations. My only two suggestions (for now! :D)

- Make the mech faster.
- If you could make the camera bob (go up and down) as the mech moves, that with be awesome. Especially if you add that steam/clunking sound as the mech moves later on. It with make the feeling of being in a mech more believable imo.

Tr00jg
17-09-2007, 04:08 PM
Really cool! ^_^ I dig the weapons FX and added animations. My only two suggestions (for now! :D)

- Make the mech faster.
- If you could make the camera bob (go up and down) as the mech moves, that with be awesome. Especially if you add that steam/clunking sound as the mech moves later on. It with make the feeling of being in a mech more believable imo.

I second Cyber here. Digging the FX and animations, but make the mech faster please. :)

UntouchableOne
17-09-2007, 10:05 PM
Sweet prototype Gazza. I looks like the game is progressing well. I also agree with increasing the mech's speed. Over all, I say it's going to be a great game!

Thaumaturge
18-09-2007, 06:52 AM
]What I am planning (and always have planned) is to allow the player to install a Secondary Ability Module (SAM) before the match that gives their mech a unique ability. I have eight SAMs planned at the moment, and there will be more if inspiration strikes. These range from enhanced imaging systems to rate-of-fire accelerators to jump-jets to short-range teleportation devices.

Aah, fair enough - that sounds like a very good idea to me. ^_^


This, combined with the SAM system, is what I was talking about earlier in the thread when I said that having a single mech type wouldn't sacrifice dynamism. ^_^


Aah, fair enough again. At least let us select colour schemes or decals for our mechs, then. :P


As for the rest - the enemy mech explosion doesn't harm surrounding mechs because there is no explosion yet. ;p The effect you see is a pre-explosion effect, which will be followed by a big boom and flying mech chunklets .

Ooooh - that sounds very nice indeed! Mech debris is good. *evil grin*

I take it, by the way (and I seem to have missed this the first time around, for which I apologise ^^; ), from some of your responses, that this is intended to primarily be a multiplayer, arena-based game, rather than a single-player, campaign-based game - is that correct?

As to the speed of the mechs, I'm not convinced about speeding them up. I would suggest having a SAM that does provide this functionality, but the machine is, after all, rather big and heavy. If you do speed up the base movement rate, I would suggest making it but a small increase.

Oh, it occurs to me: have you considered allowing the player to control the torso and leg direction independently, as in the Mechwarrior games? That might be very useful in slow machines such as these...


One word - "manual".

What, you mean that players will be expected to work everything out by hand? ;P

FuzzYspo0N
18-09-2007, 02:34 PM
LOl this game is coming along nicely mate.

I think in pt3

Faster walking/running and bobbing wud make it bunches better .

its interesting for me to see 3d in GM its rad. keep it up man.

Gazza_N
18-09-2007, 10:06 PM
Thanks for your comments and suggestions everyone! I look forward to killing you all soon!

Until the next release, then. ;)

EDIT: And Thaum, that pun was just... *epic groan*

Thaumaturge
19-09-2007, 10:45 PM
EDIT: And Thaum, that pun was just... *epic groan*

MWAHAHAHAHA! *grins*

*bows* Thank you, thank you - I try. ;P

F1ak3r
24-09-2007, 02:22 PM
A 3D GM game? Awesome!

Graphics - They look great to me. Bear in mind that this is coming from someone who spends more time playing Game Maker Games than Triple-A ones.

Movement - A bit slow, but maybe I'm just impatient.

HUD - It's a bit bland. T'would be nice to know what those two bars are for. Just, don't rake my criticism too far... I hate overly fancy HUDs as well :-).

But, overall, great job!

Gazza_N
24-09-2007, 02:39 PM
Thanks F1ak3r. As you've read, the game still has a lot of stuff that needs to be added. That HUD will be filling up soon enough. ;) As for the two bars, their functions are covered in the help (hit F1 in prototype 3).

I've upped the movement rate again, everyone, so please stop begging. :p I've implemented something that works just as well as a bouncy camera, Cyber. :) I've also added some new weapons, so the tech tree is filling up nicely. I'll be releasing the next... um... release this coming Friday, and bringing it along to rAge for those who're interested. That's if I can make some decent progress beforehand. ^^;

Cyberninja
24-09-2007, 05:31 PM
Thanks F1ak3r. As you've read, the game still has a lot of stuff that needs to be added. That HUD will be filling up soon enough. ;) As for the two bars, their functions are covered in the help (hit F1 in prototype 3).

I've upped the movement rate again, everyone, so please stop begging. :p I've implemented something that works just as well as a bouncy camera, Cyber. :) I've also added some new weapons, so the tech tree is filling up nicely. I'll be releasing the next... um... release this coming Friday, and bringing it along to rAge for those who're interested. That's if I can make some decent progress beforehand. ^^;

OOooo! Demo now! ^_^ (This is not a request....lol)

Gazza_N
24-09-2007, 09:06 PM
OOooo! Demo now! ^_^ (This is not a request....lol)

Patience, Mr. Rajkumar, patience. ;) I assure you that with all the stuff I'm adding it'll be well worth the wait.

Cyberninja
24-09-2007, 10:30 PM
Patience, Mr. Rajkumar, patience. ;) I assure you that with all the stuff I'm adding it'll be well worth the wait.

Lol. Okay man. ^_^ I'll do my utmost, to contain my excitement for now......
Oh, and "Lee" will do. ;) I really lol when my friends try* to pronounce my surname. ^_^

Gazza_N
28-09-2007, 11:39 PM
As promised, a special rAge release (http://www.gamedev.za.net/filecloset/download.php?id=220), officially marking Deathbringer's transition from prototype to full-on alpha. I didn't manage to get everything I wanted in here (the NANOMass currency system for upgrades, for instance), but the game has been augmented a little. Generally the same as before, barring the extra weapons and graphical tweaks.

Some of the changes:

> A few model tweaks.
> Added a little something special for Cyberninja. It bounces and makes the game feel very MechWarrior-esque.

>Added lotsa new special effects for new weapons and mech explosions and stuff.

> Added Explosives weapon class with grenades and RPGs making it up so far.
> Added all Mass Driver weapons to Bullet weapons class.
> Added prototype Arc Cannon to Beam weapons class. It still needs art done, but the effect is good enough for now.
> Added Compressed PPC and Extended Range Flamethrower to Plasma class.
> Endless tweaks to weapon balance. Weapons still feel overpowered, but it's still early days.

> Added an incomplete version of Sprint Mode, shamelessly lifted from BatteTechst.
> Added repair stations for mech health recovery.

>Tweaked AI for extended combat movement - mechs now move diagonally during combat.
>Removed two enemy mechs due to speed issues. I really need to rework my AI, it's far too slow and far too stupid. However, it works well enough for now (barring its occasional... eccentricity) so I've kept it. After all, you guys need something to shoot at. ;)


Hit F1 for help. There isn't much new, but if you have comments, feel free to give them! :)

EDIT: You may notice odd shifting lines and circles/arcs on the ground while playing. This is AI debug info indicating perception range and path destination. You can safely ignore them - it isn't a bug, I just forgot to take them out before I compiled and uploaded. ^^;

dislekcia
02-10-2007, 01:44 PM
I actually really like the idea of having AI planning info visible, so a good player might be able to abuse it ;). Plus it could make the world look all matrix-like.

-D

Gazza_N
02-10-2007, 05:46 PM
Tr00jg mentioned a Matrix theme as well earlier in the thread, and this has me thinking - now that I'm past the prototype phase and reasonably happy that I can pull the game off, I need to start thinking about what it's going to look like. I'm thinking that a stylised Matrix-y Tron-esque VR look would look pretty awesome, especially given my lack of skill in the realistic art department. Any comments on that?

Tr00jg
02-10-2007, 06:39 PM
Tr00jg mentioned a Matrix theme....

Oooh, the huge walls around the game that has to be justified. hehe. I like the theme. :)

Cyberninja
02-10-2007, 08:59 PM
OooO! Shiny! O_O I like it. Have a few more suggestions (hey! stop pointing that gun at me! ^_^)

- The hud/cage supposed to resemble the shape of the robots head. At the moment it looks more Mechwarrior, than DeathBringer. I think it needs a few more lines.

- The hud moves to fast. You either need to make the mech more faster or make the hud move slower. The speed of both objects are not nsync.

- For some reason, I don't feel like a giant rampaging mech. O.O I think it's because of those giant buildings. Something needs to be done there. What if you reduce the size of the floor tiles? Make the square grids smaller, so that it looks like you are high up? :)

Gazza_N
02-10-2007, 09:20 PM
Have a few more suggestions (hey! stop pointing that gun at me! ^_^)
Awww, I wanted to try this thing out! Not every day you get to fire one of these babies. :(



- The hud/cage supposed to resemble the shape of the robots head. At the moment it looks more Mechwarrior, than DeathBringer. I think it needs a few more lines.
Point made. The cockpit model shall be tweaked for extra curvature. And what's wrong with MechWarrior? ;)



- The hud moves to fast. You either need to make the mech more faster or make the hud move slower. The speed of both objects are not nsync.
I'm assuming you mean the cockpit, not the HUD. :P

The cockpit bobbing is directly tied to the mech's animation cycle, so it is actually synched up in the best possible way... Does it need to bob more, perhaps? During tweaking I found that this bob rate was perfect. Anything more seemed like overkill, but I'll see what I can do! :)



- For some reason, I don't feel like a giant rampaging mech. O.O I think it's because of those giant buildings. Something needs to be done there. What if you reduce the size of the floor tiles? Make the square grids smaller, so that it looks like you are high up? :)
I know what you mean, and this ties in with the feeling that you're moving very sluggishly - scaling is everything. My plan was to add little widgets like cars, trees, etc to give the feeling of being big and destructive, and as a source of NANOMass. I'm just very worried about speed... The frame rate is very unstable on my machine right now, although from what I can see this is mainly due to the AI ( which, as mentioned, needs to be redone *shakes fist* ). I'll try out a few simple decorations and see how it impacts.

Cyberninja
03-10-2007, 01:34 AM
Awww, I wanted to try this thing out! Not every day you get to fire one of these babies. :(


Point made. The cockpit model shall be tweaked for extra curvature. And what's wrong with MechWarrior? ;)


I'm assuming you mean the cockpit, not the HUD. :P

The cockpit bobbing is directly tied to the mech's animation cycle, so it is actually synched up in the best possible way... Does it need to bob more, perhaps? During tweaking I found that this bob rate was perfect. Anything more seemed like overkill, but I'll see what I can do! :)


I know what you mean, and this ties in with the feeling that you're moving very sluggishly - scaling is everything. My plan was to add little widgets like cars, trees, etc to give the feeling of being big and destructive, and as a source of NANOMass. I'm just very worried about speed... The frame rate is very unstable on my machine right now, although from what I can see this is mainly due to the AI ( which, as mentioned, needs to be redone *shakes fist* ). I'll try out a few simple decorations and see how it impacts.

Lol. Yeah, I meant the cockpit. My bad. :D Nothing wrong with Mechwarrior. It's just that this is DeathBringer. So the cockpit should look like a Deathbringer. ;)

Nah, the bobbing is fine. It's just the speed of the bobbing that looks odd. I think it needs to be slowed down slighty, imo.

Yeah, I was worried about that also. The speed of the game, I mean. Hope you find a way to add to the game, without sacrificing framerate. :( Really looking forward to the final product. :)

cairnswm
03-10-2007, 07:21 AM
Would game maker support billboarding? A 2D model placed in 3D.

Basically a picture of a tree with transparency enabled. Then the picture is drawn to always be facing the player - so from which ever direction you approach the tree it looks like a tree. (Wont work for cars though).

If so you could easily add a number of smaller objects to give that impression of size.

Gazza_N
03-10-2007, 05:25 PM
Would game maker support billboarding? A 2D model placed in 3D.

GM's 3D is controlled exclusively through GML, so I've already coded billboards in and am already using them quite a bit for weapon effects. In terms of trees and such it is a really good alternative. Thanks for the suggestion! :)

EDIT: The AI is the reason for the speed problems, folks. I nuked the AI mechs and everything ran as smoothly as ice. Back to the drawing board, I guess. :(

Pro: I've always known what the most expensive part of the AI is, namely the target scanning. That's the prime target for rework.
Con: Everything else orbits around the abovementioned code, and I have no idea how else I could pull it off. :( I'll give it a shot, but I may need some help down the line...

Thaumaturge
04-10-2007, 12:32 AM
This is a very cool version, Gazza. ^_^

The weapons seem to be coming along nicely, for one. The Explosives and Mass Driver groups are especially welcome from my point of view.

Personally, I think that the cockpit frame looks pretty good - it seems to me to fit. I think that scale indicators, such as trees (or other setting-specific alternatives) are probably more important.

Two things do concern me, however:

1) The Mass Driver weapons seem to have an incredibly long reload time. I know that they're supposed to be powerful, but I'm not sure that they don't deliver damage-per-second ratios below those of the lower weapons...

2) I'm not sure about the utility of the arc weapon. It seems to be a fairly powerful close-range weapon, but then again, so do to the flamethrowers. For another thing, it seems to be upgradeable to a weapon that on the same upgrade level as it from the weapon before it. It is a very cool idea, I think, so I'm hoping that either I'm wrong or that it can be improved upon. ^_^

By the way, have you considered any weapons that require both AMMOmass and energy? They would presumably be rather powerful at that price, so I would suggest that they also be weapons that are tricky to use, but controllable by experienced players.

A guided missile comes to mind, for instance - once fired, the player guides it instead of the Deathbringer until it detonates.

Another idea might be a supercharged nano-scale-sharp spike that delivers a nasty electrical blast on impact, along with piercing the armour of the target.

Or perhaps a spacially-sensitive particle bundle whose path is affected by the Deathbringers and, especially, the buildings around it... and which can therefore be used to shoot around corners. ;)


I've always known what the most expensive part of the AI is, namely the target scanning. That's the prime target for rework.

If I may ask, how are you implementing the target scanning?

Evil_Toaster
04-10-2007, 09:18 AM
Pro: I've always known what the most expensive part of the AI is, namely the target scanning. That's the prime target for rework.
Con: Everything else orbits around the abovementioned code, and I have no idea how else I could pull it off. :( I'll give it a shot, but I may need some help down the line...

How are you doing the target scanning at the moment?

Gazza_N
04-10-2007, 05:45 PM
If I may ask, how are you implementing the target scanning?

How are you doing the target scanning at the moment?

Very inefficiently. :P

I have a new idea how I can streamline the existing system. I'll try it out, and should it fail I'll devulge my AI secrets... ;) Not that I'm being a Scrooge with my code, of course, but it'll take some time to explain what I'm doing.

Evil_Toaster
04-10-2007, 06:29 PM
In that case, I propose you do line intersection tests on every polygon in the game world!

Gazza_N
04-10-2007, 06:56 PM
In that case, I propose you do line intersection tests on every polygon in the game world!

Brilliant! :P

Actually, if GM had per-polygon testing it would make my life a lot easier in some respects...

Squid
04-10-2007, 09:01 PM
In that case, I propose you do line intersection tests on every polygon in the game world!

Collisions are the devil.

Do not attempt to argue.

Thaumaturge
05-10-2007, 04:34 AM
Very inefficiently. :P

*chuckles* Yes, well, I guessed that... :P


I have a new idea how I can streamline the existing system. I'll try it out, and should it fail I'll devulge my AI secrets... Not that I'm being a Scrooge with my code, of course, but it'll take some time to explain what I'm doing.

Heh, fair enough - good luck with it - I hope that you do manage to find an efficient solution! ^_^

Gazza_N
07-10-2007, 09:45 PM
I have:
>Lowered the number of mechs
>Reduced frequency of target scans
>Mostly eliminated redundant scans

My frame rate is once again happy and smily. My AI is now more eccentric than ever. Needs more work, but progress is being made at least. :D

@Thaum: To answer your earlier questions about weaponry:

>No, the weapons are not balanced. At all. Yet. ;)
>Yes, hybrid weapons are indeed part of the spec. Nothing as elaborate as you've described, but there nonetheless. ;) That said, I'm always on the lookout for weapon suggestions, so if anyone has any... :)
>Yes, the current (no pun intended) arc cannon is infuriatingly similar to the flamethrower. I'm working on a new concept for it, based on potential difference. Basically, you charge your cannons from your energy cache. As the charge/potential grows, the further the range of the weapon gets. Once a hapless enemy comes into range, lightning bolts discharge at it. Closer range, faster rate of fire. I haven't implemented it yet, but that should make for a more interesting weapon.

Evil_Toaster
07-10-2007, 10:27 PM
Sounds a bit like my Retro Tank optimisations. ;) Per pixel timeslicing on the collisions ate the framerate on slower pc's, so I settled on 4 pixel steps.

Also, the changes you made don't really sound like a proper fix to the problem...? What about something like the following:


1 - Line from points A,B, where A = Your mech, and B = Enemy Mech
2 - If length of line > range, stop.
3 - HasTarget = True
4 - Loop: Run a series of line intersection tests on the 4 lines which bound each world object.
(On the X,Z axis. This is assumes your buildings stay the same width/shape for their
entire height)
- If a line intersects, there is a potential collision. Do a more complex collision check. If
a collision is found, HasTarget = False
- If no lines intersect, do nothing
5 - If HasTarget = True, player is in line of sight and the mech can fire.


The above can be optimised by reducing the number of checks per frame. For example, you have 60 game objects which must be checked against. Check against 10 per frame, thus spreading the check over 6 frames, and giving you a 6x speed increase. (Minus overhead) Assuming processing runs at 60fps, your mechs will still have a response time of 1/10th of a second, which I reckon is acceptable.

Thaumaturge
07-10-2007, 10:31 PM
My frame rate is once again happy and smily. My AI is now more eccentric than ever. Needs more work, but progress is being made at least.

Aah, excellent - I'm very glad to hear that. ^_^


>Yes, the current (no pun intended) arc cannon is infuriatingly similar to the flamethrower. I'm working on a new concept for it, based on potential difference. Basically, you charge your cannons from your energy cache. As the charge/potential grows, the further the range of the weapon gets. Once a hapless enemy comes into range, lightning bolts discharge at it. Closer range, faster rate of fire. I haven't implemented it yet, but that should make for a more interesting weapon.

Indeed, that does sound like an interesting weapon. ^_^

As to weapon ideas, I very much recommend (and request) weapons that encourage tactical use, such as my spacially-sensitive weapon idea (at least, as I consider it :P).

For that matter, what about tactical non-weapons, such as smoke grenades, sensor blinders, EMP bombs, expanding foam to clog up weapons (simply fire repeatedly to clear it).

Gazza_N
08-10-2007, 09:53 PM
@ET: Timeslicing like that would take a bit more work using GM, but it is a good alternate method. Fact is that lowering the scanning frequency using my current method pretty much achieves the same thing (ie, not doing all my checks at once). Otherwise, my scanner logic follows yours pretty closely already, except my mech scans in a circular pattern within its range, then does LOS.

@Thaum: I've also been thinking about tactical weapons. The EMP, for instance, could drain an opponent's energy cache or immobilize them for a set period. Smoke grenades are a nice touch, provided they don't create too much slowdown.

I've also decided on concepts for the two Arc Cannon upgrades (assuming I use the proposed model):
>Positron Rail - fires a beam that creates a potential difference at its point of impact (be it the ground, a building, another mech), then discharges from that point.
>Ball Lightning - Like the BFG9000 in doom, fires a pulse of ionized plasma that discharges arcs at any nearby enemies.

CiNiMoDZA
09-10-2007, 02:09 AM
This is sounding better and better with every post :D

Thaumaturge
10-10-2007, 04:54 AM
I very much like your Arc Cannon upgrade ideas, Gazza. ^_^

Hmm... Similarly with the Arc Cannon in mind as the parent weapon, what about an area-effect Arc Discharge, that produces the Arc Cannon effect in a ring around the 'mech, allowing one to damage opponents that draw too near - it could be a useful secondary weapon to repel 'mechs that are better-armed than oneself for close-quarters combat.

Should you want to upgrade the Ball Lightning weapon, a simple upgrade might be a spread-fire variation - that would be a potentially deadly weapon, I think.

As for the smoke grenades, perhaps a better idea, especially in that it probably won't invoke large clouds of particles, might be a sensor disruptor. It would also, I feel, be a good opportunity to play with some screen effects that distort or obscure the player's field of vision, without entirely preventing the player seeing the playfield. For that matter, I suspect that it is probably a bit more realistic than a smoke plume inconveniencing a several-stories-high 'mech that is standing in the open. ;)

Gazza_N
02-11-2007, 04:30 PM
Well, it's been a learning experience. And if you're thinking about how fatalist those words sound, you'd be right.

After many months of struggling, I've finally decided that Game Maker's 3D mode just isn't going to be able to handle the game that I've envisioned. My grand design was a game of epic battles within sprawling cityscapes with lots of explosions and awesomeness. Either GM3D just isn't fast enough for that, or my coding is so abysmal that even static objects turn the frame rate to molasses. Adding anything more than is already present in the prototypes simply slows everything down far too much for the game to be playable. If there's any way to optimize this, then I'm far too n00bish to see it, unfortunately.

Those who've been following the thread from its inception will know that I've been prepared for this all along, but it is rather disappointing. Nonetheless, the lessons I've learned so far have proven invaluable. As a newbie dev who has only been developing for a year, any learning experience is immensely welcome. And the best way to learn is by doing. ;)

This is not the end for Deathbringer. The concept still lives, and I'm hoping to refine and complete it. It started life as an isometric game, and as an iso game it will hopefully live on. I'm experimenting with using orthographically projected 3D graphics from the iso viewpoint, which will hopefully allow me to continue using some of what I've built so far, albeit with major tweaks to the control system. If not, well, the models I've built are perfect for prerendering sprites.

Soooooooo... That's it! For now...

Cyberninja
02-11-2007, 05:11 PM
I'm glad that you still intend on completing the game Gaz. I'm sure the iso version will be just as awesome
(probably more ;) )

Step to it soldier. ;)

Gazza_N
02-11-2007, 06:23 PM
*Clicks heels and salutes*

Yes sir, your Ninjanessness! ;)

Thaumaturge
03-11-2007, 07:04 AM
I'm sorry to hear that GameMaker isn't up to the job, Gazza - I would really have liked to have seen a fully-developed, full-3D first-person version of Deathbringer.

I'm very glad to hear that the concept nevertheless lives, however! Very good luck with the orthographic projection, and if that doesn't work to your satisfaction, with a 2D version. ^_^

By the way, have you considered moving to a system other than GameMaker for this project?

One way or the other, I look forward to the next version of Deathbringer! ^_^

Gazza_N
03-11-2007, 11:52 AM
I'm sorry to hear that GameMaker isn't up to the job, Gazza - I would really have liked to have seen a fully-developed, full-3D first-person version of Deathbringer.
As would I. :P


By the way, have you considered moving to a system other than GameMaker for this project?

I would, but I simply don't have the skills or knowhow. I don't know the first thing about coding a game engine other than some of the theoretical background. And 3D engines... well... *cries*

I'm not abandoning GM3D just yet though. I'm still trying to find out what I can do with an iso viewpoint. It naturally doesn't have to draw as much as from first-person, so I'm currently trying to see if culling offscreen objects (first visually, then literally) will speed things up. I assumed that GM did this anyway - seems not. Fact is, I have very little idea of how GM does what it does under the hood, so trial and error is the only way I'm going to make any progress. I'll keep you all informed.

Thaumaturge
04-11-2007, 05:50 AM
Well, bear in mind that you can probably find third-party engines for a number of elements of your game.

For example, I'm considering using OGRE (http://ogre3d.org/) (their wiki (http://www.ogre3d.org/wiki/index.php/Main_Page)) for Thaumatomech and my next adventure game project, although I'll probably look around for advice on this selection once I'm closer to the point of coding.

However, if you think that GameMaker will do what you want, then fair enough - hopefully it does indeed. ^_^

Gazza_N
04-11-2007, 11:12 AM
Success! By keeping an iso perspective while culling offscreen objects I've managed to make the game playable in 3D mode! So much for first-person, but at least I don't have to rework the graphics (and I can probably cram lots of effects in too! XD). For now, the control and camera systems need to be repurposed for iso view, and I need to start implementing proper play mechanics (beyond just blasting stuff).

Tr00jg
04-11-2007, 01:26 PM
Hey woot! ISO with 3D in GM. This I wanna see!

Cyberninja
04-11-2007, 01:44 PM
IT'S ALIVE, IT'S ALIVE!! <Frankenstein music>

Well done dude. ;) Can't wait!

Thaumaturge
05-11-2007, 05:55 AM
Excellent, I'm very glad to hear it! I'm looking forward to the next release. ^_^


IT'S ALIVE, IT'S ALIVE!! <Frankenstein music>

MWAHAHAHAHAHA!!! *lightning flashes in the background* >:P

Gazza_N
24-12-2007, 01:15 PM
Hey! Guess what everyone? It's alive again! And Xmas wouldn't be complete without presents, right?

Behold! Deathbringer isometric prototype 1 (http://www.gamedev.za.net/filecloset/download.php?id=302). Fwaaaaah!

So what's changed? A 45 degree isometric viewpoint, and the mouse cursor for aiming. Otherwise, everything remains the same. Bear in mind that movement is cursor-relative for now, which takes a little getting used to but works rather well, I think. Also note that the cursor exists in 3D space (I still can't find a reference on perpective matrices that doesn't assume you're a varsity mathematics major), but I find that it works perfectly. If anything feels a little too weird, say the word.

GO!

Cyberninja
24-12-2007, 02:05 PM
Awesome!! :D That viewpoint works well and the game ran quite smoothly. I like the fact that you're still able to see the bot, even when he's behind walls. Good stuff Gaz. =]

Needz Homing missiles and heavy machine gunz!

Nandrew
26-12-2007, 12:25 AM
Very nice. Though might I suggest WASD corresponding to raw compass points rather than being mouse-relative?

Is this an individual observation, or do other people think that this would be a more comfortable control scheme?

Glad to see that this is being worked on again!

|-|1Pp13
26-12-2007, 08:01 AM
Is this an individual observation, or do other people think that this would be a more comfortable control scheme?


yes i noticed too, just too lazy to get around posting :p

generaly i always feel moving around the mouse doesn't feel right

Chuluka
26-12-2007, 03:24 PM
The game won't start, I get the following error message


___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

___________________________________________
ERROR in
action number 12
of Create Event
for object ModelCache:

File is not opened for reading.

dislekcia
26-12-2007, 04:56 PM
Check to make sure the file wasn't somehow made read only on your machine? Maybe?

-D

Thaumaturge
27-12-2007, 06:38 AM
(Presuming, of course, that you haven't accidentally excluded the file in question from extraction from the zip.)

Aah, I'm very glad indeed to see this!

I really like the fact that the buildings become semi-transparent when they are closer than a certain distance to the screen, and thus may obstruct too much of the screen (including the player's 'mech). I do suggest, however, that you fade between fully opaque and semi-transparent, rather than switching, as you seem to do in this version.

As to the cursor, what I've done in the past (such as in Ludus Magicus) was to create a ray based on the camera's orientation and position (made that little bit easier in your case by the fact that your camera doesn't rotate, from what I see). If you simply want to use the cursor to select a direction, you can simply find the intersection between the line and the ground plane; if you want to pick objects, then, depending on the fidelity that you desire, you may get away with a simple line-point distance check.

As to the movement, I'm not sure. I do find it a little unintuitive, but I can see experienced players potentially enjoying the freedom that it gives over combinations of up, down, left and right. Perhaps make the control system a selectable option.

Graphically, I have two notes:

First, I notice flickering along the floor - I'm guessing that you're using tiles that are fighting with each other at their edges. Have you considered using a single textured model (or a small set of such) for each level, combined, perhaps, with an underlying logical collision detection model or set of models?

Second, at this zoom level some of the the weapons seem to be becoming less visible. Perhaps you should increase the size of some (such as the bullet-based family of weapons), and increase the opacity and/or brightness of some of the beam-based weapons.

All in all, however, I think that this is a positive move. ^_^

By the way, are there any enemies in the level any more? I looked, as I recall, but don't think that I found any.

I do like the addition of little cars, however. ^_^

It would be nice to have them explode as they were stepped upon, or when they found themselves within another explosion, I imagine. ;)

Gazza_N
27-12-2007, 10:06 AM
Thanks for your comments everyone.

Chulaka, the only reason I can think of for that gargantuan string of errors is that (as Thaum noted) you hadn't extracted the models directory when running the game. I assume you ran the exe directly from the zip instead of extracting all of it to another directory? ;)

Cursor-relative movement was an experiment. I found that, while initially confusing, it provides better control during fights. Nonetheless, I've decided to allow players to select either scheme depending on their taste.

That annoying flickering, from what I've been able to gather from my own research, is caused by Game Maker's 16-bit z-buffer. Apparently 16-bit z-buffers tend to have trouble sorting surfaces that are forced close together when far away from the camera (which I have,incidentally, noticed in older commercial titles such as Homeworld and Omikron). Not much I can do about that, unfortunately, unless I can find a 32bit zbuffer module for GM somewhere.

As for adapting the weapon effects, I am working on that, as well as reinstating some of the eye candy from my earlier prototypes. ;) But not just yet. All this fun I've had with the graphics has been good and fine, but I still need to build an actual game! 0_o

Tr00jg
27-12-2007, 01:45 PM
At first, I didn't quite like the cursor-relative movement, but as you said, I thinked it would work better for combat.

I quite like it.

Just a note:

-If you shoot behind buildings (ie, the building is between the cam and your mech) the lasers is hard to spot...

dislekcia
27-12-2007, 05:50 PM
That annoying flickering, from what I've been able to gather from my own research, is caused by Game Maker's 16-bit z-buffer. Apparently 16-bit z-buffers tend to have trouble sorting surfaces that are forced close together when far away from the camera (which I have,incidentally, noticed in older commercial titles such as Homeworld and Omikron). Not much I can do about that, unfortunately, unless I can find a 32bit zbuffer module for GM somewhere.

You can deal with the flickering by giving the z-buffer more resolution over the distances it's working on: Set your near and far clipping planes to closer bounds around your rendering distances. A near plane at 0.01 uses up a ton of the "space" in your z-buffer in regions that you hardly ever render to; Use 1 or even 10 if you can get away with it. Each order of magnitude up moves the bulk of the float space further "back" in z-space.

-D

Thaumaturge
30-12-2007, 12:20 AM
That annoying flickering, from what I've been able to gather from my own research, is caused by Game Maker's 16-bit z-buffer. Apparently 16-bit z-buffers tend to have trouble sorting surfaces that are forced close together when far away from the camera (which I have,incidentally, noticed in older commercial titles such as Homeworld and Omikron). Not much I can do about that, unfortunately, unless I can find a 32bit zbuffer module for GM somewhere.

Aah, fair enough - in which case, I second Dislekcia's advice.


As for adapting the weapon effects, I am working on that, as well as reinstating some of the eye candy from my earlier prototypes. But not just yet. All this fun I've had with the graphics has been good and fine, but I still need to build an actual game! 0_o

Build an actual game? Don't be silly! ;P

In all seriousness, what will you be working on next then, if I may ask?

Gazza_N
31-12-2007, 09:50 AM
Hooray! Not only have I learned more about how z-buffers work, but the flickering is no more! Thanks Dis! :D

@Thaum: You misunderstand me. ;) Deathbringer isn't a game just yet. For now, it's more of a nifty prototype to see what I can pull off in GM3D. By "actual game" I mean that I need to expand on this prototype to build it into something with proper game mechanics and structure.

As for "other games", to you really need to ask? I ALWAYS have other games in mind. ;)

Thaumaturge
01-01-2008, 04:32 AM
Aaah, fair enough. You fooled me with the rather game-like elements of weapon selection and enemy destruction. ;P

As to what next, I think that I actually meant that with regards to the next task in the development of Deathbringer, but I would be interested in hearing what games you plan on creating next, Deathbringer aside, I daresay. ;)

Gazza_N
02-01-2008, 09:33 AM
*Use fist on self*

Sorry Thaum... All the festivities must have made my brain even more addled than it usually is. ;)

To do list is as follows for the moment:
> Creation of turrets, tanks, and other non-mech enemies.
> Environmental hazards and obstacles - forcefields, minefields, EMP cages, laser fences, as well as different means of disabling them.
> A generalized Objective system.
> The NANOMass resource model for upgrades and repairs.
> A complete tech tree (although adding weapons and tweaking the tech tree is actually a very simple exercise).

After that, I can start improving the graphics and do some balancing. Multiplayer would be really nice too, but I need to do some experimentation on that front first (NOTE TO DISLEKCIA - MULTIPLAYER DEVLAN PLZ? ;)). For now, I'm focusing purely on single-player and the global game mechanics.

My other projects are the toppest of secret right now. ;P

Thaumaturge
02-01-2008, 07:54 PM
*Use fist on self*

Sorry Thaum... All the festivities must have made my brain even more addled than it usually is.

*chuckles* Fair enough - that seems understandable to me. ;)

It looks as though you have some pretty cool features on your to-do list! I very much look forward to seeing them implemented. ^_^

Heh, I'm not terribly experienced at multiplayer work myself, although likewise, it would be useful for some of my games, I daresay. (Ludus Magicus could really use at least a LAN option, and I think that Planar could be fun over a LAN too.)

dislekcia
06-01-2008, 09:50 PM
*Use fist on self*

That cracked me up :)

Also, multiplayer devlan you say? Ideas you give me...

-D

Thaumaturge
09-01-2008, 02:32 AM
My apologies - my question should have been posted in the "Game.Dev 2008?" thread, and has been moved there. I am sorry. ^^;