Use C++. There is NO good reason to use C over C++. We've got like 4 other threads on this topic right now. :p
C++ is of equivalent performance, is far easier to use, and provides far more power. C++ isn't the best language by a long shot, but it's the clear winner between itself and C in just about every regard.
You would want to use whatever language the Mud codebase you are modifying is written in, and most codebases are written in C, not C++.
This is very true. However, with a few minor exception(s), most C mud codebases can be made to compile under C++ and have new code be entirely C++ alongside converting existing code into C++ form; if that's what you decide that you want, anyways, ajrillik. The few minor exception(s) I mention would be any C codebases using features not present within C++, such as the C99 version of C and the GNU extensions. Although, to be fair, I only personally know of one codebase that has that issue. There may be more, but it's not terribly likely. :thinking:
That of course also means that you can easily start out using C and make a later transition to C++, if that's what you decide you want to do. I'm partial to agreeing with elanthis in that you'd be better off just going with C++ from the get-go.
Both are good points. Either way, you can use c with c++, but the logical answer is exactly what Kaervos said. Get to know the language the cb you're using was/is written in. If you're debating whether to use a c++ vs c cb, it would all depend on your personal preference but either way, a c cb can be converted to c++ while still keeping the original code in tact and functional… however, thats a little higher development issue and you stated you were doing a crash course. My personal opinion is to use c++, but use it correctly.
Yes, as elanthis said, C++ has enough extra shortcuts to make your life much easier, especially if you're thinking of starting a new project instead of mucking about with legacy code. If you're doing it to learn C/C++, I would chose C++ just for things like std::string alone.
However, if you're doing this because you want to write a game, you'd be even better served by choosing a language which specializes in text processing, since 95% of everything you do will involve manipulating and scanning text. Of the newer kids, ruby, python, and lua come to mind. I especially like ruby because it has many of the good points of perl with a cleaner syntax and direct support for objects.
I am a self taught mud programmer and having used C for the last 7 odd years, If your stuck between C and C++ take the ++ as it will do things easier for you as others have pointed out. However, if your crash course is to learn programming concepts that are independent of language, and your wishing to make a mud codebase, i would say follow quixadhal's advice to use a higher level language like Lua or Ruby.
I have just recently stopped working with my smaug derived codebase that i have used for the last 7 years, in favor of starting from scratch using Ruby. Their are a number of things that i really like about this language, doing anything with text is a breaze, loading and saving files is a snap also, the amount of code you actually write is small, case point: Samson's Overland Map snippet is about 3000 lines of code, we wrote a similar co-ordinate map system in around 300 lines of code.
You can bang out a complete system a day very easily, (Well i cant yet but Chris Bailey does, Smart Ass :) ). In just over a week, we have gone from bare socket code, to having 40 odd commands, with all major systems in place co-ordinate map system, mob system, obj system, olc editing for most things sec. If we keep up with this level of input we will be feature for feature complete with my old base within 2 months. Something that would be impossible with C.
There's no point learning C instead of C++. Even if you don't want to use classes heavily, it's worth using some of the C++ features.
Saying that you should learn C, not C++, because codebases are written in C, is kind of odd because C++ is a strict superset of C. Knowing C++, you will be able to read C without any problem whatsoever (because it is also C++…) but if you only know C, you have limited yourself.
I agree that if you have the option, and don't have other requirements, learning a higher level language is probably a good idea.