29 May, 2012, lilmike wrote in the 1st comment:
Votes: 0
Hi all,
I am on the lookout for a rather fully featured, well written, maintainable, and recent c++ mud code base. It seemed that mud++ may meet these requirements (maybe all but the last) but it doesn't compiling on my server:
Ubuntu 11.10, with:
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
GNU Make 3.81

I run configure then make, and it gives me all sorts of errors, a bit like this:

make all
make[1]: Entering directory `/muds/mudpp/muddpp/mud++0.40/src'
c++ -c -g -O -DSERVER -Wall -fno-implicit-templates -nostdinc++ io.cc
In file included from io.cc:21:0:
io.h: In member function ‘virtual char* StaticInput::getName()’:
io.h:90:43: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.h: In constructor ‘InputString::InputString(String&)’:
io.h:181:23: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.h: At global scope:
io.h:236:12: error: ‘Output& Output::operator<<(char*)’ cannot be overloaded
io.h:235:12: error: with ‘Output& Output::operator<<(char*)’
io.h: In member function ‘Output& Output::operator<<(String&)’:
io.h:239:34: error: ambiguous overload for ‘operator<<’ in ‘*(Output*)this << (& str)->String::chars()’
io.h:239:34: note: candidates are:
io.h:235:12: note: Output& Output::operator<<(char*) <near match>
io.h:235:12: note: no known conversion for argument 1 from ‘const char*’ to ‘char*’
io.h:240:12: note: Output& Output::operator<<(int) <near match>
io.h:240:12: note: no known conversion for argument 1 from ‘const char*’ to ‘int’
io.h:241:12: note: Output& Output::operator<<(long int) <near match>
io.h:241:12: note: no known conversion for argument 1 from ‘const char*’ to ‘long int’
io.h:242:12: note: Output& Output::operator<<(long unsigned int) <near match>
io.h:242:12: note: no known conversion for argument 1 from ‘const char*’ to ‘long unsigned int’
io.h:243:12: note: Output& Output::operator<<(char) <near match>
io.h:243:12: note: no known conversion for argument 1 from ‘const char*’ to ‘char’
io.h:244:12: note: Output& Output::operator<<(short int) <near match>
io.h:244:12: note: no known conversion for argument 1 from ‘const char*’ to ‘short int’
io.h:245:12: note: Output& Output::operator<<(short unsigned int) <near match>
io.h:245:12: note: no known conversion for argument 1 from ‘const char*’ to ‘short unsigned int’
io.h: In member function ‘void DynamicInput::skipWhite()’:
io.h:368:48: warning: operation on ‘((DynamicInput*)this)->DynamicInput::topptr’ may be undefined [-Wsequence-point]
io.cc: In member function ‘int StaticInput::getnum()’:
io.cc:65:48: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc:76:51: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘float StaticInput::getfloat()’:
io.cc:97:50: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc:105:52: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘long unsigned int StaticInput::getlong()’:
io.cc:125:48: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc:133:51: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘char* StaticInput::getword(char*)’:
io.cc:156:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘char* StaticInput::getstring(char*)’:
io.cc:184:49: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘char* StaticInput::getline(char*)’:
io.cc:222:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘char* StaticInput::getsmartline(char*)’:
io.cc:239:47: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘void* StaticInput::read(void*, int)’:
io.cc:279:51: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘void StaticInput::error(char*)’:
io.cc:290:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘Output& Output::operator<<(char*)’:
io.cc:444:66: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
io.cc: In member function ‘Output& Output::operator<<(int)’:
io.cc:453:26: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.cc: In member function ‘Output& Output::operator<<(long int)’:
io.cc:462:26: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.cc: In member function ‘Output& Output::operator<<(long unsigned int)’:
io.cc:471:27: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.cc: In member function ‘Output& Output::operator<<(short int)’:
io.cc:480:32: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.cc: In member function ‘Output& Output::operator<<(short unsigned int)’:
io.cc:489:32: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
io.cc: In member function ‘virtual void OutputFile::largewrite(void*, size_t)’:
io.cc:600:31: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
io.cc:601:22: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
io.cc: In member function ‘virtual void OutputFile::flush()’:
io.cc:583:31: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
make[1]: *** [io.o] Error 1
make[1]: Leaving directory `/muds/mudpp/muddpp/mud++0.40/src'
make: *** [default] Error 2

