Я в очередной раз убедился, что напрочь не умею планировать.
Игра не готова.
С февральских итогов объем кода вырос с 626355 символов до 766500 (на данный момент). И там есть куда расти еще. В общем сильно недооценил объем работы.
И срубить много с этой игры не получится. Хочется уже доделать и избавиться.
Затянул этот отчет, так, как хотел доделать все же один кусок (полностью код ачивок, с картинками правда париться не стали просто галочкой отметку о выполнении).
Сделал, но это затянулось на неделю вместо пары дней. При чем глядя на общий срок разработки, понимаю, что неделя для того объема вышло нормально и это просто я опять не смог оценить объем.
1) Переделали «лабораторию»
Новая:
(прокомментируйте впечатление от новой лабы)
Для левой боковой панели все никак цвета подобрать не можем.
2) Прикрутили функционал для перевода, в том числе смену языка на лету.
3) Создал свои классы для кнопок и текста. Ага под конец разработки игры,когда там уже десятки кнопок и текстов сделаны.
Но классы отличные. Нагрузка минимальна, удобство использования максимально.
Тут надо заметить, что я в принципе использую AS3 не как флэшер, а как обычный прогер.
Я рисую все в одном битмапе один раз за кадр и вывожу этот битмап при обновлении кадра. Это вместо того, чтобы на каждую картину делать свой спрайт или вообще клип и добавлять через addChild(). У меня по одному слушателю на каждое событие мышки.
Таймеры правда расплодил. Но в следующей разработке и таймер сделаю один на весь код.
4) Придумал наконец как делать анимацию для будущих игр. Какая-то анимация конечно итак присутствует, но она вся интерфейсная, если так можно выразиться.
Так вот крутилась долгое время в голове идея для простой анимации персонажей:
Разрезать анимируемый объект на кусочки, и применять к каждому из них простейшую анимацию, смещение, вращение, прозрачность, может масштабирование. То есть памяти жрет как статичная картинка, нагрузка только при вращении и масштабировании кусков, перемещение будет осуществляться просто выводом кусочка на заранее рассчитанных координатах (его же так и так где-то надо выводить, так, что нагрузки ноль).
При необходимости можно кэшировать вращение и масштабирование, если объектов много и выгодней занять память, чем процессор.
В общем даже хотел писать свой редактор анимации. Но нашел маленькую прогу Spriter, которая позволяет делать все то, что нам надо + поддерживает кости и вообще мне такой редактор запилить терпения бы не хватило, а может и навыка тоже. Фишка в том, что файл сохранения этой проги представляет из себя обычный текстовик с, в целом, удобным форматом записи всей анимационной сцены. Остается только написать свою утилитку, которая будет парсить этот текстовик и выдавать готовый AS3 код с «таблицей анимации».
Но парсинг я точно осилю ))
Возможно звучит все это запутанно. Но это очень удобный инструмент.
Но что я все о игре, да о программировании. Месяц был богат и на другие события.
Но перед тем, как рассказать о них, выложу наконец финстрип. ))
Ссылки:
Сапа: 8300 (+600)
Линкфид: 4000 (+100)
Сетлинкс 200
Трафик
Гугл 16500 (-1400)
Пайклик 5000 (-700)
Ледикэш 850
Бодиклик 650 (-50)
Итог 35500 (-1450)
Ну что сказать, все продолжает валиться вниз. Правда в батах ситуация чуть лучше выходит чем в феврале. Однако слабое утешение.
Работал в марте над фриланс проектом, о котором писал еще в прошлом финстрипе. Проект чуть расширился. Оплата тоже с 20 до 30 поднялась. Так, что по идее даже норм вышло )
А теперь отвлечемся от цифр и перейдем к
Искусственному интеллекту
В первой половине марта я прочитал отличную статью https://interpreted.d3.ru/comments/684922/, описывающую перспективы развития ИИ.
Я и ранее понемногу думал над ИИ, но в моей голове почему-то засела странная идея, о том, что якобы ИИ должен быть доведен до такого уровня, чтобы он мог сам себя осознавать, а это с моей точки зрения не возможно, так, как я считаю осознание чисто человеческой чертой. Поэтому я не углублялся в идеи ИИ.
Так вот никому нет дела до осознания как такового. ИИ имеет несколько условных уровней сложности. По сути все программы, вся автоматика это своего рода микро ИИ. И она просто выполняет свою задачу. Такой же программой, но более сложной и более абстрактной вполне могла бы быть программа, максимально симулирующая человека.Осознанность у людей-то не у всех встречается, но как-то же работают, живут, разговаривают.
Конечно вершиной ИИ является дружественный самообучающийся сверхинтеллект, но я предпочитаю размышлять о более близком шаге, о ИИ, способном симулировать человека
Прочитав статью я несколько дней нормально не мог спать. Куча всяких мыслей в голову лезла, медитировать не мог, сяду, и думаю о ИИ. Писать игру не мог, хочу думать об игре, а думаю о ИИ.
В общем в марте я не только серьезно продвинулся в понимании проблем и перспектив этой области, но и размышляя над реализацией и параллелями с человеческим мышлением неожиданно значительно углубился в понимание именно человеческого мышления.
Потому, что если рассматривать мозг как нейронную сеть и рассматривать именно принцип нейронных сетей как наиболее вероятную кандидатуру на реализацию человекоИИ, то идеи подходящие к обучению нейронной сети ИИ точно так же подходят к обучению нейронной сети в нашей голове.
Другими словами размышляя над реализацией обучения ИИ я «заглянул в исходники» нашего собственного мозга. В первую очередь в том, что касается процесса обучения. Но и мышления конечно тоже.
Но вернемся к ИИ.
Создание человекоИИ даст цивилизации такой рост производительности и эффективности, который не дал ни конвейер, ни первые инструменты труда, ни даже первые компьютеры.Вместо того, чтобы растить, содержать, учить человека 8-15 лет, чтобы получить работника, который в большинстве своем не будет работать больше 40 часов в неделю, можно будет создать копию программы и она будет работать 24*7, выполняя те же функции.
Конечно может возникнуть вопрос, а куда девать людей, что мол они станут не нужными. Но это слишком узкий взгляд на вещи. Такие же вопросы возникают каждый раз, когда в обществе происходит скачек автоматизации, и в итоге прогресс вместо того, чтобы лишить работников их хлеба, зарабатываемого за 60 часов в неделю, позволил людям питаться хлебом с маслом и колбасой работая 40 часов в неделю.
Прогресс направлен на увеличение объема товаров и услуг, производимых цивилизацией, а не на, то, чтобы отнять у кого-то работу.
То есть, конечно, когда вместо текущих 5 миллиардов рабочих рук (или сколько там работают) появится 50 миллиардов рабочих программ и машин, то значительная часть из этих 5 миллиардов будет меньше работать. Но результат труда 50 миллиардов непрерывно трудящихся программ никуда не исчезнет. Пользоваться-то им будут люди.
Иными словами сам взгляд на работу изменится, и мне кажется, аудитории моего блога эта идея будет более понятна, чем какому-нибудь работнику офиса.
В общем, создание человекоИИ является на данный момент самой важной программистской задачей, и я твердо убежден, что решаемой.
Я даже стал рассматривать возможность поступления в институт, получения образования и таким путем попасть в институты, занимающиеся этим вопросом, чтобы принять участие.
Правда поразмыслив трезво решил, что главней тут финансовый вопрос. Важно просто иметь возможность позволить себе заниматься ИИ, а не зарабатыванием на еду. И сотрудничество с умными людьми приложится, если у самого будут результаты.
Так, что если не перегорю, и если получится заработать на играх, буду копать в этой области.
С другой стороны, может есть какой-то путь получить спонсирование уже сейчас? хз.
И напоследок еще пару картинок из игры. Девушка доделала всех животных и даже перерисовала часть.
А это из перерисованного
Автор: Elsper.ru
Заканчивал бы ты с этой игрой. Стало лучше конечно, но если б ты эти усилия во во-то другое вложил профита было бы больше.
Тема про ИИ меня тоже интересует. Что такое осознание? Это сопоставление некоторых фактов и вынесение решения. Главной задачей при создания осознания будет обучение машины сопоставлять огромные массивы данных. ПС так делают, например. А вот в футбольном симуляторе футболисты почему-то не начинают играть активнее во 2-м тайме, если проиграли 1-й. Хотя технически, это несложно реализовать, я думаю.
То же про интуицию. Разум человека обработал большой массив данных, в том числе и ту информацию, о существовании которой мы почти забыли. Недостающие фрагменты заполнил новыми образами, придуманными самим разумом.
Ты переоцениваешь возможности человечества в области ИИ) В 60-х тоже думали, что будет достаточно нескольких лет работы одного института, чтобы получить действующий ИИ. Сейчас над этой проблемой работают сотни институтов и лабораторий, и хотя кое-какие прикладные задачи решать научились (Siri, Ватсон отвечающий на вопросы, распознавание номеров машин), до сильного ИИ как пешком до марса (более чем уверен, что на него человека высадят куда раньше, чем сделают ИИ).
Рекомендую так же на эту тему почитать Элизара Юдковского, там не столько технический подход, сколько именно переход на «как же думает человек».
Наверное, все программисты в какой-то момент времени грезят мыслями об ИИ, тем более есть куча мотивирующих на это фильмов/книг)
А на тему того, что ИИ заменит людей — еще больший бред, посмотри распределение профессий в мире, какой ИИ сможет заменить фермера? Какой ИИ заменит спустившее колесо у автобуса? Очень показательно то, что грузовые корабли уже давно и надежно можно было бы сделать полностью автоматическими (это существенно повысило бы их эффективность), но увы человеческий фактор вынуждает держать «для галочки» на корабле капитана и команду, даже если для этого приходится занижать параметры корабля, и даже если эта команда на корабле ничего не делает.
Финансовый вопрос тут вообще не играет роли, когда этим занимаются такие гиганты, как IBM или Google, которые могут засыпать лаборатории деньгами и суперкомпьютерами. На словах всё просто, а как начинаешь хотя бы приблизительно строить алгоритм для реализации какой-то задачи для ИИ, сразу выносит мозг от сложности.
А вообще, практическое применение такого ИИ тоже под вопросом.. Вот если параллельно робототехника выйдет на новый уровень, тогда да, а так..
Ах, Elsper, в моём личном рейтинге «IQ сео-блоггеров» ты поднялся на несколько ступеней вверх.
ВВЕРХ — за за, что тебя так зацепила статья про ИИ, также, как и меня. Я её даже расшарил в свой блог:
http://slanet.livejournal.com/10104.html
(а как ты понимаешь туда не ка-а-а-а-ждый пост может попасть)
Благодаря этой статье и мыслей изложенных там, я теперь засыпаю с мыслью об ИИ и перспективах его развития, а не с мыслью “и эта кричала; интересно действительно я такой СУПЕРМЕН или они все притворяются и им нужны только МОИ деньги (которые, между прочим я зарабатываю своим И)”.
P.S. Elsper, теперь ты мой брат «по интресам». Как тебе такое новое родство?
Коняшка и правда симпотнее стала))
Интерфейсы и рисунки объективно стали лучше. Но, ИМХО, рост все-таки горизонтальный, т. е. лучше, но без перехода на новый уровень. Хотя енот просто 10/10 ^_^
Впрочем, сейчас специально заглянул на арморгеймс и потыкал в парочку случайных игр — там вообще вырвиглаз встречается, так что видимо геймплей это 99% успеха, а все остальное вторично.
За статью по ИИ спасибо, прочитал. Хорошая статья, конечно. Но только с точки зрения копирайтинга. «Желтизной» слишком сильно отдает. Загуглил автора — видимо так и есть, обыкновенный копирайтер, пишущий под ключи на любые темы.
Сам тоже ИИ давно интересуюсь, хотя дальше интереса пока так и не зашло. Лет пять-семь назад интересовался как раз на уровне, описанном в статье (даже забавную задачу себе ставил — генерировать картинки тупо перебором байт, а обученный ИИ пусть определяет, случайный набор пикселей это или что-то стоящее, а там и до генерации аудио-видео недалеко). Это все было, понятное дело, на правах детских хотелок.
На старших курсах куча предметов была смежных с ИИ, но это чисто «Слабый Искусственный Интеллект», если пользоваться терминологией из статьи выше. Т. е. моделирование, экспертные системы, линейное программирование, всякие там прологи, что сводится в большинстве своем к алгебре логики, дифурам и банальному поиску экстремумов функций и тому подобному. Скукотища. На кафедрах если и занимаются, то опять же сугубо в контексте «слабого искусственного интеллекта», что суть решение утилитарных задач (от банального машинного перевода текстов до логистики).
А вообще, по ИИ это наверно надо искать какие-то организации и научные центры, т. е. далеко не каждый первый вузик. Но зачем это все, интернет же есть. Если для химии/биологии/etc. явно нужна лаборатория, то для ИИ блокнота с ручной хватит, да ПК для тестов.
У самого пак из пары десятков книг лежит по AI, все собираюсь начать читать не сегодня-завтра, чтобы хоть немного начать разбираться, а потом имея хоть какую-то базу пройтись по нормальным публикациям (те же диссертации и презентации на научных конфочках, в вики можно много ссылок на пдф найти). Пока же представление об AI крайне сумбурное, если не сказать нулевое.
Если будешь продолжать «копать» в эту сторону, по возможности не забывай делиться мыслями и ссылочками :3
Вспомнил молодость, как писал ИИ для двух своих игр — Бойцовского клуба и игры танчиков(пошаговая стратегия, фактически прототип шахмат).
Так вот, в танчиках первоначально мне показалось, что не нужен сложный ИИ, но по факту больше всего кодить пришлось именно над этой задачей. Тогда я начал изучать нейронные сети и даже частично реализовал в упрощенном виде механизм в игре.
Самое важное, что мне удалось сделать — ИИ обучался, анализируя предыдущие партии. А далее вырабатывал алгоритм действий игры против противника.
Позже я уже понял, что такая схема не идеальна, так как если реальный человек, который играет поступает не совсем правильно, ИИ тоже плохо обучается, то есть перенимает ошибки.
Макс, не, я долго работал чисто ради профита, это настолько уныло, что руки не поднимаются что-то делать. Лучше больше интересной работы, чем меньше скучной ))
nw, осознание часто путают с сознанием, даже в вики со слова осознание идет редирект на сознание. Хз, почему-так.
То, что ты описал это сознание, и я считаю, что оно однозначно моделируется. А осознание это как бы взгляд на сознание со стороны. Такая вот путаница.
Spryt, по-моему пример ватсона однозначно говорит, что ни в 60 ни в 00 для симуляции ИИ просто не было железа )
Ну и говорить о сильном ИИ, не сделав человеческий уровень банально преждевременно. А к человеческому все идет, те же siri и ватсон.
Вообще в статье приводятся оценочные сроки достижения разных уровней ИИ, полученные путем опроса ученых. Кто-то тоже пессимистичен.
SLANET, как минимум это говороит о том, что мы оба читаем митрича ))
seoonly.ru, спасибо )
Devvver, надо обучаться у выигравшего человека, а не у всех подряд )
tulvit,
Я пришел к выводу что главная задача и сложность это обучение ИИ.
Более того переход к сильному ИИ тоже происходит с помощью развитого самообучения.
Поэтому много думал над самим процессом обучения.
И тут на помощь приходит аналогия с человеческим детенышем. Сначала он многого не знает, но все равно как-то умудряется функционировать и обучаться, сначала элементарным вещам. Так как люди имеют тело, то в первую очередь детеныш учится управлять телом.
Сигнал к действию — действие — обратная связь — поправка действия — более четкий шаг
Затем смыслам и словам, их выражающим.
Затем связям слов.
Со временем образы и смыслы наполняются информацией, становятся богаче, у слов появляются новые связи, новые цепочки рассуждений.
И так и формируется сознание человека. И на некотором этапе человек постигает процесс самообучения и продолжает совершенствовать глубину связей образов и смыслов самостоятельно.
Конечно на мои такие рассуждения могут возразить люди, у который (в соответствии с описанной же выше схемой) используемые в тексте слова (образ, смысл, связи слов) не связываются в единую логичную систему и у которых к образу-процесса «мышление» не пристыкован образ-идея «возможно я не прав».
Но я больше всего размышлял именно о такой модели строительства сознания, в которой каждый кубик-образ мог бы быть самостоятельным процессом-программой-компьютером, обменивающимся с другими кубиками информацией и таким образом формирующий связь образов, которая уже формирует иллюзию мнения, которое будет выражаться способами, которым ИИ обучен (во первых тупой вывод текстовой строки).
(То есть на входе у нас какой нибудь вопрос, он разбивается на фразы, который в итоге упрощаются-сводятся к «смыслам» существующим в системе. Далее, у каждого «смысла» есть связи с другими смыслами, как у нейронов в нейронной сети одно звено тянет другие. И на основе всех связей всех смыслов, найденных в вопросе, формируется, даже не ответ, а реакция. Возможно ИИ выявит, что собеседник пошутил, добавляется образ «шутка» и идет соответствующая реакция, возможно ИИ выявит, что вопрошающий задумал что-то незаконное, возможно поймет, что вопрос риторический (если связь образов будет достаточно богата, ведь дети тоже далеко не сразу понимают риторические вопросы, шутки и обман)
Тут надо заметить, что я разделяю процессы восприятия и мышления и думал исключительно о втором.
Так вот возвращаясь к обучению.
Во первых вспомним, что первая цель это человеческий уровень ИИ, используемый в прикладных задачах. Этакий помощник человека. Значит такой ИИ не должен быть сверх гениален и уж точно не должен вырасти в сильный ИИ.
То есть нам нужен специализированный обученный-запрограммированный алгоритм решающий относительно узкую задачу широким спектром действий. Этакий ближайший следующий шаг после обычных привычных нам программ автоматизации.
И обучение такого ИИ будет чем-то вроде программирование, вот только язык должен быть очень высокого уровня абстракции.
То есть создав такую систему «связи образов» + ЯП, для этого дела, можно будет создавать ИИ самого разного уровня, начиная с простых и постепенно усложняя.
Это своего рода принципиальная эволюция программирования и компьютерных программ.
И тут стоит напомнить, что главная задача всей обрасти это не просто создание сильного ИИ, а создание дружественного сильного ИИ и такой вот программистский подход сомнителен в плане защиты от злоумышленников. (
>Сначала он многого не знает, но все равно как-то умудряется функционировать и обучаться, сначала элементарным вещам.
Тут еще не стоит забывать об изначальной «прошивке» (тех же безусловных рефлексах), хотя это тоже суть обучение, так-то, просто растянутое на большой срок и привязанное к мутациям.
>То есть на входе у нас какой нибудь вопрос, он разбивается на фразы, который в итоге упрощаются-сводятся к «смыслам» существующим в системе.
Сам именно в этом направлении и собираюсь копать, естественные языки + АИ = что-нибудь интересное на выходе. Но, так-то, в этом направлении на данный момент копает каждый первый. На подходе веб 3.0 с подвязкой на семантику, что может запросто смыть всех текущих крупных интернет игроков, кто не думает на пару шагов вперед.
Видео в тему: http://www.youtube.com/watch?v=EezMyZ6C8Vo
Т. е. про «сильный» ИИ вообще пока не думаю, интересует чисто утилитарное применение, чтобы на выходе получился суть продвинутый Пролог с автоматическим генерированием фактов/правил на базе анализа больших массивов данных (благо текстов в цифровом формате предостаточно, можно гигабайтами качать).
Еще что вспомнилось. Преподаватель по криптографии говорил, что квантовые компьютеры — это уже фактически настоящее, поэтому о производительности можно особо не думать (это было в том контексте, что на алгоритмах шифрования, которые ломаются перебором, можно ставить крест).
В статье по ссылке мозг сравнивают с вычислениями, но это не так. Люди не вычисляют свои решения, а берут из памяти или аналогии. Решения принимаются чувствами, моментально. Люди не думают, когда пишут буквы или говорят слова. Одаренных к сложным вычислениям людей немного.
Наш разум просто сенсорный опыт нашего тела. У наш больше чем 6 чувств. Чувствами и живем, принимая решения за миллисекунды.
ИИ может так же, но не вычисляя, а создаваясь для определенных условий и быстрее обучаясь. Познавая ошибки на своем опыте, но не умирая как миллионы наших предков, гены которых нам поэтому не достались, а реально пробуя все и вся. Ткнуть горячее? Ок. Прыгнуть с крыши? Ок. Утонуть? Ок. ИИ должен испытать все это, чтобы узнать как это повлияет на него и запомнить. У ИИ нет гена Страха, когда сердце замирает от высоты или «душа уходит в пятки» от внезапного шороха. ИИ должен быть съеден медведем и восстановлен. Утонуть. Сгореть. Быть убитым. Только пройдя весь тот же путь по познанию окружающего мира ИИ сможет понять паттерны и по аналогии прикидывать, что если датчик тепла показывает 800 градусов, а температура плавления конечности 700, значит трогать не стоит и нужно выбрать иной шаблон…
Вопрос в скорости обучения. У нас все записывается в геном, формируются заточенные под разную информацию участки мозга и главной движущей силой является Страх Смерти. Постоянная тревога заставляет разум искать опасности и просчитывать варианты, т.к. мы играет в игру с Одной жизнью, отсюда и массовый подсознательный страх всего нового и неизвестного. Риски слишком велики.
У ИИ тоже должен быть такой стимул, Математический Страх Отключения, и алгоритмы оценки ситуации. Тогда ИИ будет развиваться как мы в пределах того железа, что ему предоставят 🙂