Battlefields
HELP WANTED 2/21/12
Looking for a developer to work on a score-keeping system for this plugin while I continue working on the main code. This score system will contain yml/database save functionality, the ability for external gametypes to register their own score types and/or link with existing types, a variety of score type configuration options (monetary reward worth, point values, etc), ability to do parameterized searches on the database, and importantly, easy access to the score system (and individual player score values) from external gametypes. Website database linking is also desired, but is not a priority in these early stages. Contact me if you are interested, and I will give you more detail.
NOTICE 2/10/12
Things are again moving with this plugin. Gateways is completed and this is my main focus. Trying to get this out ASAP, I know how long I have kept everyone waiting. Not dead!
Overview
- Battlefields is a kind of game-within-a-game plugin – it allows admins to set up battlefield regions on their maps in which a variety of gametypes can be played. And there sure is variety! Battlefields is basically a wrapper for gametypes, which are loaded into it as Battlefield plugins (the same way you load plugins into bukkit, you load gametypes into Battlefields). This means that plugin devs or anyone willing to learn Java can write their own gametypes and take advantage of the standardized framework of the plugin. Additionally, server admins do not have to deal with large numbers of disjointed plugins to introduce different mini-games – they can set up designated universal battlefields on which any gametype you want can be played!
- Going further with the game-inside-a-game idea, Battlefields are saved to disk as completely world-dereferenced maps. What does this mean? It means that every single field that you create can be copied anywhere, to any map. All the field's blocks, settings, and features will tag along for the ride. You can build your own battlefields inside Minecraft however you like, then save them and share them with the community! Or you can download Battlefields that other players have created and copy them into your worlds with simple commands.
Status
- I have finally settled into a state where I can afford to spend the ridiculous amount of time that these plugins need to develop. Gateways, my other plugin, has finally hit a release version, and through that plugin I have developed many of the underlying systems that now make up the heart of Battlefields. So things are moving quicker then they... well, ever have. Donations are always welcome, they give me quite a bit of incentive : )
- I'm always hesitant to set any deadlines, because I never ever meet them. But I am optimistic about the momentum I have gained from Gateways, and my excitement & work ethic for finishing this plugin are back! So you should be optimistic too : )
- By the way, now is the time for suggestions. Especially looking for ones from plugin developers, but anyone can chip in! Questions on if/how you would be able to implement a gametype that you want to design are mainly what I am looking for. If I can't give you a good answer for 'how', or if I cant say yes to 'if', then I will most likely make changes in the plugin that will change that.
News/Info
CTF, TDM, and DM will be the minimum number of gametypes I will launch with the Beta |
Battlefields will eventually support Player/Mob gametypes (think MobArena) but probably not in the Beta release |
For Users
Getting Started | Tutorial on setting up and using Battlefields |
Gametypes | Introduction to Gametype system |
Commands | List of all Battlefield commands |
Permissions | List of all Battlefield permission nodes |
For Developers
API | Brief overview of the Battlefields API and developer features |
Gametype API | How to create your own gametype for Battlefields |
Donations are much appreciated!
Hmmm.... This plugin looks pretty dead for me. Pretty bad :(. I've been waiting for this plugin since last November. I hope he is doing something on it now, since the vacations are starting. I'm looking forward to hear something from him again.
Any news or is this completely dead?
License is GNU but wheres the source?
When is it coming out?
@2n3904
Sweet!
@deleted_6833624
I said before I hate to give ETA's, so Ill just sum up what's been happenin'
I'm at the point at which I can pretty much start writing proper gametypes for it, which I am doing (starting with CTF). But since these are the first gametypes, they let me know all of the problems in the plugin that developers would face, or things that are just kind of messy/difficult to deal with from an outside programming perspective. So its more painful then normal, as it involves quite a bit of going back into the main code and changing things round.
Probably the main thing that is different from the early versions of this plugin is the Lobby system. It basically emulates the kind of lobby you see in a typical FPS game.
Basically, you can create a game room whenever you wish and invite players to join. You as a host can set the gametype, the field you want to play on, and all the settings you need (things like number of teams, rounds, time limit, weapon loadout, weapon respawns, player respawns for default options, and then whatever options the gametype has as well). When you change your field, you and your players are all teleported to the field (providing it isn't occupied by another room of course. (You can also choose to forgo this option, and instead force players to physcially travel to the field to join). When you are in a game room with a field selected, you can't leave the field unless you quit the game room (also optional). So you think of typical FPS lobbies as a chat room you wait in, the Battlefields lobbies are the same - just that you are milling around the field before the match instead of in a GUI. This system lets you party up with players way before a match (and do whatever you want) until you are ready to play a game (at which you just choose a field and bam, you are there waiting to hit start)
My biggest annoyance with creating things like the lobbies is the inability of Minecraft's font to align properly, which may seem amusing but it is reallly annoying. Ah, I can't wait to finish the main plugin so I can work on adding spout GUI capability.
To make a gametype the developer only needs one class. This class doubles as the listener and the game information storage. Meaning that all listener calls are done here, and all the information the game needs to keep track of and reference is there.
I wrote the battlefields event system to be exactly the same as the Bukkit event system (new one, of course). It's basically just an extension of it. Battlefields has a bunch of it's own 'special' game mechanic events (things like game-start, round-start, join game, team change, region entry/exit, blah blah blah), some redone Bukkit events (things like PVP damage/death which doesnt need all the work EntityDamageByEntity does), and the ability to capture all of Bukkit's normal events as well. The unique thing about the Battlefields event system though is that all of the events are routed ONLY to the game which the event deals with. For example, all PlayerEvents will only trigger on the games the player is playing in. So every field playing a game is kind of like it's own little universe.
Lets see... Hmm. Oh, and the map system is all working A+. Every field you create is saved in it's own folder (including all the data for the field regions/spawnpoints/special features/physical minecraft map. So if you want to share a map with people, all you need to do it zip that folder up. To "install" a map is super easy. You just drop the map folder into the battlefields map folder, go in game and /field import <name>. It will copy the entire physical map into your world at your location with all the spawnpoints, features and everything, and you are ready to go! (Unless you want to edit it : P) Battlefields is going to 'ship' with a handful of maps I've made. Including a special one, one of my favorite FPS maps you might recognize (you'll see it in the first demo vid I put up : D)
Thanks for considering donating! Um, apparently the donation button doesn't show up on projects without an upload, I guess. I put a link at the bottom instead.
Looking good so far! Can't wait. Any ETA for beta testing/launch? Also, link to donation page? I can't seem to find it! =)
I would also like to help, but I'm new to java, and I don't have regular access to internet =/
Absolutely looking forward to using this at my server, can't wait for it!
@jadeddragoon
Wow, this is what I am talking about. I love getting suggestions like these.
Again, thanks for taking the time to make suggestions: they A. Show that people have interest in what I am doing, B. Help me get my ideas together and C. make things awesome!
Suggestions eh? Well, i'll start by saying i've not used any other arena plugin... i've been waiting for this one. So some of my suggestions might seem like obvious "well duh!" type stuff but I;m willing to risk looking like a nub to be sure.
First of it would be nice if I could set up an arena in a creative world... which would require that the plugin check the players gamemode at match start and swap it to survival... then swap it back at match end.
Also, I would like it if the plugin let me define a starting inventory for matches and do it per gametype... it would save their inventory at the beginning of the match, replace all their items with the saved inventory... and then swap it back at the end of the match. To make this feature and the above work well when paired wityh plugins like multiinv (which swaps a player's inventory automatically when switching game modes) it might need to wait a moment after swaping game modes and THEN record their inventory and swap it... then at match end swap their inventory, wait a sec, and restore their old gamemode.
It would also be nice if it would save their permissions group and let me define a permissions group it moves them to at match start... then move them back after... this is so some one with access to /creative or /god can not use it... same for /tp or any other commands.
As for game types... There is one that can be found in a few different fps series that I love... but the best verison I've seen was in UT3: "Warfare". The jist of it is each team has a energy core that they must protect. They are helped with this by the fact that it is surrounded by an impenetrable shield that can not be taken down with any amount of fire power.
Between the bases of each team are control nodes... starting with the control node closest to your own base you must capture an un-interrupted string of nodes all the way to the enemy core. Once you have this string of control nodes under your teams control the output from your core overwhelms the shields on the enemy core and allows it to be attacked directly. Once a sides core is destroyed... the other side wins.
Capturing a node means being near the node while it is uncontested (no enemy players within range at the same time) for a certain amount of time. You can not capture a control node if it is contested and you can not capture a control node if you don't control all the previous control node in the chain back toward your own energy core. Also, when you respawn, you can do so at any control node or your teams core... but only if the node is under your teams control and not contested.
It also allows the use of special nodes that are captured similar to how a normal node is... but have completely different effects. This includes spawning special equipment... raising the enemy core out of it's bunker to make it more vulnerable (once it's sheild comes down)... or, in one map, allows an auto win to any team that can hold on to it long enough...
Then there is the red/blue orb... Its a special item that when taken it to an uncaptured but captuable node will instantly capture that node... and holding on to one near an already captured node will give that node a shield similar to the one around each team's energy core... that can only be dropped by killing the one carrying it or by forcing them to walk out of range.
The major difference between this and other such game modes is that it has a frantic tug of war element to it. The Battlefield variation simply damages the enemy core faster the more bases you have... this spreads the fighting out and makes the matches involve a lot of wandering around looking for something to do. The UT3 variant focuses all the attention of both teams on one or (if there are two "chains") 2 control nodes at any given moment... making for a rather frantic struggle that none-the-less requires coordination and teamwork.
A good example can be found here... and shows red team achieving a massive come from behind victory: http://youtu.be/bcWAys8Ip2A?hd=1
Obviously the vehicles from the above video would not be a major component in minecraft... but outside that do you think something similar is doable with your plugin?
@bobbysmithyy
Almost... : /
This almost done?
@TheNoobWar
In a way, yes.
My other plugin Gateways has kind of been a testbed for a plugin backend which I decided to integrate into Battlefields. I just completed that backend, which is going to make finishing Battlefields 100x easier for me - as all the text-GUI and utility code is completely written, and I managed to make it very versatile. This was the main thing holding me back - I have been through three iterations of this "backend" before I managed to come up with something that satisfies all of the things I needed.
So, expect things to liven up here as Gateways gets finalized and I get the backend integrated into this plugin.
Any update?
@TheNoobWar
so basically destroy the base
Can't wait for this. Currently have 14 plugins that manage my multi-world games. This will be great! Looking forward to it coming out!
I can't wait till this plugin is released! Great work, it sounds like its going to be really really fun! But can I suggest some new features too? :D, I was thinking about TNT Wars, and Zombies! TNT Wars are like CTF but no flags and there are some rounds teams and free-for-all and then Zombies, a host infection gets picked and has to tag someone by walking towards them or possibly shoot only one arrow they get, etc. Keep up the great work can't wait for it.
Can you update the project on github?
@johnlier
Yeah, I am still writing up the pages, they are all unfinished. I just put it up today, give me another day to get things settled : )
This sounds like an absolutely awesome idea.
We could have arenas that functioned as Spleef arenas, MobArenas, PvP arenas, maybe even CTF, all without having to have 12 plugins with hundreds of different commands to do it!
I would love to see developers tap into this.