🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Defect Reports v0.2

Started by
89 comments, last by khawk 20 years, 10 months ago
quote: Original post by RenderTarget
So I just pulled down the new GDArena. This is the first I''ve looked at it. The GDArena window comes up white, and does nothing. It makes me sad. What should I be seeing, and is there any special setup that wsan''t mentioned?

p3 733MHz
WinXP SP1
DirectX 9b
256 MB RAM

I like pie.

[edited by - RenderTarget on August 8, 2003 3:47:42 AM]


Make sure you have the latest drivers for your video card.

Admin for GameDev.net.

Advertisement
I ran a test with MinGW. It called MyBot::Init, and subsequently crashed. The log seems to indicate a problem:

QueryBotInterface called. new MyBot == B2D020
QueryBotVersion called.
QueryCoreVersion called.
MyBot::AttachToGame called. this == AA0010 // !
MyBot::Init called. this == AA0010

Maybe change the calling convention for QueryBotInterface, etc. to __stdcall?
smart_idiot has indicated that the problem is in how this is passed. In that case, how about changing the calling convention of the member functions of ICore and IPlayer to __stdcall?

[edited by - Beer Hunter on August 8, 2003 4:11:55 AM]
BeerHunter: Yeah, I figured that out in my ''Hacking'' thread.

Since I strongly belive the problem is in how the two compilers handle class member functions, (MSVC using registers for the this pointer, MinGW using the stack) I propose they therefore be eliminated.

A DLL won''t contain more than one bot, so allowing for polymorphism is pointless. Make AttachToGame, Init, and Update regular functions. I''m not sure if that would create an issue attempting to pit the same bot AI against its self, though.

ICore could be changed to contain function pointers. Presumably GDArena could remember which bot it has called the Init function for, so it knows which variables to pass back. If that created issues (multi threaded bots?) AttachToGame could also give the bot an ID, which it could use with those functions to identify its self.

I''m kind of sorry for asking for that, since I know it would be a lot of changes and introduced bugs, without even a guarentee that it would help the compatibility issue.
Chess is played by three people. Two people play the game; the third provides moral support for the pawns. The object of the game is to kill your opponent by flinging captured pieces at his head. Since the only piece that can be killed is a pawn, the two armies agree to meet in a pawn-infested area (or even a pawn shop) and kill as many pawns as possible in the crossfire. If the game goes on for an hour, one player may legally attempt to gouge out the other player's eyes with his King.
quote: Original post by Khawk
quote: Original post by RenderTarget
So I just pulled down the new GDArena. This is the first I''ve looked at it. The GDArena window comes up white, and does nothing. It makes me sad. What should I be seeing, and is there any special setup that wsan''t mentioned?

p3 733MHz
WinXP SP1
DirectX 9b
256 MB RAM

I like pie.

[edited by - RenderTarget on August 8, 2003 3:47:42 AM]


Make sure you have the latest drivers for your video card.


That did it, thanks. I rolled back my video card on this box and forgot to update the driver.

I like pie.
[sub]My spoon is too big.[/sub]
Well, first of all, I would like to say it now works on my system...
a PIII 500MHz with 256MB SDRAM and 64MB GeForce MX 400 running Win98 SE (though I had to remove the video card cos it was affecting the card for the satellite internet ) so I have to get a new system ASAP!!!

Anyway, when I tested my code (which is just sloppy, very bad path-finding algorithm), I used the taunt function to display the angle of the objects in the fov, and the distance of the object. There are times when my bot gets to the extreme end of the arena and doesn't see anything again, not even the walls, because the fov has gone past the wall

I'll upload my .DLL if you want to test it, please do (though, i'm not s'posed to be distributing executables... Visual C++ 6.0 Introductory Edition )

Anyway, I put it up against SampleBot, but I had to run it like 20 times, before it finally found (thanks to my path-finding algorithm, heh) and killed SampleBot YAY for me! My first AI program

Oh, and there was a time when the ammo box appeared *outside* the arena.

InitGames Software
http://initgames.t35.com/

EDIT: Oh no! Late post in wrong thread, should be moved to the former thread, sorry.

[edited by - liquidAir on August 8, 2003 5:59:21 AM]
Kevin, more minor issues discovered,
1) Taunt crashes my arena application(washu/mistao''s as well).
2) You replaced WEAPON_COCKTAIL with WEAPON_GRENADE but left GetCockTailCount. Wonder if that''s an oversight.

Sorry for not noticing these earlier

VirtuallyOnline.ReadMyRecommendedBooks().ReadTheWeeklyGameDevChatStats().ReadTheEmptyForums()
"..\bin" -> "..\..\bin\bots"
thx, u know this will ease my compile and run sessions... ehm no not really ive already changed it by hand, ohh and 4 you zippy freaks eMan Compatible and still stupid (avatar allowed? see clicky)

can you remove the obstacle radius from release mode? i would like to see a final-match without them


edit: walls are messed or do they work different??? and where is the timeout?

T2k


[edited by - T2k on August 8, 2003 6:44:08 AM]
quote: Original post by dot
1) Taunt crashes my arena application(washu/mistao''s as well).

Same here.

John B
The best thing about the internet is the way people with no experience or qualifications can pretend to be completely superior to other people who have no experience or qualifications.
quote: Original post by smart_idiot
BeerHunter: Yeah, I figured that out in my ''Hacking'' thread.

Since I strongly belive the problem is in how the two compilers handle class member functions, (MSVC using registers for the this pointer, MinGW using the stack) I propose they therefore be eliminated.


Sorry to be blunt, but it is not changing.

quote:
A DLL won''t contain more than one bot, so allowing for polymorphism is pointless. Make AttachToGame , Init , and Update regular functions. I''m not sure if that would create an issue attempting to pit the same bot AI against its self, though.


Who''s to say that a DLL won''t contain more than one bot? Right now, no, but in the future?

quote:
ICore could be changed to contain function pointers. Presumably GDArena could remember which bot it has called the Init function for, so it knows which variables to pass back. If that created issues (multi threaded bots?) AttachToGame could also give the bot an ID, which it could use with those functions to identify its self.


Those are major security issues that can''t be enforced. Everything would be encapsulated in the arena code if it was changed to your proposed method, but because it would require a fairly large rewrite, the costs outweigh the benefits.

quote:
I''m kind of sorry for asking for that, since I know it would be a lot of changes and introduced bugs, without even a guarentee that it would help the compatibility issue.


If you really want to figure it out, then try building an app in VC++ that loads a DLL built with mingw in a manner similar to GDArena.

Admin for GameDev.net.

quote: Original post by dot
Kevin, more minor issues discovered,
1) Taunt crashes my arena application(washu/mistao''s as well).


I know what it is.. just a result of kiwi''s request for 80 character taunts at 3:30am.

quote:
2) You replaced WEAPON_COCKTAIL with WEAPON_GRENADE but left GetCockTailCount. Wonder if that''s an oversight.


It is.


Admin for GameDev.net.

This topic is closed to new replies.

Advertisement