Показаны сообщения с ярлыком Box2d. Показать все сообщения
Показаны сообщения с ярлыком Box2d. Показать все сообщения

04 января 2015

2015ый, привет!

Наступил Новый год. Две тысячи пятнадцатый.
Кстати, число довольно красивое:
2015 = 5 * 13 * 31

В общем, поздравляю!
Думаю, он принесет нам много радости и новых впечатлений, ура! Праздник всегда дает ощущение надвигающегося позитива. Кажется, как будто все должно получиться... Желаю, чтобы у всех как раз все и получилось! Да будет так!

А сегодня я расскажу про то, чем занимаюсь сейчас. Ну, про игростроение, а не "сижу, чай пью" :)

10 января 2014

box2d + as3, с чего начать и чем закончить.

Самое простое толкование, я думаю, вот такое: Box2d - это физический движок. Видите, как просто?! Так как выражение "физический движок" у всех на слуху, то я позволю себе только добавить, что 2d в конце названия намекает на то, что физические объекты располагаются в двумерном пространстве, на плоскости.
Если честно - то это очень клевая штука, которую я постоянно использую во всех своих играх. Хотите реалистичную физику в свою двумерную игру? Можете смело браться за Box2d! Есть и конкуренты, поэтому выбор остается за вами.
Сегодня не день рекламы Box2d, я просто поделюсь ссылками, которые лично я считаю полезными. Круто? Конечно, круто! Заходите, думаю, не пожалеете.

01 ноября 2011

glVehicles, комментарии к Луноходу.

Это снова я! Надеюсь никто не подумал, что glVehicles заброшен, верно? Дело в том, что в последнее время несколько человек у меня спрашивали по поводу тех или иных вещей, реализуемых с помощью Box2d. В итоге я понял, что простенькие демки - это хорошо, их открытый код - это замечательно, но все же разобраться в нем не всегда просто. Поэтому я решил написать более-менее подробные комментарии к реализации демки (пока только одной - комментировать всё нет времени). Жребий пал на луноход, как наиболее прямолинейный в плане функциональности. Так что, если какие-то моменты были не очевидны, заставляли проклинать создателя демок, раздражаться при чтении кода - тогда стоит прочесть данное сообщение! Возможно, что-нибудь станет яснее!
Аккуратно! Дальше много кода и букв...

29 сентября 2011

Square is going home


Предлагаю на суд читателей игру с открытыми исходными кодами, которую я сделал для конкурса на сайте GlScene.ru. При разработке игры я старался по этапам рассказывать, как и что я делал для достижения конечного результата.
Немного о разработке:
  • инструменты: Delphi + GlScene + Box2d + Lua
  • команда: один человек
  • время: около месяца упорного труда
  • бонус: много нового по коду и графике
  • итог: почетное второе место!

29 июля 2011

Конкурс: подведение итогов! :)

Ну вот и подошел к концу конкурс, в котором мне довелось принять участие. Скажу сразу - fun'а было много, и я благодарен организаторам за доставленную радость! В данный момент на общий суд выложены все работы участников и проходит голосование. Ну, а пока запасемся терпением и посмотрим на то, что вышло в итоге...
Всего пришло шесть работ, из них одна - редактор, который вряд ли можно назвать "игрой на конкурс", но все же пусть будет, ведь автор проделал много работы, да и GlScene не помешают хорошие демки!

05 мая 2011

Демо физического платформера

Проект glVehicles не заброшен! Согласен, известий не было давно, демками не пополнялась длительное время. И вот недавно я взял себя в руки и решил сконструировать что-нибудь полноценное, играбельное. Ведь, как мне показалось, многих отталкивает debug-отрисовка физических объектов. Всем хочется сразу красивых спрайтов и "рюшечек". Рисовать самому или просить кого-то сделать несколько спрайтов для бесплатной демки с открытым кодом - как-то не хотелось. Наткнулся на этот арт и сразу родилась идея для демки. Сделалось быстро, а вот написать это сообщение, руки дошли только сейчас.

25 января 2011

glVehicles-Gibbets или насколько трудно программировать физику?

