Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Готовые проекты сообщества boolean

Готовые проекты сообщества boolean Сюда переносятся свободные проекты доведенные до релиза

Ответ
 
Опции темы
Старый 18.01.2011, 22:15   #1
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
РобоКот

Наконец-то я могу выложить мой проект. Закончен он давным-давно, основная часть сделана за 3 дня, ещё 2 дня я лениво шлифовал, после этого поправил баг-два. Я был участником ивента "Awesome Games". Остальных участников не рассекречу. Они не сделали игры, у каждого были свои причины, ну да ладно. Наконец-то все признали, что я единственный "финалист" и дали добро на выкладывание игры.
Итак, встречайте awesome РобоКота!

Жанр: Игра для программистов
Название игры - отсылка к игре "RoboCode". Почему? У моей игры такой же геймплей, только вместо танков коты.

Игра является ареной для сражений котов. Коты летают на летающих тарелках и оснащены усилителями, так как их оружие - МЯУканье (по моим убеждениям коты не должны убивать друг друга), оно выводит из строя их корабли. Также они могут таранить друг друга. В битве могут принимать участие одновременно до 6ти котов.
А теперь мы подходим к самому интересному - геймплей.
Геймплея, как такого, нету. Игрок просто наблюдает за сражениями котов. Вся суть в том, что коты из ниоткуда не берутся. Каждый кот - это программа на "Lua". Так что игрок должен запрограммировать своего кота и выпустить сражаться с один из четырёх (хотя зачем одним? До 6ти котов же!) заготовленных мною котов. Хотя... скучно всё время сражаться с одними и теми же. Рано или поздно игрок улучшит своего кота настолько, что мои коты будут проигрывать раунд за раундом. Почему бы не выложить этого супер-кота на форум, прямо в эту тему, что бы его скачали другие игроки и пустили сражаться со своим? Можно устраивать дуэли на интерес или... турниры на 6 человек!
Теперь пару слов о программировании:
Как я уже писал, программируются коты на скриптовом ЯП "Lua". Он очень прост в освоении, мне, что бы его освоить, хватило статьи в википедии.
Документация по написанию котов есть в архиве. Также рекомендую изучить 4х написанных мною котов.
При написании котов важно помнить, что весь код, по сути, представляет функцию "Update", то есть весь код вызывается каждый кадр. Функция "Initialize" одновременно является функцией обновления, поэтому не стоит ограничивать её вызов. Так же надо обратить внимание на создание переменных. Не стоит писать "a=1", что бы каждый кадр значение вновь становилось единицой, вместо это надо написать "if not a then a=0 end".
Начинать бои просто. Нужно запустить игру, нажать на "Начать", ввести путь к котам и нажать на "ОК". Последние введённые пути, как и настройки, сохраняются. Сейчас там сохранены пути до 4рёх моих котов, рекомендую посмотреть на их бой.

В заключение о планах и недоработках:
В планах ввод параметра, задающего количество раундов и параметра, задающего скорость битвы.
В игре есть баги, о которых мне известно, но которые я ещё не пофиксил. В частности:
Если вызвать "Initialize" после любой другой функции, игра вылетит с ошибкой. Если перед вызывать "Initialize" каждый раз менять передаваемые параметры, каждый раз будет создаваться новый кот. Если вызывать несколько функций "Initialize", будет создано несколько котов.
Поэтому функцию "Initialize" надо вызывать в самом начале программы, только один раз и с неизменными параметрами.
Я понимаю, что глобальные переменные - плохо, в будущем они будут заменены на возвращающие значения функции. Также я понимаю, что весь код, повторяющийся каждый кадр, тоже плохо. В будущем (или будущей игре) код примет такой вид:
function Start()
begin
--...
end

function Update()
begin
--...
end
И напоследок FAQ, состоящее пока только из одного вопроса:

Я написал кота, правильно ввёл путь, но на поле боя он не появился, что делать?
Допущена ошибка в написании кота, например, нарушена конструкция "if .. then .. else .. end". Проверь код.

СКАЧАТЬ
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 1066
Размер:	130.3 Кб
ID:	12409  Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 1063
Размер:	326.1 Кб
ID:	12410  Нажмите на изображение для увеличения
Название: code.jpg
Просмотров: 1057
Размер:	1.03 Мб
ID:	12411  Нажмите на изображение для увеличения
Название: screen2.jpg
Просмотров: 1229
Размер:	749.9 Кб
ID:	12412  

Последний раз редактировалось baton4ik, 22.01.2011 в 13:22.
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо baton4ik за это полезное сообщение:
h1dd3n (19.01.2011), Mhyhr (19.01.2011), Nuprahtor (18.01.2011), pax (19.01.2011), RBK (19.01.2011), Reizel (19.01.2011), Reks888 (18.01.2011)
Старый 18.01.2011, 23:46   #2
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Эх, булочники, до чего же вы инертны. АВТОМАТ, как же так? На тебя я надеялся больше всех, мне почему-то думалось, что именно ты напишешь первого кота, выложишь и призовёшь остальных к битвам!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (04.05.2011)
Старый 19.01.2011, 00:10   #3
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: РобоКот

