绪 论
在这方面无论你是一个初学者或者已经是一个老手,游戏程序员都是特殊的一类人——有点像科学家、有点像作家,而且他们还都是梦想家。这些年我发现游戏开发是我曾经经受过的最充满挫折和痛苦的过程,然而每次我都能挺过来。因为没有一件事情比得上开发一个游戏,然后看到玩家在自己创作的场景里来回移动时,眼睛发亮的样子,这样的感觉是其他人无法体会到的。
在《J2ME游戏编程》中我将教你怎样给微型设备编写游戏,而且我会让你看到它们是多么有趣,这些游戏看起来、玩起来是多么酷。
我不是搞业余爱好的,我开发游戏一方面是为了娱乐,另外也是为了挣钱;我在本书中也讲述如何将自己开发的游戏推向市场来获得真正的收入。
本书重点
这本书将主要讲述怎样用J2ME进行游戏程序的开发,它的重点是面向手机(这是最大的J2ME设备的市场)。书中的章节是需要按顺序阅读的,所以如果读者已经对某一章节的内容熟悉的话,建议先浏览一下该章节,阅读一下感兴趣的东西,而不是直接跳过去。
第1部分,笔者将介绍一下J2ME世界,包括它的起源和目前在市场上的地位。在这部分可以看到一些典型的J2ME设备,明白我们要为什么样的设备来开发游戏。
第2部分,讲述获取所有需要的工具并建立自己的开发环境。然后可以通读一下Sun J2ME SDK中提供的API文档,同时也了解一下指定设备支持库中增加的一些特性。在这部分的最后,我们将利用所有的这些工具创建一个动作游戏。
第3部分,真正的游戏项目开发。在这部分里,读者将首先看到在着手全面开发一个叫做星际大战的游戏前,怎样将游戏思想变成项目计划。然后在后续的9个章节中,将讲述开发一个具有商业化品质游戏的各个方面,包括图像、物理学、环境、前端、针对特定设备的优化和最终的本地化。
第4部分,讲述如何发布游戏。读者会看到如何制作市场宣传材料去提升自己开发的游戏,也能看到怎样获取利润以及从哪里获取利润。
第5部分,我们将进行更加深入的J2ME游戏开发,讲述一些MIDP 2的特性。笔者也将展示如何开发一个基于ISOMETRIC技术的引擎,以及一个3D的光线投射引擎,并用它们来开发不同类型的游戏。最后,我们研究了一些MIDP 2中的网络技术和怎样利用网络技术来开发多人联网游戏。
本书读者
在本书中,假设读者已经熟悉Java,或者至少熟悉另外的一种面向对象语言。不需要专家,但是必须了解一些基础知识。本书要求一些基本的数学,不过最难的也就是三角函数,而且在书中笔者解释得也比较详细。此外还要求读者熟悉计算机的基本操作,例如下载和安装软件。
J2ME游戏程序开发是一个有机会从自己设计的游戏中获利的游戏编程领域,至少在目前是这样的。笔者假设各位读者已经是一个创业者了,并且打算从开发的游戏中获利。
除了这些,学习J2ME游戏编程需要编写有趣游戏的愿望。必须有创造性、能够持之以恒——但是必须首先学会欣赏自己所拥有的这些优点并且能够充分利用它们。
关于作者
我记得曾经被妈妈从一个购物中心拖走(在10岁的时候我就喜欢去购物)。当我们转过一个角落的时候,我发现一个机器,上面写着“空间侵略者(Space Invaders)”几个字。在屏幕上面有很多排单色的侵略者无情地向下面扔炸弹,下面是一个玩家操作的飞机。我妈妈没有多想就给了我20美分,而我马上就被吸引在那里,久久不愿离开。
主要是由于没有足够的钱去玩那些街机,所以从那时开始,我就买了我的第一台家庭计算机,我买这个机器只有一个目的,就是开发自己的游戏。我在Tandy MC10上面学习了BASIC语言,然后转移到ZX、Microbee、VIC20和C64上。经过在悉尼学习计算机后,我转向了专业程序设计,涉及很多机型,从普通微机到大型机。
我曾经参与过众多的项目,包括从卫星通信系统到大量玩家同时在线的网络游戏等很多方面。我也曾经建立了一些技术公司,看着它们成功和失败,经历了这些,我仍然热爱编写游戏。
几年前我发现了Java,而且从此就对它着了迷(目前相对于C++而言,我更加倾向于用Java来开发项目)。随着J2ME的出现,我发现这是一个机会,一个可以为这个新出现的、走在电子娱乐视野前面的环境开发游戏的机会。
让我们开始吧
J2ME是一个崭新的世界。这不是因为它是Java,或者因为它应用的设备比计算机要小。而是因为,我们是在谈论一个全新的生活方式——所有人都能随身携带的设备的出现。编写在这样设备上面运行的游戏是一个全新的体验。笔者希望,本书能教授编写这些游戏的一些基础知识。下面就可以开始了。