Снова я... И сразу же - ура! обновления в репозитории! добавилась еще одна демка! Правда еще пару дней назад я не планировал делать то, что получилось. Отчего такая спонтанность? Ну, немного предыстории...
Недавно закончился 11ый конкурс на glscene.ru и в данный момент подводятся итоги. Конкурс выдался на редкость замечательным! Большое количество участников, высокий уровень работ, интересные находки в плане геймплея... супер! Без шуток! Рад, что довелось оценивать работы конкурсантов! 
Теперь происходит выбор новой темы для следующего конкурса... Как всегда я предложил выбрать для темы игровую механику какой-нибудь флеш-игры. Среди них есть множество действительно чумовых! На мое удивление, прозвучала фраза, что это сложно и только с виду выглядит простым. Наверно, это задело мое самолюбие и я решил продемонстрировать, что программирование физической основы игровой механики предложенных мною игр не столь трудно, как представляется... завернул мощно, ничего не поделаешь, но суть проста - я попробовал запрограммировать что-то из тех физических штук, что я предложил...

09 января 2011

glVehicles, поверхность жидкости силами Box2d

Когда-то давно я уже описывал простые физические модели, которые можно построить с помощью доступных физических движков. Для 7ой демки glVehicles я выбрал жидкость. Конечно, вводить какие-то новомодные частицы для простой демки я не стал. А вот смоделировать поверхность жидкости стандартными способами (плавание и погружение тел) всегда приятно, быстро и красиво! Итак, еще одно обновление в физических демках: на этот раз демонстрируется, как можно дешево добавить уровень воды в игру, разнообразив тем самым уровни и тайлы карты. Итак, встречайте...

24 декабря 2010

glVehicles: Грузовичок, а также привязка графики.

А-га-гась! Снова на связи, и я готов заняться писаниной :)... Трепещите!
Вообще, реалистичные физические взаимодействия в играх используют катастрофически часто... Ныне, когда мощности компьютеров хватает на быстрый просчет соударений, разлетов тел, погружений в жидкость, "отлетаний" от выстрелов и много другого, физикой в играх никого не удивить. Поэтому можно найти отличное применение и множество инноваций в геймплее! То, что приходит на ум из "инди", это: Intrusion, World of Goo, Gish, Lugaru, Gibbets, Braid.
Геймплей, построенный на физике, меня всегда привлекает. Вдохновившись игрой Mining Truck, и, чтобы немного оживить glVehicles, решил смастерить что-то подобное.
Скриншот:

13 декабря 2010

glVehicle + svn

Всем привет! В этом сообщении решил описать полный процесс установки glVehicle на Ваш компьютер ;) Чтобы не думать о том, какие демки есть, что там нового и т.д. Думаю, это будет полезно всем, кто вообще хочет познакомиться с системой контроля версий svn. А также рекомендую к прочтению тем, кто постоянно трудится, вычищая папку с проектом от всяких назойливых dcu/~pas/~dfm и других файлов. В общем, постараюсь осветить маленькие хитрости, которые, возможно, помогут Вам в работе. Надеюсь, это сообщение устранит последний барьер между исходными кодами glVehicle и монитором читателя. Вот так вот я поэтично закрутил вступление, поэтому сразу же направимся к кульминации, чтобы никого не утомить!

25 ноября 2010

glVehicles, Луноход и всякое по мелочам

Эйо! Всем привет... Наверно, из заголовка сообщения становится ясно, что название "glVehicles" лично для меня прочно закрепилось за самодельными демками и различными программами, связанными с физикой, механизмами и интересными находками для игр. Если вы не понимаете о чем идет речь, тогда стоит прочитать более ранние сообщения по этой теме в данном журнале
Буду стараться обновлять репозиторий, добавляя в него побольше всяких "вкусных" вещей, таких как средства передвижения, физические механизмы, прототипы геймплеев и всякое другое, что с одной стороны было бы не жалко выложить с открытыми исходными кодами, и, с другой стороны, было бы не стыдно продемонстрировать всеобщему обозрению. Сегодня есть чем порадовать - появилась 5ая демонстрационная программа с главным героем - Луноходом о пяти колёсах:

12 ноября 2010

glVehicles - завел svn на google.

