| Разработка и ромхакинг > Разработка игр |
| Civgen - Цивилизация 1 на Sega Mega Drive |
| (1/5) > >> |
| sadhedg:
Здорово, Эмуленд. Я хочу портировать первую Цивилизацию на Сегу. Так как дело это не одного дня, на каком-то этапе всё же надо выкладывать то, что есть на данный момент. Тем более вдруг потом не будет возможности/желания продолжать. Сейчас готово движение юнитов, экран города и цикл обхода городов в начале хода, а поэтому два человека уже худо-бедно могут играть друг против друга, и поэтому этот прототип уже имеет какую-то играбельность, поэтому думаю, пора выложить. Однако никакого ИИ пока толком нет. Скачать РОМ: https://drive.google.com/open?id=1JPxEX7hjRQzrN2eFwlzNTQ7oIJR0IPUS Старая версия 1.4 (последняя, где игрок по умолчанию управлял всеми цивилизациями) https://drive.google.com/open?id=1LmaQV8c2vJYdk5ugD5kmDNJaqP_MJmKY Ридми с кнопками управления игрой (хотя думаю, обычно всё интуитивно понятно и можно быстро разобраться): https://drive.google.com/open?id=1VRvAKiBKxF7PXKmo80QucGmtATRZ_iG3 Список изменений (чтобы не писать лишний раз в топике): https://drive.google.com/open?id=1Aq1h2WCBDWru2C7h24_d4Q5eKbBs-hOI Я решил выложить в первую очередь тут, т.к., во-первых, я недостаточно силён в английском языке, чтобы свободно общаться на международных площадках, а во-вторых, всё же этот проэкт нарушение копирайта, а в России к этому общественное мнение мягче. Ну и Эмуленд ресурс достаточно популярный и мне знакомый и приятный. Приветствуется тестирование на оригинальном и неоригинальном железе, разных эмуляторах, баг репорты. Приветствуются указания на ошибки в переносе слов в цивилопедии и на ошибки в немногочисленных моих собственных английских текстах. Ещё из пожеланий - если по невероятному стечению обстоятельств у кого-то есть гайдбук Rome on 640k a day, я буду благодарен за его сканы (хотя это книжка немаленькая). Ну или я закажу его в бумажном виде рано или поздно. В свободном доступе его, увы, не найти. Написано на си с помощью библиотеки SGDK, благодаря которой на Сежку создано множество интересных вещей. Хотелось бы выразить благодарность многим людям на civfanatics, но т.к., во-первых, мне лень спрашивать у каждого разрешения на включение в титры, а во-вторых, без разрешения вставлять чьи-то имена считаю неэтичным, я ограничился в игре общей фразой. Когда речь идёт о прямом переписывании кода, это проект CivOne, а также код darkpanda. Использовано без разрешения. Исходники в ближайшее время выложены не будут. 1) Не думаю, что это так уж надо кому-то 2) написано это очень плохо и 3) писалось для себя. Ниже перечислено положение вещей на момент Public Alpha 1.5 Чего НЕТ из фич оригинала, но это планируется: 1)компьютерный игрок (есть только за варваров) 2)сохранение/чтение Зала Славы в/из SRAM 3)доступ к полной цивилопедии из меню игры 4)поиск города 5)реплей в конце игры 6)график развития в конце игры 7)действия после окончания игры, пока при сообщении о завоевании планеты/прибытии корабля на Альфу/игрок 1/2 выиграл игра зависает 8)гражданская война при захвате столицы большой цивилизации 9)экран города (он не имеет геймплейной ценности, а реализовать его чрезвычайно трудно, т.к. оригинальную графику придётся перерисовывать в 16 цветов, и она не пропорциональна 8-пиксельным тайлам. Возможно, следует взять графику со СНЕС-версии, но у меня нет инструментов для её дампа, придётся играть) 10)какая-нибудь специальная заставка при открытии технологии (Сид из оригинала вряд ли будет хорошо смотреться, но может, и он) 11)графика лидеров (поэтому и экрана победы нет, кроме "газетного" сообщения, ну и экрана переговоров, само собой - ИИ-то нет) 12)спавн варваров на суше 13)сообщения "7 лучших цивилизаций" время от времени 14)сообщение в начале игры "вы стали вождём племени бла-бла" (т.к. планируется, что перед нашим первым ходом будет ходить ИИ, а его нет) 15)эффекты от Великой Стены и ООН (т.к. нет ИИ и дипломатии) 16)звуки и музыка (тут, скорее всего, мне потребуется помощь) 17)обучающие подсказки на низшем уровне сложности и ещё, наверное, много чего, о чём я сейчас не вспомню Чего не будет из оригинала: 1) экрана дворца 2) картинок юнитов в цивилопедии (ром не резиновый, он и так уже разбух неприлично) 3) соединения квадратов игры в группы ("горные хребты" и т.п.) - мало видеопамяти Неясно, стоит ли добавлять такие фичи оригинала (пока не планируется): 1) кастомные названия цивилизаций и городов (т.к. на это расходуется ОЗУ). После реализации ИИ можно будет посмотреть, сколько ОЗУ/sram под это осталось. Что хотелось бы добавить кроме оригинальных фич и что при этом ещё не добавлено: 1) таймер-ограничение времени в хотсите 2) заставки вида "1му/2му игроку приготовиться" в хотсите на весь экран 3) статистика игры после окончания игры в хотсите 4) что-то на демонстрацию при простое на титульном экране игры 5) чит-коды Неясно, стоит ли добавлять такие фичи, которых нет в оригинале: 1) подтверждение основания города. Возможно, хорошо и так, как есть. А если названия городов будут кастомными, то это не будет нужно, вместо этого будет экран с вводом названия. |
| SeregaZ:
мазохист. в одиночку запилить это будет оооочень сложно. слишком много нюансов. но в целом руль :) |
| Sharpnull:
No thanks. - запятая нужна. --- Цитата: sadhedg от 24 Июнь 2019, 20:50:33 ---Rome in 640k --- Конец цитаты --- Вы про книгу "Sid Meier's Civilization or Rome on 640k a day"? Поддержка мыши будет? :) -------- Судя по рому, графику вы не сжимаете, потому и размер большой. |
| Globotronik:
Интересно, респект за старание. Правда, Цива имхо не приставочная игра в принципе, поэтому там и не существовала. Приставки (опять же имхо) больше ориентированы на геймплей с минимумом размышлений и больше действия, поэтому там в таком жанре более уместной была игра типа Mega Lo Mania. Но сейчас ретрогеймеры, конечно, оценят, а, может, кто-то бы и картриджи захотел - это же сама Цива, а не 100500й платформер или стрелялка. В общем, удачи. |
| gotten:
--- Цитата: Globotronik от 24 Июнь 2019, 22:59:06 ---Правда, Цива имхо не приставочная игра в принципе, поэтому там и не существовала. --- Конец цитаты --- Вообще-то на Snes первая часть вышла, на Ps1 первая и вторая. |
| Globotronik:
gotten, 0_0. Не знал, спасибо за просвещение. А насколько тогда сильно сабж будет отличаться от версий Snes и PS1? Добавлено позже: upd: так-так, на PS1 точно есть первая? Вторую на PS1 и первую на Snes нашел в поиске сразу, а первую на PS1 что-то не вижу |
| MetalliC:
--- Цитата: Globotronik от 24 Июнь 2019, 23:30:57 ---так-так, на PS1 точно есть первая? --- Конец цитаты --- http://redump.org/disc/5607/ |
| ndivision:
Очень крутой проект! В свое время civ-1 была моей одной из любимейших игр под DOS на 286 компах :)) |
| Kyasubaru:
--- Цитата: Globotronik от 24 Июнь 2019, 22:59:06 ---Приставки (опять же имхо) больше ориентированы на геймплей с минимумом размышлений и больше действия, поэтому там в таком жанре более уместной была игра типа Mega Lo Mania. --- Конец цитаты --- https://koei.fandom.com/wiki/Main_Page |
| SPOT:
sadhedg, Вы портируете игру используя исходный код? |
| MetalliC:
SPOT, в 1м сообщении упоминается civone https://github.com/SWY1985/CivOne и еще чей-то код |
| sadhedg:
--- Цитата: SPOT от 25 Июнь 2019, 09:05:00 ---sadhedg, Вы портируете игру используя исходный код? --- Конец цитаты --- Нет, исходный ход Civ1 недоступен. На civfanatics в своё время разбирали многие тонкости механики, даже немножко логику компьютерного игрока. Плюс собственный игровой опыт. Этим и пользуюсь. Но логика компьютерного игрока будет всё-таки своя, т.к. это не разобрано толком, и дизассемблировать я это не хочу и не могу. И по-моему это неплохо, если игра в этом плане будет отличаться. Конечно, есть freeciv, но ресурсы сеги несоизмеримы с ней. ИИ в оригинале-то был весьма тупой. --- Цитата ---А насколько тогда сильно сабж будет отличаться от версий Snes и PS1? --- Конец цитаты --- Из snes версии взята графика клеток земли и ещё некоторая, но в целом я ориентируюсь на ДОС-версию. PS1 - это слишком круто. Сабж отличается и от snes, и от dos версии, но новые правила (или баги) snes-версии, какие знаю, я не учитываю. --- Цитата ---Поддержка мыши будет? :) --- Конец цитаты --- Скорее всего нет, наоборот, посмотрев на snes версию, которая заточена под мышь и в которую играть с геймпада - имхо мучение, захотелось реализовать по возможности удобное управление с геймпада. Как я его себе представляю. Ну и очень мало у кого реально есть сегамышь. Так что нужно это если только для эмуляторов. Даже если когда-то и будет, то схема управления мышью будет на основе геймпадного управления. --- Цитата ---Судя по рому, графику вы не сжимаете, потому и размер большой. --- Конец цитаты --- Грешен, не заморачиваюсь, мне так удобнее. Хотя в SGDK есть встроенные средства для этого. Но пока ещё вес приличный, и вряд ли будет больше 3 мб, а в 4 уложиться должен хоть как. Я люблю обращаться к картинкам по их смещению в РОМе. А насчёт картинок юнитов я слукавил - там ещё дело в том, что это надо перевести 256 цветов VGA в 31 цвет двух сеговских палитр. Например, картинки технологий перерисованы в значительной мере вручную. --- Цитата ---No thanks. - запятая нужна. --- Конец цитаты --- Ну тут точная копия из оригинала. ^_^ --- Цитата ---Вы про книгу "Sid Meier's Civilization or Rome on 640k a day"? --- Конец цитаты --- Про неё, любимую. Спасибо, что поправили. Ссылка в оп-посте обновлена. Изменения: *оптимизирован обход юнитов в начале хода. Ранее при 127-ми юнитах он занимал около 5 секунд. Теперь в худшем случае при 127-ми юнитах обход занимает столько же, но в лучшем случае он занимает около 2-х секунд. Это всё равно плохо, но проблему я заметил только сейчас и исправил хоть как-то. *теперь нельзя покупать текущее производство в городе, если есть мигающая надпись "CHANGE" (т.к. это лишено смысла) *теперь на Карте Мира при смене цивилизации на C показываются только активные цивилизации, неактивные пропускаются *теперь в начале хода выбираются 2 случайных города со стихийными бедствиями (как в оригинале). Ранее каждый город "кидал кубик" на стихийное бедствие. Новое поведение ближе к оригиналу и менее затратно по времени вычисления. *Великая Библиотека в хотсите теперь требует, чтобы нужная технология была у одной чужой цивилизации, а не у двух. Это сделано потому, что в хотсите всего 2 цивилизации. *на экране выбора технологии, если с помощью C вызвать справку, теперь позиция в списке останется старой, а не сбрасывается на первую технологию *при получении технологии из Великой Библиотеки теперь даётся справка Исправление багов: *когда на клетке находился один известный чужой юнит плюс неизвестные юниты, рисовалась подложка "много юнитов", хотя про другие юниты на клетке игрок не знал. Теперь в таком случае рисуется подложка "один юнит". *если на экране города была открыта мини-карта, то при обновлении экрана эта часть экрана не обновлялась. *не было проверки на наличие технологии у себя при получении её из Великой Библиотеки, из-за чего ВБ давала уже известные технологии, а также происходило зависание на сообщении о получении технологии из ВБ *если раньше 2 цивилизации подряд уничтожались неизвестным источником (в этом случае пишется "варварами"), то это приводило к неправильному поведению игры |
| Sharpnull:
--- Цитата: sadhedg от 25 Июнь 2019, 16:00:19 ---Ну тут точная копия из оригинала. ^_^ --- Конец цитаты --- Зачем же ошибки повторять. В сети спрашивают про разницу "no, thanks" и "no thanks" - везде отвечают, что второй случай отрицает спасибо, пример: --- Цитата ---"No thanks to you!" does mean "There are no thanks due to you. You did nothing to help!" Less common than just "No, thanks", but a 'known idiomatic phrase' of its own. "Oh, you've finished the cleaning, then." "Yeah. No thanks to you - you just lay in bed till ten!" --- Конец цитаты --- А сжатие графики, действительно, пока особо не нужно, чтобы время не терять. |
| SPOT:
sadhedg, сколько времени ушло на написание игры? |
| sadhedg:
--- Цитата: SPOT от 26 Июнь 2019, 07:59:32 ---sadhedg, сколько времени ушло на написание игры? --- Конец цитаты --- Посмотрел сейчас, первая сохранившаяся сборка - конец февраля этого года. РОМ по ссылке в ОП-посте обновлён (1.2). Изменения: 1) реализована загрузка игры из save ram. Особо не тестил, но вроде бы всё ок. Да, старый сейв работать не будет - в процессе сохранения были ошибки. 2) если sram нет, теперь при попытке сохраниться игра сообщит об этом и не будет делать вид, что сохраняется 3) исправлен баг: на северн. и южном полюсе юнит не мог сдвинуться с места, "телепортируясь" обратно РОМ снова обновлён (1.3). Изменения: 1) сделано сохранение и загрузка игры в/из sram в hot seat (в конце хода любого из двух игроков) 2) добавлено быстрое перемещение курсора при вводе имени 3) добавлена установка на карту спец. ресурсов из seed'а при загрузке 4) исправлен баг графики, если загрузить игру после просмотра начальной заставки до конца 5) при загрузке игры теперь создаётся массив с номерами городов, которым принадлежат клетки (без него были баги) 6) при загрузке игры теперь устанавливается количество ходов в воздухе для авиации (раньше было 0, и вся авиация не в городах и не на авианосцах исчезала в начале следующего хода) 7) исправлен баг - если в хотсите 2-ой игрок управляет со второго геймпада и первым выбрал цивилизацию, стартовые поселенцы создавались 2 раза (в разных местах, если не карта Земли) Следующая цель - ИИ варваров, до тех пор обновлений не будет, если только не что-то критичное. Ещё хотелось бы услышать, насколько удобно на оригинальном геймпаде нажимать диагонали для перемещения юнитов. Я пробовал на крестовине иксбоксовского, вроде бы неплохо. |
| sadhedg:
РОМ по ссылке в ОП-посте обновлен до 1.4. Сейв от старой версии несовместим с новой. Изменения: 1) реализован auto build у варваров (легион или рыцари), реализован примитивный auto build у цивилизаций (алгоритм будет улучшаться в дальшейшем). Отключена возможность менять производство при включённом auto build. Если включён auto build, после сообщения об окончании постройки не происходит перехода на экран города. Если включён auto build и строительство завершено, автоматически выбирается новое. 2) добавлено сообщение "осталось мало денег", если денег после обхода городов мало и их стало меньше, чем было. 3) добавлено удаление старого дворца при строительстве нового обычным образом (раньше это было реализовано только для добавления нового дворца читом). Кроме того, при строительстве дворца теперь из города удаляется суд (не знаю, так ли в оригинале - лень проверять) 4) изменён порядок событий при обходе городов в начале хода: теперь рост города происходит до подсчёта значений переменных для этого города, поэтому при полном счётчике еды рост происходит только на следующий ход (как в оригинале). Без этого был баг: беспорядки начинались только на следующий ход после появления недовольного. Стихийные бедствия теперь тоже происходят до того, как подсчитываются переменные для города. 5) теперь, если было построено чудо света, в течение хода происходит автоматический вход в города, которые его тоже строили (чтобы сменить производство) - или же происходит автоматическая смена производства, если в таком городе был auto build 6) реализован переход города со scandal и т.п. событием к цивилизации со счастливым городом (residents of ... admired the prosperity of ...), но не более одного города за раз (хранится только 1 значение) 7) при загрузке игры теперь устанавливаются предустановленные на карту Земли бонусные ресурсы (рыба у Италии и т.д.) 8) исправлен баг, созданный в 1.1: при уничтожении цивилизации флаг уничтожения не сбрасывался, и при входе в город уничтожалась новая цивилизация того же цвета, если она была 9) исправлен баг - единственные сеттлеры на клетке активировались от своего действия сразу, без рисования таблицы (если счётчик действия был не 0) 10) в ram добавлены массивы для стратегий ИИ (по примеру оригинала), также они сохраняются при сохранении на батарейку и читаются при загрузке. Используются пока только для выбора строительства при auto build. 11) в хотсите после прибытия космического корабля игра теперь не зависает сразу, а переходит на экран сообщения о прибытии, и зависает уже там |
| SavitarSvit:
Вот это я понимаю проект. Удачи вам и терпения. |
| SeregaZ:
а я две буквы поменял в какой-то игре и считал себя крутым ромхакером... |
| sadhedg:
ОП-пост обновлён. Оставил ссылку на старую версию и добавил ссылку на новую. Изменения в 1.5. 1) добавлена кнопка просмотра гарнизона на экране города (кнопка BUY стала меньше). Можно снимать команды с юнитов из этого меню. 2) отключено управление человеком для всех цивилизаций, кроме выбранной в сингле или двух выбранных в хотсите. Пока ход комп. игрока происходит "от его лица". Юниты комп. игрока пока практически ничего не делают. Отключены и изменены на правильные многие сообщения на ходе компа (но далеко не все). Например, если у игрока есть посольство, он будет получать сообщения при открытии компом технологии и т.п.. В городах компа всегда auto build. Комп устанавливает работников вокруг своих городов по умолчанию каждый ход (а также снимает специалистов и ставит их на поля, если недостаточно пищи). Комп каждый ход подсчитывает своё желание основать новый город (эта переменная учитывается и для человека, если он поставит auto build в городе). 3) комп. игрок сам выбирает технологию на изучение, а также технологию при захвате города (меню не появляется) 4) кнопка Z в режиме редактора теперь меняет управление текущей цивилизацией с компьютера на человека и обратно. Нажатие Y на самом первом экране позволяет управлять крестовиной юнитами компьютера, которые не выбрали команду (скипали ход) 5) старые сейвы теперь не совместимы с игрой (хотя нового добавлено мало, но весь сейв смещён на 10 байт - Зал Славы находится в начале, и он не влезет в 100 байт, нужно 110 - я неправильно подсчитал, когда оставил под него место). 6) многочисленные багфиксы, улучшения и изменения, немного изменён алгоритм auto build 7) в rom добавлены некоторые тексты, в основном подсказки. Пока подсказки не используются. Некоторая графика в rom'е сжата. |
| SeregaZ:
если проект активно попиливается, то может быть имеет смысл сделать некую программу-актуализатор? в смысле запускаешь не ром, а свой ехе файл. который, если это первый запуск, просит указать путь до эмулятора. запоминает его. после лезет на свой сайт и проверяет номер версии игры. если она отличается от того, что имеется - скачивает и запускает уже самую распоследнюю версию. так-же наверное было бы не плохо чтоб там висело окошко "лога" с результатом. дескать в новой версии появилось тото и тото. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |