Некомпетентность / Incompetence

Выдали у нас закон, по которому каждый выпускник школы/вуза должен отличаться призрачной “компетентностью”. Анализируя “события” нескольких последних недель – наверное, это и есть то самое слово, антонимом которого стоит “описать” текущее состояние дел 🙂
Итого.
Способность правильно определить сроки – нет.
Способность адекватно решать поставленные задачи – нет.
Способность приоретизировать задачи – нет.
Способность сконцентрироваться на работе не отвлекаясь – нет.
Способность составить правильную front-end архитектуру – нет.
Умение корректно работать с потоками – нет.
Переделано куча работы, но всё сумбурно и неорганизованно. Результатов по майлстоунам – почти нет. Как обычно, методы ускорения и оптимизации времени дают эффект на несколько недель, а потом эффективность работы снова “скатывается” в ноль.
Одно интересно, когда я сам вдруг начал верить, что получится так как задумано? 🙂 Да, я уже давно понимаю, что этот проект оказался слишком сложным для моего “уровня” и есть огромный соблазн “скатиться” в мелкие игрушки-проекты, которые можно посмотреть, пощупать и, собственно, получить позитивные эмоции от программирования, а не глобальное разочарование в своих способностях от бесцельных попыток найти ошибку, когда даже не понятно, где начинать искать…
С одной стороны – за это время можно было бы “сделать много полезного”. С другой – понимаешь, что вся работа клином сошлась на “интерфейсе” и пока он не заработает – смысла двигаться дальше нет. В результате – то, что есть на данный момент – десятки часов работы и околонулевой результат (по крайней мере моя текущая оценка).
Итого, что имеем “в осадке”?
Очередная (это была 4-я или 5-я? – я уже сбился со счёта) версия интерфейса оказалась нерабочей для сложных объектов – и как всегда, в состоянии “вот-вот уже будет готово” вылазит баг, который в конце концов оказывается принципиальным и неисправимым. Снова стирать всё и переписывать с начала, с нулевой гарантией, что в этот раз уже точно будет иной результат? Бессмысленно. Я просто элементарно не способен качественно спроектировать такую сложную систему.
Единственной альтернативой формату “наконец сдаться и признать, что этот проект мне явно не по силам” – упростить интерфейс, а именно зафиксировать его под одно разрешение экрана. С одной стороны, это и проще и более эффективно с точки зрения оперативной памяти. С другой – это означает, что два последние года работы отправляются прямиком в мусорное ведро, возможно, вместе с поддержкой Андроида. Но, в общем, так лучше, чем вообще всё забросить.
Вторая проблема – неграмотное использование потоков. Не вдаваясь в подробности, загрузить и инициализировать трёхмерные объекты не прерывая игры – как минимум чревато багами, если вообще возможно это сделать правильно. Учитывая это – соблазн отказаться от потоковой загрузки данных (и некоторых потоковых процедур обработки) очень велик, особенно на фоне последних “событий”, подтверждающих, что вряд-ли я буду способен справиться с решением соответствующих задач.
Впрочем, такое мифическое упрощение имеет фатальные последствия. Я не говорю про анимированные экраны загрузки, которые отправятся в мусорное ведро – они и так туда отправятся вместе с интерфейсом. Речь идёт о том, что в таком случае в это же мусорное ведро отправится и внешний мир в текущем состоянии, поскольку он априори не уместится в память весь одновременно.
Третья, к счастью, не такая убийственная проблема – переработка редактора игровых данных. Речь снова идёт о новой архитектуре, которая по своей сути достаточно сложная и также может вполне оказаться неработоспособной в результате, а для этого достаточно того, что она окажется не такой удобной, как описано в возложенных на неё надеждах :).
Что в результате? Не знаю. Честно, не знаю.
Мало того, что я до сих пор не до конца представляю себе, как правильно сконструировать и использовать навигационную сетку. Мало того, что текущий алгоритм генерации внешнего мира явно слишком медленный и, вполне вероятно, содержит несколько критических ошибок в архитектуре. Мало того, что далеко не понятно, как писать скриптовый язык. Мало того, что я лишь очень приблизительно представляю себе где и как достать необходимый контент (в первую очередь анимированные трёхмерные модели) на игру. Так ещё и, по сути, необходимо глубоко переработать почти всё, что было сделано до этого.
—-
In Ukraine they issued a law that every graduate must have a mysterious “competence” skill. Analyzing the “events” of several recent weeks – maybe the “incompetence” is the right word to describe the current state of art 🙂
So:
Ability to adequately determine time required – no.
Ability to adequately solve the tasks – no.
Ability to prioritize the assigned tasks – no.
Ability to concentrate on work and not get distracted – no.
Ability to develop front-end architecture – no.
Ability to operate threads correctly – no.
A lot of work has been done, but it was very unorganized. Almost no results on milestones. As usually, methods for time-management and process-management prove efficient only for a few weeks and afterwards the efficiency again rolls back to “near-zero”.
One thing interests me – when did I start believing myself that I can do it as I plan? 🙂 Yes, for a long time I already understand that this project proved too complex for my current level and there is a great temptation to fall back to small games/projects, that can be quickly pushed to a visible, playable results, which in turn would provide with positive emotions from game development in contrast to a global disappointment by own lack of skill and aimless bug-hunting in dozens of thousands of lines of code.
On one hand “a lot of useful” could have been done in this time. On the other hand – everything now is slowed down by the Interface and until it works – there is no sense in going further. As a result – dozens of hours of work and nearly zero result (at as I estimate it).
So, what is the current situation?
A new Interface version (is it 4th or 5th – I’ve already lost count of them) appeared to be incapable of operating complex interface elements. As usually in state “it’s almost working!” a new bug occurs and appears to be essential and unfixable. Should I re-write everything from the scratch with zero guaranty that it won’t end with the same result? Pointless. I’m just incapable of designing a valid architecture for such a complex system.
The only alternative to “finally give up and admit that this project is far beyond my capacity and skill” is to simplify the interface by fixing the screen resolution and aspect ratio. On one hand it is simpler and more RAM-efficient. On the other hand it simply means to discard 2 last years of work into a garbage thrash, presumably, together with any hope for Android support. Well… anyway better than discarding the whole project.
The second problem is improper threads usage. Not going into details, to load and initialize 3D objects in the background is at least inherently buggy, if ever possible. Considering this issue there is a great temptation to deny threaded data loading and processing, especially looking at my previous experience, that proves me incompetent to solve the task.
However, such mythical simplification has a few fatal consequences. I’m not speaking of animated loadscreens which will be discarded anyway with the new Interface approach. I mean that the whole overworld concept in its current state will be thrown out into garbage, because if it can’t be loaded progressively, it won’t work at all.
The third (hopefully not so dramatic) problem is refactoring of game data editor. And again it goes on about changing the whole architecture into something very complex which in turn may prove wrong, at least just because it won’t meet the expectations and will become too complex to work with.
So, what’s the conclusion? I don’t know. I honestly don’t know.
Not only I still don’t understand how to construct and use navigation network properly. Not only the current overworld generation algorithm is inherently slow and may already contain some critical architecture flaws. Not only I still have only basic ideas on how to write the script-language. Not only I have very little idea on where to get the necessary assets (first of all speaking of animated 3D models)… But also now I need to reprocess almost everything that was done before.

Advertisements
Некомпетентность / Incompetence

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s