|
FunWorldv2 beta1. Вступительное слово...
| | GreenDan | Дата: Вторник, 24.11.2009, 22:38 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 146 ____________________ Почетный гость ____________________
| Новую версию игру начал делать 1,5 недели назад, делал не спеша, но сегодня целый день посвятил созданию игры (так как редактор карт был уже готов). Что же нового в новой версии... Во первых, управление теперь осуществляется мышкой. Во вторых, карта абсолютно динамическая и может быть любых размеров. Я условился, что видимый кусок карты это 16 метров, так вот можно создать карту длиной в 1 км . В третьих, добавлена анимация. Про первую бету версию. Предоставлен на рассмотрение сыроватый геймплей игры. Помогите решить, что нужно добавить, а что исправить. Нужно ли управление мышкой? Можно ли как-то сделать это всё удобней? Отредактировать ли скорость персонажа, высоту прыжка? Про устройство игры: Как только вы заходите в определённую зону, игра строит изображение зоны по массиву, а затем уже готовое изображение каждый такт таймера выводит на экран. Это позволяет намного меньше снизить загрузку ЦП(хотя даже если и не использовать такой метод, то загрузка будет 0 (до чего компьютеры дошли )) А теперь показываю самый ужасный код проекта: Code procedure Collisions; begin if p.Y + 25 > GetBufferHeight then p.Y := 0; if p.X > GetBufferWidth - 50 then if Map.sx + MapResX <> Map.LengthX then begin Inc(map.sx, MapResX+1); p.X := 0; CreateBG; end;
if (map.Matrix [(p.x + 26) div sPoint + Map.sx, ((p.Y - 25) div sPoint) + Map.sy] <> 1) or (map.Matrix [(p.x + 26) div sPoint + Map.sx, p.Y div sPoint + Map.sy] <> 1)
then MovePlayer else p.X := p.X div sPoint * sPoint + 25;
if (map.Matrix [p.X div sPoint + Map.sx, p.Y div sPoint + Map.sy ] <> 1) or (map.Matrix [p.X div sPoint + Map.sx, (p.y + 25) div sPoint + Map.sy] <> 1)
then MovePlayer else p.X := p.X div sPoint * sPoint + 50;
if (map.Matrix [p.X div sPoint + Map.sx, (p.y + 26) div sPoint + Map.sy] = 1) or (map.Matrix [(p.X + 25) div sPoint + Map.sx, (p.y + 26) div sPoint + Map.sy] = 1) then begin p.Y := p.Y div sPoint * sPoint + 25; Jump := false; end
else begin Inc(p.y, 5); Jump := true; end;
end; Так называемая коллизия - проверка столкновения с другими объектами Управление в игре Левая кнопка мыши - идти к точке Правая кнопка мыши - прыгнуть Все идеи, по поводу игры, описывайте в этой теме. Спасибо за внимание. P.S. Если понадобится исходный код, могу выложить.
Сообщение отредактировал GreenDan - Вторник, 24.11.2009, 22:40 | |
|
| SaiLight | Дата: Вторник, 24.11.2009, 22:49 | Сообщение # 2 |
Ведущий программист
Группа: Администратор
Сообщений: 312 ____________________ Активист ____________________
| О, сейчас посмотрю игру. Quote (GreenDan) А теперь показываю самый ужасный код проекта: Я мало что понял, но он действительно ужасен.
| |
|
| GreenDan | Дата: Вторник, 24.11.2009, 22:51 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 146 ____________________ Почетный гость ____________________
| Это слабо похоже на игру, только демонстрация геймплея. Даже ИИ нет никакого
| |
|
| SaiLight | Дата: Вторник, 24.11.2009, 23:22 | Сообщение # 4 |
Ведущий программист
Группа: Администратор
Сообщений: 312 ____________________ Активист ____________________
| Я посмотрел и обнаружил парочку недочетов в этой демо-версии. Итак, вот они: 1. Не очень удобно, что в месте, куда нажимаешь мышкой, рисутся квадратик, потому что это закрывает изображение девушки. 2. Там размеры текстур меньше, чем 50х50 или я ошибаюсь? 3. По мне, все же, лучше, чтобы управление производилось с помощью клавиатуры, хотя, каждому человеку удобнее по-своему. 4. Прыжок слишком резок и также резко уходит вверх. Удобнее было бы, если бы она летела по наклонной. 5. Некоторые графические недочеты, такие как отсутствие фона, некая пустота на карте и т.д. Я не рассчитываю на то, что все эти недочеты будут и в окончательной версии игры, поэтому не стоит воспринимать их как именно обсуждение недостатков всей игры. Они выделены мною для того, чтобы, если существует вероятность им быть незамеченными, убрать их еще до вхождения в игру. ---------------------------------------------------- Да, и еще желтая обводка вокруг девушки.
| |
|
| GreenDan | Дата: Среда, 25.11.2009, 08:17 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 146 ____________________ Почетный гость ____________________
| Quote 2. Там размеры текстур меньше, чем 50х50 или я ошибаюсь? Размеры девушки стали 25х25. Quote 3. По мне, все же, лучше, чтобы управление производилось с помощью клавиатуры, хотя, каждому человеку удобнее по-своему. Да, всё-таки лучше пускай будет клавиатурное управление. Quote Прыжок слишком резок и также резко уходит вверх. Удобнее было бы, если бы она летела по наклонной. Хорошо. Quote 5. Некоторые графические недочеты, такие как отсутствие фона, некая пустота на карте и т.д. Это я тоже заметил и знал, что заметишь и ты :). Просто я не сильно уделял внимание графике на первой бете. Quote Да, и еще желтая обводка вокруг девушки. Постараюсь убрать. Спасибо, SaiLight, за советы и мнение по поводу беты. Вторая версия будет доработанной, и всё недочёты будут исправлены.
Сообщение отредактировал GreenDan - Среда, 25.11.2009, 08:17 | |
|
| SaiLight | Дата: Среда, 25.11.2009, 10:12 | Сообщение # 6 |
Ведущий программист
Группа: Администратор
Сообщений: 312 ____________________ Активист ____________________
| Quote (GreenDan) Постараюсь убрать. Вероятно, она появилась, когда ты уменьшал спрайты. Ты делал это в Photoshop'е? Если да, то тогда все ясно, потому что он немного размывает изображение, делая полупрозрачность. Мы убирали ее, используя Paint. Quote (GreenDan) Вторая версия будет доработанной, и всё недочёты будут исправлены. Будем ждать.
| |
|
| SaiLight | Дата: Суббота, 12.12.2009, 03:02 | Сообщение # 7 |
Ведущий программист
Группа: Администратор
Сообщений: 312 ____________________ Активист ____________________
| GreenDan, давно от тебя нету никаких известий об игре. Как продвигается проект, не забросил еще? Если нужна будет помощь в графике, обращайся в любое время.
| |
|
| GreenDan | Дата: Суббота, 12.12.2009, 14:27 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 146 ____________________ Почетный гость ____________________
| Стал переделывать редактор, старый код удалил. Новый код не попёр, а старый переписывать лень. Тем более не могу никак сообразить, как оптимизировать столкновение игрока с другими объектами. Пока что приостановил работу над игрой.
| |
|
| SaiLight | Дата: Суббота, 12.12.2009, 14:37 | Сообщение # 9 |
Ведущий программист
Группа: Администратор
Сообщений: 312 ____________________ Активист ____________________
| Ну ладно, будем надеяться, что когда-нибудь работа будет возобновлена. Мы тоже приостановили, но вот в каникулы собираемся ею заняться.
| |
|
| GreenDan | Дата: Среда, 13.01.2010, 13:09 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 146 ____________________ Почетный гость ____________________
| Новости игры: Начал делать снова с нуля, так как старый редактор карт не годился, я понял, что в старой версии было много недочётов. Пока не решу, разбить ли мне игру на несколько уровней или создать один большой. Пару слов о программе: - Массив изображений стал динамическим. Загрузка изображений осуществляется следующим образом: существует файл TexturePath.txt, в котором записана информация такого типа: Quote 2 Tree.bmp 0 Grass.bmp 1 Ground.bmp 1 2 - количество изображений. Остальные записи - пути к файлам изображений, а цифры рядом со строками - проходимость объекта (преграда или нет). Сохраняется карта в таком формате: 1). Для игры: Quote 63 7 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Grass.bmp 0 Первая строка - размерность карты, массива. Далее записаны значения элементов массива. -1 - пустота. После идёт перечень путей к изображениям, которые присутствуют на карте, цифра обозначает проходимость. Если какого-либо изображения на карте нет, то записываться в файл путь не будет. Это позволит экономить ресурсы системы, ведь зачем выделять память под изображение, которое на данном уровне не встретится. 2). Для редактора: Quote 63 7 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 2 0 Первая строка - размерность массива. Далее понятно. После записаны числа, характерезующие количество данных объектов на карте. Как помните, у нас есть файл путей изображений, где присутствуют три записи. 0 - количество Tree.bmp, 2 - количество Grass.bmp, 0 - количество Ground.bmp. Здесь есть один недочёт правда: 1 - это изображение Grass.bmp, но в игре он должен быть под нулевым номером. Обещаю исправить (= P.S. Уже исправил. (= Вот такие небольшие изменения. Могу ещё сказать только, что все структуры в редакторе динамические.
Сообщение отредактировал GreenDan - Среда, 13.01.2010, 13:25 | |
|
|
|