Archived

This topic is now archived and is closed to further replies.

Bouncer

Deathmatch game test

Recommended Posts

Bouncer    145
This is a very early test of our upcoming game nano and I'm just really trying to get rid of any nasty bugs now that the engine is completed. Only a few people have reported that the game won't run, but those people count too. So I'm trying to testdrive this thing with as many comps. as possible. So if you want to help me ... download the demo and just post did it work or if it didn't whats your configuration. Thanks. And now to the game... Currently there are three players fighting it of in an arena. The game is located inside human body and you fight with viruses. Controls: PL1 - arrows + right cntrl PL2 - w,a,s,d + left shft PL3 - mouse [beware... the player 3 has homing missiles Screenshot: Game test: Download here size: 1.3M [edited by - bouncer on January 15, 2004 7:20:10 PM] [edited by - bouncer on January 15, 2004 7:20:48 PM] [edited by - bouncer on January 15, 2004 7:23:46 PM]

Share this post


Link to post
Share on other sites
VThornheart    246
Holy crap! (pardon mi lingua)

That was amazing! Your usage of physics was very, very impressive... and the deformable objects, like how the little balls of good wriggled when they got hit or bumped into, that''s absolutely fantastic. I''m damn impressed... is it GPL? Can we see the code? I''d be fascinated to see it.

Either way, well done! My jaw hit the floor more than once as I was trying it out!

Share this post


Link to post
Share on other sites
grhodes_at_work    1385
A very nice demo! The auto-zoom feature is quite nice, and the physics are kind of cool. Can you tell us a little bit more about the game? I tried firing my weapon at various things, but the particles did not seem to do much... Looks like a virus or cancer-hunting type game. Are you wanting to talk to Game Boy Advance publishers? I ask only because I think a game such as this could play well on GBA, not because it fits that platform currently!

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.


[edited by - grhodes_at_work on January 15, 2004 9:37:41 PM]

Share this post


Link to post
Share on other sites
VThornheart    246
You have to hit things a few times to destroy them... lol, I probably sound like the biggest loser ever, but I''ve been playing the demo for like an hour... long, long after I used player 3 to kill off the other players and blow up pretty much everything... something about the realistic nature of the physics, and the deformable objects paired with just the perfect texture to give it a "goopy, membrane" feel makes this thing perfect. I really have to applaud you on this.

I spent most of my time playing with the physics... it''s pretty much unbreakable, which you deserve a good pat on the back for. I toyed with moving things around, and ended up making a "game within a game" by trying to get one of the big, bouncy membrane balls into difficult crevices at the bottom of the map and seeing if I could balance it on the ship to get it back to the top. It''s difficult, but aided by the fact that it (realistically for a thin membrane!) deforms just a little bit to mold itself to the top of the ship. Ever so slightly, just like you would expect for something with the consistency slightly thicker than jell-o. I just couldn''t believe the extent to which it goes.

Well, I''d better stop playing with this thing. =) When you finish this game up, and get it to whatever it''s going to end up being, be sure to tell us. I definately want to see what comes of this project if something this cool is just a work in progress!

Share this post


Link to post
Share on other sites
jack_1313    536
Nice game, although I belive that such a game should have computer AI controling other players. And why is it that player 3 gets to use the mouse and has homing missiles?
The physics are supurb - I assume you are the author of the physics demo that was rather popular a while back?

Share this post


Link to post
Share on other sites
Ademan555    361
Looks awesome! If you want bugs... i can tell you a kind of a bug from the screenshot you gave.... your statistics seem to be drawn first, then your 3d stuff over it... constructive criticism :-D its very impressive though!

-Dan

Yes I realize im a n00b...

Share this post


Link to post
Share on other sites
MrRowl    2490
Excellent - no bugs I could see (apart from that text one) and it''s fun to play with.

Feels a bit like xpilots (so many hours spent playing during the PhD years!)...

Share this post


Link to post
Share on other sites
Bouncer    145
VThornheart: Thanks for the comments. Glad you like the physics.

Jack1313: this is a test... not a game. Full game coming sometime this year.

Ademan: yeah... i know about the text



ABOUT THE GAME

The game is going to be a deathmatch/team match type game for 2-6 (human or cpu) players. The game will include:

- good cpu players

- Lot''s of interactive objects, such as magnets, fans, turrets, eploding stuff etc... Plenty of weapons and powerups

- You can modify your ship and change Thrusters, weight, weapons, handling, shields ... etc.

