Mac Author Mark Szymczyk


Can you tell us about the publisher?

Prima Publishing1 will be publishing the book. It will be part of their upcoming game programming series, which you can see at their web site. My book, ‘Mac Game Programming’, has not been listed yet since it is still in its early stages of writing.

If possible, could you list the table of contents so our readers can have a glimpse at the areas that you will cover?

Here is my tentative table of contents:

  • Introduction
  • Using CodeWarrior
  • C++ for C Programmers
  • Introduction to Graphics
  • Scrolling Backgrounds
  • Animation
  • InputSprocket
  • HID Manager
  • Reading the Keyboard and Mouse
  • Sound
  • Physics
  • Low Level AI
  • Pathfinding
  • High Level AI
  • Networking
  • DrawSprocket
  • Files and Resources
  • Putting It All Together
  • Interaction Between the Game’s Classes
  • Optimization
  • Programming Tips

There will also be an Appendix at the back that covers:

  • Installing Game Sprockets
  • Books to Read
  • Magazines to Subscribe to
  • Useful Web Sites
What game genres do you expect this book to cover?

I am making an action game in the book but I am writing the book so the reader can make many types of games. After reading the book, it should be possible to write action, strategy, role-playing, board and puzzle games.

How will you go about explaining the basics of game programming to those new to this area?

I will explain the basics of game programming by writing a complete game. The game will be a 2D action game featuring cooperative network play so I can show off the artificial intelligence techniques I cover in the book. Each chapter will add a piece of the puzzle until I end up with a finished game. This way, the reader does not have to wait until the end of the book to see what has been achieved. Each chapter program builds upon the previous one.

Here is the progression:

  • Program 1 — Draw a picture on the screen
  • Program 2 — Scroll the background
  • Program 3 — Add an animated character
  • Program 4 — Let the user move the character around the screen
  • Program 5 — Add sound
  • Program 6 — Add physics
  • Program 7 — Add enemies to demonstrate AI
  • Program 8 — Add networking
  • Program 9 — Add monitor resolution switching
  • Program 10 — Finished game
What language will you use in the book?

I am going to use C++ in the book. I am only using a portion of C++‘s features and the inclusion of a C++ chapter will mean that C programmers should be able to follow the code fairly easily.

Will the book target any specific IDE and if so, which one?

I hope to include CodeWarrior Lite with the book but the code will work with any Mac C++ compiler.

Which Mac API foundation will you primarily focus on: Classic, Carbon or Cocoa?

I will discuss the Macintosh toolbox (Classic), Carbon, and Cocoa in the introduction but I am going to use Carbon for most of the book. By using Carbon anybody with Mac OS 8, 9 or X will be able to use the code and I want the greatest number of people to benefit from the book. There are two places where I will not be able to use Carbon: joystick support and monitor resolution switching. For joystick support, I have chapters on both InputSprocket and the HID Manager. For monitor resolution switching, I use DrawSprocket which runs on Mac OS 8/9/X, but technically is not part of Carbon.

Will OpenGL be discussed at all?

Here is where I may disappoint some people. I am not going to be using OpenGL in the book. When I was writing my proposal I made a wish list of topics which included 3D graphics, networking, artificial intelligence, joystick support, physics and audio. As I went into more detail about what I wanted to cover in 3D graphics, I realized that 3D graphics would take up virtually the entire book. I had a choice: focus on 3D graphics and barely cover the other topics, or 2D graphics with more in-depth discussion of the other topics.

I chose to go with the latter and provide greater detail in the “core” gaming areas. It was a tough choice but I figured that there were more books on the market covering OpenGL and 3D graphics than books covering Macintosh sound, multi-platform networking, artificial intelligence and physics.

What kind of machine will be required to compile and execute the code in the book?

My target for the book is any machine which can run Carbon programs—PowerPC Mac running Mac OS 8.1 and higher. To meet this target, I do not require hardware acceleration but I do show how to take advantage of it.

Do you think there is still a market for older machines (e.g. 68K Macs and Nubus PPC)?

It depends on your perspective. As a game player who has a pre-G3 system, I find my game choices to be slim. I am limited to shareware games and games made in 1998 or earlier. For 68k Mac owners it is even worse. I understand that cutting-edge games require steep hardware requirements but some games are ridiculous. I read a review of Monopoly in the latest issue of Mac Addict. Monopoly requires a G3 225MHz processor or better, 64MB RAM and 240MB of hard disc space. Those are some pretty steep system requirements for a board game!

What is bad for the game player is an opportunity for the game developer. If any of you are writing a game, make it playable on as many machines as possible. Why limit the number of people who can enjoy your game? There are people with older machines that do not have one to three thousand dollars to buy a new computer but do have money to buy games. It is possible to write outstanding games that run on 68K machines. Civilization 2 and the Marathon series of games run on 68K Macs. I bet it is possible to make a version of Monopoly that runs on 68K Macs. There are older versions of Game Sprockets available that support 68K machines. You can use them to write multi-player, full screen games with joystick support.

What advanced topics will you discuss?

It depends on what you define as advanced but I do cover A.I.(Artificial Intelligence), networking and physics in the book. Each of these subjects could be classified as “advanced.”

Will you discuss porting to and from other platforms?

I do not plan on covering the porting of Windows games to the Macintosh. However, my code will be written to make it as easy as possible to convert to other platforms should you want to.

Will you cover Simple DirectMedia Layer (SDL) and support for Apple’s software OpenGL rendering?

I do not plan to cover SDL or OpenGL software rendering in the book.

Have you contacted Apple Developer Relations with regard to their upcoming technologies so that you can make the book as up-to-date as possible when published?

I have not contacted them yet but I will have to soon as I need to get some information on the HID Manager.

Will the book include a CD-ROM?

Yes. The CD will include the source code from the book. In addition, I want the CD to include a “Lite” version of CodeWarrior, Apple SDKs like GameSprockets and OpenGL, demos of development tools and some shareware games. Obviously, what will actually end up on the CD will depend on whether or not I am able to get licenses to include them though.

Is there any time-frame for when the book will be published?

If everything goes smoothly, I will finish writing the book in September. I do not know how long it will take to print and publish but it should be available in the fall.

Bio

Mark Szymczyk has written several articles for iDevGames. Currently, he is writing a book on Mac game programming for Prima Publishing while finishing up his first game for Black Apple Software, his Mac game development company.

1 Prima Publshing is now owned by Thomson Learning.

mac,author,programming,szymczyk

Recent Forum Threads

About iDevGames

Since 1998, iDevGames has been educating, supporting and enhancing the community of game developers that produce video games for the Apple Mac and iPhone platforms. Get the latest game development news by subscribing to our news feed.