Ищу программистов для разработки двумерного игрового движка реального времени с блекджеком и всем прилагающимся инструментарием Цель разработки заключается в использовании разработанного продукта для создания своих игр в будущем, как коммерческих, так и бесплатных. Проект не коммерческий. Разработка ради обучения, опыта и интереса. Понимаю, что на них хлеб не купишь, тем более с маслом, но все же. Разработка с чистого листа: формирование требований, проектирование, реализация, тестирование, эксплуатация и сопровождение. Требования: адекватность, возраст 18+, знание С++, знание английского - умение читать техническую литературу. Насчет знания технологий - не страшно, учить все равно придется. Сам многого незнаю. Своих проектов не было. В основном изучал исходные коды других игровых движков - закопался в чужих творениях, так сказать. Остальные вопросы задавайте в теме, либо в ЛС. Троли пусть идут лесом или подальше.
Сообщение отредактировал antonyvolkoff - Вторник, 16 Сентября 2014, 21:06
Конечно не 2008+, а 2003 года: C&C Generals Zero Hour - тупящая немножко, но классная. Crysis 2, Crysis 3, Dead Island, Dead Island Riptide, Tomb Raider, Colin McRae: DiRT 2, Cities XL 2012: Огни большого города, Command and Conquer 3: Tiberium Wars.
Как реализовать течение времени в игре параллельно с игровым процессом? Например, по истечении определенного времени от действия А должно произойти действие Б, но в это время пользователь может что-то делать в игре. Опишите как это сделать, можно без привязки к какому-то языку - алгоритмом или метод
Есть такая штука как таймер. Всё просто - при действии А создаешь таймер и указываешь время (ну может ещё функцию обратного вызова), через которое должно произойти событие В. Итак, таймер обновляется каждый кадр - прибавляя время обработки последнего игрового кадра ко счетчику внутри него (таймера), проверяя истекло ли время, заданное пользователем (программистом). Для упрощения задачи можно сделать менеждер таймеров игры. Хотел написать псевдокод, но долго...
Я разработчик игр, имею опыт с работой в 3Ds Max, Adobe Flash CS6. Раньше работал с CryENGINE 3.
Цитата
2 месяца я придумывал сюжет для шутера от первого лица"Fate of death" и в конце концов придумал. Сам я имею опыт с работой в 3Ds Max, Adobe Flash CS6. Раньше работал на игровом движке CryENGINE 3. Так же я понемногу изучаю C++.
Цитата
И так, я ищу программистов для создания игрового движка на C++, который будет использовать DirectX 9 на первое время. Так же игровой движок должен поддерживать технологию Flash (Чтобы при помощи Adobe Flash CSx можно было создать меню, HUD и т.п.). Так же желательно, чтобы был редактор для создания уровней и кат-сцен. Движок должен поддерживать .3ds, .chr и др. форматы
Цитата
Оплата будет после завершения разработки, так как игра будет инди
Если попробовать использовать события? В модуле ввода, регистрируется слушатель. При обновлении модуль ввода отсылает слушателям события через заранее определенную функцию. Например, думаю идея понятна:
Код
// Событие struct SEvent { // содержание события: код клавиши, время или еще чего... EKey key; };
доходит до фанатизма, типа пишут свои аллокаторы памяти и прочее
Аллокаторы не только фанатики пишут, но и те, которым скорость malloc/new мала. По теме, простой движок это не движок, а больше фреймворк или большой костыль. SFML, HGE, Angel2D, WindMill, DGLE - они, вроде, с открытыми исходными кодами. Хотя они больше фреймворки, чем игровые движки.
Сообщение отредактировал antonyvolkoff - Понедельник, 09 Июня 2014, 01:51
Ассоциативный массив стандартной библиотеки шаблонов. Хранит пары - ключ и данные. Отсортирован по ключу.
Цитата-l33t-h4xx- ()
Если структура файла именно такая, то можно воспользоваться (для начала) простым решением: считывать по слову из файла и записывать значения в ассоциативный массив. Вроде этого:
Я, конечно, всё понимаю, но твоя система загнется на этом *.ini файле:
Код
[test] value=testval
Это только начало. Гы-гы. Сначала идет секция, а не ключ. Обычно, ключи не повторяются. Секция может не иметь ключей со значениями или без значений - пустая секция. Обработка комментариев, пробельных символов - пробелов, переносов строк, табуляций?
Сообщение отредактировал antonyvolkoff - Воскресенье, 08 Июня 2014, 18:00
Подскажите, как мне вычленять нужную информацию из сейва?
Если я не ошибаюсь, это *.ini файл, соответственно идём в гугл и ищем по запросу "Парсер ini файлов". Есть замечательный сайт habrahabr, на котором есть соответсвующая статья с подробным описанием. Читаем, размышляем, пишем, используем.
Сообщение отредактировал antonyvolkoff - Воскресенье, 08 Июня 2014, 01:19
Конструктор используется для начальной инициализации объекта в памяти, как не странно. С его помощью задаются начальные значния переменным (полям) класса, выделяется память и прочее. Деструктор в свою очередь используется для корректного освобождения выделенной памяти. Например, в конструкторе трехмерного вектора можно присваивать нуль всем переменным координат вектора, получая нуль-вектор. В деструкторе какого либо менеджера, можно корректно освободить память, выделенную под сущности, им управляемые. Псевдокод конструктора трехмернного вектора и деструктора менеджера объектов:
Код
CVector2D(void) : x(0), y(0), z(0) { }
~CObjectMgr(void) { for(it = objects.begin(); it != objects.end(); ++it) delete (*it); // Освобождаем каждый объект }
Здравствуйте! Объясните мне на пальцах, что такое конструктор и деконструктор классов. Сколько перечитал различных книг и статей, все-равно никак не пойму. С меня ++.
Конструктор класса - это функция, вызываемая после создания экземпляра этого класса. Деструктор класса - это функция, вызываемая перед уничтожением экземпляра этого класса. Например:
Код
#include <iostream>
class CTest { public:
// Конструктор CTest(void) { std::cout << "The instance is created!" << std::endl; }
// Деструктор ~CTest(void) { std::cout << "The instance is destroyed!" << std::endl; } };
int main(int argc, char** argv) { CTest test; // Создаём экземпляр класса
return 0; // Возвращаем нуль }
После копипаста, сборки и запуска видим:
Код
The instance is created! The instance is destroyed!
Сообщение отредактировал antonyvolkoff - Суббота, 07 Июня 2014, 16:58
Это нормально. У меня на ноуте так же (win 8). Но нагружает, конечно, она диск при выполнении каких-либо задач, а не просто так.
Это ненормально! Только что столкнулся с аналогичной траблой, но дело было в обновлении, которые ноут жадно качал и устанавливал... Еще, кстати, локальная служба 800+ ОЗУ съедала... Вырубил обновления, перезагрузил систему - всё нормально!
Цитатаromgerman ()
Обычно диск нагружает больше всего антивирус...
Антивирусы хуже вирусов уже, ИМХО...
ЦитатаRed_Squirrel ()
Fejk2015, была аналогичная проблема, решается отключением встроенного в windows 8 антивируса(Защитник windows или как-то так он называется), который в свободное время начинает проверку диска на вирусы, тем самым и грузит жесткий диск. На сколько помню, он начинал проверять, когда не пользовался компьютером в течении 5-ти минут, достаточно просто пошевелить мышкой, как загрузка тут же падала.
Это мелкомягкое зло! Ад при установке огромных исполняемых файлов, например, DXSDK.
ЦитатаIzaron ()
А вы знаете рассказ про школьника, который установил себе Убунту, после чего зарегистрировался на ЛОРе и вступил в 100500 групп вк (осторожно завуалированный мат) "НА КОЛ ВИНДОЮЗЕРОВ"? Правда, на следующий день убунту пришлось снести, так как школиё не смогло туда установить батлу
Случайно не тот, кому "скучные виндовозкие обои" надоели?