- Full WYSIWYG scene editor that let''s you assemble levels from blocks easily. You can resize, rotate and use the kind of dynamic and static objects as you like. Over a hundred objects you can combine any way you like.

- Different gamemodes such as Team matches, Destoy base missions, capture the flag , racing.


The game is going to be released as shareware sometime this year.


Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
if I alt tab to another window and then wait a while before alt tabbing back, I can "swim" much faster. The time I can swim faster is related to the time the game didn''t have focus.

great game!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
I suggest you do some error checking about missing files (I removed GAMEfonts.png and got a "memory access violation" instead of a "failed to load GAMEfonts.png".

Share this post


Link to post
Share on other sites
VThornheart    246
Aye... hmm, I never really thought about removing game files. I wonder how many commercial games out there would flip out in the same way given that situation?

Anyways, keep us updated... and when it gets released, I''ll be the first in line to snag a copy. Especially if it has online or network game support... I live in a college dorm, and I think the potential for this to become popular is very high in that sort of setting, provided that A) the price is right for college students, B) the game can run online or over networks, and C) enough people can play in an online game at once to encourage game parties. =) I know my friends would go nuts over this game. I''ll have to show it to them when we move back in next week.

Share this post


Link to post
Share on other sites
oliii    2196
do you mind being a bit 'technical' about it?

Superb implementation of the verlet/constraint stuff. And some nice polish as well!

I'd think you also use some more 'rigid' dynamics, like for the space ship. They are just one big sphere particle, innit?

How do you detect collisions? Sphere / swept sphere on particles? segments intersections only? sphere / triangle overlap? swept sphere / triangle collision? do you just do triangle / point-inside tests?

lots of questions, I know, but I enjoy the technical expertise as much as the game

athlon 512
via KT266
512 DDR ram
radeon 9700 128 mb

[edited by - oliii on January 16, 2004 6:44:54 PM]

Share this post


Link to post
Share on other sites
Bouncer    145
oliii:
It's just simple sphere-sphere collisions after using sweep and prune for the bounding boxes.
Dynamic to static objects use sphere to line collisions.
Bullets (small particles) use method described later.

But pictures tell more than thousand words...


This is an image of my scene editor... you can see that all the particles are shown. The image only shows the centerpoints of the particles. They all naturally have unique radius.

I only use sphere-to-sphere collisions because it's fast and accurate enough. And also I have hundreds or even thousand small spheres (pixels) colliding with the objects, so this is the best method. All other methods would be too slow.

Of course I can't check the bullets using sweep and prune .. it would still be too slow to check all the bullets spheres against object's bounding boxes. And because bullets are moving fast... I had to implement another faster method to first check which bullets collide with object. So I draw objects bounding boxes on an image, sorted in size order so that biggest are drawn first, I use objects ID as a colour to draw with. Then I simply readpixel from an image to determine is certain bullet collided with any of the objects and if it has.. with which one. After that I check bullet to all objects particles. It's fast and reliable with most objects. Only problem are objects that can go inside eachother so their bounding boxes overlap... it can result in situations vere collision info can't be found this way. Solution would be to draw all the spheres with ID colour and not bonding boxes... but I chose boxes coz they're faster. Allthough I might have to change that if I see the need.


Also here is an image from the object editor:



Here you can see the structure of one object. Constraint creation between particles is automatic. But I also have a choice for manual constraining... this is useful when you want to create some soft bodies and don't need so much constraints.


Also a piece of advise to get the objects stable. I found out that to get really stable objects you really have to constrain each particle to every particle. This would not be necessary with all objects, but it works as a general method. This ofcourse is bad if you have objects with lot's of particles... that will mean massive amount of constraints. Luckily they are pretyty fast to calculate.

Some objects can still be unstable... so to ensure a even better stability I... by half accident ... discovered that you better calculate your constraints in lenght order.

In this game for example I can get away using only 2 iterations. And the objects still seem pretty rigid. Ofcourse the more iterations... the more rigidity and more accurate collision detection. But 2 iterations is all I need for this game.

Hope this explains some of my methods.


ps. Friction was the most pain in the ass during the development of this engine. I only recently found out a solution which provides the needed accuracy.




[edited by - bouncer on January 16, 2004 9:55:48 PM]

[edited by - bouncer on January 16, 2004 10:04:43 PM]

Share this post


Link to post
Share on other sites
oliii    2196
the spheres are just testing for overlaps, isn''t it? If found an overlap, move them apart.

