Expanding the API - How some changes allow greater possibilities

Questions, comments, and news on the server side plug-ins and it's API
Post Reply
User avatar
Zehra
Private First Class
Private First Class
Posts: 921
Joined: Sun Oct 18, 2015 3:36 pm
Location: Within the BZFS API and Beyond it
Contact:

Expanding the API - How some changes allow greater possibilities

Post by Zehra »

Expanding the API - How some changes allow greater possibilities

After noticing some striking similarities in HumansVsZombies, a simple "tag game" plug-in, and Rabbit Hunt/Chase, it demonstrates the issue of API limitations over the years and how new possibilities emerge with integration of features.

--

I've updated many plug-ins and often read various forum threads, so rather recently, I did notice something rather interesting in HumansVsZombies and Rabbit Hunt/Chase. Both modes change/swap player's teams on death, but this serves mainly to provide better visual reference and better game play. Although both modes could be easily done without such features, the game play would be far more limited or unappealing. With this in mind, we will use "team switching" for note through most of this post.

In 2006, the idea for a new game mode was generated. This mode was known as "Virus" in its first tests and later as "Zombie". Team switching had been thought of in the form of using a modified version of Rabbit Hunt/Chase and players would be spawned as either a "human" or "zombie" with the teams of "hunter" and "rabbit" serving as visual indicators of the status of a player. The limitations in the Rabbit Hunt/Chase mode would prevent this from being a viable option, as only a single rabbit could be within the mode, thus preventing the ability or usage of team switching. The work-around used in particular, was the usage of Phantom Zone and the status of players being Zoned or Unzoned as "teams". The limitations and drawbacks of this: (1) only worlds which were entirely drive-through and shoot-through would work with this mode. (2) Confusing and non-intuitive for players [as 9 out of 10 players were clueless about the mode]. (3) Selection of maps and map types being very limited. The mode proved to be a novel and fun game play experiment, but limitations in the work-around used to make it possible made it less than viable for adaption and usage in other projects.

In 2010, the suggestion for a new game mode arrived. While it may have resembled Zombie in some game play aspects, especially in its initial proposal, it would prove to be an entirely different mode. As Zombies wouldn't be able to shoot and would have to use SteamRoller to try to crush their opponents, but most importantly, actual teams were used and thus the previous limitations in the Zombie mode were not to apply. This meant that "humans" and "zombies" were served by teams as visual indicators compare to simply Zoned/Unzoned states, which lead to it being more intuitive to play and resulted in less confusion. However, this team switching was accomplished via bypassing the API and it had some glitches with regards to those aspects. Additionally, it still retained the issues of being unable to be compiled on Windows platforms.

In 2009, a plug-in around 70 lines of code was released with around 60 lines of actual code. This was for a simple game mode known as "tag", but in which players would spawn with SteamRoller flags and attempt to tag other players who would then respawn with SteamRoller to try to tag other players. It should be noted that both Rabbit Hunt/Chase and HumansVsZombies are in theory possible to implement using this mechanic. As Rabbit Hunt/Chase in equivalent is simply all players being rogue and granting all hunters SR (or another flag) and rabbit granted no flags for visual indication. HumansVsZombies is simply all players being rogue and all "zombies" being given SR and their ability to shoot disabled and humans having no flag for visual indication. This of course has its own limitations and would be a rather cheap attempt at implementing a feature set. Similarly it provides subpar game play and it would serve as poor visual indications. This is compared to team switching, which enables the full feature set to be used and applied well. In BZFlag 2.5.x, which is to be BZFlag 2.6.x, team switching is implemented as an actual feature, which enables many new modes and ideas to be practical.


In conclusion and summary: While it is excellent to see the limits pushed in attempts to create possibilities, limitations in the API can cause great compromises in game play, as the full feature set of BZFlag is unable to be used or applied. Similarly, virtually all game modes and game play can be applied in very limited settings, but in virtually all cases, they would prove to be non-ideal compromises. And simply because a poor implementation of something can be done, is no reason that the API or game should limit things to poor implementations. Which is why we can be glad that in the next major release that team switching is a feature and we should hope for more.

-Zehra
Those who are critical of me, I'll likely be the same of them. ~Zehra
The decisions we make are the ones we look forward too and the ones we regret. ~Zehra
There's a difference between knowing my name and knowing me, one shows respect to my name and the other is to who I am. ~Zehra

See where I've last been active at Strayers.
Visit BZList.net for a modern HTML5 server stats site.

Click here to view the 101 Leaderboard & Score Summaries Last updated 2021-01-12 (YYYY-MM-DD)
Latest 101 thread
Post Reply