Volfi4, код делфи? Тут вроде как о пхп речь идет. Ну да ладно. human - это что? Классы ты не используешь, значит это переменная? И содержит она числовое значение хп ОДНОГО человека. Тогда следующая функция является бредом сивой кобылы. Сразу по двум причинам. Зачем в дроп передавать хп человека? И каждый предмет у тебя будет отдельной переменной? Даже не массивом???? А как этот код будет выглядеть если у тебя будет 100 человек и у каждого из них динамический рюкзак? Как ты вообще умудрился связать human и item2?? На уровне подсознания? Т.е. ты условился что предмет из item2 является собственностью переменной human? Мои игры
Volfi4, ну, начнем с того что код прошивки марсохода вам не покажут, если только вы не ооочень большая шишка и не его разработчик. Так что прочитанное в желтой прессе можно смело выкинуть в корзину и забыть. Ну да, вопрос только в том сколько времени у вас займет разработка. С ООП 3-4 месяца, без в 3 раза больше. Я и не спорю что без ООП можно написать абсолютно то же самое. Вот только размер будет больше и понимаемость кода упадет почти до нуля. Напишите аналог тех двух строк без ООП, так что бы это было компактно, интуитивно понятно и универсально. Мои игры
Volfi4, как раз таки и нет. Конструкция была бы вида собака->есть(еда); что гораздо более логично и проще реализовать. В дву словах: в функции есть, клесса собака мы будем изменять показатель голода и уничтожать переданный по ссылке элемент еда. Вот и все, все сделано по человечески, логично, просто, удобочитаемо. Кстати, всегда поражали программисты которые пишут вот так вот через жопу: еда->есть(собака)...
ООП нужно использовать там где он нужен. В проектах однодневках он явно не нужен. В сложных проектах или в проектах наработки которых будут использоваться в будущем его использовать необходимо, т.к. это облегчит работу с кодом в будущем. Конечно если будут соблюдены элементарные правила чистописания, если классы и методы будут иметь человеческие имена и т.д.
И PHP отнюдь не исключение. Попробуйте открыть исходники любого крупного проекта, везде ООП. Или вы считаете их зацикленными? А когда проект создается уже далеко не первый, всегда будет уже гора кода написанного ранее и наверняка где то там, в этой горе уже пылится процентов 70 того кода который теперь предстоит писать с нуля, только потому что раньше не был использован ООП и разобраться в этой горе довольно трудно.
Добавлено (03.03.2013, 02:51) --------------------------------------------- Stage, если проект построен с использованием ООП и все красиво названо, то он сам по себе становится инструкцией и документацией к себе же. В таком проекте разобраться проблем не составит. Простой пример:
Код
$human->heall(10); // человек лечить 10 $human->item[2]->drop(); // человек вещь 2 бросить
Мы просто читаем что написано и уже понимаем что проиходит в функциях и с кем/чем это происходит. Хотелось бы увидеть аналог этих двух строк без ООП. Так же читабельно будет?
Тупое же узание ООП без расчески из человеческих слов ни к чему хорошему не приведет:
Код
$a->s(10); $a->q[2]->n();
Цитата (Stage)
Такие тезисы выдвигают только ооп-мартышки, нормальные же люди выбирают технологии в зависимости от задачи.
Т.е. ты начинаешь наезды на ровном месте, не приводя ни одного внятного факта и считаешь себя человеком вменяемым? Ммм... Давай приведи преимущества других технологий. Товарищ не мартышка, нормальный ты наш. Какую же задачу ты будешь решать без ООП? Нет, я не спорю, можно и тизерку и игру браузерную написать (мы ведь про пхп) без ООП но сколько ты будешь при этом ебаться ты знаешь? Напиши аналог Ботвы без ООП. Вот знаешь, опыт мне подсказывает, что хрен у тебя что получится. Особенно правки вносить в такой проект через два года... Мои игры
class dog { var $heal=100; var $name='Bobik'; var $happy=100; var $age = 0;
public function go_walk() { $this->heal = $this->heal - 10; $this->happy = $this->happy +10; $this->age++; }
public function let_heal() { $this->heal = $this->heal + 10; $this->happy = $this->happy - 10; $this->age++; } }
class human { var name = 'Vova'; var my_dog;
publick function go_walk_dog($dog) { $dog->go_walk(); } }
$human1 = new human(); $human1->dog = new dog();
$human2 = new human(); $human2->go_walk_dog(&$human1->dog);
Вот тебе класс для пхп где один человек является владельцем собаки, а другой ее выгуливает, и эта собака при этом становится счастлива и растет))) Дальше можно прилепить еще человека который будет ее лечить,ибо собака теряет хп при выгулке, и так далее...
По поводу того зачем нужно ооп. А вы попробуйте без ооп написать сколько нибудь стоящий проект, продать его, и через год, когда ваш заказчик захочет внести правки в этот БОЛЬШОЙ проект, в котором он и сам успел покопаться, разобраться. Я не сомневаюсь что у вас это получится, но вот времени и сил вы потратите в десятки раз больше чем с ооп.
Кстати на ооп свет клином не сошелся. Читайте и изучайте MVC. Без знания этого вам нечего делать в программировании. Разве что на заводе, программировать компрессоры...
Преимущества ооп и мвц не понимают только новички, человек который уже профессионально занимается программированием и делает крупные проекты, должен понимать их преимущества. Мои игры
Есть такая игра - Settlers Online... Может они украли твою идею???
Игру я эту видел. И процитирую теперь себя.
Quote (Ivin)
Игровой процесс будет похож на мою старенькую игру http://isgameplanet.at.ua/load/3-1-0-4
Settlers Online ну ни капельки не похожа... Разве что тем что все таки тоже стратегия... Хотя наверное я все же погорячился... Во первых. Прямого управления строительством в игре не будет (как собственно и строительства). Во вторых. В игре мы управляем не городом (как в сетлерсах) а государством. В третьих. Посмотри все таки игру пример. Слишком уж долго перечислять все различия. Мои игры
Хорошая задумка Была идея, когда то, сделать нечто подобно... Но руки не дошли... Возможно позже вернусь к своей идее... А пока с интересом буду наблюдать за твоим проектом... Мои игры
Например возникнет задача вывести список клеток где находится определённый ресурс, так бы просто запросом задача решилась, а при сериализации придётся вручную пройтись по всему массиву циклом. А чем больше кода, тем больше вероятность ошибки.
Очень большой размер таблицы это сколько? 1 000 000 записей? 1 000 000 000 записей? Впрочем не важно, чем больше будет размер, тем хуже будет работать сериалайз, т.е. медленнее. Т.е. ты на разбор карты будешь тратить намного больше времени, чем простым запросом в таблицу. Поэтому не рекомендую использовать сериалайз. Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще.
Нет, ты не совсем понял. Цифры привожу условно. Размер карты 100х100. Это 10000 записей в таблицу карты для каждого мира. Миров одновременно существовать может очень много. Скажем одновременное существование 10 миров с таким размером карты дает нам уже 100k записей. Из этих 100k нужно каждый раз выбирать 10k записей связанных конкретно с этим миром. Скажем по полю `worldid`. Это нагрузка на БД. Сералайз даст нагрузку на проц. Сериалайз и ансериалайз массива 100х100 займет не так уж много процессорного времени... Вопрос не столько в том что же будет работать быстрее? А в том что выгоднее использовать? Потому как если БД от обилия запросов ляжет... Будет не очень хорошо...
Сколько ты ожидаешь одновременно играющих: миллион, миллиард? В ближайший год тебе такого количества не собрать, поэтому рекомендую делать так, как проще.
Согласен!
Не в том дело сколько будет в ближайший год. Мне выполнять двойную работу. Лучше я сейчас нормальную систему продумаю и реализую с возможностью расширения от ожидаемых в первый год 10-100 человек до тех же 10000 человек... Чем потом буду думать, как же ее переделать что бы оно все работало нормально и без багов...
Quote (anton-gar)
Странно, в "Рус-варс" примерно также - только там деревни (те же функции - население, доход и т.д.), вместо колоний, их так же нужно захватить/колонизировать, развивать, получать доход в замок.
Посмотри игру пример, думаю там в общих чертах можно все понять. Абсолютно разные даже концепции игр. Мои игры
romgerman, а я играл в похожую, кажется, "rus-wars" или как-то так.
Посмотрел рус варс... Нет, это совершенно не похоже на то что должно быть...
Сейчас размышляю над реализацией... Делать буду на PHP/MySQL, возможно повтыкаю немного JS (в частности не плохо было бы все на Ajax'ах сделать )... Возникает сразу же несколько вопросов... 1) Как запихнуть карту в базу? Точнее, как ЛУЧШЕ, ее туда запихнуть? Вариантов решения я вижу несколько: а) Тупо каждую ячейку карты запихивать в отдельную запись таблицы. Тогда у этой таблицы должны быть поля координат (x,y). Недостатки этого варианта: очень большой размер таблицы (очень много записей), при большом числе одновременно проводимых игр и большом размере карт будут проблемы со скоростью работы. б) Использовать сералайз. Все просто, размер каждой отдельной записи карт будет большой, каждая игровая карта будет находится в отдельной записе.
Лично я склоняюсь ко второму варианту... Мне кажется тормозов будет поменьше... В разы... Собственно технические вопросы на этом пока заканчиваются. В реализации остального функционала особых трудностей не вижу.
Еще немного информации по поводу будущей игры: В системе будет находится несколько игр одновременно, разной продолжительности с разными правилами, называться будут они мирами. За неделю до запуска мира начинается регистрация игроков. Каждый кто зарегистрируется получит письмо, когда игра начнется. Игра продлится от одного дня до недели.
Карта имеет ограниченный размер. Вся карта поделена на провинции, квадратики. Провинции имеют такие параметры как тип местности, рельеф, природный ресурс. Все эти параметры будут на прямую влиять на скорость колонизации провинции, максимальное население, скорость роста населения, скорость роста богатства и прочее. Колонизация будет происходить автоматически, как собственно и практически все остальное. От богатства провы на прямую зависит размер налоговых сборов с нее. От размера населения скорость прироста богатства.
Под контролем игрока будет: бюджет государства, наука государства, дипломатия и шпионаж. Прямого управления колонизацией и прочими элементами игры не будет. Игрок будет опосредствованно влиять на игровой процесс. Т.е. в принципе и без игрока его гос-во не умрет. Но, будут вещи которые без игрока не решаться никак, например дипломатия.
Собственно пишу тут по нескольким причинам: 1) Надоело постоянно терять файлы с концептами и все время переписывать. 2) Хотелось бы услышать какие либо советы, помощь или критику на худой конец.
Теперь собсно сама идея игры. Идея игры проста и сложна одновременно. Это не травиан и прочие подобные игры и даже не похожа. В первую очередь следует заметить, длительность игры будет не большой, от суток до недели. Игровой процесс будет похож на мою старенькую игру http://isgameplanet.at.ua/load/3-1-0-4 Для тех кому лень смотреть или кто не понял в ней ничего опишу в двух словах: Начинаем игру мы не большим поселением, вокруг нас густой темный туман ( ) разведываем новые территории за определенную плату и колонизируем их. Деньги получаем с налогов с наших провинций, чем больше в ней людей, тем больше доход. Население растет со временем, но страдает от войны. Добравшись до соседа можем начать войну и отобрать у него территории. Наша задача захватить все провинции.
Вот вроде все. Позже напишу больше. Щас пишу с работы, уже конец дня, пора домой ехать так что напишу наверное только завтра утром уже... Спасибо за ваши коментарии. Надеюсь я не нарушил случайно какое то правило данного форума... Мои игры
f@ck_lab, жаль... Зато теперь есть еще один стимул изучить DirectX...
Добавлено (15.10.2010, 10:12) --------------------------------------------- Выложил версию 1,3! Изменения: 1) 5 режимов скоростей 2) Весь игровой текст вынесен во внешний файл 3) Исправлено куча ошибок
K0DAK47, зачем же так жестоко... Все мы когда-то начинали, все были новичками... MadDaniell, как я понял ты хочешь сделать римейк именно 9 части? Ну, сколько таких тем уже читаю, а вот римейк девятки вижу впервые... 90% народу от нее плюется, не то что римейки делать... Собственно я и сам поклонник линейки ММ, только 6, 7 и 8 частей... ИМХО по 9 не стоит делать римейк... ЗЫ А вообще удачи Мои игры
Niger, генерируется тунель длиной N сегментов (зависит от длины выбраной игроком) и соответственно рисуется тунель только до определенной длины. Т.е. минимальный тунель содержит 250 сегментов, это 250 элементов массива, перед началом полета они генерируются, переменная длины тунеля становится равна 250 и когда номер сегмента тунеля больше значения длины тунеля (250) этот сегмент не рисуется, а когда положение игрока становится больше длины тунеля конец тунеля... При этом максимальная длина тунеля, теоретически, 10000 сегментов, т.к. это размер массива в котором содержатся элементы тунеля. Формировать же такой тунель можно бесконечно долго, пока будет хватать памяти, можно сделать его динамическим, тогда много памяти не потребуется. В общем, можно сказать, у тунеля есть конец... Мои игры
В крыму не знаю, но у нас в городе ни одного даже обычного кинотеатра нету...
Quote (ezhickovich)
Туннель просчитывается динамически? Или генерится до запуска игрового процесса?
Генерируется во время начала игры, когда игрок выбирает вариант (начать ... тунель) и во время запуска игры. Весь тунель находится в массиве, а рисуется только маленький его кусочек, которые реально мужет видеть игрок... Мои игры
че искать? Сходи в кинотеатр и вынеси в тихоря (с)
я бы сходил и вынес, но в нашем городе таких кинотеатров нет... Так что мне проблематичнее достать эти очки... Может когда к знакомым поеду так и сделаю... ЗЫ Город Мелитополь, Украина... Кто ездил в крым должен знать... Niger, Мои игры