Mineserver Community

Mineserver => Discussion => Topic started by: SweetCraft Girl on March 17, 2011, 09:29:35 pm

Title: What does Mineserver need to get off the ground quickly?
Post by: SweetCraft Girl on March 17, 2011, 09:29:35 pm
What is required to speed the project along its current production schedule?

Financial Funding?  If so, how much, why, and what sort of difference would it make it the production schedule?

Is it about specific coders and time issues?

How best can community people, like myself, support the Mineserver project in a way that moves the project goal forward successfully?

Inquiring minds, like mine :D  want to know what can be done to help out. 
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Dwood on March 18, 2011, 01:11:01 am
You can help me calculate some integrals.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: SweetCraft Girl on March 18, 2011, 01:12:29 am
You can help me calculate some integrals.

If only i even knew what that was without using google...  :o
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Dwood on March 18, 2011, 05:13:56 am
In all honesty, it needs about 2 weeks if I can stay steady. I'm trying to add the reeds check for water, and get a basic redstone mod working.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Jailout2000 on March 18, 2011, 08:41:33 am
get a basic redstone mod working.
w00t
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: xoft on March 18, 2011, 09:53:39 am
[flame]
I think that Mineserver needs, most of all, some experienced C++ coders to look at it, frown and redesign it from the ground up ;)

Other than that, it mainly needs to get the devs off of irc and start actually developing, taking care of the bugtracker (which one of the many?)
[/flame]
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Jailout2000 on March 18, 2011, 11:09:53 am
Dude, adding on to that xoft, I notified that someone f***ed up mineserver's source code. Now when I try to build it on Windows using VS2010, it errors saying can't find function "abs" or something like that. I can get the exact error and file output if needed, but I'm sleepy and too lazy right now.

Indeed, it needs major fixing.

Edit: Actually, here's the error I'm getting, which apparently I'm not the only one: http://mineserver.be/forums/index.php?topic=236.msg679#msg679 (http://mineserver.be/forums/index.php?topic=236.msg679#msg679)
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: ThuGie on March 18, 2011, 11:42:42 am
Jailout you can just remove that function.
As its not even used..
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on March 31, 2011, 11:37:41 pm
I just noticed this project after someone mentioned the idea of server clones on the official forums. Good plan! I'm pretty decent with C++ and I can solve integrals, even those elliptic ones; is there a suggested path for helping with the development?
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: xoft on April 01, 2011, 09:02:24 am
Hi there,
in my opinion, Mineserver currently has quite a lot of developers, but no project leader. This results in "every feature is worked on by *someone*, but no-one really knows who, when, how...; every feature is in its own git repository and altogether the place is a mess"
As far as I know, there's no suggested path, other than looking at the wiki which has a <sarcasm> really great page on roadmap </sarcasm>.
The question is, are you good enough to even make Mineserver compile? ;)

Alright, don't read this post, I'm in a terrible mood today and I'm really bitter :P
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 01, 2011, 12:39:05 pm
The question is, are you good enough to even make Mineserver compile? ;)

I just downloaded the latest git snapshot and it compiled out of the box (Linux, cmake), no problem. It doesn't work with the 1.4 client, though, so I didn't get very far. If you could point me to the networking code and the protocol description, I'd be very grateful.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 01, 2011, 01:17:20 pm
The most comprehensive documentation of the protocol that I know of is located here:
http://mc.kev009.com/Protocol

If i am not mistaken, Mineserver was developed with that description in mind.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Odium on April 01, 2011, 01:36:22 pm
Quote
The question is, are you good enough to even make Mineserver compile?
I had a little trouble getting the git source to compile correctly, however after a bit of fiddling with include/library paths it worked fine, Though i would've appreciated some info on the process that wasn't so dated.

Quote
It doesn't work with the 1.4 client, though, so I didn't get very far.
As for the new minecraft client release (1.4) I had the same problem and can confirm that mineserver doesn't support the new protocol yet.
Considering (afaik) the 1.4 update was only released today I see that as a perfectly reasonable state of affairs.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 01, 2011, 02:13:40 pm
The most comprehensive documentation of the protocol that I know of is located here:
http://mc.kev009.com/Protocol

