Jump to content
IGNORED

WIP: Dodgeball


tschak909

Recommended Posts

I am currently trying to debug a booger bear of a bug. Because you can now pick up both player balls, there is at least one race condition where the opposing ball can disappear into null...

-Thom

Did you make sure the opponent didn't pick it up? I assume you found this by doing the super score mode trick. I saw that too and figured the other player had picked it up.

Link to comment
Share on other sites

Once I had added player scoot, both for ice dodgeball mode, and for player hit collision, I was able to add player-to-player collisions, players now bump and ease away from each other. This needs lots of tuning though, because it introduced another bug, in some cases, the two players can get stuck together, just need to see if increasing the decay value helps here, or if I will need to do something more sinister.

 

-Thom

Link to comment
Share on other sites

Yes, it is a side effect of the collision detection.

 

I will do a new playtest (playtest3) once I debug the last two big bugs, which are:

(1) Kernel timing has changed due to adding support for multiple playfields, needs to be fixed.

(2) Sometimes opposing player ball disappears when held by opposing player (race condition somewhere)

 

But the biggest change that you'll see in playtest3 is that players now can't overlap, and will bump against each other (preventing a specific class of bugs that were happening when ball targeting code would race against the opposing ball carry code)

 

My time has been limited lately, but I will try to get this out as soon as possible... If you will be at PRGE, I will be showing off my latest build there, in a couple of weeks.

 

-Thom

Link to comment
Share on other sites

There are days that I _really_ love Free Software development, and using tools like Github.

 

Today, I received a bug report from ZackAttack indicating some very interesting behavior when two players collide, occasionally one or both of the players will warp off to the other side of the playfield.... That one is actually interesting enough that I might consider that a "feature" ... :)

 

But he also kindly did a pull of my code, and fixed the playfield kernel glitch (by slipping the initial writes out by 33 cycles) that has been driving me batty for days. I just merged the code into master after looking at it, and the result is awesome.

 

Thank you, so much!

 

-Thom

 

p.s. This leaves one really knobby bug where a ball can disappear when a player has picked up both of them, but after that I can release one final play test, and then really start tightening this code up.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Just a couple of comments... firstly "CMP #$00" is superfluous if you're just loaded the value and you just want to BEQ/BNE. The Z flag is set on loading. So you can discard the CMP and save a couple of cycles and bytes. Secondly, I watched the videos - and I'm not convinced the ball movement is correct. Sometimes it seems to go really smooth, and other times (particuarly when travelling near-horizontal slightly diagonal) it looks like it's stuttering. I think there's an issue.

 

EDIT: In the sequence TYA / EOR #$FF / AND #$01 / TAY if you know Y is *already* 0 or 1, then this is better... TYA / EOR #1 / TAY

Also, you do what I did when I was first learning... writing this AND #$01 instead of this AND #1

That is, using the most human-readable form based on context. That #$00 stuff is kind of silly :) use #0

Link to comment
Share on other sites

Hey Andrew! Thanks so much for the critique, you can see the full code @ http://github.com/tschak909/dodgeball

 

I know the code is _very_ unoptimized at the moment. I deliberately do not optimize, unless it blocks progress. When I finish smashing all the bugs, I will go through and optimize the crap out of this code.... funny thing about 6502 code optimization, there is always one more byte that can be gained... Rob Zdybel, Tod Frye and I talked about that at length @ PRGE this year.

 

The AND #$01 is intentional. It's easier for me to read, and I think in hex.

 

As for the ball motion, yeah... the vertical motion of the ball is very choppy, because I am ANDing #$FC after I get to the right scanline count. I need to rethink my missile/ball placement code so that this does not happen, right now it's:

 

 

	
		
			
				LAX SCANLINE
		
		
			
				 
			
				EOR BALLY2 ; 3 8
		
		
			
				 
			
				AND #$FC ; 2 10
		
		
			
				 
			
				PHP ; 3 13
		
	

 

Yeah, the Combat stack trick...

 

anyway, any help pointing in the right direction is always welcome. I want to get this game done, and off my plate. :)

 

-Thom

Link to comment
Share on other sites

Strongly disagree about that method of optimization (i.e. waiting until coding is complete). There are a LOT of potential problems that can arise when you begin trimming the fat...and many times, the cause can be a difficult sucker to nail. Better to cut out the wastes as they are discovered...all the more likely you are able to spot problems while playtesting is still going strong. As always - backup early, backup often...do not overwrite or delete any backups until it's cast in iron.

  • Like 2
Link to comment
Share on other sites

There are different levels of optimizing.

 

Heavy optimizing often obfuscates the code, so it requires a lot of comments to stay understandable. Then sometimes it is better to just note the opportunity as a TODO and come back later when required.

 

Simple optimizations should be done immediately.

Link to comment
Share on other sites

  • 1 month later...

 

I like the project! :D

I design the OpcodeGames boxes/labels/etc (ColecoVision).
If you need someone to develop the art box, labels, manuals, etc, you can count on me! ;)

 

 

Thank you, so much for your wish to help! :)

 

I need to squash one more bug before I do the next playtest (it's been very difficult to solve.)

 

As for the cover art, I envisioned Dodgeball as one of the lost launch titles for the original numbered run in 1977, something like:

 

53af3e8387f67_161347b.jpg

 

BBzM0ch.jpg

 

Note the numbering on the spines, the first 9 VCS games were done in this way. I did an initial test for the cartridge artwork (need to do another pass):

 

6yyw1V7.png

 

IRyh4LK.png

 

Thoughts?

 

-Thom

Link to comment
Share on other sites

Ok, I have some ideas here. ;)

Which style do you prefer for the back of the box?

The front: the only tricky thing is the illustration, we would have to make a composition or something.. do you have any images of dodgeball you have already selected or am I free to chose one?

Label: Just little space adjustments to make.

post-42011-0-06239400-1482775439_thumb.jpg

post-42011-0-56337800-1482775884_thumb.jpg

Edited by GraziGamer
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...