Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Games Entertainment

Metroworks release Cross Platform Game Framework 66

Zasteva writes "MacInTouch reports that GameCode, a cross platform (Windows and MacOS) C++ class framework for game development, has just been released by Metrowerks under their MWPL." Apparently a Linux version is in progress. Documentation is online.
This discussion has been archived. No new comments can be posted.

Metroworks release Cross Platform Game Framework

Comments Filter:
  • How else can game developers get more $$ in their pockets? Make the game appeal to everyone.. not just the windows users....

    I think this a great idea... I would definately shell out some $ for some good linux games.. =)

    ChiefArcher
  • From a brief lookover, the MWPL looks fully open-source. It's actually very GPL like.
  • the only reason that I havent ditched windows to wholeheartedly embrace linux is because of games.

    The sooner more game companies start supporting linux, the better. If this helps to do it, great.

    Hopefully the trail being blazed by id will make more people aware that there is a market out here...

    Lotek---

  • by Fizgig ( 16368 ) on Tuesday March 30, 1999 @01:46PM (#1956020)
    is that people will let their egos take control and won't combine efforts. It will be fine if all the different SDK's get finished, and one ends up being the true Linux game SDK and it takes all the nice features (and code?) from the other ones. But I don't think it's in our best interest to have to have five different sets of general games libraries. Sure, most of us could hanle it, but one has only to look at the mindnumbing confusion that besets Windows users when they have to figure out the difference between OpenGL, Glide, and Direct3D.
  • by MichaelKVance ( 1663 ) on Tuesday March 30, 1999 @01:51PM (#1956022)
    SDL is a GPLed cross platform development library, developed by Sam Lantinga @ Loki.

    http://www.devolution.com/~slouken/SDL/

    It runs on Linux, Windows, Solaris, and BeOS, with Mac support in the works.

    m.
  • Amen. This license explosion has gotten pretty old. As if GPL is the only alternative to writing your own license for software.

    If it's so close to Mozilla (as they put it), why don't the use the Mozilla license?

    MetroWerks is already on the thin line for announcing support for "Red Hat Linux" for their next-gen compilers.
  • It's just a dog license with the word "dog" crossed out and "cat" written in with a crayon.

    Er, sorry, wrong sketch.

    It's pretty much the Mozilla license with "1,$s/Mozilla/Metrowerks/g" performed on it.

    Not quite GPL.
  • Then ya didn't look hard enough. "in the oven", as I recall, is how they described it.

    They're working on it, but its not ready yet.

    About the license:
    I skimmed it, and it provides for something I hadn't seen in other, recent licenses: the ability to combine their code into something else entirely, so long as that "something else"'s license is in agreement with the aforementioned ;) license. Any idea which commonly used licenses qualify? Any of them?

  • Well, obviously this library is not the holy grail. Whoever wants to prgram a game with many fancy features for both Windows and Linux (and MacOS, almost forgot ;) will have to do a lot of architecture specific stuff, or use yet another cross-platform library.

    But those who only need a framebuffer and some primitive drawing functions may give it a try; GameCode runs on top of DirectX and whatever that MaxOS thing is called. Hey, it supports buttons and menus! Simple, but effective.
  • Status of this Memo
    This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

    Copyright Notice
    Copyright (C) The Internet Society (1999). All Rights Reserved.

    Abstract

    The various types and formats of open source licenses have been causing many griefs among coders. The time lost reading licenses, comparing licenses and commenting on licenses has already caused the normal coder average coding time to drop by 20%. This document proposes a simple, easily implemented protocol for constructing an open source license that conforms with the many open source/free software definitions.

    etc etc etc...

  • Posted by shaver@netscape.com:

    The license there is much closer to the NPL than the MPL, in that it grants relicensing rights to Metrowerks. Using the NPL was obviously not an option, because they don't want Netscape to get special rights to their code. =)
  • What's wrong with GLUT (besides sound support)?
  • But I don't think it's in our best interest to have to have five different sets of general games libraries. [...] one has only to look at the mindnumbing confusion that besets Windows users when they have to figure out the difference between OpenGL, Glide, and Direct3D

    Why not? It is all about choice -- for the developers. And I happen to like competition.

    The setup procedure only has to install the toolkit which the game uses. Just like MSWin games install DirectX 2/3/4/5...
    It is no problem to put everything on one CD. That's what distributors like Suse and RedHat are for. The anoraks can still get the different parts from all over the net and compile the source themselves.

  • by atw ( 9209 ) on Tuesday March 30, 1999 @02:28PM (#1956033) Homepage
    I remember the day when I started programming games, back in 1993. The problem always was lack of quality code around. From my own experience I became very skeptical of suitability of any "game kits" making development easier, more portable etc.

    I faced the truth that time: any universal approach, suhch as drivers, cross-platform code etc, is doomed to be too general, and as the result too slow for specific purposes. Why Quake2-3 doesn't use DirectX for anything but direct screen access???

    As a game developer you will try to die, but to make your game DIFFERENT, now, tell me, how different you are doing to make game using same routines? Best of the best always had to create their own engines (DOOM,Quake,Unreal etc),
    what's the use of any other cross-platform staff?

    For me as a game developer only real need is for some very basic, raw operations, such as direct access to screen. Engine itself can be done very portable, so, the only good thing in portable GameSDK is that it provides access to raw things, and that's it! Nothing more is required.

    Hence, while I think the guys who are doing this project deserves a cheer or two, their creation will be useful for "educational purposes only", to learn new stuff, but not to create something commercial. It's very IMHO.

    You can see my games at my site (with source code).

    AtW,
    http://www.investigatio.com [investigatio.com]
  • by Yarn ( 75 )
    Not all games are 3D, it may look like that at the moment tho :)
  • I've used SDL, and just wanted to tack on a note here saying it is really really nice. Sam is very very active in supporting it. I haven't gotten the level of support that I got when I had some brief problems (due to a bug in metrox, not SDL!!) with any other chunk of commercial software. Ever.


    /dev
  • Well, if you take a look, MWPL actually does have one big advantage over GPL: it respects the laws of the country under which a developer may be subject. If you can't comply because of the law with MWPL, you comply as much as you can and state what you can't do. If you can't comply and you're dealing with the GPL you are quite hosed.

    Frankly I think GPLv3 should include something like that.
  • I have been updating my MW compilers today, and
    suddenly, about 12:00 pm PST, MW became
    unreachable. Now I know why. /. again...


    David
  • I ran across one issue in the MWPL; I think it's more of a bug than a deliberate trap.


    6.3. Derivative Works.
    If you create or use a modified version of this License (which you may only do in order to apply it to code which is not
    already Covered Code governed by this License), you must (a) rename Your license so that the phrases "GameCode",
    "GC", MWGC, "Metrowerks" or any confusingly similar phrase do not appear anywhere in your license and (b)
    otherwise make it clear that your version of the license contains terms which differ from the Metrowerks Public License.
    (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall
    not of themselves be deemed to be modifications of this License.)


    The problem with all of this is that you cannot create a derivative license at all! You have to remove all references to Metroworks, but then you have to specifically state that this is different from the Metroworks license. It would take a politician to state that the license is different from the Metroworks license without mentioning them...

    As said before, I'm chalking this up to a thinko. I've just emailed them and told them about the same thing.
  • I don't have the time to critique the library in detail. While it has a couple of interesting utility routines (such as a LoadFile() function that will transparently handle compressed or archive files), the design of the library is rather primitive.

    They use call-backs and sub-classed C++ object functions to implement their convenience functions. For example, every game frame, you have to call a particular function in the GameApp class so that keystrokes and mouse coordinates can be collected. This is extremely primitive. A better way to do this is to spawn a thread whose sole purpose in life is to collect input, process it, and enqueue it for use by the mainline thread. (As an aside, the current mouse coordinates are stored a globals; can you say, "Not thread-safe?")

    So, I'm sorry, but after scanning the API documentation, I'm not very impressed. For people just learning how to write games, it's a marginally reasonable utility package. But it would have little use in a rich, commercial-quality, high-performance gaming environment.

    Schwab

  • Libraries should be transparently installed when a program depending on them is installed, transparently upgraded as necessary, etc, etc. All it should cost is some download time. ( the only problem would be the hardware-specific stuff that might not be available in the distribution )

    Daniel
  • But this isn't an engine (I hope not). only lazy programmers take an engine and make it their own unmodified. "The more the merrier" doesn't really apply so much to high-level device interfaces (which is really what this is). Like DirectX or X or SVGALib. I think those sorts of things should not be too abundant.
  • While bleeding edge games may need their own bleeding edge code, something like this is great for things like "edugames", educational software for kids that incorporates a lot of game and multimedia aspects. (Stuff like the "Jump Start" series, or "Sesame Street", or "Reader Rabbit").

    There's already lots of this s/w for the Windows and Mac markets, but a cross-platform kit like this (when the Linux version becomes available) will, hopefully, encourage the development of such that will also run on Linux.

    Availability of software like this for the kids is another factor (in addition to desktop GUIs and office software) in getting Linux accepted on the home desktop (and in elementary schools).

  • by ewhac ( 5844 )

    Incidentally, I wrote up a longish comment [slashdot.org] on some general ideas I've had concerning improving gaming support under Linux. It might prove an interesting read.

    Schwab

  • Why shouldn't the current mouse coordinates be stored in a global? As long as they're written atomically, who cares?
    -russ
  • As much as a good idea as this sounds, this throughly depresses me as a game programmer. I am a very old style one, I like everything to be done by hand, no high level libraries and such, just strait c and assembly. But high level libraries are begging to takeover the gaming world.. It has gotten to the point of point and click game programming, its just too easy. The problem with this? a LOT of shitty games with absolutley nothing revolutionary about them. I'll admit that I find Quake2 a lot more bland than Quake I when it first came out. The only decently revolutionary game I've seen of lately is Half Life, and it still doesnt seem like a jump. I guess I'm still just reminisant of the days of DOS VGA game programming, where effiency actually mattered.
  • You can always set Z to zero and do 2D graphics.
  • Because it destroys information you may need. By sticking just current position in a global, you lose the history of previous motions. You also don't know when the mouse arrived in that position; it could have been just a moment ago, it could have been last week. If the mouse is motionless, you may not need to recalculate the frame.

    Basically, you want a high-speed event queue. This will let you handle the mouse motion anyway you want (including stuffing it in a global, if that best suits your app).

    Schwab

  • If you use any kind of hardware acceleration in your game, you're going to have a tough time rolling your own. It's easy to write a game in C/asm for straight VGA or a console system, but try it for SVGA games with 3d acceleration. I'm sorry to say it, but you need libraries to write state-of-the-art games on the PC. There's just no other way to support everybody's hardware setup.
  • Perhaps a better word would be dated, not primitive. This is a very functional approach.

    Although threads might work great on some platforms, they certainly don't work the same on all platforms, and sometimes doing things the old way is faster and more portable. Under Linux, I'd be happy with threads, because I know that clone() is faster than fork(), for starters. Other platforms, and I wouldn't be so sure...

    I could also argue that, say, writing lots of stack code is primitive, and we should make a template class for it, but have fun trying to compile it. I know I've had enough problems with g++ and templates that I've ended up just include -ing actual C++ files instead of shoving linking info into headers or whatever.
  • Actually, it's not. It forces the entire code base to be relased if I'm reading it correctly. The MPL allowed parts to be propriatery if they were put in a different file.
  • The Metrowerks Public License (MWPL) is directly fashioned on the Mozilla license. Metrowerks believes that MWPL is 100% in conformity with the goals and objectives of the OpenSource Movement.

    If you feel adjustments need to be made feel free to write directly to me.

    MWRon@metrowerks.com
  • >You wouldn't write a role playing game with a Quake engine.


    heh, actually...i've been thinking about doing
    exactly that. but then, i'm bored.

  • normal coder average coding time to drop by 20%?!


    Um, no.
  • Clanlib [clanlib.org] is an open source, crossplatform game SDK with a very active developer community.
  • Sorry, I forgot the tags... :))
  • According to this story [theregister.co.uk] and a story I saw on linuxtoday (too lazy to look up link..), a "Red Hat" port has completed.. whatever that means.
  • I believe you are refering to developing cutting edge techniques. A "universal" library will provide whatever is not cutting-edge. Do you create your own front-end buttons and list gadgets? Do you write your own file-access functions? Of course not! I'm to young to know first hand, but some "old fogeys" have told me about their experiences in writing these basic techniques into their old DOS games, because DOS didn't provide an efficient enough solution. That was cutting edge.

    Modern games focus on 3D graphics, multi-player communication, more realistic physics, etc. A game library should provide the basic funcitonality to allow game programmers to focus on what they truly need to invent, rather than a "better" wheel. Game libraries could even provide (slow and inefficient) cutting-edge techniques, which could be used as skeleton code while the programmers get other aspects of the program ready (of course that code will _never_ go into the shipping product! ).
  • That was my point before. It's great if that's how it works. It's not great if, after all that, there are 5 "standard" Linux SDK's. If it boils down to 1 or 2 (maybe 3) that'd be fine.
  • There is already an Open Source Game Development
    Kit for Linux, Windows, DOS, OS/2, BeOS,
    Macintosh, Amiga, NextStep, OpenStep, Rhapsody,
    Solaris, SGI/IRIX, and FreeBSD. It is called
    Crystal Space. Although it is more geared towards
    3D game development it is getting more and more
    useful for general game development as well. It
    contains a 3D engine (supporting software,
    OpenGL, Glide, and Direct3D rendering), a
    sound engine (with 3D sound using eax, ds3d,
    a3d, ...), networking, ... Work is underway for
    an AI module and scripting.

    It is Open Source and written in C++ with a
    little optional assembly for optimization.

    Have a look at http://crystal.linuxgames.com

    Greetings,
  • Why shouldn't the current mouse coordinates be stored in a global?

    Multiple USB mice? It won't be long before someone wants to do it. Quake used mouse and keyboard simultaneously -- two mice isn't such a huge leap from that.

  • Actually all the mac compilers are quite good (C, C++, Pascal, Java) but I know that the first windows versions sucked big time...
    You might want to try the last version (4 or soon 5)
    BTW, they have cheap student licenses and you get all versions (Mac, Win, and now Linux)

  • PenguinPlay games SDK (probably the API that compares most closely to DirectX) at http://sunsite.auc.dk/penguinplay/ [sunsite.auc.dk].

    GGI (General Graphics Interface, compares to DirectDraw, Direct3D and DirectInput portions of DirectX) at http://www.ggi-project.org/ [ggi-project.org].

    GSI (General Sound Interface) at http://wouters.www.cistron.nl/gsi/gsi.ht ml [cistron.nl].

    All these projects could use some help from any of you out there with a bit of free time.

  • I got word from Ron Liechty of MetroWerks regarding this issue.


    HI Rob,

    (b) otherwise make it clear that your version of the license contains
    terms which differ from the Metrowerks Public License.

    I would say that this clause is satisfied by an amendment, such as we have
    Additional Terms applicable to the Metrowerks Public License.

    Ron


    Okay, sounds good to me.
  • Codewarrior 3 and 4 have been pretty good to me on win 95. Used it for c, c++, java, but not pascal. Granted, it was only for my undergrad CS projects, but compared to MS Visual Studio (which was what was available in the labs), it was very easy to use.

Reality must take precedence over public relations, for Mother Nature cannot be fooled. -- R.P. Feynman

Working...