[MUD-Dev] New Beginings II [Not GC]

Sean Kelly sean at hoth.ffwd.cx
Tue Jun 11 11:27:04 New Zealand Standard Time 2002

On Sun, 9 Jun 2002, Drylar Levre wrote:

> C++ has power and versatility, and has been cross-platformed
> decently. The drawbacks include the fact each native system has
> design differences. (I've ported my old linux/gcc to win32/vc++
> and saw quite a bit not work the same). Also, in C/C++ it is
> difficult (but not impossible) to optimize for less memory loss.

I would say that cross-platform code requires the deisnger to build
a framework that abstracts the core code from platform differences.
Neverwinter Nights is a great example of this, it runs on Win32,
MacOS, BeOS, and Linux.  As for memory loss -- as with all things,
C/C++ requires more of an active effort to design a system that
suits your needs.  However there are a number of freely available GC
libraries for C++ that abstract most of the issues.

> Java on the otherhand, compiles and runs on the JVM, which has
> been ported to many systems. What I have learned via asking a few
> friends who work with it, there are some, but very few differences
> in code between different OS's.  (Apparently Macs don't like java
> all that much). As per memory optimization, it is easier to work
> with than C/C++.

Agreed.  Java hides most of the details of resource management, etc.
And its cross-platform support has dramatically improved since 1.0.
> Other than that, I didn't hear many other languages even
> mentioned. As per library resources, I was directed to a site
> which handles 2D. Warcraft was a bad example on my part. AOE2, and
> I'll say Command and Conquer are better examples in that both
> handle 3D, with terrain heights, shadows, objects blocked from
> view by other objects, etc.

Python would be a likely alternative.  And Objective C perhaps.

> What I'm wanting my 'finished' product to look like:

  - isometric/3d graphics
  - menu system
  - music
  - serializable model format
  - network transfer of said models, textures, etc.

> I could keep going, as I have in mind what I want the finished
> product to look like, hopefully now you all have enough
> information to point me towards the right direction on what
> language and resources to use, etc. As per garbage collection, as
> long as it's present.


> As per my thoughts, I'm leaning more towards sticking with C/C++,
> in that it's what I know. I'll just have to learn differences in
> each platform's flavor of C/C++. As per librarys, programs,
> resources, anything to incorporate in that would make my overall
> product easier to accomplish, I'd love input.

Purely for the graphics and media aspects, I'd recommend C/C++.
Java is fairly slow when it comes to graphics, and I'm not sure
about Python's 3d/media support, especially multiplatform... Obj C
either.  That said, C/C++ has a ton of multiplatform graphics/media
solutions.  OpenGL runs on just about every platform out there, if
you want to do true 3d.  A tile-based/isometric solution would be
simpler to implement... you could even do that in pure OpenGL
also... I don't have any pure 2d libraries to recommend offhand.
And compared to graphics, the music should be a breeze, even if you
have to write platform-dependent code to do it.

My advice, start small and make it a design that you can extend as
you go.  Doing the project that you're suggesting all by yourself is
a ton of work -- you're more likely to stay focused if you have
something to play with as you go.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list