My Battlezone / BZ2 Inspired Game / Pet Project - Updated 13/07

I’ve been working on this little pet-project for a while now. I don’t really have an end-goal in mind, other than to dramatically improve my knowledge of C++ and create at least a vertical slice of the old-school Battlezone games in a ‘AAA’ format. For now I’m just focusing on the hovertank / combat aspects before I consider tackling anything RTS based. Battlezone and Battlezone II were really rad games, you should totally check them out :slight_smile:

Made this into a master thread to avoid posting loads of them :slight_smile: Here’s the original post, check further on for updates :slight_smile:

Latest Video

— Original Post:

After fixing the physics-side of the programming for my project, I started integrating weapons and powerups a couple of weeks ago, this is the result. Sorry about the shaky video, that’s just the screen-cap software, you can see a stable 120FPS in the top-right :slight_smile:

Done in C++ and (should be) network-ready. Once I get some nicer effects in there I’ll at least be able to battle two of them in PVP (No AI yet).

Few notes about the weapon system:

  • Each craft specifies a number of ‘Hardpoints’. In these hardpoints, you can specify a weapon class, a socket to fire from, whether it’s replaceable, the default equipped weapon etc. It acts as an inventory but also as a way to limit what kinds of weapons the craft can hold, and how many etc. In here you can also specify a bone to use for a ‘Recoil’ effect, but that’s not yet implemented.
  • Each weapon drains ammo based on the Ordnances cost, from the same ammo reservoir on the craft. Each craft will have a limited amount of ammo it can carry, and more powerful weapons will cost you more. Later, I may add in support for Localized Ammo reservoirs for a weapon.
  • Weapons support firing in Salvos (volleys) of multiple ordnances at once, as you can see in the video. They can fire all at once or over a burst, with shot spread and additional pitch to counter-balance gravity.
  • Hardpoints are given ‘Firing Groups’, which allows you to fire multiple weapon hardpoints at once in the same group. You can select a different firing group with RMB or Scrolling with the mouse wheel. Later, I want to add the ability to fire multiple groups at once, based on the users selection.
  • Powerups will check to see if you already have the weapon in each slot on the craft that can support it (determined by the hardpoint class), and if you’ve already got it, they’ll reject.
  • Health and Ammo powerups are also now supported!

very interesting, are you planing to put this in the market place or as an example, i do understand the amount of work it takes to do all this stuff, well done

Not really decided yet, it’s for a personal hobby project of mine that’ll probably be in development for a while (and although the code is decent - it’s nowhere near shippable/marketplace worthy). If I ever get bored of it, I’ll likely chuck it up somewhere. I just have to be careful when it comes to IP-stuff… Although the assets and code are all mine, the ‘idea’ belongs to Activision I believe (See Here)](Sticky: Why a 'Battlezone 3' is unlikely - Battlezone Forums)

I imagine Unreal Tournament 4 will integrate a nice vehicle system eventually, which will probably be heaps more optimized and laid out better for most peoples games. Mine is quite specific :slight_smile:

thats what i was hoping for but since they started they have done absolutely nothing as far as vehicles are concerned and i really doubt this year will see any change.

Yours seems to be the best option shown, i’ve tried jacky’s GTA but that seems to have some issues since its based off the wheeled vehicle and not vehicle !

