I personally hate Lua. Building anything big with it often means spending the saved time on writing the code on debugging it (an experience only made harder by Lua's features). There are also no real OOP features -- you can do it using some metatable stuff -- but people often end up all doing their own implementations of inheritance and such (especially in games!) and there is little code re-usability between different projects. Its community is also not very mature compared to other languages (like Ruby) so you don't have as nice of editors, IDEs, and debuggers, nor do you have a lot of bindings nor code to reuse.
I personally hate Lua. Building anything big with it often means spending the saved time on writing the code on debugging it (an experience only made harder by Lua's features). There are also no real OOP features -- you can do it using some metatable stuff blah blah blah
This is why Lua will be only one of many options available to prospective plugin developers. The Lua stuff will be aimed at people who want to do things like add simple chat commands, script NPC actions, etc. For anything remotely complex, it'd probably be best to do it in c++ (as was mentioned in a previous post of mine) so that a) it's quicker and :cool.gif: you have a more powerful language at your disposal.
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
Still setting up the email confirmations and such, so new users won't be able to register until then, but you can poke around and see how it works at least. ALL IS WELL.
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
Amazing. Open source is always the best. Faster developing most of the time and more heads together so if some code is bad or not optimized, it's much easier to get it fixed. Can't wait to see this when closer to finish!
I would like this project if Notch would actually provide detailed server specifications.
But trying to mimic the behavior of the official server software by reverse engineering and guessing seems like a very bad idea to me as long as the official server software is still under heavy development.
The application is java, it's trivial to decompile it and see exactly what's going on and I doubt there's going to be any massive architectural changes in the near future. It's far from "guessing", really.
Quote from MrBrown77 »
And if this C++ server software gets used by many servers, people will start flooding these forums with obsolete bug reports which do not exist in the official server version.
[*:292hany0] We make it very clear that we're not affiliated with minecraft in any sort of official capacity.
[*:292hany0] We have a specific mechanism in place for reporting bugs.
If people ignore both these points, they were probably going to make stupid posts anyway, the only difference being that they'll be making stupid posts about our server instead of say, any one of the other custom servers or mods?
Quote from MrBrown77 »
I like the idea of an open source C++ server software
I like this sentence better like this.
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
Will this be "Fixed" to the way the java server deals with it,
Yeah, I'd like to know what route is the server gonna go, are you going to "fix" water, minecart tracks, lava, etc, so it works as it does in the java server? (boosters!, water ladders!, lava taps triggered by redstone~, etc)
Or are you going to build a completely different server, with things as you'd want them to be...?
(making the multiplayer experience be different than the single player one, and things working in sp wouldn't do so necessarily on multiplayer)
Will this be "Fixed" to the way the java server deals with it,
Yeah, I'd like to know what route is the server gonna go, are you going to "fix" water, minecart tracks, lava, etc, so it works as it does in the java server? (boosters!, water ladders!, lava taps triggered by redstone~, etc)
Or are you going to build a completely different server, with things as you'd want them to be...?
(making the multiplayer experience be different than the single player one, and things working in sp wouldn't do so necessarily on multiplayer)
thx deoxxa or whoever
At this point there are no plans to emulate the quirks of the java server just for compatibility's sake. We'll probably only add a workaround if the absence of the bug makes the client crash or not function properly. In saying this though, there's no reason a plugin couldn't be done up that "fills in the gaps" between the mineserver behaviour and the java server behaviour.
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
Hearing that water doesn't behave 100% like on the original server is one of the things which make me sceptical. It doesn't sound to me as if the Java sources have really been read an understood and then ported to C++.
Can you point out the part where we said we were going to make mineserver behave exactly the same as the java server? The water doesn't behave the same as the official server because in the official server it's wrong.
Quote from MrBrown77 »
It sounds more like an "Ah OK, I know how water works in Minecraft, I get the idea, now I'll just implement these ideas it in C++" approach. Of course this results in quite different behavior if you're used to the quirks of the original system. That's what I meant when I talked about "guessing". The same applies to minecarts, redstone and lava.
Pretty sure I already addressed this point (plz2b reading up a little). This is not a c++ port of the java server, it's a separate implementation of a minecraft server in general. If you like, we can just call it "Minecraft-compatible" and do away with the whole argument. This is why the map generation doesn't and will not behave exactly as the java server does. What exactly would the point be in purposefully repeating the same mistakes, mistakes which will likely be fixed later on, that Notch made in writing the official server?
(Disclaimer: that's not me bashing on Notch, everyone makes mistakes in writing software. I have no doubt that they will be rectified in future.)
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
I'm not sure whether or not the appropriate place to post would be github or here, but I will post here since I know the developers are looking over this topic.
It seems that the build environments you support left me out (MSYS+MinGW), however I have been able to compile libnoise and libevent. To compile all of the cpp files of mineserver, I had to remove anything about CRT (Visual Studio junk :tongue.gif:). But I did get everything to compile and I now have object files for each source file. the problem at the end is that for some reason nothing is getting properly linked.
The last command of the Makefile produces this command:
This has a couple things I had to change. On my system I have libpthreadGC2.a, so I changed that link. Also it would seem you would also need to add -lws2_32, but I get linking errors like crazy.
A clip of the errors from each linked library
mineserver.o:mineserver.cpp:(.text+0x37): undefined reference to `ioctlsocket@12
mineserver.o:mineserver.cpp:(.text+0x582): undefined reference to `event_init'
map.o:map.cpp:(.text+0x5788): undefined reference to `compress'
mapgen.o:mapgen.cpp:(.text+0x49): undefined reference to `noise::module::Perlin::Perlin()
Any clues why this linking has problems. There weren't linking errors when compiling each cpp file originally, so why is there one at the end when it assembles them all into 1 executable.
Thanks for all your hard work!
EDIT: Ah figured it out myself. Turns out all the linking needs to be done after the object files on the command line. Just a note for you guys if any MSYS/MinGW users have issues.
Now I can use all your bleeding edge builds. If anyone else wants to, you can download them here (windows build):
*Server has pretty good uptime, but it is not 100%* http://www.benschro.com/mineserver/
The first 7 digits of the commit number will be in the name for tracking references. Give me feedback on how they work. Also everything *should* be statically linked but let me know if you get dependency errors.
Has anyone gotten the latest release working on CentOS? There is no rpm for libnoise-devel from what I can tell. I tried manually installing the libnoise library from source, but I'm obviously doing something wrong. I get an error about being unable to find noise.h when running make in the mineserver src/ directory. Anyone know where I need to drop the header files for this to compile properly?
Has anyone gotten the latest release working on CentOS? There is no rpm for libnoise-devel from what I can tell. I tried manually installing the libnoise library from source, but I'm obviously doing something wrong. I get an error about being unable to find noise.h when running make in the mineserver src/ directory. Anyone know where I need to drop the header files for this to compile properly?
Well do you know where mineserver is looking for header and lib files? Obviously it doesn't know where to look for libnoise, so you need to add lines to the compile script similar to:
-L/path/to/lib -I/path/to/include
I will try and get a working linux server compiled tonight, steps included.
Installing libnoise:
1. Make!
CXXFLAGS='-O3 -fomit-frame-pointer ...options of choice...' make
Using compiler optimizations for libnoise is *strongly recommended*. Using the
unoptimized library is roughly a fifth as fast as using -O3 on my test
computer.
2. Install!
The 'include' directory should be copied to your software include directory,
usually /usr/local/include, with an appropriate name. I use
cp -R include /usr/local/include/noise
Similarly, the *contents* of the 'lib' directory should go into your library
directory (usually /usr/local/lib). Once you've done that, run 'ldconfig',
then make a symlink from LIBDIR/libnoise.so to LIBDIR/libnoise.so.0. I use:
cp lib/* /usr/local/lib
ldconfig
ln -s /usr/local/lib/libnoise.so.0 /usr/local/lib/libnoise.so
At this point, you should be able to include libnoise in your projects using
#include <noise/noise.h>
and
g++ ...options... -lnoise
At some point we'll automate this process.
[edit]: Got this working by running the following command:
Unfortunately I'm getting errors regarding the shared object file when running the server:
./mineserver: error while loading shared libraries: libnoise.so.0: cannot open shared object file: No such file or directory
Once again, it doesn't see your dynamic library in a standard location. Make sure it is contained in a location that is part of your environment PATH variable. You could also just statically link it, which would make life much easier.
And as for me, I'm having a hard time getting libnoise to link. I've compiled noise, events, and server but can't get them to link. Will let you know what I find out.
I took a peek at the source a few days ago but not much more than that. I thought it would be fun to download it and mess around with making terrain generation but I'm a bit lazy.
It's functional, if primitive. No caves, trees, biomes, fancy overhangs, etc. Just dirt, sand, water and stone at the moment, with some ores thrown in the mix for good measure.
Rollback Post to RevisionRollBack
A high performance, modular Minecraft SMP server written in c++ - download it today!
But that's just my two cents.
Check out my Minecraft server.
This is why Lua will be only one of many options available to prospective plugin developers. The Lua stuff will be aimed at people who want to do things like add simple chat commands, script NPC actions, etc. For anything remotely complex, it'd probably be best to do it in c++ (as was mentioned in a previous post of mine) so that a) it's quicker and :cool.gif: you have a more powerful language at your disposal.
A high performance, modular Minecraft SMP server written in c++ - download it today!
Yet this person made a functional C++ Minecraft server in less than 50 days
From now on, bug reports go here.
Still setting up the email confirmations and such, so new users won't be able to register until then, but you can poke around and see how it works at least.ALL IS WELL.A high performance, modular Minecraft SMP server written in c++ - download it today!
You want /give <playername> 9 64 (for 64 water), instead of 8. 9 is STILL water, AKA, the non-flowing blocks, so it doesn't disappear.
I know, 8 works as a source block in the official server, but it doesn't here! :tongue.gif:
The application is java, it's trivial to decompile it and see exactly what's going on and I doubt there's going to be any massive architectural changes in the near future. It's far from "guessing", really.
[*:292hany0] We make it very clear that we're not affiliated with minecraft in any sort of official capacity.
[*:292hany0] We have a specific mechanism in place for reporting bugs.
If people ignore both these points, they were probably going to make stupid posts anyway, the only difference being that they'll be making stupid posts about our server instead of say, any one of the other custom servers or mods?
I like this sentence better like this.
A high performance, modular Minecraft SMP server written in c++ - download it today!
Yeah, I'd like to know what route is the server gonna go, are you going to "fix" water, minecart tracks, lava, etc, so it works as it does in the java server? (boosters!, water ladders!, lava taps triggered by redstone~, etc)
Or are you going to build a completely different server, with things as you'd want them to be...?
(making the multiplayer experience be different than the single player one, and things working in sp wouldn't do so necessarily on multiplayer)
thx deoxxa or whoever
Hosted by Jmainguy
At this point there are no plans to emulate the quirks of the java server just for compatibility's sake. We'll probably only add a workaround if the absence of the bug makes the client crash or not function properly. In saying this though, there's no reason a plugin couldn't be done up that "fills in the gaps" between the mineserver behaviour and the java server behaviour.
A high performance, modular Minecraft SMP server written in c++ - download it today!
This server software is being developed regardless so I'm not really sure what you mean here.
It will be interesting to see how fast it develops.
I am a representative of JestServers.com
Can you point out the part where we said we were going to make mineserver behave exactly the same as the java server? The water doesn't behave the same as the official server because in the official server it's wrong.
Pretty sure I already addressed this point (plz2b reading up a little). This is not a c++ port of the java server, it's a separate implementation of a minecraft server in general. If you like, we can just call it "Minecraft-compatible" and do away with the whole argument. This is why the map generation doesn't and will not behave exactly as the java server does. What exactly would the point be in purposefully repeating the same mistakes, mistakes which will likely be fixed later on, that Notch made in writing the official server?
(Disclaimer: that's not me bashing on Notch, everyone makes mistakes in writing software. I have no doubt that they will be rectified in future.)
A high performance, modular Minecraft SMP server written in c++ - download it today!
It seems that the build environments you support left me out (MSYS+MinGW), however I have been able to compile libnoise and libevent. To compile all of the cpp files of mineserver, I had to remove anything about CRT (Visual Studio junk :tongue.gif:). But I did get everything to compile and I now have object files for each source file. the problem at the end is that for some reason nothing is getting properly linked.
The last command of the Makefile produces this command:
This has a couple things I had to change. On my system I have libpthreadGC2.a, so I changed that link. Also it would seem you would also need to add -lws2_32, but I get linking errors like crazy.
A clip of the errors from each linked library
Any clues why this linking has problems. There weren't linking errors when compiling each cpp file originally, so why is there one at the end when it assembles them all into 1 executable.
Thanks for all your hard work!
EDIT: Ah figured it out myself. Turns out all the linking needs to be done after the object files on the command line. Just a note for you guys if any MSYS/MinGW users have issues.
Now I can use all your bleeding edge builds. If anyone else wants to, you can download them here (windows build):
*Server has pretty good uptime, but it is not 100%*
http://www.benschro.com/mineserver/
The first 7 digits of the commit number will be in the name for tracking references. Give me feedback on how they work. Also everything *should* be statically linked but let me know if you get dependency errors.
https://github.com/fador/mineserver
Download the latest unofficial build for Windows here:
http://www.benschro.com/mineserver/
Well do you know where mineserver is looking for header and lib files? Obviously it doesn't know where to look for libnoise, so you need to add lines to the compile script similar to:
I will try and get a working linux server compiled tonight, steps included.
https://github.com/fador/mineserver
Download the latest unofficial build for Windows here:
http://www.benschro.com/mineserver/
I installed libnoise as per the INSTALL file:
[edit]: Got this working by running the following command:
Unfortunately I'm getting errors regarding the shared object file when running the server:
Once again, it doesn't see your dynamic library in a standard location. Make sure it is contained in a location that is part of your environment PATH variable. You could also just statically link it, which would make life much easier.
And as for me, I'm having a hard time getting libnoise to link. I've compiled noise, events, and server but can't get them to link. Will let you know what I find out.
https://github.com/fador/mineserver
Download the latest unofficial build for Windows here:
http://www.benschro.com/mineserver/
A high performance, modular Minecraft SMP server written in c++ - download it today!
It's functional, if primitive. No caves, trees, biomes, fancy overhangs, etc. Just dirt, sand, water and stone at the moment, with some ores thrown in the mix for good measure.
A high performance, modular Minecraft SMP server written in c++ - download it today!