If i am not mistaken, Mineserver was developed with that description in mind.

Thank you very much, that's a fine website! I didn't know it existed, it seems to make a good hub for all Minecraft-related third-party development!


So, who is the main developer of the mineserver project? It's a shame that this is getting disjointed, perhaps one of the original founders could create a reference branch for future development?
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 01, 2011, 02:16:45 pm
As for compatibility with 1.4 it should be enough to change the Protocol version from 9 to 10. No new client side packets have been added as far as i can tell.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 01, 2011, 02:47:38 pm
As for compatibility with 1.4 it should be enough to change the Protocol version from 9 to 10. No new client side packets have been added as far as i can tell.

My thoughts exactly, which is why I wanted to find out how the protocol works and where the networking code is. I hope to get this working soon!
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 01, 2011, 03:31:36 pm
I've only had a few looks at the source code and to me it looked like there was
no central place at which protocol handling takes place. At least not for server->client
packets.
It might be a good idea to somehow write classes or functions to generically
send data to clients. That might ease optimizations and makes finding/fixing bugs easier.

Oh, btw:
In constants.h:156
Code: [Select]
const int PROTOCOL_VERSION = 9;
Changing that to 10 should allow 1.4 clients to connect.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 02, 2011, 07:47:18 pm
Cheers, I discovered that too and it's all working now. I've started a fork (https://github.com/louisdx/mineserver) in which I'm working on some mild but satisfying stylistic improvements while getting to know the code -- most importantly, I've set the gcc compiler flags to "-W -Wall -Wno-unused -pedantic" and compile without warnings now.

Would anyone like to test if my fork builds on MSVS and MacOSX? :-)

There are some general issues I would like to suggest which don't require deep understanding of the code; what's the best way of discussing those? (E.g. using "++i" rather than "i++", and the state of the current coding style and enforcing it.)

A tempting question is whether we could switch to C++0x to use variadic templates, which would clean up "hook.h"  a lot :-) But that's not at all urgent.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 02, 2011, 08:27:35 pm
A little offtopic:
Is there a difference between ++i and i++ except for when the incrementation is done?
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 02, 2011, 08:42:25 pm
A little offtopic:
Is there a difference between ++i and i++ except for when the incrementation is done?
Yes! Think about the return value -- "i++" is an rvalue, and theoretically there needs to be a copy, involving a constructor and all that. Perhaps if you're lucky the compiler will realise that the return value isn't needed in something like a for loop, but you might as well write it explicitly and demonstrate that your code is fully intentional. (The same applies to iterators.)
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 03, 2011, 12:10:39 pm
If i am not mistaken ++i is an rvalue as well.
I have never written code in C++ but in most languages i know you can write something like
Code: [Select]
int i = 0;
int j = ++i;

It's just about whether i is incremented before setting j or afterwards, isn't it?
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: louisdx on April 03, 2011, 11:33:33 pm
If i am not mistaken ++i is an rvalue as well.

Every lvalue can also be used as an rvalue.

Quote
It's just about whether i is incremented before setting j or afterwards, isn't it?

The post-increment has to - at least in principle - keep a copy of the original value, then update the variable, and then return the original copy. If copying is expensive, this had better be avoided, but it's just good practice to use the best expression that represents what you mean, rather than just any old expression that happens to work. Sure, in the for-loop case the compiler probably knows how to optimise this away (compare the assembly if you're not sure), but why not just use the right thing from the start...
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: Ligustah on April 04, 2011, 02:56:29 am
I see, thanks for your explanation.
[/offtopic] :P
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: MechWarrior001 on April 06, 2011, 03:22:26 am
If only i even knew what that was without using google...  :o

You and me both.

But concerning testing, I'm in the process of setting up a Fedora 14 file server on a HP Proliant ML370 G3 w/ Dual Xeon 2.8Ghz CPUs, so if you need some testing I'd be willing to help.
Title: Re: What does Mineserver need to get off the ground quickly?
Post by: ojjy on April 20, 2011, 07:25:58 pm
You can help me calculate some integrals.

Which integrals? And do you mean numerically or are you looking for an analytical solution?