From marc@remarque.berkeley.edu Mon Sep 26 13:39:23 1994 Date: 16 May 1994 08:58:39 GMT From: Marc DeGroot To: sci-virtual-worlds@agate.berkeley.edu Newsgroups: sci.virtual-worlds Subject: Meme Hello, everyone. After many months of pedal-to-the-metal programming, I'm truly delighted to announce that Meme is shipping in alpha version. Before I get into this rather long description of Meme, there is a demo available for anonymous FTP from remarque.berkeley.edu. It's in the file /pub/marc/memeview.zip. You will need a 386-or-better running DOS, with a math coprocessor, at least 8 MB of RAM, and a mouse. Read the README file before trying it. Meme is the Multitasking Extensible Messaging Environment. It's a threaded interpretive language and an operating system for developing networked multi-user virtual worlds. Meme is intended to implement a shared virtual universe over a computer network. Meme speaks TCP/IP, so it can be used to implement cyberspace on the Internet, or on a LAN for multi-user arcade games. Each virtual object's behavior is controlled by one or more tasks that are local to the object. An object and its tasks can be compiled and saved in a dynamically loadable module. The modules are designed to be interoperable, that is, they will run identically on any platform running Meme. Modules communicate by sending messages to one another. The message protocol supplies commonly used messages, and is open-ended so applications programmers can define their own specialized message protocols. The most striking visual aspect of worlds developed in Meme is their richness of behavior. Because Meme is a complete programming language, object behavior is only limited by the programmer's imagination. The alpha version of Meme uses RenderWare(tm) for 3-D rendering. I've been developing with RenderWare for over a year now, and I can attest to the fact that it's everything they say it is. Meme (through RenderWare) allows real-time variation of the color, reflectivity, scale, and the positions of individual vertices of an object. And yes, you really get up to 50,000 polys per second on a 486/66 with a local bus VGA card. The language interpreter is extremely efficient. Object behavior typically takes five percent of the CPU's time; the rest is used by the rendering engine. The language is extensible, which means that the system can be shaped according to the needs of the programmer. Extensions can be added for such things as object-oriented programming and physics simulation. Such extensions are not simply libraries; they are "wired into" the structure of the language in a way that adds to its grammar and syntax. This is necessary so programmers have the power they need to explore the representation of virtual objects and behavior. Meme stores objects in a hierarchy, or object tree. The tree can contain visible, camera, light, and compound objects. A compound object is a virtual object that has been compiled into a module. Compound objects can be built from other compound objects. Meme's object representation is general, and will be expanded to include audible and tactile objects. A programmer can design a set of highly active (or interactive) compound objects, which can then be chosen with a point-and-click editor and used to decorate one's home space. This is the next step in world-building tools. Multitasking is necessary to partition behavior by object, and having the command interpreter available while the world is running is invaluable. Objects must be interoperable so they can be shared by computers of disparate types, and they must be dynamically loadable so they can be easily introduced into and removed from a virtual scene. If you'd like more info on Meme, e-mail immersive@kg6kf.ampr.org or contact: Immersive Systems, Inc., 4487 23rd St. # 2, San Francisco, CA 94114. Telephone: +1 415 641 VR4U Meme is a trademark of Immersive Systems, Inc. RenderWare is a tradmark of Canon Inc. -- Marc de Groot (KG6KF) San Francisco | "Software is neither science nor Internet: marc@kg6kf.ampr.org | engineering. It's really an UUCP: ..!uunet!hoptoad!noe!marc | obscure form of poetry." Packet radio: KG6KF @ K3MC |