Как стать автором
Обновить
0
0
KitsonKit @KitsonKit

Пользователь

Отправить сообщение

AI, Pathfind, Pathfollow для персонажей в трехмерном динамическом мире (Часть 1)

Время на прочтение8 мин
Количество просмотров17K
На написание статьи меня подтолкнула данная статья а так же тот факт, что в данный момент я заканчиваю разработку довольно продвинутого AI для своего сервера. Все что описано здесь я уже использую на сервере и это работает.

В конце цикла (надеюсь, меня хватит на несколько статей) я постараюсь создать AI для защитников замка и нападающих на него, при чем он не будет знать заранее ничего о замке, не будет иметь ни каких вэйпоинтов, а нападающие будут появляться случайно.

Начнём немного не по порядку – с pathfollow, т.е. с передвижения по уже найденному пути и вообще с движения монстров/NPC. О том, как найти этот путь, мы поговорим позже… и так, поехали.
Читать дальше →
Всего голосов 41: ↑34 и ↓7+27
Комментарии11

Все самое главное для очередного «убийцы Angry Birds»

Время на прочтение5 мин
Количество просмотров105K
У меня есть хобби — я разрабатываю мобильные казуальные игры. Поэтому мне часто приходится подвергать анализу хиты из топов Google Play и AppStore, клонировать удачные решения и не допускать чужих ошибок. В результате я выявил у всех самых хитовых игр некоторые сходные черты в геймплее и управлении. В этом посте я изложу свои наблюдения о том, что именно делает игру популярной, и как это лучше реализовать.



1. Геймплей


Главные сходства игрового процесса таких хитов рынка мобильных игр, как Angry Birds, Ninja Jump, FruitNinja, Rope'n'Fly, Doodle Jump — простота и однообразие. Минимум действий и постоянное их повторение.

а) Лёгкость прохождения

Все самые популярные игры крайне легки в прохождении или собственно в самом процессе игры. Эта одна из главных причин их бешеного успеха. Большинство владельцев телефонов и планшетов — обычные люди, они не считают интересным пяток раз на выходных перепройти Марио или Battletoads. Также помните причины, по которым люди играют в мобильные игры. Причины эти — скука и усталость. Люди сидят на работе, на скучных лекциях, едут в метро, и вполне логично у них возникает желание поиграть. Поэтому ни в коем случае нельзя делать огромные сложности в играх — скучающие не получат веселья (девиз Dwarf Fortress «Проигрывать — это весело» здесь не прокатит), а уставшие от сложностей на работе не станут вкладывать кучу сил ещё и в какую-то игрушку.
Подробнее
Всего голосов 241: ↑213 и ↓28+185
Комментарии92

Android: используем Fragments для оптимизации интерфейса

Время на прочтение6 мин
Количество просмотров68K
Добрый день. Сегодня я хотел бы показать вам небольшой и достаточно простой пример использования Fragments. Я надеюсь он будет полезен тем, кто только начал знакомиться с принципами работы Fragments. Изначально, фрагменты были реализованы начиная с Android 3.0 для более динамичного проектирования пользовательских интерфейсов.
Вкратце, Fragment схож с Activity, у них обоих есть свой собственный жизненный цикл. Однако Fragment не может существовать вне Activity. Можно использовать для одного и того же Activity разные Fragments что придает гибкость и вариативность в процессе разработки.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии10

Как я сам научился программировать за 8 недель

Время на прочтение3 мин
Количество просмотров568K
Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

Я начал изучать программирование в начале этого года, и могу сказать по своему опыту, что изучение достаточного количества материала, чтобы создать свой собственный прототип не такая уж и сложная задача, как вам кажется. В самом деле, если вы хотите иметь рабочий прототип в течение двух месяцев, не прибегая к использованию отгулов, это абсолютно выполнимая задача.

Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Читать дальше →
Всего голосов 133: ↑90 и ↓43+47
Комментарии92

Игра на QuickTiGame2d в Appcelerator Titanium. Часть 1

Время на прочтение4 мин
Количество просмотров4.9K
В настоящее время весьма перспективным направлением в программировании является кроссплатформенная разработка. Познакомившись с различными средствами (Appcelerator Titanium, PhoneGap, moSync), я, всё же, отдаю свои предпочтения Appcelerator Titanium.

Titanium позволяет создавать Android и iOS приложения на JavaScript. В настоящее время официальный сайт утверждает, что количество разработчиков на данной платформе достигает 300 000.

Интересным моментом является то, что на Titanium можно создавать не только приложения, но и полноценные игры для мобильных устройств.