Йе-х-у! Всем привет!
Открыл репозиторий под демонстрационные программы с 2д-физикой от Box2d. В итоге, я надеюсь, в них любой желающий найдет для себя интересные физичные механизмы, сможет изучить код моей связки GlScene + Box2d, а также посмотреть на развитие демок как таковых. Open source, в общем :)

23 октября 2010

Vehicle 2, Box2d

В качестве продолжения этого отдыха, решил сделать вторую демонстрационную программу для показа замечательности связки Delphi+Box2d. Вторая демка вышла чем-то проще первой, хотя в чем-то, наоборот, и посложнее. В общем, об этом и можно прочесть в нижеследующем сообщении.
Итак, теперь вид сверху, четыре колеса-прямоугольника и сложная система трения. Получилось что-то вроде такого:

20 октября 2010

Отдыхаем с Box2d...

Всем привет!
если честно, всё ленюсь описать демки про Lua... но ничего, надеюсь скоро выложу продолжение! А пока, на glscene.ru завершился конкурс "RTS/TBS", в котором, к сожалению, не удалось поучаствовать... В общем, с пылу с жару, все участники форума устремились обсуждать новую тему для конкурса. И я решил отдохнуть, попробовав написать маленькую демо.

27 мая 2010

физика ;)

Под резким влиянием полёта своей мысли, решил чуточку черкнуть про физические штуковины, что мне попадались при программировании. Вообще, физическую симуляцию можно разделить, в зависимости от задачи, на точную и быструю. Почему невозможно считать и быстро и точно? 

01 декабря 2009

ускоряемся...

в общем, сделано не так много, как хотелось бы на данный момент.
сейчас я запоздал с 6ью пунктами в teamer'е... надо бы их подтянуть. что мешает? ну, Box2d постоянно выкидывает новые сюрпризы: то невозможно вытащить общую силу, приложенную к телу, то невозможно отключить сочленение на какое-то время (не уничтожая его)... ну и конечно приходится постоянно расширять dll-ку, чтобы добираться до необходимых полей и методов объектов Box2d. приходится также изучать и другие компоненты программы: к примеру долго не мог найти как дебажить lua-код. в итоге оказалось, что сообщение об ошибке лежит на вершине стека - кто бы мог подумать))..

27 ноября 2009

Pointer vs Index

начну с того, что вообще я планировал в скриптах хранить только индексы объектов в глобальных списках... потому как я считаю, что так безопаснее. нечего скриптам знать что-то большее, чем индекс объекта! передав этот индекс в движок, он уже разберется, как достать нужный объект!
проблемы, конечно же, начнутся, когда дело обстоит со списками, количество и индексы объектов в которых постоянно меняется. вариантов решения несколько:
  • а) можно заново вычислять индексы объектов после перестраивания списка
  • б) можно привязываться не к индексу в списке, а к некоему ID объекта
  • в) можно при убийстве объекта не изменять количество ссылок в списке, оставляя на том месте nil. таким образом количество ссылок в списке будет всегда накапливаться.
  • г) можно резервировать места для объектов при старте уровня (то есть при старте по некоторым ссылкам в списке будет nil), при необходимости же добавить заведомо известный объект - указывается также индекс, зарезервированный под объект. при удалении этого объекта, надо будет всего лишь убить сам объект, не изменяя количества объектов в списке. 

23 ноября 2009

продвигается!..

последние три дня программировал скрипты и события... пришлось переделывать парсинг файлов, добавлять возможность глобальной "прописки" индексов объектов из скриптов... таким образом файл с событиями-скриптами выглядит как-то так:не знаю, насколько это окажется удобным в итоге... да и не знаю, как обычно такое делают другие, чтобы подсмотреть и сравнить... но пока меня такая система устраивает, работает быстро и пока надежно)).. одна проблема - надо теперь делать дебагер lua-кода, а то не шибко удобно полчаса искать, где опечатался и не поставил запятую))..

так что теперь есть выключатели, ключи и многое другое... вчера опробовал - работает!

но вскоре возникнут проблемы и пострашнее - звук, таймеры, невизуальные объекты, события на графические и анимированные объекты, а также прикрутка vbo ко всему этому, чтобы фпс держался на достойном уровне))..

17 ноября 2009

медленнее улитки...

