С нуля / Reboot

В конце концов я удалил всё и начал с пустого проекта. Вряд-ли это сильно поможет, но, по крайней мере, буду занят некоторое время. Звучит скорее как “последняя попытка”.

Что я этим пытаюсь достигнуть:

* Не оставлять нестабильных участков кода и временных заглушек. Да, это невозможно, но как минимум попытаться сконцентрироваться на “интенсивной” работе, а не “экстенсивной”.

* Зафиксировать разрешение экрана и навсегда убрать анимации

* Переработать логику Мира.

* Разделить в Конструкторе данные и интерфейс, запустить модульную работу с файлами.

Есть надежда, что около 70% кода можно будет “вернуть” с помощью ctrl+c -> ctrl+v.

Главная цель и задача – добиться “относительно малой кровью” выхода на хоть какую-нибудь играбельную версию, впрочем, ни разу не буду торопить события и всегда буду отдавать предпочтение стабильности, а не скорости.

Также, на данный момент нет смысла пытаться поддерживать ежедневный “режим” публикации новостей в блоге – поскольку прогресс, по сути, отрицательный. Буду отписывать здесь лишь по существенным вехам и достижениям (если вдруг такие будут).


Eventually, I’ve deleted everything, and starting over again from an empty project. Hardly it’ll do any good, but at least will keep me busy for some time. Sounds like “Try again one last time”.

Things I’ll try to achieve by rebooting:

* Never leave any feature unstable, no dummies. Yes, that’s impossible, but at least concentrate on “intensive” work, rather than “extensive”.

* Fixed scale interface with no animations, no anchoring and parenting.

* Remake World logic.

* Split data and interface in Constructor, introduce modular file management.

Hopefully, ~70% of the code might be “returned” by simple ctrl+c -> ctrl+v.

The main goal and task is to make anything playable “without much pain”, however, I won’t ever get ahead of myself and will prefer stability to speed.

Besides, there is no more sense in trying and failing to support “daily” reports at the blog – as the progress is actually negative. Further I’ll write only on significant milestones and achievements (if there will be any).

С нуля / Reboot

Провал / Fail

Хотел бы я порадовать хорошими новостями к Новому Году… но увы…

Текущее состояние проекта: ПРОВАЛ.

Анализ прогресса за сентябрь-декабрь 2017 года показал мою полную неспособность работать со сложными архитектурами, я так и не смог решить проблему с интерфейсом. А если нет возможности управлять игрой – то и играть не во что.

Я не бросил и всё ещё работаю – однако, вряд-ли можно ожидать что-либо играбельное в обозримом будущем. Скорее всего, 2018 год покажет, есть ли смысл вообще продолжать в этом направлении. Впрочем, у меня самые неутешительные подозрения.


I wish I could give you some good news for the Christmas… but unfortunately there are none.

Current project status: FAILED.

After analyzing the progress for September-December 2017 it proved me incapable of handling complex architectures and I was unable to resolve the problem with GUI. And as there is no way to handle input, there is actually nothing to play.

I don’t give up yet and still working on the game, but hardly anything playable might be expected anywhere soon. Actually, 2018 will reveal, is there any sense in going on, thou I feel extremely pessimistic about it now.

Провал / Fail

Медленно и неэффективно / Slow and inefficient

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


Last week’s work was low efficient with only 0.5-1 hours per day of some useful activities on game. Thou, most of it was dedicated to scenario – which obviously isn’t needed unless there will be a game 😦 And yes, another notepad is filled in. I wonder, when I’ll have enough time to copy everything into digital form?

Медленно и неэффективно / Slow and inefficient

Дальше по сюжету / More work on plot

Ещё немного продвинулся по сортировке и копированию сюжета. Важная и нужная работа “вообще”, но “к текущей цели” не особо приближает…


Moved some more on sorting and copying plot texts. It’s an important work in general, but it doesn’t get me any closer to “current goals”…

Дальше по сюжету / More work on plot

Неэффективно / Inefficient

За прошедшую неделю работа была достаточно неэффективной – привёл в порядок внешний вид кода, да сстраниц 30-50 текстов и диалогов отсортировал и загрузил на сайт. Работа по программированию на работе немного “усложняет” процесс, да и конца-края её не видно…


For the last week the work was relatively inefficient, I’ve put code formatting in order and sorted&uploaded 30-50 pages of texts and dialogues to the game development site. Working on a programming-heavy project at work and it slows down game progress.

Неэффективно / Inefficient

Проклятие Защитников Галактики / Curse of the Guardians of the Galaxy