Я бы хотела обратить ваше внимание на двухмерный модуль игрового движка для Titanium Mobile — QuickTiGame2d, основанный на OpenGL ES, который в настоящее время поддерживает разработку для Android и iOS. В данной статье мы рассмотрим процесс установки, а также основные моменты данного движка, а в следующей уже будет непосредственно описано создание небольшой кроссплатформенной игры.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии9

Живые обои на Android без нативного кода или история написания Two Hearts Live Wallpaper

Время на прочтение6 мин
Количество просмотров13K
Более полу года проработав разработчиком для Android я решил попробовать написать живые обои с использованием OpenGL. Пробежав по сети было обнаружено несколько движков общего назначения и множество любительских поделок. Два достаточно взрослых движка предлагали быстрый нативный код и хорошую документацию:
Andengine;
LibGDX.

К несчастью, первый не умеет загружать модели и ограничивается двумя измерениями, во втором же работа с моделями выполнена в расширениях и написана на Java, что приводит к перерасходу памяти и медленной работе.
Unity3D не рассматривался из-за его платности, да и не заточен он для живых обоев.
Linderdaum выполнен полностью в нативном коде, но не содержит обертки для живых обоев и страшно медлителен, на Desire в простой сцене количество кадров в секунду колебалось от 3 до 8.
Просмотр маленьких проектов обнаружил min3d и Rajawali, причем первый написан для OpenGL 1.1 и уже год не поддерживается, а второй, хотя и работает с более продвинутой версией API, не содержит многих полезных функций из первого. Кроме того первый не умеет работать с живыми обоями.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии23

Кроссплатформенность — это круто

Время на прочтение8 мин
Количество просмотров30K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Ни для кого не секрет, что сегодня мобильные игры очень популярны. Возможность написать одну из таких игр есть у каждого разработчика, даже начинающего. Часто возникает вопрос с выбором платформы. Конечно, хочется, чтобы игра была сразу везде: на iOS и Android, на WP7 и MeeGo, на десктопе и в браузере. И чтобы все это можно было лекго реализовать с помощью бесплатных инструментов.



В этой статье я расскажу вам, как сделать основную часть кода платформонезависимой, а для остального использовать удобные средства разработки для каждой конкретной платформы.
Читать дальше →
Всего голосов 179: ↑168 и ↓11+157
Комментарии69

Приложение в честь Дня святого Валентина на libgdx

Время на прочтение7 мин
Количество просмотров27K

Периодически появляются топики, посвященные дню Валентина. В этом году я тоже решился включиться в эту тему и сделать что-нибудь оригинальное и необычное. Было решено создать простенькое приложение под Android с сердечками, которые бы имели свои физические модели и взаимодействовали друг с другом. Позже я добавил текст, звуки, частицы и некоторые другие красивости. В результате получилось даже что-то вменяемое и оригинальное! В данной статье описывается процесс создания вместе описанием возможностей и подводных камней библиотеки libgdx.


.

Читать дальше →
Всего голосов 50: ↑30 и ↓20+10
Комментарии22

Перевод туториалов по libGDX — часть 1 (настройка проекта в Eclipse)

Время на прочтение5 мин
Количество просмотров32K
Эта статья — перевод первого туториала для проекта libGDX. Оригинал находится — здесь

От переводчика: недавно у меня появилось желание написать игру под Android. У меня есть некоторый опыт программирования на Java, но я почти не сталкивался с разработкой под Android. Тут я наткнулся на библиотеку libGDX, которая позволяет писать кросплатформенные игры. Также я наткнулся, что по ней не хватает русской документации, а конкретно — туториалов. Поэтому у меня появилось желание перевести туториалы. Это мой первый перевод, поэтому буду рад любым замечаниям и указаниям на неточности.

Настройка проекта


Примечание: есть проблемы с использованием Java 1.7 для Android-приложений. Убедитесь, что вы используете Java 1.6
Примечание: надо сделать несколько шагов для настройки приложения под Android. Смотрите ниже.

Эта статья описывает, как настроить Eclipse для разработки и запуска приложений как на настольном компьютере, так и на Android-устройствах.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии5

Перевод туториалов по libGDX — часть 2 (рисование изображений)

Время на прочтение7 мин
Количество просмотров32K
Представляю вашему вниманию перевод второго туториала по libGDX. Оригинал находится здесь. Первая часть находится здесь.

Этот туториал дает представление как рисовать изображения используя OpenGL и как libGDX упрощает и оптимизирует этот процесс с помощью класса SpriteBatch.

