Page 1 of 6

Tank Fu

Posted: Sun Nov 15, 2015 6:14 am
by L4rry
Hi Guys!

I'm a first time poster here and am happy to share my first game with you. Tank Fu!
It's a tank-on-tank multiplayer deathmatch game. Best played with two players but
also supports a single player against CPU mode. Below is the full feature list:

- Two player death match.
- Two player death match over Wifi (Local Peer to Peer)
- Single player against CPU death match.
- 11 battle arenas with the first to 10 kills taking the arena honors.
- A bonus boss fight.
- The 'Tank Rank' scoring system. Scoring is based on your result vs your adversary, not just a high score.
- A Demo mode.
- Various in game power-up items.

I hope you enjoy playing it as much as I enjoyed making it. This is such great platform :)
I welcome any feedback and critique (Please be gentle!). If you're happy with the game
I'll do a full wiki write-up. See artifacts below:

TankFu.hex
TankFu.uze
TankFuJamma.hex
TankFuJamma.uze

And here's a short game play demo:


Post Release Improvements
(v3.2)
- Fixed bug where game hangs after a 'Network Error' when joining a networked game.
- Fixed animation bug where the tank explosion animation is played after player spawn at level start.
(v3.1)
- Improved Audio Effects.
- Added extra RAM tile.
(v3.0)
- Peer to Peer local multiplayer over ESP8266. No external access point required.
-- Tested on SDK Version 1.5.4.1 with AT version 1.2.0.0. Requires Transparent UDP support.
- Replace floating point calculations with fixed point calculation to free up cycles, RAM and flash.
- Replaced PCM audio effects with wave table based effects to free up flash.
- Adjusted 'The Canal' level to allow access for Tanks to cross. Makes for more interesting AI play.
(v2.0)
- Released JAMMA compatible ROMS.
-- 1 credit 1 player.
-- 2 credits 2 players.
-- No other game play elements have been changed.
-- Adherence to Softswitch DIP switch standard.
- Made use of kernel function 'GetPrngNumber'.
- Implemented attribution and version screen.
(v1.2.0)
The AI now supports multiple tactics.
- Hunt Tank Ignore Shot
- Hunt Tank Evade Shot
- Evade Tank Ignore Shot
- Evade Tank Evade Shot
(v1.1.0)
- 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.
- Bullet pause bug has been fixed. This should allow for a slightly more competitive AI as well.
- Slightly improved difficulty in boss fight.
- 40% increase in AI tank and shot speed.

Re: Tank Fu

Posted: Sun Nov 15, 2015 8:09 pm
by D3thAdd3r
This looks and sounds well done from the video. I will be playing this when I get home tonight for sure.

Re: Tank Fu

Posted: Sun Nov 15, 2015 10:07 pm
by CunningFellow
Looks great from the video. However I can't get the tanks to move. What are the keys ?

Re: Tank Fu

Posted: Mon Nov 16, 2015 1:22 am
by L4rry
CunningFellow wrote:Looks great from the video. However I can't get the tanks to move. What are the keys ?
Thank you :) To move the tanks, use the directional pad on the controller or arrow keys in the emulator. Use 'A' for attack.
There was a recent bug in the 'uzem140' branch of the emulator that caused the tanks to get stuck in random places on the screen.
I did a pull recently and it was fixed. It also works fine on the release version of the emulator and on the hardware.

Re: Tank Fu

Posted: Mon Nov 16, 2015 5:01 am
by kivan117
Multiplayer games are definitely an area we need to expand, so this is excellent news. The video on YouTube looks promising. I'll run it on hardware soon and get back to you with my thoughts. Welcome to the community and congrats on completing your first Uzebox game!

Re: Tank Fu

Posted: Mon Nov 16, 2015 7:11 am
by L4rry
Thanks kivan117 :) It's good to be here and good to finally finish my first game! I can't wait to get cracking on my next Uzebox project. I've been working on Tank Fu on and off over a period of 11 months (with a 4 month and another 2 month gap where I didn't work on it at all due to pressures at work). So very keen to be working on something new as you can imagine :mrgreen:

Re: Tank Fu

Posted: Mon Nov 16, 2015 8:27 am
by CunningFellow
L4rry wrote:
CunningFellow wrote:Looks great from the video. However I can't get the tanks to move. What are the keys ?
There was a recent bug in the 'uzem140' branch of the emulator that caused the tanks to get stuck in random places on the screen.
I did a pull recently and it was fixed. It also works fine on the release version of the emulator and on the hardware.
Ah - that solved it :)

Great game

Re: Tank Fu

Posted: Mon Nov 16, 2015 9:32 am
by L4rry
Thanks man! Glad you're enjoying it :)

Re: Tank Fu

Posted: Mon Nov 16, 2015 7:41 pm
by Jubatian
Nice old-school game! It feels quite entertaining, controls are responsive even in the emulator, graphics is fine for the purpose. The AI may need some polish though for the single player game, something what even I can beat in one sitting doesn't cut :) Of course the best of this game should be multiplayer, seems quite fun for that!

Re: Tank Fu

Posted: Mon Nov 16, 2015 8:48 pm
by L4rry
Jubatian wrote:Nice old-school game! It feels quite entertaining, controls are responsive even in the emulator, graphics is fine for the purpose. The AI may need some polish though for the single player game, something what even I can beat in one sitting doesn't cut :) Of course the best of this game should be multiplayer, seems quite fun for that!
Yeah the single player AI was a tricky thing to get right. I considered various options. I ended up using a simple but serviceable crash and turn based path finding with a dynamically changing goal as it's based on real time reaction to what's in front of you and doesn't require a large memory footprint or the algorithmic complexity that goes with processing that. The issue with my approach is that, depending on how you tweak it, it either turns out overly simple or overly hard to play against.

An idea I've always wanted to implement at some stage (I starting thinking about this when considering how fighting game AI might be implemented) is to train the AI based on data recorded from actual two human players. So you could capture what a player is likely todo given a defined set of scenarios based off data from several play throughs. But that wasn't what I was trying to achieve with this game. Maybe Tank Fu Tu? :mrgreen: