Хочу сделать игру, но есть проблемы в теоритическом плане. Подскажите.

DUBECZ

Новичок
В общем идея такова:
Есть большая карта 40 на 40 клеток, каждая клетка 20px на 20px.
В связи с тем, что все будет храниться в БД, я разделил всю карту на 4 сектора по 20 на 20 клеток и поместил их в отдельные таблицы, для оптимизации.
Сначала я думал что будут еще таблицы в которых будут содержаться отдельно сама карта сектора например:

11111111000
11111110000
11111100000 карта 1
11111000000
00000000000
00000000000

(Все в миниатюре)

Где 1 это солнце, которое должно было заполняться PHP скриптом, а ноль просто черные пустые клетки.
Когда игрок заходил в игру 1 раз создавалась (в случайном месте) его планета:

11111111000
11111110000
11111100000 карта2
11111000000
00000000090-------где 9 его планета
00000000000

Следующая таблица отвечала за изменения в этой карте, то есть для оптимизации я не храню каждую клетку отдельным полем в БД, а создаю только тогда, когда на ней например есть юнит игрока и по его уходу из клетки я удаляю эту информацию и записываю новую клетку.

То есть 1 карта т. е. таблица создавалась исключительно для того чтобы запомнить ландшафт и не загрязнять 2 таблицу

НО вот и 1 вопрос: Как или куда записать что (0) это уже не (0, пустая черная клетка ), а (9) планета определенного игрока?

Искал я искал и наткнулся на одно нововведение:

Очередная интересная задача — избавиться от перезагрузки страницы. Тут все оказалось достаточно просто. Запись всех игровых действий в лог, выборка аяксом свежих логов с помощью long polling, анимация на карте полученных данных. В итоге, в двух разных браузерах я видел одни и те же действия, совершаемые в третьем.

Ссылка http://habrahabr.ru/blogs/gdev/128106/

И вопрос 2 по обзацу: Где он хранил логи в БД или в файле?
И как он аяксом вытаскивал их?(объясните на пальцах, типо давал запрос туда-то, брал от туда)
 

HEm

Сетевой бобер
Развиваться надо от простого к сложному. Для начала напишите гостевую книгу.

Обратите внимание, на хабре человек пишет "В качестве фреймворка был выбран Сodeigniter, на нем я правил несколько чужих проектов, и был некий опыт. Клиентскую часть было решено писать на JS, точнее на jQuery, ведь flash я еще больше не знал."
 

DUBECZ

Новичок
Развиваться надо от простого к сложному. Для начала напишите гостевую книгу.

Обратите внимание, на хабре человек пишет "В качестве фреймворка был выбран Сodeigniter, на нем я правил несколько чужих проектов, и был некий опыт. Клиентскую часть было решено писать на JS, точнее на jQuery, ведь flash я еще больше не знал."
НО я не прошу разьеснять мне работу движка. Я просто хочу совета по созданию таблиц в бд и как их между собой свезать.
 

HEm

Сетевой бобер
Вы понимаете, что сейчас вы выглядите как человек который говорит "Я хочу построить самолет. Не надо мне объяснять как устроен самолет, просто объясните мне, каким инструментом можно винтами прикреплять друг к другу детали?"
Притом, этот человек даже молотком гвозди не забивал никогда.

Не подумайте, я не хочу вас обидеть. Я с большим уважением отношусь к людям, которые на энтузиазме поднимают какие то интересные проекты. Но с таким уровнем вопросов вам не поднять и сотой доли этого проекта. Знание матчасти никто не отменял.
 

zerkms

TDD infected
Команда форума
Зачем карту и события на карте постоянно брать из базы.
Можно всю картину держать в памяти постоянно и только действия игрока сохранять.
Ну тогда давайте сразу за уши притянем к вопросу и NoSQL. Чтобы уж совсем было модно.
Потом ещё посоветуем в облаке захоститься - тоже ведь тренд, почему бы и нет.

Но есть маленькая проблема - вся эта мода никакого отношения к вопросу не имеет.

У человека нет проблемы, что на базу нагрузка нереальная, у него есть проблема - что кода вообще нет, и нечего тюнить ))
 

AmdY

Пью пиво
Команда форума
У человека нет проблемы, что на базу нагрузка нереальная, у него есть проблема - что кода вообще нет, и нечего тюнить ))
[ирония]тогда нужно применять WebSocket[/ирония]
 

DUBECZ

Новичок
Факт того что кода нет, да это правда.
Я просто такой человек который не кидается на что-то не продумавши и не понявши.
Поэтому я и создал этот топик. Просто хочу совета как лучше, а браться за какую нибудь часть, не продумавши ее, и потом застопорится из-за того, что не знаешь что дальше, меня не устраивает.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я просто такой человек который не кидается на что-то не продумавши и не понявши.
Видимо поэтому ты и скакнул с базы на long-polling?

Напиши план, по пунктам — что надо сделать, в какой последовательности.
Потом берешь каждый пункт, расписываешь подробнее — на какие этапы делится он, и так пока каждый под-пункт не станет занимать у тебя что-то, что можно сделать примерно за день. Потом берешь и делаешь.
 
Сверху