Рисование изображений.



Изображение, полученное из его оригинального формата (например, PNG) и загруженное в GPU называется текстурой. Текстуры рисуются по некоторой спецификации, которая представляет собой описание геометрической фигуры и каким образом текстура накладывается на вершины этой фигуры. Например, геометрическая фигура может быть прямоугольником и каждый угол прямоугольника относится к соответствующему углу текстуры.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии2

Перевод туториалов по libGDX — часть 3 (пакет scene2d)

Время на прочтение6 мин
Количество просмотров35K
Это третья статья из цикла переводов туториалов libGDX.
Первая статья находится здесь
Вторая статья находится здесь

scene2d



Пакет scene2d представляет собой классы для реализации графа для двухмерной сцены, которые могут быть полезны для управления группой иерархически связанных актеров (актер — некоторая сущность, которая может быть нарисована и которая может обрабатывать события ввода — прим. переводчика). Этот пакет предоставляет поддержку для обработки управления, рисования с возможностью поворота и масштабирования актеров в системе координат относительно родительского актера. Этот пакет также предоставляет фреймворк для управления действиями актеров через некоторые промежутки времени (tweening). Пакет scene2d.ui предоставляет актеров, которые могут быть полезны при построении графического интерфейса пользователя.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии5

Туториал по libGDX — создание пользовательского интерфейса. Часть 1

Время на прочтение9 мин
Количество просмотров50K
Разбираясь дальше с библиотекой libGDX, я дошел до пакета com.badlogic.gdx.scenes.scene2d.ui. Этот пакет предназначен для создания пользовательського интерфейса. И тут меня ждало разочарование: статьи-туториала нет. Поэтому я решил самостоятельно разобраться с пакетом, используя исходники и Javadoc документацию. То есть, это будет туториал по scene2d.ui, но уже не перевод. Я не буду здесь детально описывать конструкторы, методы, приводить подробные сигнатуры. Я постараюсь взглянуть с высоты «птичьего полета», поскольку зная принципы, вы всегда сможете узнать больше из документации. Но даже при таком подходе материала слишком много, поэтому я разобью его на две (возможно больше) статей.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Разработка под Android с использованием Linderdaum Engine

Время на прочтение8 мин
Количество просмотров9.8K
Привет хабрасообщество!

Тема написания приложений под андроид на С++ незаслуженно забыта. Сегодня мы узнаем как писать многоплатформенные приложения под Android используя Linderdaum Engine.

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии18

Как умирают софтварные компании

Время на прочтение3 мин
Количество просмотров34K

Условия, которые питают креативных программистов, убивают менеджеров и маркетологов — и наоборот. Программирование — Великая Игра. Оно поглощает игрока полностью, включая и душу и тело. Если ты попался — то ты попался, и ничего уже больше не имеет значения. Когда ты в следующий раз вылезешь из своей берлоги, вполне могут обнаружиться лишние десять киллограммов, борода до колен и такое количество пустых коробок из-под пиццы вокруг, что уже, наверное, наступила весна? Но для тебя это всё не важно. Потому, что твоя программа работает, а код быстр и элегантен. Ты победил.
Читать дальше →
Всего голосов 263: ↑235 и ↓28+207
Комментарии84

Особенности культуры преподавания в ВУЗах на компьютерных специальностях

Время на прочтение6 мин
Количество просмотров7.3K
Преподавание — сложная наука.

Независимо от того, какой предмет Вы решили преподавать, будь то экономика, философия, экология или информатика. В преподавании каждой науки есть свои особенности и сложности взаимопонимания между студентом и преподавателем. Даже имея практику публичных выступлений или общения в аудиториях, классах вы получали опыт не совсем в таком виде, который нужен для преподавания. Об особенностях и некоторых подходах к повышению культуры преподавания я хотел бы сегодня вам рассказать.


Примеры для решения сложных ситуаций и успешного преподавания.

На данный момент компьютерные науки развиваются намного быстрее, чем все остальные, и это является тем самым камнем преткновения при попытке качественно и быстро подготовить специалистов. Каждый месяц появляются новые технологии, которые можно поместить на курс продолжительностью в семестр. При этом система обучения осталась старая, абсолютно негибкая и неприспособленная к таким частым изменениям программы. Такую программу поменять невозможно, гораздо легче сделать что-нибудь локальное, что поможет решить локальные проблемы в разрезе одного курса.
Читать дальше →
Всего голосов 74: ↑62 и ↓12+50
Комментарии35

