Page 2 of 6

Re: Tank Fu

Posted: Tue Nov 17, 2015 12:35 am
by D3thAdd3r
I got a chance to play this through single player and I can vouch that this is a thoroughly enjoyable title. Particularly the graphics and sound style I find agreeable, but beyond cosmetics, the core is deeper than it appears at first glance. Gameplay is perfect I think, down to the short shot delay when a tank gets hit that allows for decisive wins instead of a bunch of ties; and it is easy to pick up and play at the same time.

It would be cool to have Tank Fu Tu some time in the future, and there could certainly be extensions you came up with at that time, but this one has nothing that seems missing. Great variety with named arenas and I will definitely plan on finding a local opponent for some real neuron vs neuron deathmatch soon. I'd say BTN_A and/or BTN_B should shoot, which then allows NES controllers to work with no code change too. The final boss appearing was a cool unexpected thing that made me say "whoah!" and I don't think I ever saw such a thing on Uzebox :D He could be a bit more challenging perhaps. The AI could be a little more difficult even if it was some of that "cheap" perfect reflex type thing, or perhaps a skill setting? Still enjoyable at the current level however. Anyway, it is a very impressive finished product and I am looking forward to your next creation! :ugeek:

Re: Tank Fu

Posted: Tue Nov 17, 2015 12:59 am
by D3thAdd3r
For the AI discussion, I find the whole topic very interesting. Best success I have had was with weight based systems using "intelligent design" hard coded rules and experimenting with cutoff values to decide what's most important at the moment. It also isn't so hardcoded cheap "mechanical perfection" that can be annoying to play against like completely rule based approaches. There is not enough horsepower on the '644 to go much further to the neuron anyway. It is interesting because some behavior seems to emerge or at least is unexpected. Frog Feast I experimented every weight value being randomly mutateable and then either wins and passes on or doesn't for unsupervised training and let it run for a few days as fast as Uzebox could simulate it without sounds/graphics/vsync waiting. In that case I saw them get pretty weird jumping patterns and being really defensive for whatever reason, but it was neat to see happen. I don't think my very simple digital choice of "genes" works since I was able to better pick values manually, but it is at least easy to setup and there behavior was not what I programmed originally. More advanced pickup from actual human gameplay might be much better, but I am not sure how much total time that would take to see improvements since I never tried it. If you did do something like that I'd be quite interested to hear your results.

Re: Tank Fu

Posted: Tue Nov 17, 2015 3:00 am
by uze6666
A tank game at last!!! I played all levels through the end and was surprised by the end boss too. It's very responsive, no bugs founds and nice attention to all details. I like that there's many variations like bouncing, different bullets and score table. Some comments/improvements:
  • The white on cyan power ups are a bit hard to discern one of another a my TV monitor. I'd consider slightly more contrasted colors.
  • I'd consider adding the use of the Start button after selecting option since most are used to that.
  • When the enemy explodes its bullet freezes for a moment giving a small advantage to the other player in some cases.
In any cases, the above are small details. Tank Fu is very well done for a first game. :P

p.s.: I've created a wiki stub for you game. You can improve it if you wish.

Re: Tank Fu

Posted: Tue Nov 17, 2015 5:33 am
by Artcfox
I checked out the video, and it looks great! Work has been very busy so I haven't had time to play it for myself, but I hope to soon!

Re: Tank Fu

Posted: Tue Nov 17, 2015 6:04 am
by uze6666
Btw, the video is very crisp, I assume it was made using the uzem140 branch recording feature?

Re: Tank Fu

Posted: Tue Nov 17, 2015 6:59 am
by L4rry
uze6666 wrote:Btw, the video is very crisp, I assume it was made using the uzem140 branch recording feature?
Yes, I used the uzem140 branch :) The video recording is a very cool feature. Thanks for adding the wiki stub, I'll flesh it out.

Thanks everyone for your encouraging and helpful feedback and I'm happy that you find Tank Fu enjoyable. I'll see what I can come up with for improved AI (I'll definitely have a look at Frog Feast D3thAdd3r. Yes, AI is a fascinating field indeed in gaming!) and adding some polish to the assets and controls.

I think my next task is going to be to assemble my second Uzebox kit and hopefully this time I won't butcher the SD card interface :mrgreen:
It will be nice if I actually have the full game library available instead of having to flash a game every time I want to play ;)

Soldering is hard!

Re: Tank Fu

Posted: Tue Nov 17, 2015 9:15 am
by D3thAdd3r
In the current published state for FF in the AI stuff any time you see a hardcoded value like "steerweight[0] += prng()&1" just imagine it like "steerweight[0] += prng()&pgm_read_byte(&aivar[x]) like it was during development. Meh, it might not be too useful actually.

I guess for controls/collision I notice it might be nicer if it was easier to navigate through tight quarters. Currently you have to be dead aligned with the opening it seems like. If it's easy, when the player is trying to move in a direction that is blocked you might have the tank continue moving laterally(whichever direction is closest to aligning) to align with the opening, and when aligned actually go in the direction the player is pushing. It seems a pretty common technique in games where players move through corridors and obstacles.

Re: Tank Fu

Posted: Tue Nov 17, 2015 10:18 am
by L4rry
D3thAdd3r wrote:I guess for controls/collision I notice it might be nicer if it was easier to navigate through tight quarters. Currently you have to be dead aligned with the opening it seems like. If it's easy, when the player is trying to move in a direction that is blocked you might have the tank continue moving laterally(whichever direction is closest to aligning) to align with the opening, and when aligned actually go in the direction the player is pushing. It seems a pretty common technique in games where players move through corridors and obstacles.
I never really thought of that! That's been annoying me throughout development. I think that solution will work perfectly and shouldn't be too taxing to implement. Thanks.

Re: Tank Fu

Posted: Wed Nov 18, 2015 2:05 am
by Gosma
Another cool game in just few months! Its a good year for Uzebox! 8-)

I'll play this one as soon as i get my PC with uzem :D

Re: Tank Fu

Posted: Thu Nov 19, 2015 8:48 am
by L4rry
Hey Guys,

I've performed some post release fixes based on your helpful feedback. I list the changes here.
I would be grateful if you can verify this provides a better overall experience. If so, I'll do a
formal release. The hex and uze files are attached at the bottom of this post:

- START button can now be used alongside A button for selecting in UI
- B button can now be used alongside A button for shooting
- Power ups have a new color scheme providing better contrast
- If less then 1/4 of your tank hits a corner, it will slide around it. Very helpful for those tank wide alleys :) (Thanks D3athadd3r!)
- Bullet pause bug has been fixed. This should allow for a slightly more competitive AI as well.
- Slightly improved difficulty in boss fight.

I played around a bit but could find no real way of improving the AI difficulty with either it coming off wonky or running out of flash space (Right now I'm on 61244 bytes).
Sorry about that in advance. It's chiefly to do with the tentacled text monster that is my code. It's mutated, not unlike a cancer, over the period of time I've learned
the Uzebox platform and making this game. ;)

Here you go!

*See my subsequent comment for another build that includes an increase in AI speed*
TankFu.hex
(168.24 KiB) Downloaded 322 times
TankFu.uze
(60.31 KiB) Downloaded 320 times