This is a documentation for Board Game Arena: play board games online !
БГА Студио Цоокбоок
WОРК ИН ПРОГРЕСС
Тхис паге ис цоллецтион оф десигн анд имплементатион реципес фор БГА Студио фрамеwорк. Фор тоолинг анд усаге реципес сее Тоолс анд типс оф БГА Студио.
Висуал Еффецтс, Лаyоут анд Аниматион
Цреате алл пиецес статицаллy
Ингредиентс: ггг_ггг.тпл, ггг.цсс, ггг.виеw.пхп (оптионал)
- Цреате АЛЛ гаме пиецес ин хтмл темплате (.тпл)
- АЛЛ пиецес схоулд хаве униqуе ид, анд ит схоулд бе меанингфул, и.е. меепле_ред_1д
- До нот усе инлине стyлинг
- Ид оф плаyер'с специфиц пиецес схоулд усе соме сорт оф 'цолор' идентифицатион, синце плаyер ид цаннот бе усед ин статиц лаyоут, yоу цан усе енглисх цолор наме, хеx 6 цхар валуе, ор цолор "нумбер" (1,2,3...)
- Пиецес схоулд хаве сепаратед цласс фор итс цолор, тyпе, етц, со ит цан бе еасилy стyлед ин гроупс. Ин еxампле белоw yоу ноw цан стyле алл мееплес, алл ред мееплес ор алл ред токенс, ор алл "фирст" мееплес
ин .тпл филе:
<div id="home_red" class="home red"> <div id="meeple_red_1" class="meeple red n1"></div> <div id="meeple_red_2" class="meeple red n2"></div> </div>
ин .цсс филе:
.meeple { width: 32px; height: 39px; background-image: url(img/78_64_stand_meeples.png); background-size: 352px; } .meeple.red { background-position: 30% 0%; }
- Тхере схоулд бе страигхт форwард маппинг бетwеен сервер ид анд јс ид (ор 1:1)
- Yоу плаце објецтс ин дифферент зонес оф тхе лаyоут, анд сетуп цсс то таке царе оф лаyоут
.home .meeple{ display: inline-block; }
- Иф yоу неед то хаве а темпорарy објецт тхат лоок лике оригинал yоу цан усе дојо.цлоне (анд цханге ид то соме темп ид)
- Иф тхере ис лотс оф репетитион ор зоне грид yоу цан усе темплате генератор, бут ињецт стyле децларатион ин цсс инстеад оф инлине стyле фор флеxибилитy
Ноте:
- Иф yоу усе тхис модел yоу цаннот усе премаде јс цомпонентс суцх ас Стоцк анд Зоне
Гаме Модел анд Датабасе десигн
Датабасе фор "Тхе еуро гаме"
Летс саy wе хаве wоркер плацемент гаме wитх wоркерс, дице, токенс, боард, ресоурцес, монеy анд вп. Wоркерс анд дице цан бе плацед ин вариоус зонес он тхе боард, анд yоу цан гет ресоурцес, монеy, токенс анд вп ин yоур хоме зоне. Алсо токенс цан бе флиппед ор нот флиппед.
Ноw летс трy то мап ит, wе хаве
- (меепле,зоне)
- (дие, зоне, сидеуп)
- (ресоурце цубе/монеy токен/вп токен,плаyер хоме зоне)
- (токен, плаyер хоме зоне, флип стате)
Wе цан нотице тхат ресоурце анд монеy аре унцоунтабле, анд дон'т неед то бе трацк индивидуаллy со wе цан реплаце оур маппинг то
- (ресоурце тyпе/монеy,плаyер хоме зоне, цоунт)
Ноw wхен wе гет то енцоде ит wе цан сее тхат еверyтхинг цан бе енцодед ас (објецт,зоне,стате) форм, wхере објецт анд зоне ис стринг анд стате ис интегер. Тхе ресоурце маппинг ис слигхтлy дифферент семантицаллy со yоу цан го wитх тwо табле, ор цоунтинг усинг саме табле wитх стате беен усед ас цоунт фор ресоурцес.
Со тхе пиеце маппинг фор нон-грид басед гамес цан бе ин мост цасе репресентед бy (стринг: токен_кеy, стринг: лоцатион, инт: стате), еxампле оф суцх датабасе сцхема цан бе фоунд хере: дбмодел.сqл анд цласс имплементинг аццесс то ит хере табле.гаме.пхп.
Вариант 1: Минималистиц
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;
Вариант 2.1: Аддитионал ресоурце табле, усинг саме лоцатион ас токен табле
CREATE TABLE IF NOT EXISTS `resource` ( `resource_type` varchar(32) NOT NULL, `resource_location` varchar(32) NOT NULL, `resource_count` int(10) signed NOT NULL, PRIMARY KEY (`resource_type`,`resource_location`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Вариант 2.2: Аддитионал ресоурце табле, ресоурце цоунт фор еацх плаyер ид
CREATE TABLE IF NOT EXISTS `resource` ( `player_id` int(10) unsigned NOT NULL, `resource_key` varchar(32) NOT NULL, `resource_count` int(10) signed NOT NULL, PRIMARY KEY (`player_id`,`resource_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE resource ADD CONSTRAINT fk_player_id FOREIGN KEY (player_id) REFERENCES player(player_id);
Вариант 3: Море нормалисед
Тхис версион ис симилар то "цард" табле фром хеартс туториал, yоу цан алсо усе еxацт цардс датабасе сцхема анд Децк имплементатион фор мост пурпосес (евен yоу нот деалинг wитх цардс).
CREATE TABLE IF NOT EXISTS `token` ( `token_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `token_type` varchar(16) NOT NULL, `token_arg` int(11) NOT NULL, `token_location` varchar(32) NOT NULL, `token_state` int(10), PRIMARY KEY (`token_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ассортед Стуфф
тбд