Professional Documents
Culture Documents
فهرست مطالب
1
از کجا شروع کنیم؟
تِ دلیل ٍجَد اًَاع تاصیْای هختلف اتتذا تایذ دس هَسد ًَع تاصی تصوین گیشی ؿَد هخال دس هَسد ایٌکِ
هخاعة تاصی چِ کؼاًی تاؿٌذ ،تاصی اص ًَع actionتاؿذ یا اص ًَع اػتشاتظی ،دٍتؼذی تاؿذ یا ػِ تؼذی ٍ
. ...تٌْا تؼذ اص ایي هشحلِ اػت کِ هیتَاى دس هَسد هٌاتغ هَسد دػتشع تشای تَػؼِ ی تاصی ٍ تَاتغ کتاتخاًِ
ای هَجَد ٍ ...جؼتجَ کشد.
هشحلِ ی تؼذ اًتخاب یک صتاى تشًاهِ ًَیؼی هٌاػة تشای عشاحی ایي تاصی اػت .کِ هؼوَال صتاًی کِ تشای
ًشم افضاسّای هَتایل تیـتش هَسد اػتفادُ قشاس هیگیشد )J2ME (Java 2 Platform micro edition
اػت کِ اهکاًات ٍیظُ ای تشای عشاحی تاصی هَتایل ًیض داسد .تشای عشاحی تاصیْای ػِ تؼذی ّن هیتَاى اص
JSR184اػتفادُ کشد کِ یک APIتشای عشاحی تاصیْای ػِ تؼذی تشای J2MEاػت.
هشحلِ ی تؼذ یؼٌی هشحلِ ی ػَم اًتخاب ًَع هَتایل یا هَتایلْایی اػت کِ هیخَاّین تاصی سا تشای آى
تٌَیؼین .دس ایي هشحلِ هَاسدی کِ تایذ هَسد تَجِ قشاس گیشًذ ػثاستٌذ اص :ػشػت پشداصؿگش هَتایل ،اًذاصُ
صفحِ ًوایؾ ٍ ،ضَح تصَیش ٍ فشهتْایی کِ پـتیثاًی هیکٌذ هخال چِ فشهتْایی اص فیلن ،صذا یا تصَیش سا
پـتیثاًی هیکٌذ.
هشحلِ ی تؼذی کِ یکی اص هْن تشیي هشاحل ًیض تـواس هیشٍد ًَع عشاحی تاصی) (game designاػت کِ
اتتذا تایذ یک ًقـِ ػوَهی ٍکلی تشای ًَع هؼواسی ٍ عشاحی تاصی اسائِ ؿَد .دس ایي عشح تایذ تِ جٌثِ ّای
هختلفی کِ قشاس اػت دس تاصی گٌجاًذُ ؿَد پشداختِ ؿَد .تِ عَس کلی تِ هشحلِ پیؾ عشاحی کاساکتشّای
تاصی ،هحیظ ٍ داػتاى تاصی هشحلِ ی عشاحی گفتِ هیـَد کِ هتـکل اص تشًاهِ ًَیؼی ٍ کاسّای گشافیکی
ٍ ٌّشی اػت.
هشحلِ ی تؼذ جوغ آٍسی اعالػات هشتَط تِ سٍؿْای تْتش ٍ ػشیؼتش تشای پیادُ ػاصی تاصی هَسد ًظش تَػظ
صتاى تشًاهِ ًَیؼی اًتخاب ؿذُ هی تاؿذ تِ ػٌَاى هخال آؿٌایی تا تَاتغ کتاتخاًِ ای قاتل اػتفادُ دس پیادُ
ػاصی تاصی هَسد ًظش ٍ ...
دس ایي قؼوت ؿؾ هشحلِ رکش ؿذ کِ دس پایاى دس قؼوت ًتیجِ گیشی ،ایٌکِ ّش هشحلِ احتواال تِ چِ
قذس صهاى ًیاص خَاّذ داؿت آٍسدُ ؿذُ اػت.
2
ًکات قاتل تَجِ:
.1تؼشیف داػتاى تاصی تا جضئیات ٍ حاالت هختلف تاصی پیؾ تش ،کوک خَاّذ کشد کِ هشاحل تؼذی
ساحتتش ،تا آگاّی تیـتش ٍ تا ّذفتش پیؾ تشٍد.
.2ػاخت اػکلتی اص تاصی تا اػتفادُ اص اتضاسّایی هخل Game canvasکِ یک کالع پایِ اػت کِ دس
ًَؿتي تاصیْای دٍ تؼذی دس J2MEکوک هیکٌذ.
.3تاصی سا سٍی ؿثیِ ػاص ّای هختلف هَتایلْای ّذف تؼت کٌیذ.
: Embedded gamesتاصیْایی کِ اص اتتذا هؼوَال دس خَد هَتایل جاػاصی ؿذُ اًذ ٍ هؼوَال تاصیْای
کالػیک ٍ تقشیثا هٌؼَخ ؿذُ ای هخل ّ snakeؼتٌذ.
: SMS gamesتاصی ّای کِ تا فشػتادى پیاهک تاصی اًجام هیـَد هخل فشػتادى پیاهک تِ ػشٍس تاصی.
الثتِ ایي ًَع تاصیْا سایج ًیؼتٌذ تِ دلیل ایٌکِ تا ّش پیاهک دس ٍاقغ پَلی اص حؼاب کاستش کن هی ؿَد دس
ًتیجِ تاصیْای ًؼثتا گشاًی تِ حؼاب هی آیٌذ.
:Browser gamesسایج تشیي ًَع تاصیْا ّؼتٌذ کِ تِ صَست آًالیي سٍی ٍب یا آفالیي اًجام هیـًَذ.
هؼوَال هیتَاى تاصی سا تِ صَست تکی ٍ یا تِ صَست گشٍّی اص عشیق تلَتَث یا ایٌتشًت اًجام داد.
تا تَجِ تِ تَضیحاتی کِ دادُ ؿذ احتواال تْتشیي اًتخاب ًَؿتي یک تاصی اص دػتِ ػَم browser
gamesاػت .کِ دس اداهِ تِ تشسػی تیـتش ایي دػتِ اص تاصی ّا هیپشداصین.
:Mind games تاصی ّای رٌّی هاًٌذ پاصل ،تیک تاک تَ ،کَئیض ٍ ...
:2D Games ایي دػتِ اص تاصیْا دس حال حاضش گؼتشُ ی ٍػیؼتشی اص هیاى تاصیْای هَتایل سا
پَؿؾ هیذٌّذ .هاًٌذ تاصی قاسچخَس .یکی اص ػلتْای ایي اهش تؼضی هحذٍدیتْای هَتایلْای فؼلی
تشای اًجام یک تاصی ٍاقؼا ػِ تؼذی اػت هخل هحذٍدیتْای پشداصؿی ٍ حافظِ ،اًذاصُ صفحِ ٍ ...
3
هَاسد صیش ٍیظگیْای اصلی ایي تاصی ّا سا تـکیل هیذٌّذ:
ػٌاصش اصلی تشای تشای ػاخت یک تاصی دٍ تؼذی هاًٌذ اؿیا ،داػتاى تاصی ،داؿتي چٌذیي صحٌِ
تشای هَقؼیتْای هختلف تاصی ،پغ صهیٌِ هٌاػة هخال دسختْا ،اتشّا ٍ ّ ،...ذف تاصی ،هٌاتغ تاصی
یا تاصیکي هخل اػلحِ ،ػغح اًشطی ،اهتیاص ٍ ، ...
: 3D and multiplayer gaming تاصی ّای ػِ تؼذی تا قاتلیت چٌذ تاصیکٌٌذُ.
چرا جاوا ؟
تاصیْای هَتایل هؼوَال تَػظ ، C++جاٍا BREW (binary runtime environment for ،
)ٍ ، wireless platformsصتاى ّای ( .netالثتِ تشای ًَ )windows mobileؿتِ هی ؿًَذ .اها
هؼوَال سایجتشیي صتاى جاٍا اػت ( . )J2MEاها چشا؟
.1تقشیثا توام هَتایلْایی کِ ٍاسد تاصاس هیـًَذ قاتلیت اجشای تشًاهِ ّای جاٍا سا داسًذ.
.2جاٍا سایگاى ٍ کذ تاص اػت.
.3قاتلیت حول خیلی خَتی داسد ٍ تِ ػثاستی دیگش write once run anywhere :
.4تِ عَس ٍیظُ تشای دػتگاّْایی هخل هَتایل تْیٌِ اػت صیشا کن حجن اػت ٍ اهٌیت خَتی داسد ( ًشم
افضاسّای ًَؿتِ ؿذُ تا javaسٍی تقیِ ًشم افضاسّای هَتایل ًویتَاًٌذ تاحیش تگزاسًذ)
J2ME .5یک APIقذستوٌذ تشای ًَؿتي تشًاهِ ّای هَتایل تِ اػن MIDP (Mobile information
) device profileداسد .هخصَصا ایٌکِ دس ًؼخِ ی 2.2ایي APIقاتلیتْای ٍیظُ ای تشای عشاحی
تاصی ٍجَد داسد کِ ًَؿتي تاصی سا ػشیؼتش ٍ ساحت تش هیکٌذ.
ًقؾ MIDP : MIDPهتـکل اص ّ APIایی اػت تشای تَػؼِ ًشم افضاسّای چٌذ سػاًِ ای هخل تاصی .اص
جولِ ی ّ APIای هْوی کِ دس MIDPتشای عشاحی تاصی تِ کاس هیشًٍذ ػِ APIصیش ّؼتٌذ:
javax.microedition.lcdui.game
javax.microedition.midlet
.javax.microedition.lcdui
اٍلی ّواى عَس کِ اص اػوؾ ّن پیذاػت اهکاًات ٍیظُ ای تِ تشًاهِ ًَیغ تشای ساحتتش ًَؿتي تاصی هیذّذ
هاًٌذ ػاخت ٍ کٌتشل ػٌاصش هختلف یک تاصی.
4
دٍهی یک پایِ تشای توام ًشم افضاسّای هَتایل اسائِ هیکٌذ ٍ .ػَهی تشای ًَؿتي ٍاػظ کاستش هَسد اػتفادُ
قشاس هیگیشد .تِ تشًاهِ ّایی کِ تشای ایي پشٍفایل (ًَ )MIDPؿتِ هی ؿَد MIDLetsگفتِ هیـَد.
آخشیي ًؼخِ ی هؼشفی ؿذُ ی ً MIDPؼخِ ػَم آى اػت کِ قاتلیتْای تیـتشی سا ًؼثت تِ ًؼخِ ی دٍم
داسد تؼالٍُ ایٌکِ ػاصگاسی خَد سا تا ًؼخِ ی دٍم حفظ کشدُ اػتً JSR 271 .ام دیگش ایي ًؼخِ اػت (ایي
ًام اػتاًذاسد هحصَل دس ) JCP(java community processاػت).
اهکاًات دیگشی کِ هیتَاى تِ ػٌَاى هضایای جاٍا ًام تشد ٍجَد ّ game engineای سایگاى هخل JGame
اػت.
JGameیک هَتَس تاصی( )game engineدٍ تؼذی هتي تاص اػت کِ سٍی پلتفشم J2MEقاتل اجشا اػت
ٍ قاتلیتْای صیش سا داسد:
یک چاسچَب دیگش Gearاػت کِ ؿاهل فشا ػاختاسّایی تشای ساحتتش کشدى تشًاهِ ًَیؼی تا J2ME
اػت .تِ ػٌَاى هخال :کٌتشل ٍ استثاط تا صفحِ کلیذ ٍ صفحِ لوؼی ،چٌذ سیؼواًی ٍ ...
لیٌک http://sourceforge.net/projects/gearjmf/ :Gear
J2ME
ایي پلتفشم یک پلتفشم جاٍا اػت کِ تشای ػیؼتوْایی هخل هَتایل اػتفادُ هیـَد .دػتگاّْایی کِ اص ایي
پلتفشم اػتفادُ هیکٌٌذ اص پشٍفایلْا تْشُ هیثشًذ .سایج تشیي آًْا mobile information device
profileاػت .پشٍفایلْا صیش هجوَػِ ای اص (configurationپیکش تٌذی) ّا ّؼتٌذ ٍ دس حال حاضش دٍ
ًَع اص ایي پیکشتٌذی ّا ٍجَد داسًذ:
5
)CDC (Connected device ٍ CLDC (Connected limited device configuration
)configuration
CLDCؿاهل صیش هجوَػِ ای اػاػی کتاتخاًِ ّای کالع جاٍا اػت ٍ حذاقل چیضی اػت کِ تشای ػولکشد
)ً JVM(Java virtual machineیاص اػت.
CDCصیش هجوَػِ ای اص Java SEاػت کِ تقشیثا ؿاهل توام کتاتخاًِ ّایی کِ تِ GUIهشتَط ًیؼتٌذ
هیـَد CDC .غٌی تش اص CLDCاػت.
: Mobile media APIایي APIدس پخؾ ٍیذئَ ٍ دس ضثظ ٍ پخؾ صذا تشًاهِ ًَیغ سا کوک هیکٌذ:
:Wireless messaging APIاهکاًات کافی تشای کاس تا smsسا دس اختیاس هیگزاسد هاًٌذ فشػتادى یا دس
یافت پیاهک.
6
http://www.openclassworld.org/javame/unit4-chapter-2-wireless-messaging-api :اعالػات تیـتش
:Bluetooth API
:3D API
7
ًکتِ ی هْن دس هَسد ایي APIایي اػت کِ هحذٍدیت ّا حافظِ ٍ پشداصؽ دس هَتایل سا هذ ًظش قشاس دادُ
اػت .اص قاتلیتْای جالة ٍ هْن دیگش ایي APIایي اػت کِ اجاصُ ٍاسد کشدى اًیویـي اص ًشم افضاسّای
عشاحی ػِ تؼذی سا هی دّذ.
:Location API
اص جولِ قاتلیتْای ایي ً APIـاى دادى هَقیؼت جغشافیایی فؼلی هی تاؿذ.
8
http://www.openclassworld.org/javame/unit4-chapter-5-location-api اعالػات تیـتش:
:Nokia UI APIs
تؼتِ ی دٍم یک تَػؼِ گشافیکی تشای کاس تا ٍاػظ کاستشّای ػغح پاییي MIDPاػت .کٌتشل ًَس پـت
صفحِ ،لشصؽ )... ٍ full screen mode ، (vibrate
تا تَجِ تِ تَضیحات دادُ ؿذُ تِ ًظش هیشػذ کِ تتَاى پشٍطُ سا عثق الگَی صیش اًجام داد:
اتتذا دس هَسد تاصی ٍ داػتاى ٍ کاساکتشّای آى تایذ تصوین گیشی ؿَد .دس هشحلِ ی تؼذ تِ ًظش هیشػذ کِ
ًَؿتي یک تاصی دٍتؼذی تْیٌِ تش ٍ تاصاس ّذف تیـتشی داؿتِ تاؿذ.
9
دس هَسد صتاى پیادُ ػاصی ّواًغَس کِ دس قؼوتْای قثل تِ عَس ًؼثتا هثؼَط هَسد تحج قشاس گشفت تِ ًظش
هی آیذ کِ J2MEتْتشیي اًتخاب تاؿذ .الثتِ ؿایذ جا داؿت کِ دس هَسد اهکاًات صتاًْای .netتشای
ًَؿتي تاصی هَتایل ًیض تَضیحاتی دادُ هیـذ اها ػوال تِ دلیل ایٌکِ ایٌگًَِ تاصیْا فقظ سٍی هَتایلْای
داسای windowsقاتل اجشا ّؼتٌذ گؼتشُ ی هخاعة کوی داسًذ ٍ هقشٍى تِ صشفِ ًیؼتٌذ اگشچِ اهکاًات
خَتی تشای ًَؿتي تاصی داؿتِ تاؿٌذ.
دس هَسد جاٍا ًیض ػالٍُ تش اهکاًاتی کِ هَسد تحج قشاس گشفت ًشم افضاسّای صیش ًیض هیتَاًٌذ هفیذ ٍاقغ ؿًَذ:
هشحلِ ی تؼذ پیادُ ػاصی یک ًؼخِ ی اٍلیِ اص تاصی اػت کِ دس ایي هشحلِ ًیض ػالٍُ تش هٌاتؼی کِ دس آخش
کتاتْای صیش ًیض هٌاتغ خَتی تـواس http://www.openclassworld.org/javame رکش ؿذُ اًذ تِ ٍیظُ
هیشًٍذ:
http://www.amazon.com/Creating-Mobile-Games-Platform-
Technology/dp/1590598806/ref=pd_sim_b_1
http://www.amazon.com/J2ME-Complete-Reference-James-
Keogh/dp/0072227109/ref=pd_bxgy_b_img_b
http://www.amazon.com/Beginning-J2ME-Professional-Sing-
Li/dp/1590594797/ref=pd_bxgy_b_img_c
صهاًْای پیؾ تیٌی ؿذُ (تِ صَست هیاًگیي):
هشحلِ 12 :1ػاػت کاس گشٍّی تشًاهِ ًَیؼْا ٍ تاصسگاًی
هشحلِ : 3 ٍ 2حذاکخش ػِ الی چْاس ػاػت
هشحلِ 22 :4ػاػت (الثتِ عَل ایي هشحلِ تؼتگی تِ داػتاى تاصی داسد)
هشحلِ 22 :5ػاػت
هشحلِ 52 :6ػاػت (پیؾ تیٌی ایي هشحلِ دس حال حاضش تذٍى تَجِ تِ هشاحل قثلی چٌذاى
دقیق ًیؼت لزا تایذ اتتذا تصویوات اصلی دس هَسد هشاحل قثلی گشفتِ ؿَد ٍ تؼذ عَل ایي هشحلِ
تْتش قاتل پیؾ تیٌی خَاّذ تَد)
10
:منابع
1. http://mobiledevices.about.com/od/mobileappbasics/ht/How-To-Start-With-Mobile-Game-
Programming.htm
2. http://en.wikipedia.org/wiki/Game_design
3. http://www.developer.com/ws/j2me/article.php/3502741/Developing-Java-Based-Mobile-
Games.htm
4. http://www.13thmonkey.org/~boris/jgame/
5. http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition
6. http://www.openclassworld.org/javame
11