Тема: РобоКот
Показать сообщение отдельно
Старый 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
Просмотров: 1075
Размер:	130.3 Кб
ID:	12409  Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 1073
Размер:	326.1 Кб
ID:	12410  Нажмите на изображение для увеличения
Название: code.jpg
Просмотров: 1067
Размер:	1.03 Мб
ID:	12411  Нажмите на изображение для увеличения
Название: screen2.jpg
Просмотров: 1239
Размер:	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)