How To: Effectively Testing Complex Plugins

Discussion in 'Plugin Development' started by ryanhamshire, Mar 26, 2012.

?

Do you find this helpful?

  1. Yes, thanks!

    3 vote(s)
    23.1%
  2. No, you wasted your time with this.

    10 vote(s)
    76.9%
Thread Status:
Not open for further replies.
  1. Offline

    ryanhamshire

    If you're working on a big project, I have some experience to share. I'm Ryan Hamshire, developer of GriefPrevention and PopulationDensity. My strategy in plugin development is to solve "Vanilla" problems while minimizing learning for players and maintenance overhead for administrators. To be successful, I have to really understand lots of different play and administrative styles.

    One of the most common overarching mistakes independent and/or amateur software developers make is assuming that their customers (or in this case players) think like they do. Bukkit plugin devs can mitigate that factor a little bit by listening to the feedback we get in our BukkitDev, but that feedback is very limited because the audience is small and doesn't generally include players (only administrators).

    To get very good information, we need to become administrators ourselves. This not only gets us direct insight into the administrative experience for our plugins, but also gives us a direct channel to real players (those who play on our server). In this post, I'll tell you how you can get a cheap, low maintenance server with enough players to get good feedback on your development project. I'll also share some of what I've learned in my own personal experience, to illustrate how important "real" experience is over guessing about what players and administrators want.

    First, for $1 per player slot, you can rent a hosted server from LethalDrive. I've tried several hosting providers myself, and I think this is the best value. You'll have direct access to your files on the server via FTP, and can access the console via your web browser. I've had only a few service hiccups, which were quickly remedied by the support team there. Depending on the size of your project, you can probably get great feedback with only a 10 slot server, over a month or so. That's only two five-dollar foot-longs for real data and feedback!

    Next, there are two problems that ALL successful administrators face. These two problems eat up their time, and would ordinarily prevent a server owner from enjoying Minecraft or having time to actually work on the plugin he's trying to get feedback on.

    The first is crowding. A server which sees lots of new players (that's just about any public server, and that's what you want to get good feedback) soon has a problem in that the area around the spawn is crowded with builds (finished or otherwise). This makes it hard for new players to get started, and so they might just go look for another server rather than sticking around. If you install PopulationDensity, new players will be automatically spawned in an area where there are resources and plenty of space to build, solving your problem without requiring a lot of work on your part. Now you don't have to move the spawn around yourself, or start building portals to other areas from the spawn.

    http://dev.bukkit.org/server-mods/population-density/

    The second is grief. Many, MANY players love to join public servers just to cause a little trouble. They build ugly stuff, steal from chests, destroy houses, and dump lava and water everywhere. They also like to spam and camp around the spawn with diamond swords. There's a giant pile of anti-grief plugins available, but installing the right mix and getting them configured is an involved process. If you install GriefPrevention, your grief problems will 95% solved without configuration, without a database, and without constant monitoring on your part.

    http://dev.bukkit.org/server-mods/grief-prevention/

    Finally, you need players. I've tried several forums and my observation is that the players you get from forums (like MinecraftForum.net) are slow to come, but seem more likely to stay. PlanetMinecraft, on the other hand, can deliver you a daily flood of new players. When you first post your server on PMC, you'll get an absolute explosion of new players (seriously, your server will probably be out of slots in minutes). New players tend to tail off (most don't come back again), but once per 24 hours, you can create an update log entry on PMC to get another boost. They do have a rule - your update logs must actually describe updates. So my advice is to only update log when you've updated your plugin version.

    If you combine these recommendations, I guarantee you a low-maintenance server with an active player population, where you can test your developing plugin.

    Now to prove to you that I'm not full of shit and just trying to advertise my plugins, let me share a few things I've learned by running my own server which I believe I would've never figured out on my own. Personally, I believe my experience as a server owner has made both of my plugins 100% better than I originally designed them to be.

     
  2. Offline

    Njol

    *bump for the sake of humanity*

    JK, this seems really helpful. This will not work for my current plugin though since it's completely aimed at server admins, but If every plugin dev did this there would be much better plugins. I always though that the biggest problem with software in general is that it's not tested thoroughly enough, many times I even see problems which could have been solved with just a minimum of testing.
    But as a programmer myself I know that it's impossible to really test code on your own, and even if you have some other people to help you test you will still not find every problem, but many more than by doing it all by yourself.

    I really hope that more devs will read this, and maybe start a server or find one where they can be an admin (which can actually be quite a good solution as long as you can gather enough information in this position).

    edit: maybe this thread should be moved to the resources section, as it seems to better fit there.
     
    ryanhamshire likes this.
  3. Offline

    nisovin

    Hmm... I came into this thread expecting to see tips on how to test plugins, but all I see is a massive ad for your own plugins and some minor advice on how to get players on a server.
     
    Pandemoneus, Bone008 and Acrobot like this.
  4. Offline

    dsmyth1915

    Shhh niso, lets see if his plan works...
     
  5. Offline

    Technius

    Yeah..... it's obviously full of shit and it's and advertisement....
     
  6. Offline

    dsmyth1915

    It makes sense, but if I want feedback I start up my own server forwarded and ran off my computer and have my buddies test it out and give some thoughtfull suggestions. No need to really spend any money.
     
  7. Offline

    TnT

    You mention nothing about testing complex plugins. Your thread is mostly about starting up a server and using plugins (aka, yours) to make things easier to administrate, yet still don't mention how to test complex plugins.

    Also, you can stop reporting people for giving feedback on this post. Its not "trolling" when people say this post is not helpful for testing complex plugins.
     
  8. Offline

    Father Of Time

    I guess I just don't see how this is even good advice... Most individuals are capable of running a 10 slot server locally without monetary investment.

    Also, the quantity and quality of any debugging information you would receive from 10 slots worth of strangers with no Bukkit functionality awareness would be insignificant. You would receive much better bug reports by making your plug-in's publicly available to the Bukkit community and providing a bug tracker for the project; By doing this you will gain the development test grounds of dozens of server, with varying population sizes...

    You original post is that of a novice server administrator and truly comes off as a push for your plug-ins. Although your effort to inform and assist the community is appreciated, this just doesn't seem to have any one persons interest in mind but your own.
     
  9. Offline

    Unscrewed

    I prefer my own plugins..
     
Thread Status:
Not open for further replies.

Share This Page