Недавно просмотрел пятый эпизод “Защитников Галактики” (Telltale, которые). В первую очередь меня интересовал подход к работе со сценарием – ведь он был весьма подобный тому, что я планирую сделать в Decoherence. И, вот, как и ожидалось – в пятом эпизоде “ком последствий” оказался уже настолько велик, что даже те крутейшие сценаристы, которые работали над игрой – очевидно с ним не справились. От игры осталось несколько убогих “клик-клик-клик” и всё было посвящено разруливанию непомерного объёма контента, продиктованного решениями игрока в прошлых эпизодах. Короче, ответ на мой вопрос “и как они собираются это всё теперь соединять?” оказался очень простым – “никак”.

В общем, это весьма плохие новости для нас. Если они не справились – имея и несравненно большие финансовые возможности для получения соответствующего контента и команду куда более опытных и талантливых сценаристов, чем я… Что ж, остаётся надеяться на лучшее.

—-

Recently I’ve watched the Fifth episode of “The Guardians of the Galaxy” (Telltale game) at youtube. First of all I’ve been interested in their approach to scenario work – as it is very similar to the one I’m trying to make in Decoherence. Well… As I’ve been expecting – the fifth episode was so crushed under “caved in consequences” that the scriptwriters obviously couldn’t manage it. And the game turned into pitiful “click-click-click” in trying to solve out enormous amount of content, requested by decisions of the player in previous episodes. So, the answer to my question “And how on the Earth are they going to put it all together?” was simple – “They didn’t”.

On the dull side, it’s bad news for us. If they failed with available financial resources to request corresponding content and a much more talented scriptwriters team than I could ever dream of… Well… Let’s still hope for the better 🙂

 

 

Проклятие Защитников Галактики / Curse of the Guardians of the Galaxy

Медленнее в 10 раз / 10 times slower

Решил переписать программу по работе на основании новых знаний и умений. Интересное наблюдение: переписал загрузку данных через Generics.Collections  и TObjectDictionary. В результате загрузка с 4 секунд превратилась в … 50 секунд. Не смешно. Ладно, данные обрабатываются теперь лучше, но сама работа с объектами – это провал для производительности… эх… можно было бы без них обойтись…

Зато при этом сортировка – более чем в 25 раз быстрее в дженериках 🙂


I’ve decided to rewrite a program I needed for work based on my new knowledge and skills. An interesting observation: I’ve rewritten data loading through Generics.Collections and TObjectDictionary. And as a result the loading time changed from 4 seconds into … 50 seconds. Not funny at all. Ok, the data is processed better, but working with objects is a blackhole of efficiency… eh… I wish it’d be possible to do everything without OOP…

And with all this even simple search/sorting is over 25 times faster for generics.

Медленнее в 10 раз / 10 times slower

TDictionary вслепую / TDictionary blindfold

Промучился с API Generics.Collections. Из-за бага в CodeTools не было возможности взглянуть на объявления элементов, по этому пришлось работать вслепую 🙂 Вспоминал свои первые шаги с Castle Game Engine – но тогда я просто не умел пользоваться документацией и это был первый опыт работы с чужими исходниками. А теперь – та же “голова-ап-стену”, попытка подобрать название и синтаксис функций наугад, поскольку в документации Delphi всё куда более запущено…

Но, в общем, получилось.


Recently I’ve been struggling with Generics.Collections API. Due to CodeTools bug I could not see the definitions of the items, so I had to work blindfold 🙂 Remembered my first steps in Castle Game Engine – but at that point in time it was my inability to use the documentation, and it was the first experience with working with someone’s else code. And now – the same “banging my head on the wall”, trying to guess names and syntax of the functions, because Delphi documentation is very poor.

Well… anyway it worked out eventually.

TDictionary вслепую / TDictionary blindfold

Много, да дурного / Carrying water to sea

За выходные исправил множество мелких задач, самый большой блок работы – по профайлеру. Впрочем, визуального результата никакого нет 🙂 Да и ничего из сделаного не было критично по срокам…


These weekends I’ve solved a lot of small issues, with the largest chunk of work – the profiler. However, there is no actual visual result 🙂 And nothing of the solved tasks ever was urgent…

Много, да дурного / Carrying water to sea

Макросы / Macro

Открыл очень мощный инструмент Паскаля – макросы, которые позволили существенно оптимизировать код. Плотно занимаюсь рефакторингом логгинга и написанием профайлера.


I’ve discovered a very powerful Pascal tool – macro, which enabled a significant code optimization. Now working on logging refactoring and own profiler.

Макросы / Macro