"и снова здравствуйте..." (с)
оказывается, в отпуск программируется гораздо быстрее, чем вне его)).. сейчас игра почти не движется... ведь времени совсем нет... то есть вообще нет, ни свободного часа! это удручает до предела! ну ничего, совсем недолго до январских каникул остается, там уж мы развернемся!

по делу:
  • вчера прикрутил скрипты, и фпс упал ровно вдвое: с 55 до 30... немного подумав, вернул его к отметке в 50 фпс)).. но на деле скрипты не несут пока никакого функционала, и это надо срочно исправлять!.. и, конечно же, надо подумать над фпс посильнее - поднять хотя бы до сотни!
  • сделал побольше всяких объектов, в том числе многоугольных... работает на ура!..
  • добавил индикатор на дистанционное сочленение, добавил сочленение "вдоль оси" (Prismatic)... добавил возможность изменять пределы сочленений из редактора... dll-ка Box2d растет с каждым днем))
  • осталась проблема с заданием параметров тел... с одной стороны, трение, к примеру, присваивается Shape'у... а у меня не добраться до него из движка, только до тел... таким образом оставил пока у каждого тела один показатель трения - трение нулевого Shape'а...
итак, Box2d пока отличается своей стабильностью и приятностью в общении... есть, конечно, и сложности с ним, к примеру, сейчас возникла необходимость disable'ить сочленения на какое-то время, чего я, к сожалению, найти в движке не могу...
скрипты пока тоже на приличном уровне - надо только добавлять "слов" для общения между игровым движком и самим lua...
ну и, конечно же, надо повышать фпс... чем выше он будет - тем лучше, несомненно... пока подумываю об отрезании ненужных веток обновления объектов, переход на рендер внутри DirectOpenGl, и увеличение минимальных требований на железо))))..
но сейчас не до того, сейчас я наделен одним желанием - попробовать собрать первый тестовый уровень, пора бы уже))

05 ноября 2009

всегда вперед!

Давно тут не писал... вот решил чуточку разбавить всякую ерунду другой ерундой)).. итак! оказалось сложноватым делать редактор для игры, заточенной на физике!.. это действительно непросто...
  • с одной стороны надо как-то определиться с тем, как передвигать объекты - вроде они должны взаимодействовать, чтобы не получилось, что в игре они тут же растолкают друг друга... но также надо давать способ отключить обсчет столкновений, чтобы была возможность пересечь два объекта для создания сочленений...
  • с другой стороны важны точные методы задания позиции и ориентации тел... хочется, чтобы шестеренки и колёса крутились относительно центра, а не со смещенными осями... но важно и кликанье - взял, подвинул, установил...
  • также сложность вызывает отображение не графических объектов - сочленений, к примеру... как отобразить, чтобы можно было выбрать и перемещать?
может показаться странным, что уже сейчас стремлюсь сделать удобный редактор, ведь игры и геймплея еще нет... вся штука в том, что геймплей придуман, но непонятно, нужно ли его еще сильнее нагромождать или сделать по принципу "все сложное выбросить"?! для этого хочется пощупать геймплей, а так как он планируется в физике головоломок, то редактор просто необходим - построение сложных и не очень задач на бумаге довольно трудоемко... тем более вспоминаются опыт других наших работ, когда интересные идеи образовывались в тот момент, когда перетаскиваешь, манипулируешь объектами в редакторе... начинаешь воображать, накручивать! так что такие дела... сделано пока мало... мы пробуем потихонечку, внедряем аккуратно новые штукенции так сказать)) чтобы не оказаться в ситуации, когда непонятно как это все барахло разрулить, как было с первым Climber'ом, к примеру))

еще отмечу, что прикручивание Box2d стало не таким и сложным делом... уже потихонечку осваиваюсь в c++... как-то по-хитрому привожу там типы (сам не пойму, как это работает, если честно), что не всегда удобно и сильно захламляет заголовочный файл... зато pas-header растет довольно активно... также пытаюсь развить классовую прослойку... в итоге получается довольно отцепляемо, но я не очень уверен в необходимости такой сложной системы прикручивания... может в будущем буду упрощать)).. хотя сейчас вроде выглядит не дурно))

p.s. сегодня планирую прикручивать инициализационные скрипты))..