<!-- begin site header -->
<div id=

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - deoxxa

Pages: [1]
News / Mineserver 2.0 - New look, same great taste!
« on: October 23, 2011, 07:28:52 am »

That's right! Mineserver 2.0! Take a look at it on GitHub today! There's not much to see just yet, but we're progressing very quickly. If you're familiar with C++, take a poke around the code and tell us what you think.

We've learnt a lot from writing the first version of Mineserver. One of those lessons was that to maintain a large application, it's necessary to design the application with the right concepts in mind from the very start. This was one of the driving forces behind the rewrite for 2.0. To that end, we've tried breaking up the new codebase into smaller, self contained pieces, while maintaining the speed and efficiency Mineserver is known for.

Planned features (in no particular order):
  • Cleaner code - cohesive, isolated modules make hacking on Mineserver a breeze!
  • Better design - many advanced features that were all but impossible before are now simple!
  • Neater installation - getting started with Mineserver has never been easier!
  • Virtual hosting - host more than one server on the same IP and port!
  • Distributed hosting - spread the load of your game over multiple cores or even physical machines!
  • Plugin repository - find all the best plugins in one convenient place!
  • Multiple protocols - use any Minecraft client!
  • Game hibernation - no resources used while no players are connected!
  • Remote API - interact with Mineserver from any application that can speak JSON!
  • Rich administrative tools - delegate administration of your games over multiple admin tiers!

Any feedback would be greatly appreciated and new contributors are always welcome. We can be contacted in any of the following ways:

* Virtual Stalkers take note: we reserve the right to stalk you back and say "hi" on Facebook every day for the next 6 months

Development / Callback System
« on: December 16, 2010, 06:32:22 am »
I wrote a small callback library over the past few days and implemented it in Mineserver this morning. This is the start of a plugin system, now all that is needed is hooks in relevant places and functionality to load external .so/.dll files and it's ready to go. What I need from the collective Mineserver hackers is input on hook locations and parameters. When individual hooks are implemented, they won't be able to be changed without breaking compatibility with existing code that uses them so we'll need to get their definitions right the first time.

So with this, I'd like to discuss potential locations for hooks and their arguments. The number of hooks shouldn't be considered limited, so don't try to squeeze too much functionality into them. Basically if a callback pointed to by a hook will be unable to function without first splitting its execution in some way, it might be better to split the hook into two separate hooks.

There's a small example of how the hooks function in chat.cpp. The hooks themselves will be defined in plugin.h, which is right now being transitioned from the current delegate system to the new one.

Development / Config Format Discussion
« on: December 08, 2010, 11:18:57 am »
From IRC earlier:

<deoxxa> i think we need to rework the config file format
 <deoxxa> right now it's a bit ad-hoc
 <Psoden> mm..
 <deoxxa> i think the way the lighttpd config file works would be good for mineserver
 <deoxxa> it's not very complex either
 <fogWork> For noobs it might be, but who cares, right? ;)
 <deoxxa> heh
 <deoxxa> even for noobs it's not that bad
 <deoxxa> i like the way you can add items to arrays in the lighttpd config though
 <deoxxa> core.plugins = ("plugin_a", "plugin_b");
 <deoxxa> core.plugins += ("plugin_c");
 <deoxxa> that way you could just have a separate config file for each plugin
 <deoxxa> then do `include "plugin_a.cfg";`
 <deoxxa> in which there'd be `core.plugins += ("plugin_a");` and other stuff
 <fogWork> I like it
 <deoxxa> of course that would require all the plugins to be in the same place
 <deoxxa> or the plugin name could be relative to the config file it's defined in
 <deoxxa> so you'd have something like `include "plugins/admin/plugin.cfg";`
 <deoxxa> then in plugins/admin/plugin.cfg it would have `core.load_plugin "bin/admin.dll";` (or .so)
 <deoxxa> depends on how we want to structure it
 <deoxxa> because there's a possibility that a plugin "package" could consist of more than one actual plugin
 <deoxxa> if we make people structure things a certain way, it would enforce some form of order
 <deoxxa> but it could also restrict them
 <fogWork> Plugins loading plugins \o/
 <lukegb> fogWork: plugins loading plugins loading plugins that load the first plugin
 <fogWork> That freaked me out a bit ;/
 <deoxxa> for things like map generation, each stage could be a separate dll
 <deoxxa> and if you're only using one part of the map generation stuff, such as heightmap generation, you might not need the rest of them
 <deoxxa> so you don't really want them all loaded
 <deoxxa> (a bit of a lame example, but bite me)

I went a bit into the plugin system specifics there, but I'd like to mainly discuss the config file format. Thoughts?

News / Windows Builds
« on: November 30, 2010, 01:38:41 am »
Okay, yesterday I set up an automated system for Windows builds. It's still a little clunky and far from perfect, but it's "working". You can find the builds at (I'll do up a nicer page today). Generally you'll want to get the newest file available, it's (probably) the most bug-free.

The exe files will install Mineserver, create shortcuts in the start menu, create an uninstaller and add an entry in the add/remove programs dialog. There may be issues on Vista/7 because of permissions in the program files directory, but in that case you'll just need to modify the config to put the map files, ban list and whitelist in a directory you have write access to.

Servers / Rules - Read Before Posting!
« on: November 27, 2010, 12:58:19 am »
Only two simple rules for this board!

1) One thread per server - Each server should only require one thread on this board, so please don't start any unnecessary threads. The only exception is if you are the owner and you find that someone has already started a thread regarding your server; in that case please request that the original topic be locked or merged.
2) Only post about servers running Mineserver - If you're not running Mineserver, you're not posting here. This will be checked regularly.

News / Ground Rules and Information
« on: November 26, 2010, 11:50:49 am »

This is a collection of basic rules and essential information for successful participation in the Mineserver community.
Information here is brief, subject to change and required knowledge for all users, so please do keep yourself updated on it.

Accepted forum content, listed by forum

Mineserver News - Official announcements regarding Mineserver. Only administrators can post new topics.
Mineserver Discussion - General discussion on Mineserver. Found something you like? Want to find out what your fellow users are doing with Mineserver? Need some inspiration for your next Mineserver-related project? This is the forum for you.
Mineserver Development - If you want to bounce some ideas around in relation to the development of the Mineserver core, or if you have questions about the internal workings of the main application, this is where they belong.
Mineserver Plugins - Have you written an awesome plugin? Do you want someone else to write an awesome plugin? Have you found an awesome plugin somewhere else? Get posting!
Mineserver Servers - Feel free to advertise/support your server here. Only for servers that are running Mineserver!
Mineserver Support - If you're having trouble getting Mineserver running or you think you can help someone else achieve their dreams of running a copy, post about it here. If you find that you've encountered an actual bug, it would be very much appreciated if you made a post on the issue tracker as well.
Off Topic Discussion - Anything that doesn't fit in the above categories.


Aside from common courtesy, there are only a couple of extra rules to be observed here.

1) Don't distribute any copyrighted materials or piece thereof without explicit documented permission from the copyright holders, either in the form of a license or an equivalent written statement of permission.
2) Try to keep threads on topic. If a discussion turns in an interesting direction, but begins to diverge from the original topic, it's time to start a new thread. Moderators will occasionally split threads if this happens.

Pages: [1]