when you constrain particles, you need also angular constraints? or do you just setup stiff linear constraints with particles that maximise the ''anglular sweep'' for a given particle? say, in drawing one, linking particle on the far left with particle on top, and particle on bottom, provides particle on the left with a large angle, which would give more stability than if you used particles along the horizontal arm of the object.



.. G
. F
.. |
A-B--C---D---E--F
. . H
.. |
I

// links A-I, A-G provide stronger stability than A-H, A-D or

// A-E, because the angle between A-I and A-G is larger than

// any other combinations.




otherwise, I don''t see how you can automatically configure constraints on a cross-like shape, and keep a strong angular rigidity. There must be 10s of them constraints on a single object. Reminds me of bridge builder, where you had to build a bridge with minimum materials, yet strong enough to suport the weight of a train


about the bullets, you should be able to detect objects close to the bullet quickly with a sweep and prune. After all, if you use bounding boxes on objects, there are not that many objects to test. It''s only when you get to the sphere-bullet test.

but anyway, the rendering technique seems a good way to solve it. Also, you can use a bresendham algo to scan the bitmap, and do a fake segment-box intersection, where you trace from previous bullet position to new position. Not sure if it''s worth it.

I''ve noticed the bullets hit boxes pretty early, you can see the bullets popping out in empty space.

Share this post


Link to post
Share on other sites
Bouncer    145
Oliii: I really mean what I say... I link all particles to all particles. So the example object from my image has 15 particles. It contains 14+13+12+11+10+9.... 105 constraints. This is automatic method that guarantees stability ... as brutal it may seem Of course much elegant methods could be implemented. But this is just brute force

Currently there''s no angular constraints. I use supporting particles when needed. For example a situation where you have a long rod. It bends sideways unless I create one "invisible" supporting particle on both sides of the rod.



Share this post


Link to post
Share on other sites
Xtreme11    122
Very impressive demo.
I especially like your physics and collision detection, seems very life like.

Works with no problems on my computer.

Nice work!

Share this post


Link to post
Share on other sites
VThornheart    246
AAAH, so THAT''S how you got the object deformation then? Those little circles within the large circles are the points for collision detection - and I assume control warping of the object as well? That''s genius, well done! I''d been wondering how you did it. =)

Fabulous!

Share this post


Link to post
Share on other sites
jack_1313    536
I''d love to play this game when it is completed. Great job! A sugestion though - perhaps objects should explode in a more biological way, as oposed to a bright flash of light.

Share this post


Link to post
Share on other sites
oliii    2196
quote:
Original post by Bouncer
Oliii: I really mean what I say... I link all particles to all particles. So the example object from my image has 15 particles. It contains 14+13+12+11+10+9.... 105 constraints. This is automatic method that guarantees stability ... as brutal it may seem Of course much elegant methods could be implemented. But this is just brute force

Currently there''s no angular constraints. I use supporting particles when needed. For example a situation where you have a long rod. It bends sideways unless I create one "invisible" supporting particle on both sides of the rod.



holy crap... That''s a lot of constraints! Fair enough. Even though the code constraint is simple in itself, still, it''s quite staggering. Especially with multiple iterations of that stuff.

Share this post


Link to post
Share on other sites
Bouncer    145
Ademan555: This is done with blitzbasic, so it''s using DX7.
Jack_1313: I think that too... but it''s hard to find any biological method that still would look cool

Share this post


Link to post
Share on other sites
oliii    2196
you mean, you coded the physics with blitz basic too?!? Surely not must be some plugin into a C++ lib or DLL.

anyway, a good example what beginners could achieve (although I doubt very much the guy in charge of the renderer is a beginner)with such languages, instead of jumping straight away into C++.

Share this post


Link to post
Share on other sites
Bouncer    145
oliii: why you assume that someone who uses blitzbasic is a beginner. lol.

Everything is done with blitzbasic ... why would I need any c++ for the physics. You can do everything in blitz that you could do in c. Blitz basic is a PROGRAMMING language you know... not a point'n click gamemaker.
Only difference is that I can use blitzes rendering/sound system, and don't have to spend my time creating a rendering engine.

That's it.

And yes... I can code c and java, but I prefer blitzbasic for my game developing needs.

And I'm no beginner... been coding for almost 10 years. And released lot's of award winning stuff on amiga.



[edited by - bouncer on January 17, 2004 12:51:23 PM]

Share this post


Link to post
Share on other sites