<!-- 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.

Messages - deoxxa

Pages: [1] 2
News / Re: Mineserver 2.0 - New look, same great taste!
« on: November 16, 2011, 12:41:45 pm »
Any news on when it will be good enough to make an official release?  :)

No hard dates right now, but I'm going on holidays from work in a couple of weeks and I plan to spend a good chunk of time on the project. It'll be faster if/when more people join in :).

Any chance you're going to implement plugin support so people like me could start from simpler things?

Definitely! As soon as I have a somewhat solid base working, that'll be the next step.

I'm planning on using ZeroMQ to implement a plugin interface so you can write code in any language with a ZeroMQ binding. That way anyone can join in the fun, and if something is deemed important enough, an organic process consisting of "people with C/C++ skills think this needs to be implemented in C/C++" will see it ported in a timeframe directly relative to how many people like it.

I actually plan to use it to prototype things in Javascript via Node.JS and node-zmq, then port them to C++ as required.

There's a few things left to get the core operational right now:

  • Map generation
  • Chunk sending
  • Lighting
  • Entity management
  • Block manipulation
  • Physics
  • Chunk storage roughly that order.

I wrote a rudimentary "flatlands" map generator today, and am currently porting the 1.0 NBT code to work with 2.0's library setup. Hopefully this will achieve completion of the first two points, though I'm not sure when I'll get a chance to finish the NBT stuff off (it's getting late here in Melbourne!).

Lighting is a solved problem - we have working code in 1.0 that can be ported pretty easily.

So yeah, progress is coming along, albeit slowly right now.

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

Support / Re: Bug tracker: 502 bad gateway
« on: June 12, 2011, 03:38:02 am »
Most of us core developers have become encumbered by things like jobs, university studies and children. louisdx has been doing some great work (especially considering he's been working in a relative vacuum), fixing bugs and adding features. I personally am going to try to put a bit more time into the project over the coming months, I really want to mess about with the map generation a bit, making it more flexible.

Development / Re: TNT!
« on: June 12, 2011, 02:10:48 am »
Excellent! I've put it in a separate branch for now, since the warnings are still there, but it should be somewhat operational right now.

Development / Re: TNT!
« on: June 11, 2011, 04:53:02 pm »
Oh hey, this is cool! I'll take a closer look at those warnings and see if I can't get them cleared up. If I can get it working, I assume it's cool if I merge it into the mainline codebase (with attribution, of course)?

Ah, yes, hook.h. That is (or was) entirely machine-generated code (see tiny-cplusplus-callbacks), designed simply as a stopgap measure that just seemed to keep working far past its intended lifecycle. If you have an idea that will take mineserver a step in the right direction and are willing to put in a little time on it, I don't think any of the core devs will have any reservations on the matter.

TL;DR: s/hook.h/horrible.h/

Support / Re: Bug tracker: 502 bad gateway
« on: June 11, 2011, 03:32:43 pm »
Sorry, this would have been my fault. Apparently someone who works at the datacenter where my server is hosted has a habit of tripping over power leads.

Support / Re: Wrong protocol version?
« on: June 11, 2011, 03:31:40 pm »
I just pulled all of louisdx's changes into Fador's repository and tested with the latest MC client, all seems well now!

Support / Re: Curse UI and plugins
« on: January 30, 2011, 04:38:35 am »
curseui != cursesui

Development / Re: /cuboid
« on: December 25, 2010, 01:54:47 pm »
Mineserver is written in C++, not C#.

Development / Re: /cuboid
« on: December 24, 2010, 03:27:16 am »

Plugins / Re: A few questions about plugins
« on: December 21, 2010, 05:56:18 pm »
Yep it's still very early days for plugins. Over the last 48 hours or so I got plugins technically working, but I'm not a fan of some of the implementation specifics right now. Check out `src/plugins/banlist/banlist.{cpp,h}` for how a plugin currently looks (note: that plugin doesn't currently do much aside from loading itself).

The implementation problems that we're currently met with are familiar to anyone who's worked with dynamically linked C++ code before: name mangling. Right now plugins need to be compiled with the same compiler and preferably toolchain as the main Mineserver executable. The only way to get around this will be to completely re-engineer the way functionality from the core of Mineserver is exposed to plugins by using a far more C-ish interface, passing a struct of function pointers and maybe some kind of context cookie into the init/shutdown functions instead of a Mineserver (the class, not the application) instance.

If you're interested in keeping up with development and such, especially with the volatility of the plugin interface, joining IRC wouldn't be a horrible idea. We're situated on in #mineserver if you want to drop in for a chat.

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.

Discussion / Re: Piping Configuration Options?
« on: December 13, 2010, 04:07:33 pm »
That's definitely possible, but the new config system (which I'm in the process of dropping in right now) might make it unnecessary. Check back in a few hours!

Development / Re: Server Crashing Issues
« on: December 08, 2010, 11:57:08 am »
That definitely sounds like junk data that the server is trying to parse. I'll open a ticket on the bug tracker for an enhancement to be a bit less trusting of initial data sent upon connect but before handshake.

Pages: [1] 2