Writer needed to update "Introduction to Mac Game Development Tools"

Founder
Posts: 1,138
Joined: 2002.04
Post: #1
I've come across this old article in my backups. I would like to find a writer that can update it to the current tool situation on the Mac. For example, Xcode 2, fact that CodeWarrior is RIP, newest info on RB, TNT is open source, METAL is AWOL, the platform creation tool (forget the name), Blitiz basic release, and so on. Either one write to rewrite it all, or if you are just comfortable with your IDE of choice, submit that section's info. (Do so my replying to this thread.) We should also mention dim3, PyGame, and other possible tools that might be good for newbies.

By searching in this forum, you'ld be bound to get enough info.

Long ago, this article was one of the most popular, so I REALLY hope I can get volunteers to update it. (I'm too busy getting other content ready!)

Quote:Introduction

This article provides an introduction to development tools for the Macintosh that can be used for creating games. The tools discussed have been limited to development tools based on traditional programming languages. iDevGames' staff and community will from time to time update the contents of this article to reflect newly available tools and updates to the tools mentioned in this article.
Not a programmer?

If you have no programming skills, you have three choices:

Game Building Application

The ColdStone Engine, Divinty, and GameMaker are just three examples of possible tools. They allow non-programmers to create games using specialized engines and sometimes even incorporate "wizards" that allow games to be created within minutes. Some of these tools require very little programming and in the case of The ColdStone Engine, include high-quality artwork. The drawback to these tools are that they sometimes impose design restrictions on the games you can create due to their pre-built engines. For example, many tools in this category are aimed at the RPG game genre.

Level Design

The majority of games today come with an editor that allows the user to modify the game. The editor may, for example, allow you to change one or more of the following: textures, sprites, sound effects, music artificial intelligence, physics or game maps. Search the Internet and you should be able to find freeware/shareware editors for many popular games. Although editors allow you to customize many attributes of a game, the core of the game play will remain the same (although there are some exceptions to this). Take heart though, because talented level designers can move on to professional game development positions.

Collaboration

In the past, most games were developed by a single programmer working alone. Many lone-wolf developers still prefer to work this way as it offers them complete control of their game project. However, as games have become more complex they have required better quality game assets. Game assets are the parts of the game that enhance the underlying game engine: graphics, sounds, music, effects, maps, models and textures. Creating game assets can be very time consuming, especially for a 3D game. If you have a game idea, but lack the skills to program the game, consider working in a team. Game programmers are always on the look out for good artists, level designers and sounds designers to bring their code to life. A good place to meet other users is in iDevGames' "Help Wanted/Offered" message board. Before posting that you would like to work with others, prepare a list of what you bring to the table in terms of experience and include information such as previous projects, or links to your artwork, music or writing examples (non-game projects are fine).
Choosing a path

Game Genres

First, you should decide the type of games you would like to create. Although today's development packages are very powerful, some are not suitable for all type of games. For example, if you are determined to make a 3D game, you will need a development package that can create code that meets the high demands of 3D processing. If your goals are more modest, a simple card game say, then your options are more open. That said, if you want to become a professional game developer then you should really learn C/C++. This is the predominant language of choice of professional game programmers because it creates code that executes very quickly and is available on all major gaming platforms. You will also be able to take advantage of the many source code examples on Apple's developer site.

Choosing a language

Remember Myst? Well it is one of the best selling computer games ever. What is more, it was based on good old Hypercard. My point is that we often consider C/C++ as the only choice for developing games. However, amazing games have and can be made with the packages that I have listed. Remember, it is only a tool ? the true quality of your game will come from: solid game design; story; creativity; testing and game assets (sounds and graphics).
The line-up

At the time of writing, iDevGames recommends the following Macintosh development packages (Editor's Note: Listed in alphabetical order) based on community feedback and acceptance:

* Chipmunk Basic
* CodeWarrior LE
* CodeWarrior Pro
* Director
* dim3
* FutureBASIC
* M2GE -ScriptExe
* METAL
* MPW (Macintosh Programmer's Workshop)
* Project Builder
* REALbasic
* Revolution
* TNT Basic

dim3

dimension3 (dim3) is a "engine without content". It is a 3D game engine aimed at people that create mods for other off-the-shelf products (like Quake or UT.) dim3 is designed to allow you to alter all pieces of the engine to create a game that does not look like the original engine/game and control all those parts with scripts. dim3 comes with it's own map and model editors, and uses industry-standard javascript for it's scripting language. The difference between dim3 and modding other engines is that dim3 allows you to create completely different products without having to code directly to the engine. dim3 runs in MacOS X only, but it's data files are XML based to create easy to deploy single data files for all possible platforms.

Pros: Easy to use and understand for people that have mod-ed other engines, powerful modern 3D engine
Cons: Need to learn JavaScript & object model to take full advantage of power, MacOS X only

CodeWarrior

On the Macintosh platform, CodeWarrior is the de-facto standard for application and game development. Metrowerks publishes CodeWarrior in several versions to accommodate the requirements and budgets of its customers, including Learning Edition, Academic, and Professional editions. Since it is the most popular development package for the Macintosh, you can expect to have an easier time getting help from the rest of the Macintosh programming community and have fewer complications when compiling example source code. If you are new to programming, you should consider enrolling in Metrowerk's online "university", CodeWarriorU. The CodeWarrior CD also includes several books on programming in electronic form. In addition, the book "Macintosh Programming for Dummies" includes a limited version of CodeWarrior. Metrowerk's tool is amazingly powerful and any application or game you can imagine can be created with CodeWarrior - provided that you have the skills to program it. It supports many programming languages: C/C++, 68k/PPC assembly, Pascal, Java, and many other plug-ins that third party developers have written. CodeWarrior can even compile code for other platforms such as Windows (more expensive editions only) and also comes in more specialized editions that are targeted at diverse platforms such as Palm organizers and game consoles.
Supports AltiVec and cross platform environments; Carbonized IDE
Advanced editions are very expensive
http://www.metrowerks.com/
http://www.codewarrioru.com/CodeWarriorU

Fantasm

Fantasm is a Macintosh 68k and PowerPC (with Altivec support) Assembly language development package. An amazing tool, it can create highly optimized, fast applications/games. Assembly language is a low-level language (it is one step above machine code) which is often used to write time-critical code such as drivers or 3D engines. Although some would disagree, I suggest that "new" game programmers start with one of the other packages that I have listed. Why mention it then? Well, in some games, some sections of code may need to execute very fast (parts of a 3D engine or A.I. for example). You could use Fantasm to produce this efficient code which you could then incorporate into your C/C++ program. Be aware that, unlike C/C++, Assembly language is generally chip-family-specific, so porting it to another platform could be difficult.
Creates very fast code; good company support
Learning Assembly is hard; less portable code
http://www.lightsoft.co.uk/
http://developer.apple.com/dev/techsuppo...lance.html

MPW

If your budget is limited, or you are looking for something that is free, then Apple's MPW is possibly for you. Some programmers feel that it is almost as good as CodeWarrior. It supports C/C++, 68k/PPC Assembly, Pascal and many other compilers that other people have written for it. Some parts of MPW are a bit outdated and you will have to be careful when tweaking source code written in CodeWarrior in order to get it to compile correctly. MPW can be downloaded from Apple's developer site. I recommend that you also join the mailing list that is devoted to MPW programmers.
Free; flexible; supports many languages
Possible problems compiling example source code intended for CodeWarrior
http://developer.apple.com/tools/mpw-tools/
http://www.mactech.com/articles/mactech/...index.html

REALbasic

REALbasic brings a combination of object-oriented programming, visual-interface-development and cross-platform compiling capabilities to the Macintosh. Recently, people in the Macintosh community have been raving about this package ? with good reason. Once called "Cross-Basic", this product has matured and become a serious player in the Macintosh development industry. What makes REALbasic so special? First of all, it is BASIC, a relatively easy programming language to learn because its syntax is very "English-like" (i.e. a high-level language). Unlike older implementations of BASIC, REALbasic allows for more modern-day style programming. Every game needs an interface (i.e. menus, windows, buttons, etc) and REALbasic can quickly create them without requiring long sections of code. This translates into faster development time. Support for REALbasic is very good and there are many web sites devoted to it. In addition, plug-ins from third party groups allows REALbasic to be extended. For example, it is possible to easily add 3D or MIDI capabilities to your game. Windows users have been using Microsoft's Visual Basic for years to make games. REALbasic is similar to this product and you'll find help in the documentation for converting projects from Visual Basic to REALbasic. Finally, the REALbasic Pro version can compile your game for the Windows platform (at the time of writing, there were still some issues that needed to be addressed).
Carbonized; cross-platform capabilities; good support
Creates large files
http://www.realbasic.com/
http://www.realgurus.com/

FutureBASIC

With the latest version, the publisher has created a product that is powerful and very capable. If you have never tried this package, then I urge you to try the demonstration version. FutureBASIC should be checked out by programmers who want the speed of CodeWarrior with the simplicity of BASIC. If you feel comfortable with a more traditional BASIC and have a large project in mind, this package is what you want. The biggest feature regarding game development is that FutureBASIC generates very compact applications that execute quickly. Although industry support is not as widespread as REALbasic, users on FutureBASIC's mailing lists are very helpful and informative.
Creates fast and compact code; can be used for large projects
Higher price point than REALbasic; RAD is inferior to REALbasic
http://www.stazsoftware.com/
http://www.futurebasic.org/

Visual MacStandardBasic

This product recently changed publishers. Hopefully the new publisher will continue support and will add newer features. If you like REALbasic but wish to pay less then Visual MacStandardBasic may be what you are looking for. Some programmers have already turned out some nifty games using this product. The sprite control for animation is simple and powerful. QuickTime movies and sound are also easy to add to your game project. Overall, it is stable and creates small applications and is particularly suitable for making a shareware game.
Low price; creates applications with small file sizes
Current question mark over future support; not as polished as REALbasic; less community support
http://www.squirrelsw.com/
http://members.aol.com/MacBasic/msb/

Omikron Basic

This package can trace its roots back to the 1980's when it was used on Atari computers (and more recently by engineers and scientists). Based on standard BASIC, it is capable of producing very fast code. Unfortunately, perhaps due to its history, the IDE/interface is not very Mac-like. However, unlimited access to the Macintosh toolbox is possible. Using a library called "EasyGem," programmers should be able to easily generate menus, dialog boxes and windows.
Creates fast code; frequently updated
Weak Macintosh interface; small game community support
http://www.berkhan.com/
http://www.berkhan.com/manual_e.htm

Chipmunk Basic

Dating back to the 1980's, Chipmunk Basic is an old fashioned BASIC interpreter, which runs on almost all Macintoshes and is accelerated for PowerMacs. The original Chipmunk Basic was written in Pascal, converted to C and eventually ported to the Macintosh. Chipmunk Basic does not compile code (unlike the other BASIC packages reviewed here) but interprets the code at run time which is markedly slower than compiled code. Chipmunk Basic supports a simple sprite graphics engine (15 sprites maximum, and requires ResEdit), sound, speech, MacTCP, AppleScript, drag-and-drop and object-orientated programming. If you want to get back into programming and do it cheaply, then this is a great alternative to the commercial BASIC products mentioned above.
Free; runs well on 68k machines
Does not compile code; no support
http://www.nicholson.com/rhn/basic/
http://www.rahul.net/rhn/basic/readme.cbas.html

METAL

METAL is a free, extended BASIC language metacompiler for the PowerMac. A metacompiler compiles your code into a specific bytecode that gets executed by a low-level run-time module. It is one of the fastest BASICs around and supports a rich command library that features: tight QuickTime integration; fast sprite system; sound; graphics; speech; mathematics and file input/output routines. The publisher also offers a FAQ, on-line help, and extensive documentation with numerous examples. The game "Astro Blaster" is a good example of what can be done with METAL.
Free; very fast code; future cross-platform support
Still has some bugs; cannot run applications from a CD (requires a read/writable volume)
http://www.iit.edu/~sarimar/GDS/
http://www.glacial.com/METAL/
Summary

Experienced programmers can often push, squeeze and threaten their favorite development tool to make any game they desire. As you can see, CodeWarrior is flexible enough to tackle any type of project due to their support of C/C++ (which provides, amongst other things, game engine portability and optimized code). Currently, real-time 3D-environment games such as Unreal or Quake are all the rage. If you are serious about making such a game then I would recommend you learn C/C++ and get CodeWarrior.

Fantasm could be used to build any type of game but it will require a longer development cycle. With modern CPUs, BASIC-based products can realistically handle most game types. At the time of writing, I feel that FutureBASIC can handle more demanding games then the other BASICs listed. REALbasic however is also a fine choice and excellent for creating game editors and tools. If you haven't programmed since your school days or have a limited budget, I suggest you try Visual MacStandardBasic or METAL.

Most of the packages have demonstration versions which you can download from the developer's web site. I highly recommend you download the demo of the packages that interest you and see if it suits your needs. Finally, due to some major differences between the classic Macintosh OS (9 and below) and Mac OS X, I suggest you research how the tool you choose will allow for migration to this new OS.

Again, if you write something, just post it here. We will proof and edit so don't mind your writing.

Cheers.
Quote this message in a reply
Moderator
Posts: 508
Joined: 2002.09
Post: #2
There's a very brief summary on the most frequently used apps on this thread: http://www.idevgames.com/forum/showthread.php?t=11896

"When you dream, there are no rules..."
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  game development using directx/cryengine codetoeternity 2 1,598 Oct 10, 2013 06:34 AM
Last Post: codetoeternity
  News: Game development MMO in the works diablosandwicheater 0 2,560 Mar 13, 2012 10:33 AM
Last Post: diablosandwicheater
  Help needed for Converting a game for Iphone ruletherail 1 2,177 Sep 15, 2010 10:06 AM
Last Post: skyhawk
  Game Development Environments SethWillits 14 9,052 Feb 20, 2009 04:27 PM
Last Post: Toontingy
  Options for Web Game Development in OS X Nick 4 3,894 Sep 20, 2008 01:13 PM
Last Post: Nick