Ленивые программисты пошли
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 00:12   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: РобоКот

Дайте время народу! Тут есть люди которые работают..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (19.01.2011)
Старый 19.01.2011, 00:30   #5
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: РобоКот

Ох, блин Я что то и не посмотрел дату первого поста Где-то ранее видел, думал, это тоже самое
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 01:02   #6
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Сообщение от MoKa Посмотреть сообщение
Дайте время народу! Тут есть люди которые работают..
Я в шутку написал. Это шутка про любителей возмущаться по поводу отсутствия ответов через час после размещения вопроса
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (19.01.2011)
Старый 19.01.2011, 03:53   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: РобоКот

В свое время занимались программированием змей)
Как-то визуальное программирование вставляло больше...
http://ru.wikipedia.org/wiki/Snake_Battle
http://www.ag.ru/screenshots/zmeinyi_boy/38246

PS: плохая привычка архивы называть Release или Debug... лень переименовать?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
baton4ik (19.01.2011), RBK (19.01.2011)
Старый 19.01.2011, 10:06   #8
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Сообщение от pax Посмотреть сообщение
В свое время занимались программированием змей)
Как-то визуальное программирование вставляло больше...
http://ru.wikipedia.org/wiki/Snake_Battle
http://www.ag.ru/screenshots/zmeinyi_boy/38246

PS: плохая привычка архивы называть Release или Debug... лень переименовать?
Вот-вот. Я с этой игрой пошёл на МАН, подав её, как обучающую игру, которая заинтересует школьников. 1е место на районе уже есть.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (19.01.2011)
Старый 19.01.2011, 12:06   #9
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: РобоКот

Черт, придется учить lua, и почему так познавательно не делают моорги...
(Чтобы апнуть 50 уровень нужно запрограмить гг на хаскеле)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
baton4ik (19.01.2011)
Старый 19.01.2011, 14:26   #10
RBK
Знающий
 
Аватар для RBK
 
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений
(для 166 пользователей)
Ответ: РобоКот

Мне нравятся игры типа RoboCode и Colobot, очень жалко что новые появляются редко.
Твой проект сделан хорошо, с радостью протестирую новые версии.

Пока нашел баг в логике: Если все боты погибнут в бою, игра никак на это не реагирует. Запуск нового боя вызовет пустое финальное окошко.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
baton4ik (19.01.2011)
Старый 19.01.2011, 17:57   #11
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Мне казалось, что я это пофиксил. Значит нет. Спасибо.
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 21:18   #12
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: РобоКот

Хотел что-то сделать, но документация - отстой!
Да и багнутые функции немного, я сделал бота который на скорости 15 гонял по всему полю, и он выиграл десяток раз подряд
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 21:31   #13
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Очень информативное сообщение. Написал бы, что тебе не понятно в документации и в чём заключается баг.
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 21:44   #14
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: РобоКот

Мне не нравится что документация не организована, что в ней не описаны функции передвижения(назад так и не научился ездить), функция вывода текста, функция атаки, функция поворота.
SetSpeed принимает в качестве аргумента не только числа <=3, а также и большие(поставь камикадзе боту 15 скорости, и он разнесет все за несколько секунд). Turn(5) и Turn(90) работают одинаково(хотя, возможно, я что-то не понимаю в этой не задокументированной функции)
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 19.01.2011, 22:09   #15
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: РобоКот

Сообщение от Reks888 Посмотреть сообщение
Мне не нравится что документация не организована, что в ней не описаны функции передвижения(назад так и не научился ездить), функция вывода текста, функция атаки, функция поворота.
SetSpeed принимает в качестве аргумента не только числа <=3, а также и большие(поставь камикадзе боту 15 скорости, и он разнесет все за несколько секунд). Turn(5) и Turn(90) работают одинаково(хотя, возможно, я что-то не понимаю в этой не задокументированной функции)
В документации описаны все функции, в том числе и функции передвижения, атаки, вывода текста и поворота. Читай внимательней. Тебе непонятна строчка "MoveForward() - Кот двигается вперёд относительно своего положения"?
Видимо ты очень невнимательный, раз не заметил даже то, что при SetSpeed(2) и SetSpeed(25) скорость кота одинаковая. Да, функция принимает любые значения, однако, if speed>2 speed=2
if speed<1 speed=1
Да, поворотник при Turn(5) и Turn(90) работает одинаково, так как существует ограничение на скорость поворота, а ты что хотел? Что бы кот мог за один кадр повернутся на 90 градусов?

P.S. Только что проверил, насчёт скорости ты прав, что странно. Сейчас проверю и исправлю
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:49.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com