Any help on resolving the errors (or optionally suggesting another mud code base that meets the requirements above) is welcome.
Thanks,
-Michael.
29 May, 2012, wifidi wrote in the 2nd comment:
Votes: 0
Murk++1.7 is posted in Code Repository/DIKU/Merc. It's a C++ version of Merc 2.2 that integrates a database and loads in the blink of an eye. It compiles in Ubuntu 10.04's g++. Even if you get warnings with newer compilers, I recommend it. The programmer has included object-oriented features like rooms with light that make programming and adding powerful ideas easy. I'm currently attempting to develop a niche idea that stylistically coincides with the name "Murk" and have been successful. Check out "darkness item Murk++1.7" and "MurkLightVdarkness perHolderLvls" posted in the same area.

Remember, you can use the C aspect of C++ to point to information or design what you want into the classes that come with this code like Room or Character. Or if you're smart enough you can add classes. I've learned some C and a little C++ from Murk++ because the programmer has written quite clearly and innovatively from a programming language and game point of view. For example, he uses return statements like:

return Did you download Murk++ ? happy : need to download Murk++;

Best wishes.
29 May, 2012, Tyche wrote in the 3rd comment:
Votes: 0
lilmike said:
Hi all,
I am on the lookout for a rather fully featured, well written, maintainable, and recent c++ mud code base.


Mud++ is rather dated and you might have better luck using an older compiler, g++ 3.x

I have a collection of C++ mud servers here:
ftp://sourcery.dyndns.org/archive/servers/othe...

Awemud is probably one that might meet someone's vague notion of "fully-featured, well-written and maintainable".

I released Murk++ which is MercMud 2.2 minus a few features and a couple new features.
I did a first cut at refactoring the old C code to a more object oriented design.
It does make heavy use of STL. I also moved a some of the data storage to SQLite.
It at least compiles and runs with modern C++ compilers.
30 May, 2012, lilmike wrote in the 4th comment:
Votes: 0
Hey,
I have decided (tentatively) to use murk++. Looks like it will work fine (besides the annoying diku license) :P.
Thanks,
-Michael.
30 May, 2012, lilmike wrote in the 5th comment:
Votes: 0
Hi,
Well, now just to look a little more closely at my options, I decided to take a look at the ftp link provided. Seems like it may be down, at least the connection times out on my machine.
Any help is appreciated.
Thanks,
-Michael.
30 May, 2012, Tyche wrote in the 6th comment:
Votes: 0
I had a scheduled electrical outage, and there will be another one tomorrow or perhaps the next day.
Eventually the contractors will be finished. So get it while it's live. :-)
04 Jun, 2012, lilmike wrote in the 7th comment:
Votes: 0
Hey,
I am quite… I don't even know the word to describe it… probably wildly amazed. I downloaded the entire c++ directory on the ftp server so I could examine them. I found aime, which seemed perfect… except it crashes about once every day for some reason… no error logs or core dumps or anything. Almost every single one of the others has many errors when compiling, most of them having to do with "not declared in this scope." I have literally tried every single mud in that directory and no go… Any help is extremely, greatly, deeply appreciated – I'd rather not write my own mud from scratch – although I do hope to do that some day just as a learning experience… though I think my friends who I plan to work with wouldn't be very happy about a 1 or 2 year wait… :P.
-Michael.
05 Jun, 2012, Tyche wrote in the 8th comment:
Votes: 0
I'm sure there are other C++ muds out there. Try sourceforge, freshmeat, github, or poke around here.
I recall contributing a patch to AweMud to get it to configure and compile correctly on Cygwin.
But that was in 2004 using g++ 3.x
C++ is rather susceptible to bitrot.

It would seem easier to find one that meets your requirements and fix the errors, rather than writing a new server.
I don't see any of these servers having compiler errors that are difficult to fix, assuming one is proficient in C++.
That's as good place to start as any.
0.0/8