Great work TheJamsh, getting an Battlezone feel love it! Hope you decide to make this a full on game! I miss Battlezone ;(

I want this so bad! 10/10 would buy!

つ ◕_◕ ༽つ
Give pls

Thanks guys :smiley: I really need to get pitch controls working properly next… though I did add a relatively simple hud yesterday that reads in your currently assigned weapon(s), health and ammo etc. As you change weapon the ammo remaining number changes to reflect how many rounds you have left for that weapon type. Integration was quite easy actually!

With this, you’ve already recreated a very significant portion of the BZ engine. I’m extremely interested in seeing just how far it can go…

Gonna keep going! The hover engine is still a little broken, and it’s all going to have to go through some monstrous optimization at the end. The movement is still based on Physics Forces, whereas BZ bases it on actual position/rotation updates based on it’s Turns Per Second and the ‘Smoothing Factor’.

Trouble is I’m not sure which runs faster yet… gonna get some help from Rama at some point to get the physics replicating over a network nicely :slight_smile:

New Update! Multiplayer is technically speaking, 100% implemented now for all the current features. Movement is simulated locally for local players, but the server does authoritative replication of position if it needs to. Also started putting weapon convergence in place, which is a bloody hard thing to do for a reticle that has to move I might add.

Got some weird Physics issues at the moment too which I’m struggling to solve, thanks to all the new movement I’ve added in. Hopefully they’ll be fixed soon.

Here’s the latest.

Fixed all my hovercraft physics up, they now behave almost identically to the hovering vehicles in Battlezone / Battlezone II. Have to give a massive shout-out to one of the original programmers Ken who gave me heaps of help on dialling in the physics. Amazed at how nicely it’s turned out!

Not too far off being able to implement a simple game loop now. Awaiting a fix n 4.8 for the Pawn Possession issues and then I should be away!

Nice, I had started a side project wanting to recreate Battlezone, but this looks better. Had to stop mine due to time constraints though and wanting to work on my main project

I’ll definitely watch this, it looks great! Battlezone had some of the best gameplay out there, I loved the combination of vehicle gameplay with RTS base building. I always expected games to get more complex like that, but instead such complexity has mostly been stripped from the industry :confused: at least the mainstream. It’s great that we can recreate things like that now with Unreal 4!

Your hovering and tank control looks absolutely perfect in the latest video

Thanks Pinworm! I agree wholeheatedly, I think the game has a very real place in the world of current games.

New video, added more weapon functionality and new vehicles :slight_smile:

Added a few bits, thought it was worth a new video. Updated latest video in OP too. Btw I’m pretty much treating this thread as my dev blog now so enjoy my wall of text…

[video]https://youtu.be/DYrIbXOm_Nk[/video]

First thing you’ll probably notice is the new test map. Started implementing a map of actual size and scale into the game, though this will probably still rate as a fairly tiny one, and is better suited to the full RTS-style gameplay rather than deathmatch. Makes a nice test-bed though. For original players, the map is based on Chill.

First major thing is that I started on the Radar system. It’s currently a little crude but it’s proof that it’s possible, and there is room for some major performance optimizations which I’ve also started on already (see further down). In the original game, only Friendly objects would remain on the radar at all times. All craft emitted a radar ‘pulse’ that scanned its local area for other objects, and all players on that team (or allies of that team) can also see that radars objects. Lots of objects pinging each other however can quickly get out of hand. Hence the next major feature:

Quadtree system! Been wanting to implement this for ages and it was pretty fun (and difficult without an internet connection). At the moment its not even slightly tuned in and irrelevant to clients in Multiplayer, but it’s the start of a much nicer object management system. I also now have a nice general Manager system in place that forms part of the GameInstance. I can add or remove Managers of different types that do different tasks. Eventually, all objects that need to ping other objects or iterate over the scene will tie into this Quadtree to keep performance as high as possible even with hundreds of objects in the world. I’m also yet to try alternative object filtering techniques like Spatial Hashing / Broad phase filtering, which is something I’ll be tackling soon. For now though, the Quadtree works great.

Added some additional weapon classes to. There’s a Manual-Detonation Mortar, TAG Missiles, Image-Shadower etc. TAG Missiles are still in their early implementation but the core system works - the idea is to fire one projectile and if it connects to something, the weapon launches several homing projectiles to hit it. The Image Shadower feels stupidly good to use, can’t help but keep firing it. New reticle for locking on with too.

Plans for the next video I think are some overall visual improvements. Need to put some effort into weapon particle systems and suchlike to make it more impressive, and the placeholder UI stuff needs tarting up. Also desperately need to get the 3D radar in place because it’s just too cool, and do some code profiling for performance and multiplayer.

OMG!!! Now this is a MMO I would buy.

Hoping this hasn’t gone dead…
*
Update: Nevermind, just stumbled accross your other posts :D*

It hasn’t: https://www.youtube.com/user/TheJamsh/videos

Man, this is cool. I love this old game as well and would love to see it in UE4. Great Job!