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

Pages: [1]
Development / Unified plugin entrypoint name
« on: March 14, 2011, 01:17:11 pm »
I was wondering, why do plugins export their entrypoint based on the plugins name? Why can't we have a single well-defined name for a plugin entrypoint, such as mineserver_plugin_init() and mineserver_plugin_shutdown() instead of <pluginname>_init and <pluginname>_shutdown() ?

The only theoretical reason why current state is better that I can think of is multiple "modules" in a single executable. However, this makes very little sense and is a very little benefit compared to the amount of work required to make the current state work.

Discussion / Interesting mods
« on: March 01, 2011, 06:10:48 pm »
I just came across this mod, and I think it is really creative and cool. I believe this could be made into a very nice MS plugin:

MineCraft Portal:

Just an idea

Development / World storage
« on: February 22, 2011, 08:52:20 pm »
Seems like Minecraft beat me to it (again ;)

I've been pondering for a few days now, that minecraft levels are really terribly stored (thousands of tiny files are really cumbersome, at least on Win).

So I thought MineServer could implement different world storage engines, from the current Beta-1.2-compatible to a monolithic-file or possibly even others. I'd especially very much like the monolithic file, that would be really great for transporting a world between computers or for backup.

Development / Cross-compiling for Popcorn Hour
« on: February 20, 2011, 12:57:02 am »
I tried cross-compiling mineserver for use in my popcorn hour (just as a test); however, I failed miserably. I guess the linux still doesn't like me. So I'm asking, are there any linux gurus who would point me in the right direction as to how crosscompiling works?

I got the toolchain needed, I managed to make it successfully, so I seem to have gcc, binutils et al available.
Then I tried compiling libevent, that seemed to work, although I'm not sure if it compiled using system gcc or the cross-gcc (how do I tell?)
Libnoise is problematic, it has no configure script, just a makefile, and I have no idea how to crosscompile that.
That means I didn't have a chance to actually try crosscompiling  mineserver at all :(

I'd appreciate any help on the issue.

SMP toolchain: (scroll down to SMP863x platform at the bottom)
Building the toolchain, crosscompiling libs: (I used Debian in a virtualbox, the only difference was using apt-get instead of yum)

Development / Different compilation results? (Win)
« on: February 10, 2011, 10:30:11 pm »
I was wondering, why am I getting such a different result between when compiling from sources and the official binary release for Windows.

I compile the sources at GitHub/Fador using MSVC2008 (had to re-create the MSVC2008 project, the one present in the sourceball is defunct); my executable is 50% smaller than the official and it DOES write things into the console while running, UNLIKE the official one (which only says "world world" and nothing else.

Are the official binaries from those sources at all, or does other stuff get thrown in?

Also both my compiled version and the official binary hit access violations rather often, I keep reporting them to the bug tracker, I was wondering if I am the only one seeing those? 'Cause noone else seems to care at all, and those are some serious issues that would HAVE to surface in other OS variants as well...

Just rambling...

Development / Moron help ;)
« on: February 06, 2011, 07:11:16 pm »
Hi there, fellow Java-haters ;)
I'd like to offer my help with the project. I'm a C+ programmer (C+ = C with just enough C++ to not compile in C ;) specializing in Windows development, raw WinAPI etc.

However, I'm too much of a moron to actually learn to use Git (there's no simple "how to use" book, no simple GUI windows app...) and I severely dislike other-than-mine code style.

If you still think you could use my help, count me in :)

For starters, I was thinking of something along the lines of a windows GUI for the server, showing some stats in a window, like the original server does. This could be implemented as a plugin, so not much of me intervening in the intestines of MineServer codebase. I could then send the sources to someone in charge, if appropriate.

At least that could lead to the plugin API being ironed out a bit.

Development / Plugin API vulnerabilities
« on: February 06, 2011, 06:46:22 pm »
After a quick browse through the plugin API, I think I see a big potential for segfaults in plugins.

The Map functions:
Code: [Select]
  unsigned char* (*getMapData_block)(int x, int z);
  unsigned char* (*getMapData_meta) (int x, int z);
  unsigned char* (*getMapData_skylight)  (int x, int z);
  unsigned char* (*getMapData_blocklight)(int x, int z);
seem to return pointers into the living data structures. Now suppose the plugin stores such a pointer and accesses it at a later time. But MineServer may have already released those chunks! BANG :)

  1, Leave it as-is, no plugin ever will be so stupid (the ostrich approach)
  2, Remove the routines altogether, replace with a single-block getter / setter function (will make some "terraforming" plugins painfully slow)
  3, Upon call of these routines, increment a "lock" on the chunk; provide a lock-decrement function for the plugins to call when the chunks is no longer needed; don't release the chunk until it has a nonzero lock count (can cause memory starvation if plugins hold too many locks)
  4, ???

Pages: [1]