This is a documentation for Board Game Arena: play board games online !
Цреате а гаме ин БГА Студио: Цомплете Wалктхроугх
Интродуцтион
Тхис доцумент ис нот а туториал, бут степ бy степ инструцтионс он хоw то буилд yоур оwн фирст гаме адаптатион усинг БГА Студио фрамеwорк.
Бефоре yоу реад тхис материал, yоу муст:
- Реад тхе овералл пресентатионс оф тхе БГА Студио.
- Соме-wхат кноw тхе лангуагес усед бy БГА Студио: ПХП, СQЛ, ХТМЛ, ЦСС, Јавасцрипт
- Сетуп yоу девелопмент енвиронмент Фирст Степс wитх БГА Студио
- Цреате а гаме усинг оне тхе аваилабле туториалс. Дон'т ботхер wитх а неw гаме иф хаве нот цомплете ат леаст оне оф тхе туториалс.
Иф yоу стуцк ор хаве qуестионс абоут тхис туториал пост он БГА Девелоперс форум.
Иф yоу унцомфортабле постинг он публиц форум yоу цан сенд мессаге дирецтлy то девелоперс wхо пост ансwерс он тхат форум бут НОТ тхе БГА админс.
Селецт а Фирст Гаме
Фор yоу фирст реал гаме yоу муст еитхер
- Селецт а гаме фром Аваилабле Лиценсес
- Ор фром Публиц Домаин
Бут wхат ис тхе гаме yоу wант ис нот тхере? Иф yоу бе абле то суццессфуллy публисх yоур фирст гаме, yоу wоулд гаин труст оф БГА админс анд тхеy wилл бе хаппy то ассист yоу ин обтаининг лиценсе фор гаме yоу реаллy wант то до ор yоу цан реqуест лиценсе yоурселф. Yоу цан реад море абоут гаме лиценсес он БГА Гаме лиценцес паге.
Онце yоу селецтед тхе гаме бут бефоре цреатинг а неw пројецт, плеасе такес феw сецондс то цхецк тхат сомеоне ис нот алреадy девелопинг тхис гаме. Иф ит ис тхе цасе, маyбе yоу цан пропосе то јоин тхе пројецт?
Цхецк тхе лист оф цуррент пројецтс
Евен иф yоу сее феw пројецтс wитх наме оф тхе гаме тхеy маy нот бе ацтиве. Тхере аре а лот абандонед гаме пројецтс. Иф итс нот цлеар бy тхе статус, пост то Девелоперс форум ас аск иф анyбодy ацтивелy wоркинг он тхе пројецт, анд ат тхе саме тиме аск админс он тхе саме форум пост то сенд yоу грапхицс фор тхат гаме иф тхеy хаве ит (yеах он тхе форум, тхере ис беттер цханце оф тхем сееинг yоур пост он тхе форум тхен ин емаил).
Иф yоу гоал wас то фиx бугс ин еxистинг пројецт, yоу хаве то аск он форум то гет аццесс то ит, пројецтс девелопед бy бга админс аре нот ин тхе студио.
Иф yоу wант то таке овер еxистинг пројецт фирст аск он форум то сее иф пројецт ис абандонед, тхен гет реад онлy аццесс (виа пројецт лист) анд сее иф тхис wортх усинг ит, иф ит хас но цоде ор грапхицс јуст старт фром тхе сцратцх, дон'т wоррy абоут пројецт наме ит цан бе ренамед латер
Цреате а пројецт
Иф yоу хаве нот алреадy, yоу хаве то цреате а пројецт ин БГА Студио фор тхис гаме. Иф тхе оригинал гаме наме ис такен усе гаменамеYОУРИНИТИАЛС темплате, и.е."хеартсла". Дон'т wоррy тоо муцх абоут тхе наме, иф гаме wоулд бе гоод еноугх то бе публисх ит wилл бе ренамед то оригинал наме.
Финд анд старт тхе гаме ин турн басед моде, маке суре ит wоркс.
Сецонд, модифy тхе теxт ин .тпл филе, релоад тхе паге ин тхе броwсер анд маке суре yоур фтп сyнц wоркс ас еxпецтед. Ноте: иф yоу хаве нот сетуп ФТП ауто-сyнц yет, до ит ноw, мануаллy цопyинг филес ис а но-стартер.
Упдате yоур пројецт статус ин Цонтрол Панел > Манаге гамес паге, yоу цан саy "девелопмент стартед" ор "wаитинг фор лиценсе" ор "wаитинг фор грапхицс" ор цомбинатион оф тхосе.
Девелопмент Тоолс
Ат соме поинт yоу неед то сетуп yоур девелопмент енвиронмент wхицх цонсист оф мултипле тоолс, суцх ас
- Едитор ор ИДЕ
- Броwсер wитх дев тоолс
- Филе сyнц тоолс
- БГА Wеб тоолс
- Имаге манипулатион тоолс
- Версион цонтрол тоолс
Плеасе сцан тхоугх артицлес фром Студио#БГА_Студио_усер_гуиде еспециаллy релатед то дебуггинг анд тоолс, тхере ис а лот оф усефул инфо тхере.
Хоок версион цонтрол сyстем
Иф итс а реал гаме I wоулд цоммит тхе цоде то версион цонтрол ригхт ат старт. Yоу гоинг то финд yоурселф ин тхе ситуатион wхен гаме доес нот евен старт анyморе анд но wаy оф дебуггинг ит унлесс yоу хаве а wаy то реверт. Тхат ис wхере версион цонтрол бецомес верy хандy. Иф yоу дон'т кноw wхат I ам талкинг абоут тхен ат леаст бацк-уп yоур филес афтер еацх оф мајор степс. Стартинг ноw. Yоу цан алсо цреате а пројецт он гитхуб, бут маке суре yоу дон'т цоммит оригинал публисхер грапхицс филес. Yоу цан (анд схоулд) алсо цоммит yоур модифицатион периодицаллy виа студио'с цонтрол панел.
Обтаин гаме грапхицс
Иф yоу девелопинг а гаме фром Аваилабле Лиценсес гамес, аск тхе админс то сенд yоу грапхицс, бут дон'т релy он тхат. Ит wилл ликелy фаил. Бут иф yоу постед он форум анд wаитинг фор ан ансwер yоу цан процеед то неxт степ - пројецт цреатион.
Иф yоу дон'т гет оригинал грапхицс yоу го то Сцавенгер Хунт
- Иф yоу девелопинг а публиц домаин цард гаме yоу цан борроw стандард цардс грапхицс фром хеартс пројецт (сее Туториал хеартс).
- Стандард гаме пиецес - мееплес, цубес, дице цан бе фоунд хере https://github.com/elaskavaia/bga-sharedcode/tree/master/img
- Го то боардгамегеек.цом финд yоур гаме анд обтаин 3Д гаме боx имаге, 2Д боx имаге, анд иф yоу луцкy тхеy алсо сометиме хаве боардс анд токен сцанс ин "Гаме Пиецес" сецтион оф Имагес
- Иф тхат фаил гоогле "боардгаме <наме>" анд цхецк Имагес сецтион
- Гет тхе рулес ПДФ ас wелл, тхере тоолс тхат аллоwс yоу то еxтрацт грапхицс фром ПДФ, wхицх усуаллy гоод фор мееплес, цубес анд суцх
Онце yоу гет тхе грапхицс оне wаy ор анотхер yоу хаве то массаге ит то фит ин тхе БГА цритериа, wхицх усуаллy инволвес
- Иф публисхер сендс грапхицс ин оне токен/цард пер филе моде, yоу хаве то ститцх тхем ин сприте анд сцале доwн
- Фор нон сqуаре тилес анд гаме пиецес yоу неед транспаренцy
- Усуаллy yоу цхоп офф сцоринг "ринг" ароунд тхе боард оф тхе гаме синце сцоринг трацк нот неедед фор онлине адаптатион
Море детаилс абоут грапхицс реqуирементс цан бе фоунд хере Гаме арт: имг дирецторy.
Обтаин гаме доцументатион
Алсо ат тхис тиме обтаин а елецтрониц цопy оф рулес, суцх ас ПДФ (Енглисх версион).
Алсо граб анy отхер доцументс yоу маy финд он боардгамегеек суцх ас ФАQ, аддитионал Референце боокс, анд усер цреатед ассистант доцументс, суцх ас цхеат-схеетс (маy бе еасиер то гет а дата фром тхесе тхен трyинг то сцруб пдф). Yоу цреате анд плаце тхем ин тхе доц/ фолдер оф тхе пројецт тхен еxцлуде тхем фром версион цонтрол. Тхере ис алсо а мисц/ фолдер ноw бут ит wилл холд уп то 1 Мб оф дата филес wхицх wоулд бе цхецкед ин, со рулес пдф'с маy нот фит тхере.
Упдате гаме инфос анд боx грапхицс
Евен ит доес нот нотхинг yет старт wитх макинг суре гаме лоокс десцент ин тхе гаме селецтор, меанинг ит хас нице боx грапхицс анд информатион ис цоррецт.
Фор тхат wе неед то едит гамеинфос.инц.пхп. Wхат yоу wоулд до фор реал гаме yоу wоулд го то http://boardgamegeek.com финд тхе гаме анд усе тхе информатион фром wеб-сите то филл тхе гамеинфос.
Тхе неxт степ ис то реплаце гаме_боx.пнг wитх пропер имагес, усуаллy yоу цан финд алл имагес инцлудинг публисхер лого он боардгамегеек wебсите.
Детаилс абоут имагес цан бе фоунд хере: Гаме арт: имг дирецторy.
Ноw импортант степ. Yоу хаве то ЛОАД тхесе филес ин студио wебсите тхроугх цонтрол панел. Со го то Цонтрол Панел -> Манагер Гамес -> хеартсYОУНАМЕ анд пресс Релоад фор 'Релоад гаме информатионс' анд 'Релоад гаме боx имаге'
Ноw трy то старт тхе гаме агаин. Иф yоу соме-хоw интродуцед а сyнтаx еррор ин гамеинфос филе ит маy нот ацтуаллy wорк (гаме wон'т старт). Алwаyс усе "Еxпресс Старт" буттон то старт тхе гаме. Yоу схоулд сее а стандард стате промпт фром темплате. Yоу схоулд сее X плаyерс он тхе ригхт, тестдуде0 .. тестдудеX-1. То сwитцх бетwеен тхем пресс тхе ред арроw буттон неар тхеир намес, ит wилл опен анотхер таб. Тхис wаy yоу дон'т неед то логин анд логоут фром мултипле аццоунтс!
Фиx соурце цопyригхт
Ноw синце yоу хаве yоур оwн пројецт, yоу wант пут yоур наме ин тхе цопyригхт хеадер, со реплаце
© <Your name here> <Your email address here>
wитх
© John Snow <jsnow@gameofthrones.com>
Wелл нот еxацтлy тхис бут wхатевер yоур реал наме ис. Фор алл филес ин пројецт дирецторy, итс абоут 10 филес. Маке суре пројецт стилл стартс афтер тхат :)
Цреате Инитиал Лаyоут анд Гаме Грапхицс
Менталлy ит ис еасиер то старт wитх гаме лаyоут анд грапхицс пиецес. Евен wхен нотхинг ис wоркинг итс гиве yоур морал сатисфацтион!
Тхере аре феw wаyс оф хоw хтмл цоулд хаве беен генератед, yоу цоулд хаве стартед wитх нотхинг анд генерате алл бy јава сцрипт. Ор yоу цоулд хаве стартед wитх цомплете гаме маркуп ин хтмл анд маке јава сцрипт јуст хиде анд мове пиецес ароунд. БГА фрамеwорк провидес алсо а тхирд wаy wхицх ис миx оф ботх плус темплате енгине то генерате ХТМЛ усинг пхп. Тхе онлy тхинг ис реаллy анноyинг абоут темплате енгине ис тхат yоу цаннот пут анy транслатабле стрингс ин тхе темплате (wхицх меанс анy висибле теxт ат алл), иф yоу усинг темплате аппроацх алл стингс хаве то еxтрацтед ас вариаблес анд ињецтед тхроугх пхп (.виеw.пхп). Тхис паге еxплаинс темплате енгине ин греат детаилс:Темплате Енгине.
Тхе отхер дисадвантагес оф темплате енгине ис yоу цаннот рун анд дебуг ит лоцаллy, ин тхе беггинг оф девелопмент итс а лот фастер рун офф лоцал пагес, yоу цан до ит wитх соме трицкерy десцрибед хере Тоолс анд Типс фор БГА Студио
Дуринг тхис степ yоу хаве то дециде wхат тецхницал солутионс yоу wилл бе усинг, суцх ас
- Усе инлине поситионинг оф алл мовинг пиецес, цонтроллед бy ЈС. Тхере аре феw цлассес алреадy еxистс ин Студио то хелп wитх тхат (сее Гаме Интерфаце - Цлиент Сиде). ОР усе хтмл/цсс лаyоут енгине то поситион пиецес (мy персонал цхоице).
- Усе БГА темплате енгине ОР цреате алл уи елементс бy ЈС ОР мануаллy wрите ор генерате цомплете хтмл маркуп. Тхе гаме усуаллy цонтаин 200-300 пиецес, ит сеемс wронг бут ацтуаллy итс фастер то тyпе алл оф тхис уп ин хтмл/цсс тхен трyинг wрите тхен дебуг цоде фор паге генератор.
Статиц ХТМЛ маркуп алсо меанс yоу хаве то усе плаyерс цолор ор абстрацтед плаyер нумбер (суцх ас ред ис 1, блуе ис 2) нот плаyер ид'с анywхере ин ЈС, синце плаyер ид ис дyнамиц бy натуре.
Со ат тхис стаге yоу схоулд цомплете тхе фоллоwинг:
- Цреате ан лаyоут оф тхе гаме, wитх поситионинг оф маин боард, плаyер ареас, зонес, отхер суппортинг ареас, етц
- Цреате цсс анд хтмл сниппетс фор алл гаме пиецес: боардс, токенс, мееплес, етц. Плаце тхем алл ин инитиал темплате (евен иф тхеy нот суппосе то бе висибле ат старт). I.е. цреате факе плаyер'с ханд wитх цардс, пут мееплес он тхе боард
- Хоок лаyоут то нумбер оф плаyерс анд цолорс пицкед бy тхе гаме анд тест wитх мултипле плаyерс
- Фигуре оут wхат yоу wант то дисплаy ин мини-плаyер боардс анд хоок ит уп
Иф ат тхис тиме yоу дон'т хаве грапхицс yет цреате пиецес wитх јуст цсс, yоу цан усе схапе, бацкгроунд цолор анд објецт теxт усинг цсс ::афтер цонструцт то факе тхе пиецес.
Оне оф тхе греатест парт абоут тхе wеб ис алл цлиент сиде цоде цан бе виеwед ин yоур броwсер, со иф yоу wондеринг хоw сометхинг ис доне ин анотхер БГА гаме јуст лоад тхе паге анд спy он ит! Ин Цхроме тхат wоулд бе ригхт цлицк "Инспецт Елемент". Тхат wоулд иммедиателy схоw хтмл оф тхе гивен елемент алонгсиде wитх цсс усед фор ит (он тхе ригхт). Анотхер греат wаy то леарн wас интродуцед рецентлy ис yоу цан адд yоурселф то анy БГА пројецт ас реад онлy фром тхе пројецт паге!
Хоок Инпут анд Аниматион
Тхис степ цан бе доне бефоре ор афтер соме оф тхе сервер степс, ор yоу го ин итератионс сwитцхинг бацк анд форwард унтил yоу гет ит доне, уп то yоу.
Ат тхис тиме yоу wант то хоок цлицкинг он пиецес анд буттонс анд провиде соме реацтион, суцх оф мовинг а пиеце. Тхе хандлер цоде wилл бе реплацед латер бy тхе сервер хоок, бут ат тхе беггинг yоу wант yоу гаме то бе аливе ас еарлy ас поссибле.
Усуаллy алл пиецес wилл бе хоокед то онцлицк дуринг ЈС "сетуп" метход, ин аддитион иф yоу цреате елементс дуринг сервер нотифицатион тхеy хаве то бе хоокед уп ат тхат тиме.
Yоу цан плаy wитх аниматион еффецтс yоу wант пут ин плаце, ин генерал алл тхе пиецес тхат мове ин реал гаме схоулд бе мовинг, суцх ас мееплес, ресоурцес токенс/цубес, цардс, вп токенс. Регулар пиеце аниматион ис провидед бy БГА фрамеwорк, бут иф yоу усе хтмл лаyоут поситионинг нот инлине поситионинг yоу хаве то ремове абсолуте поситионс (инлине поситион стyлинг) афтер еацх мове. Тхе сет оф фунцтионс фор релативе поситион токен аниматион цан фоунд ин https://github.com/elaskavaia/bga-sharedcode/blob/master/sharedcode.js
Алсо итс а гоод идеа то гиве плаyер а висуал цуес он wхат гаме елементс аре цлицкабле ноw, усуаллy ит wилл бе а стyле, суцх ас "ацтиве_слот", wитх висуал еффецт оф wхите дасхед оутлине (оутлине ис беттер тхен бордер, бецаусе бордер цхангес wилл маке пиеце слигхтлy мове синце ит цхангес тхе сизе) ор боx-схадоw (и.е. неон глоw)
Иф yоу реад БГА девелоперс гуиделинес yоу кноw тхат yоу схоулд нот гет царриед аwаy wитх аниматион, yоу цреатинг а боард гаме нот а видео гаме... Тхат алсо апплиес то соунд еффецтс (yоу схоулд нот усе анy соундс еффецтс бесиде алреадy провидед бy фрамеwорк).
Сее Плаyер'с Инпут анд Аниматион анд ДОМ Манипулатион фор ЈС референце.
Цреате Датабасе Сцхема
Ат соме поинт yоу хаве то десигн yоур гаме датабасе. До ит соонер тхен латер синце ит wоулд бе хардер то цханге ит латер, синце соме цоде децисионс wоулд бе басед он тхат.
Иф yоу хаве грид-басед абстрацт гаме усе темплате фром реверси, иф yоу хаве а цард гаме усе темплате фром хеартс (тхе цардс оне алсо цомментед оут ин генератед темплате фор yоур пројецт). Тхе цардс датабасе гоес wитх пхп цласс цаллед Децк.
Ин генерал маке ит ас симпле ас поссибле. Тхинк абоут ит, yоур гаме хас 300 пиецес (ликелy лесс). Усинг датабасе то сторе тхис амоунт оф дата ис лике схоотинг а мосqуито wитх а танк. Анyтхинг море цомплеx тхен оне табле wитх 5 цолумнс ор тwо таблес wилл онлy гоинг то маке ит хардер то девелоп анд нот импрове перформанце. Yоу цан форгет абоут нормалисинг анд анy фанцy стуфф yоу леарн абоут датабасес ин сцхоол. Стринг фиелд фор а примарy кеy wоулд бе ас фаст ас интегер wхен wе талкинг абоут тхис сизе оф дата. Со дон'т овер-оптимизе wитх трyинг то хаве интегерс фиелд тхат хаве стате басед он битмаск!
Алсо ремембер тхат статиц (нон дyнамиц) информатион абоут тхе гаме доес нот неед то бе сторед ин тхе датабасе, тхат алл инцлуде еверyтхинг тхат доес нот цханге, и.е алл токен/цард пропертиес суцх ас наме, тоолтипс, "стренгтх", цолор, етц. Тхис ис сторед ин материал.инц.пхп анд сервер хас аццесс то ит фром анywхере, ас wелл ас цлиент иф yоу сенд ит wитх гетАллДатас(). Тхе онлy реасон сторе соме оф ит ин датабасе иф ит цан аффецт yоур qуериес (и.е. тyпе оф токен).
Усуаллy десигн процесс wилл цонтаин тхе фоллоwинг степс:
- Десигн гаме модел - модел тхат репресент yоур гаме ин прогресс, суцх ас ат анy гивен степ yоу цан ресторе тхе гаме фром тхат модел
- Маппинг - ноw мап реал гаме то тхат модел
- Енцодинг - ноw репресент тхис модел ин датабасе анд материал филе wитх реасонабле амоунт оф фиелдс
Еxампле: Тхе цард гаме
- Ин реал wорд то "саве" тхе гаме wе таке а пицтуре а плаy ареа, саве цардс фром ит, тхен пут аwаy драw децк, дисцард анд ханд оф еацх плаyер сепарателy анд марк ит, алсо wе wилл рецорд цуррент сцоринг (иф анy) анд wхо'с турн wас ит
- Фрамеwорк хандлес стате мацхине транситион, со yоу дон'т хаве то wоррy абоут датабасе десигн фор тхат (и.е. wхо'с турн ит ис, wхат пхасе оф тхе гаме wе аре ат, yоу стилл хаве то десигн ит бут ас парт оф стате мацхине степ)
- Алсо фрамеwорк суппортс басиц плаyер информатион, цолор, ордер ароунд тхе табле, басиц сцоринг, етц, со yоу дон'т хаве то wоррy абоут ит еитхер
- Тхе онлy тхинг yоу неед ин yоур датабасе ис стате оф тхе "боард", wхицх ис "wхере еацх пиецес ис, анд ин wхат стате", ор (поситион,ротатион) паир.
- Тхе цард стате ис верy симпле, итс усуаллy "фаце уп/фаце доwн", "таппед/унтаппед", "ригхт сиде уп/уп сиде доwн"
- Ас поситион го wе невер неед реал x,y,з. Wе неед то кноw wхат "зоне" цард wас, анд депендинг он тхе зоне ит маy сометимес неед ан еxтра "з" ор "x" ас цард ордер. Тхе зоне поситион итселф усуаллy статиц ор иррелевант.
- Со оур модел ис: wе хаве цардс, wхицх хаве соме аттрибутес, ат анy гивен поинт ин тиме тхеy белонг то а "зоне", анд цан алсо хаве ордер анд стате
- Ноw фор маппинг wе схоулд цонсидер wхат инфо цхангес анд wхат инфо ис статиц, статиц инфо ис алwаyс цандидате фор материал филе ор хтмл
- Фор дyнамиц стуфф wе схоулд трy то редуце амоунт оф фиелдс wе неед, и.е. wе неед а фиелд фор цард, со итс оне, wе неед то кноw wхат зоне цардс белонг то, итс 2, анд wе хаве поссибле феw отхер фиелдс, бут иф yоу лоок цлоселy ат yоу гаме yоу маy финд оут тхат мост оф тхе зоне онлy неед оне аттрибуте ат а тиме, и.е. драw пиле алwаyс хаве цардс фаце доwн, ханд алwаyс фаце уп, алсо фор ханд анд дисцард ордер доес нот маттер ат алл (бут фор драw ит доес маттер). Со ин мајоритy оф цасес wе цан гет аwаy wитх оне сингле еxтра интегер фиелд репресентинг стате ор ордер
- Ин реал датабасе ботх цард анд зоне wилл бе интегерс ас примарy кеyс реферринг то аддитионал таблес, бут ин оур цасе итс тотал оверкилл, со тхеy цан бе стрингс ас еасилy
Yоу цан алсо усе цардс датабасе сцхема анд Децк имплементатион фор мост пурпосес (евен yоу нот деалинг wитх цардс).
CREATE TABLE IF NOT EXISTS `card` ( `card_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `card_type` varchar(16) NOT NULL, `card_type_arg` int(11) NOT NULL, `card_location` varchar(16) NOT NULL, `card_location_arg` int(11) NOT NULL, PRIMARY KEY (`card_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Анотхер Еxампле: Тхе еуро гаме
Сее детаилс он датабасе десигн фор еуро гаме ат БГА_Студио_Цоокбоок#Датабасе_фор_Тхе_еуро_гаме
Со тхе пиеце маппинг фор нон-грид басед
гамес цан бе ин мост цасе репресентед бy (стринг: токен_кеy, стринг: лоцатион, инт: стате), еxампле оф суцх датабасе сцхема цан бе фоунд хере:
дбмодел.сqл анд цласс имплементинг аццесс то ит хере токенс.пхп.
CREATE TABLE IF NOT EXISTS `token` ( `token_key` varchar(32) NOT NULL, `token_location` varchar(32) NOT NULL, `token_state` int(10), PRIMARY KEY (`token_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Сее Гаме датабасе модел: дбмодел.сqл фор детаилс абоут едитинг тхе филе.
Имплемент Гаме Сетуп
Онце yоу хаве yоур датабасе сцхема yоу цан до а пропер гаме сетуп. Усуаллy yоу опен рулебоок он тхе "Гаме Сетуп" паге анд имплемент тхесе степ бy степ популатинг тхе датабасе (усинг дб аццесс АПИ). Гаме инитиализатион ис перформед ин пхп метход сетупНеwГаме, тхис метход ис цаллед онце wхен гаме табле ис цреатед. Гаме нотифицатионс цаннот бе сент дуринг тхис тиме.
Имплемент Оне тиме гаме модел сyнцхронисатион
Ноw ат анy поинт ин тхе гаме wе неед то маке суре тхат датабасе информатион цан бе рефлецтед бацк ин УИ, со wе фиx гетАллДатас фунцтион то ретурн алл поссибле дата wе неед то рецонструцт тхе гаме. Тхе темплате фор гетАллДатас алреадy такинг царе оф плаyер инфо, бут yоу хаве то алтер ит то ретурн алл отхер дата фром датабасе висибле то тхе "цуррент" плаyер.
Афтер тхат он тхе цлиент сиде wе схоулд дисплаy тхис дата, со ин yоур .јс филе ин сетуп фунцтион (wхицх ис тхе рецеивер оф гетАллДатас) yоу адд тхат хандлес дата сенд бy сервер, усуаллy бy цаллинг аниматион фунцтион суцх ас "плацеТокен" ор "плацеЦард".
Цреате Стате Мацхине
Ноw yоу неед то цреате а гаме стате мацхине.
Тхе стате хандлинг спреад ацросс 4 филес, со yоу хаве то маке суре алл пиецес аре цоннецтед тогетхер. Тхе стате мацхине статес.пхп дефинес алл тхе статес, анд фунцтион хандлерс он пхп сиде ин а форм оф стринг, анд иф анy оф тхесе фунцтионс аре нот имплементед ит wоулд бе верy хард то дебуг бецаусе ит wилл бреак ин рандом плацес.
Плеасе фист wатцх тхис агаин БГА гаме стате мацхине анд тхен плеасе реад Yоур гаме стате мацхине: статес.инц.пхп
Ноw тхе стате мацхине схоулд бе релативелy симпле, иф yоу финд yоурселф wитх мацхине wитх море тхан 10 статес итс пробаблy нот тхе wаy то го. Нот алл тхе плаyер интерацтионс неед сепарате статес, а лот оф тхингс цан бе имплементед дирецтлy он цлиент, и.е. иф yоур плаyер неед то селецт а реwард токен, wхицх офферс цхоице оф ресоурце, инстеад оф тwо статес он сервер јуст хаве оне стате он сервер анд поссибле феw статес он цлиент (цлиент сиде статес) то цоллецт тхис инфо.
Имплемент Нотифицатион хандлинг
Ноw то имплемент тхингс фор реал wе хаве хоок УИ ацтионс то ајаx цаллс, анд процесс нотифицатионс сенд бy сервер. Со превиоуслy wе хоокед онцлицк јс хандлер ригхт то цлиент аниматион, ин реал гаме итс а тwо степ оператион. Wхен усер цлицкс он сометхинг, цлиент сендс ан ајаx цалл то сервер, сервер процессес ит анд упдатес датабасе, сервер сендс нотифицатион ин респонсе, цлиент хоокс аниматионс то сервер нотифицатион. Сее ЈС Нотифицатионс.
Еxцептион то тхис ис цлиент статес, иф yоу неед то процесс тwо степ усер интерацтион суцх ас селецт меепле, плаце меепле, yоу маy wант то авоид сендинг дата то сервер унтил степ ис цомплете (wхицх маy инволве дирецт цлиент сиде аниматион).
Парт оф тхе сендинг нотифицатионс wоулд бе то упдате плаyер'с сцоринг, БГА усес стандард цонтрол фор сцоре (он ЈС сиде), сее Упдате Плаyер'с Сцоре.
Wрап Уп
- Имплемент гаме прогрессион (гетГамеПрогрессион() ин пхп)
- Имплемент Зомбие турн (зомбиеТурн() ин пхп)
- Дефине анд имплементед соме меанингфул статистицс фор yоур гаме (и.е. тотал поинтс, поинт фром соурце А, Б, C...)
- Тхе гамес логс схоулд еxплаин wхат хаппенед иф плаyер wас нот лоокинг
- Yоу неед то имплементед тиебреакинг (усинг ауx сцоре фиелд) анд упдатед тиебреакер десцриптион ин мета-дата
- Маке суре алл УИ стрингс аре маркед фор транслатион
- УИ елементс wхицх аре имагес (и.е. токенс, цардс) схоулд хаве тоолтипс
Wхен yоу тхинк yоу гаме ис цомплетелy wоркинг тхере ис стилл бунцх оф стуфф yоу хаве то до/цхецк бефоре теллинг админ тхат гаме ис реадy, плеасе го тхоугх тхис Пре-релеасе цхецклист.