Pull to refresh
33
0
Запольнов Николай @nikolayz

Программист С++ и Unity/C#

Send message
Так вы там в самсунге сами никак не выпустите телефон на Tizen. Было столько шума, презентаций, уже даже готовые телефоны лежали в демо-зоне и можно было их пощупать — и тут бах! «выпуск телефона откладывается на неопределенный срок». Уж не гугл ли вам запретил?
Я его руками создавал. Читал оригинал, пытался понять как оно работает и как реализовать это на С++. Это можно частично проследить через импортированные из SVN коммиты (те, которые датируются 2009 годом).

Сначала я сделал компилирующийся .asm-файл и начал в нем разбираться, давая разумные имена функциям и переменным, гуляя по нему отладчиком. Потом, когда было по большей части понятно, что делает та или иная функция, я их переписал на С++.
Нет, к сожалению не пробовал. В далекие времена, когда я сидел еще под DOSом у меня была коллекция упаковщиков и распаковщиков всех мастей. Но на момент, когда я занялся дизассемблированием, у меня этой коллекции уже давно не было, а имена упаковщиков из моей памяти стерлись. Поэтому я попытался погуглить, но не очень успешно. Правда, как я написал в статье, я не особо-то и старался. Все-таки идея написать свой распаковщик привлекала сильнее и я, скорее, искал моральное оправдание для написания велосипеда.
Массива там только два: текущее состояние уровня и активные взрывы (причем, взрывы еще дублируются в первом массиве). Но ситуация усугубляется тем, что практически все движущиеся объекты одновременно существуют в нескольких ячейках (из которой вышел и в которую направляется), а все кадры анимации кодируются отдельным кодом. И если подгадать тайминги, можно взорвать левую половину движущегося объекта, а правая «доползет» до места и это будет выглядеть странно. Ну и еще такие «половинчатые» объекты обладают странными свойствами (например, попа уползающего Мёрфи ведет себя как стена — на ней замирают падающие предметы, а сник-снак и электрон от нее уползают в обратную сторону, не вызывая взрыва).
О том, что в Rocks-n-Diamonds код тоже получен дизассемблированием я не знал, спасибо за информацию. В любом случае, я не претендую на уникальность. Просто захотелось поделиться с сообществом.
С этой игрой я, к сожалению, не знаком. В любом случае, удачи, коллега!
Я попробую написать что-нибудь на эту тему в ближайшее время. Правда, не факт, что до Нового года. Спасибо за идею.
По идее должны, хотя я не проверял. Там большинство трюков растет из способа хранения игровых данных. Когда Мёрфи ползет по уровню, он занимает две ячейки (левая и правая половина), и эти ячейки обрабатываются специальным образом. Именно поэтому, например, сник-снак отворачивается от Мёрфи, а не съедает его, если отойти в сторону в момент, когда он подошел вплотную.
Спасибо, я его видел. Однако это все-таки ремейк, а на тот момент было очень интересно покопаться в оригинале и изучить оригинальную логику.
Да вроде ничего нового. Судя по фотографиям в Интернете, нам выдали RD-PQ.
2

Information

Rating
Does not participate
Location
Espoo, Southern Finland, Финляндия
Date of birth
Registered
Activity

Specialization

Software Developer, Game Developer
Lead
C++
C#
Unity3d
Game Development
Git
English
OOP
Python
Algorithms and data structures
Qt