Моделирование персонажей и создание графического дизайна для мобильной игры

Время на прочтение3 мин
Количество просмотров6.2K
Недавно увидела свет игрушка в стиле Tower Defense под названием Bug Invasion для Windows Phone. В статье разработчики делятся ключевыми моментами моделирования жучков и разработки дизайна игры.

image

Для создания игры были использованы два инструмента: Adobe Photoshop CS5 и Autodesk 3D`s Max 2011.

Первым шел этап обсуждения — какие элементы графического интерфейса нужно нарисовать и как они приблизительно должны выглядеть. На основании этих обсуждений создавались скетчи интерфейса пользователя, схематические рисунки размещения декораций и элементов игрового экрана, а также схематические рисунки будущих персонажей. Красоты тут мало, просто схемы.

Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии24

WebGLU: упрощаем работу с WebGL

Время на прочтение11 мин
Количество просмотров10K
Когда-то 3D в браузере было большой проблемой. К чему только не прибегали для создания объемной динамичной трехмерной графики в браузере: использованию псевдо-3D в SVG, построениям в canvas, использованию flash… Однако, прогресс не стоит на месте: наконец-то все современные браузеры стали поддерживать облегченную версию OpenGL (OpenGL ES 2.0) — WebGL. Это — довольно молодая технология, ей всего-то чуть больше года от роду. Однако, уже сейчас можно оценить ее мощь по всевозможным браузерным играм и примерам.

Из-за сравнительной молодости этой технологии, руководств по работе с ней не так уж и много. Почитать кое-что о работе с ней можно здесь (здесь — перевод на русский). Здесь можно узнать кое-что об основах WebGL.

Для облегчения работы с WebGL разработан ряд библиотек (правда, большинство из них еще довольно сырые). Применению одной из них — webGLU — для формирования простой сцены, освещенной одним источником-фонарем, и посвящена эта статья. Здесь можно посмотреть пример, а отсюда скачать полный архив для запуска его на своей машине.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии7

ORM в Android c помощью ORMLite

Время на прочтение7 мин
Количество просмотров72K
На данный момент для платформы Android существует несколько решений, позволяющих реализовать ORM-подход для работы с базой данных, но основных два. Это ORMLite и GreenDAO.

Для новичков стоит сделать отступление и рассказать что такое ORM вообще. ORM — object-ralational mapping. Объектно-реляционное отображение означает, что программисту гораздо удобнее оперировать с объектами, которые он использует в своём приложении, нежели чем с таблицами, в которых хранятся данные в реляционных базах данных. Для связи реляционных СУБД с объектной моделью приложения используются ORM-технологии. Так для решения задач объектно-реляционного отображения в Android используют один из сторонних фреймворков. GreenDAO и ORMLite — являются библиотеками с открытым кодом.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии19

Do It Yourself Java Profiling

Время на прочтение17 мин
Количество просмотров60K
На прошедшей конференции Appication Developer Days, Роман Елизаров (elizarov) рассказал, как профилировать, т.е. исследовать производительность любых Java-приложений, без использования специализированных инструментов, будь они хоть вендорские, хоть open-source.Оказывается, можно использовать малоизвестные, встроенные в JVM возможности (threaddumps, java agents, bytecode manipulation), и быстро и эффективно реализовать профилирование, которое можно запускать постоянно даже на боевой системе.Вот видео доклада (тут оно косолапо эмбедится, но оно 1280x720, все отлично читаемо):

Но я предлагаю также, взглянуть на 70K текста иллюстрированной статьи-стенограммы под катом, составленной мной по видео и слайдам.
Статья-стенограмма. Многобукв.
Всего голосов 52: ↑49 и ↓3+46
Комментарии32

Использование GWT с Documentum & Webtop

Время на прочтение10 мин
Количество просмотров6.2K

Введение


В этой статье я хотел бы рассказать о маленьком исследовании по скрещиванию GWT и Webtop.
Вначале отвечу на законный вопрос: «Зачем это нужно?». Я преследовал несколько целей:
1) Изучить GWT.
2) Более детально изучить внутренности WDK и Webtop.
3) Возможно, найти способ создавать GWT компоненты для Webtop.
GWT был выбран потому что позволяет быстро создавать UI и клиентский код Java программистам. А так же поддерживает AJAX «из коробки».
Использовалась именно связка с Webtop, а не создание своего приложение с нуля, так как это заняло бы больше времени (поддержка Documentum сессий, изобретение замены action и precondition) и не позволило бы использовать уже написанный код на Webtop.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность