Pull to refresh
31
Иван Щербина@Jester92

Старший инженер-программист (C++/Python)

2
Rating
11
Subscribers
Send message
Насколько я понимаю, пул объектов предназначен для того, чтобы во время использования получить готовый объект, а не создавать его. В пуле может быть множество объектов одинакового типа. Также он рассчитывается на достаточно большое количество объектов. Расчёт при разработке был в другом — небольшое количество объектов, которые будут храниться в единственном экземпляре. Здесь есть что-то и от пула объектов, и, как уже писали, от паттерна Dependency Injection.
Предположительно, в проекте не будет больше 30-40 глобальных переменных. В том же CryEngine насчитал в структуре около 45. С этим расчётом разрабатывалось и тестировалось. В случае, если количество глобальных объектов переваливает за сотню, то, возможно, с архитектурой проекта не всё хорошо.
В любом случае замечание дельное и в ближайшее время постараюсь потестировать с большим количеством объектов и разными контейнерами. Благодарю за отзыв.
Компании может и не нуждаются в самих хабрах, но нуждаются в людях, которые читают хабр. Конечно, для разработки графики не требуется очень много спецов, но они нужны (посмотрите вакансии топовых компаний). А начинающий специалист должен с чего-то начинать, для чего и предназначен данный цикл уроков. Прошу прощения, если я вас не так понял.
Но кто-то же должен писать готовые движки? Для этого нужно разбираться, как это делать. Если раньше только иногда вспоминалась «Академия» Азимова, то сейчас, при прочтении подобных комментариев или статей, прямо уже вижу картину, как физики-ядерщики возводятся в ряд жрецов.
Хабр для разработчиков, а по своему, возможно и небольшому опыту, сложнее идею или концепцию придумать, продумать и отполировать в голове, а не код настрочить.
Для небольших игр можно использовать CEGUI, у которого есть отрисовщики и для DirectX, и для OpenGL, и для OGRE — основное что использовал. Даже редактор свой есть (правда со своими особенностями). В сумме библиотек для релизной версии у меня получилось около 11 мб.
А для больших игр не используются сторонние наработки по причине либо их закрытости и невозможности быстро допилить нужный функционал/исправить баг, либо из-за недостаточности функционала/производительности, либо кто-то в команде сказал — «Да сейчас сделаем, тут не сложно».
Насколько знаю коэффициент увеличение памяти в зависит от компилятора std::vector::push_back. И советую пользоваться std::vector::reserve или std::vector::resize — это позволяет избавиться от лишних копирований содержимого вектора.
как земля, подарившая Пушкина, Королёва, Лермонтова, Солженицына

С Пушкиным и Лермонтовым довольно интересная история. И довольно мутная. А то, что Вы считаете их ссыльными и противниками царского режима — результат пропаганды в СССР. Про Солженицына — он не прав. Серьёзно, прочитал «Один день из жизни Ивана Денисовича» -отличное произведение. Архипелаг дальше тридцатой страницы прочитать не смог: перекручивание фактов.

Но вообще это не на хабре обсуждать.
Выглядит интересно. Благодарю, поразмышляю над вариантом.
native нужно отмечать методы, которые вызываются из Java и определяются в C++. Если не ошибаюсь, то
package com.mypackage;
class Test {
private static native void nativeMyMethod();
public void JavaMethod() { nativeMyMethod(); }
}

А в С++ определение будет
extern "C" void Java_com_mypackage_Test_nativeMyMethod() {...}

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

Information

Rating
1,767-th
Location
Россия
Works in
Registered
Activity