Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 24.09.2014, 19:56   #436
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от mr.DIMAS Посмотреть сообщение
У себя в движке использую свою корявую библу. Тащит мышь, клаву. Есть поддержка KeyUp, KeyDown, KeyHit, MouseDown, MouseUp, MouseHit, позиция мыши относительно начала клиентской области окна. Мне хватает с головой.
И ты это делал поверх DirectInput? А как дела обстоят с языками? Например если я русский текст ввожу мне самому нужно преобразовывать? Всё тоже самое есть в сообщениях Windows, в том числе и языковые локализации. Короче мне кажется это велосипед, DirectInput и XInput нужны для аналоговых устройств, типа джойстиков, рулей, педалей, возможно мыши.
Хотя я сам тоже через DirectInput всё сделал, но вот сейчас буду переделывать.

//================================================== ======

К тому же у тебя в MagicInput обращение к клавиатуре через GetDeviceState -- при низком FPS у тебя нажатия будут выпадать или будет неправильная очередность при быстром наборе текста. Через состояние устройства можно опрашивать только аналоговые устройства (мышь, рули, контроллеры и т.п.)
(Offline)
 
Ответить с цитированием
Старый 30.09.2014, 19:32   #437
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Долго отдыхал от игродела. Играл в дарксоулс 2. Но настало время вернуться.

Прошел свою игрушку с не затуманенными мозгами и понял, что очень мало интерактива в игре. Поэтому добавил разные интерактивные объекты:
1) Лестницы
2) Двери( есть и запертые двери, но ко всем есть ключи - ибо это не сайлент хилл )
3) Вентиляционные ходы( общее название, на самом деле можно будет ползать и в узких проходах - например в трещине в скале )

По лестницами можно лазать вверх-вниз. По вентиляционным ходам можно ползать туда-сюда.

Вообще полезно отдыхать от геймдева - сразу свежие мысли в голову приходят.
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
Arton (30.09.2014), Samodelkin (30.09.2014)
Старый 02.10.2014, 16:13   #438
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Как на ваш взгляд: стоит ли делать видимым тело персонажа, и соответственно анимировать его для разных действий - типа того, как сделано в Outlast?

P.S. Переехал на C++11 и Bullet Physics 2.81. Сделал в движке строгую типизацию - до этого все хендлы объектов из движка передавались в виде указателя на объект reinterpret_cast к int. В итоге появлялись трудно уловимые баги.
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
impersonalis (02.10.2014), Samodelkin (02.10.2014)
Старый 02.10.2014, 21:05   #439
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от mr.DIMAS Посмотреть сообщение
Как на ваш взгляд: стоит ли делать видимым тело персонажа, и соответственно анимировать его для разных действий - типа того, как сделано в Outlast?
Достаточно анимировать руки и движения камеры для разных действий.
Я думаю пока лучше экономить.

P.S. Переехал на C++11 и Bullet Physics 2.81. Сделал в движке строгую типизацию - до этого все хендлы объектов из движка передавались в виде указателя на объект reinterpret_cast к int. В итоге появлялись трудно уловимые баги.
MSVS 2013 не до конца совместим, но кодить на С++11 в целом можно.
Еще там какие-то расхождения со стандартом в ексепшонах, там нет ключевого слова noexcept, вместо него throw(), хотя в стандарте 98 throw() означает любое исключение, а в С++11 писать throw считается устаревшим -- достаточно только noexcept, таким образом компилятор не будет генерировать дополнительный код для перехвата и сделает программу быстрей, однако в std есть много того что кидает исключения, поэтому где попало noexcept ставить нельзя.
(Offline)
 
Ответить с цитированием
Старый 03.10.2014, 14:32   #440
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

MSVS 2013 не до конца совместим
Ну я вообще на 2012 студии. Но поддерживаемых фич мне достаточно. Чего только стоит for( auto smth : something ) { } .
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (03.10.2014)
Старый 03.10.2014, 18:25   #441
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Да С++11 это почти новый язык, если будешь только фичи добавлять с существующий код -- не раскроешь весь потенциал.
Страуструп в 4 издании говорит что нужно архитектурно новые подходы делать, тогда новые фичи будут как можно лучше ложиться в общий контекст задуманного.

Вообще из своей практики еще могу добавить:
override -- удобно помечать виртуальные функции, чтобы случайно при опечатке не создать похожую, но не виртуальную функцию. Компилятор скажет что такой функции в базовом классе нет.
final -- помечать класс что он финальный, в этом случае можно не делать деструктор virtual (обычно делали, чтобы не забыть когда начнешь наследовать), теперь если попытаешься наследовать то нужно будет убрать final, и сразу автоматически это напоминает проверить деструктор на virtual.
списки инициализации -- теперь переменные рекомендуется инициализировать вот так:
int a { 10 };
потому что у списков инициализации более строгая типизация, и например в данном случае:
char a { 257 };
будет ошибка, и ты не накосячишь с переполнением значения.
К тому же списки инициализаций напрямую инициализируют переменную без промежуточных присваиваний.
Тоже относиться к классам.
Также полезны variadic templates -- они заменяют собой функции с переменным числом аргументов. Не часто, но кое-где я нашел им применение.
Ексепшены стали удобней и быстрее.
Например можно оформить конструктор так:
B::B( void ) try : A() { //code } catch ( const except& ex ) { //deinit throw; }
Таким образом мы в случае неудачи восстанавливаем состояние объекта локально, затем передаем ексепшен вызывающему коду, для более глобальных действий. Под try попадает также и конструктор базового класса.

Еще в классах можно создавать конструкторы перемещения и операторы присваивания с перемещением -- однако я пока не нашел им широкого применения.
Ещё, раньше чтобы скрыть конструктор копирования и оператор присваивания (обычные) не писали их тело, таким образом компилятор выдавал ошибку компиляции, теперь же можно помечать такие функции A( const A& a ) = delete;
Лямбда местами удобно использовать, например при обобщении кода внутри функций.

Применение библиотеки стало намного лучше и читабельней.
Так что теперь имхо её можно применять чаще, даже внутри движка, за исключением очень критических к производительности мест.

Вот но в общем если относиться к С++11 только как к дополнительным фичам, не получится раскрыть его возможности полностью.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Samodelkin за это полезное сообщение:
HolyDel (05.10.2014), impersonalis (04.10.2014), mr.DIMAS (03.10.2014), Mr_F_ (03.10.2014)
Старый 03.10.2014, 20:44   #442
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Эх, открыл бы я для себя C++11 раньше, в начале написания движка, то архитектурно он был бы другим нежели сейчас. А так мне только фичи можно использовать, ибо архитектура уже есть и каждое ее изменение проходит болезненно. Когда доделаю игру, тогда вполне возможно начнется глобальный рефакторинг движка с учетом нового стандарта.
__________________

(Offline)
 
Ответить с цитированием
Старый 03.10.2014, 22:14   #443
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Можно разделить движок на отдельные модули, так чтобы циклически производить рефакторинг и модернизацию каждого, в относительно короткий по времени цикл.

Стараться держать общий объем кода в пределах своих возможностей, чтобы не терять контроля и гибкости разработки.
Одним словом не делать "на века", а с вероятностью что может через месяц-два придется заменить/переписать/модернизировать.
Таким образом стараться минимизировать кол-во своего кода, пользоваться функционалом других библиотек, убирать устаревшие или "запасные" возможности, которыми на вряд ли будут пользоваться.

Я например задаю себе вопрос, если гипотетически сурцы исчезнут, за сколько я могу с нуля восстановить коды движка.
Если в пределах 2-3 месяцев, значит объем кодов движка в целом удовлетворяет моим возможностям.

В целом есть много способов улучшать и увеличивать возможности движка, без увеличения объёма исходного кода.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (04.10.2014)
Старый 05.10.2014, 17:33   #444
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Улучшаю существующие уровни. На сей раз это шахта. Добавил крепь на своды и дощатый пол.
Миниатюры
Нажмите на изображение для увеличения
Название: Mine 2014-10-05 16-30-10-20.png
Просмотров: 1042
Размер:	1.69 Мб
ID:	21019  Нажмите на изображение для увеличения
Название: Mine 2014-10-05 16-30-17-91.png
Просмотров: 1022
Размер:	1.56 Мб
ID:	21020  Нажмите на изображение для увеличения
Название: Mine 2014-10-05 16-30-27-62.png
Просмотров: 969
Размер:	1.66 Мб
ID:	21021  Нажмите на изображение для увеличения
Название: Mine 2014-10-05 16-30-41-17.png
Просмотров: 978
Размер:	1.56 Мб
ID:	21022  
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
Arton (07.10.2014), Samodelkin (05.10.2014)
Старый 06.10.2014, 22:23   #445
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Промежуточная версия. Потестируйте на баги.

http://tempfile.ru/file/3095859
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
Samodelkin (07.10.2014), tirarex (07.10.2014)
Старый 07.10.2014, 00:03   #446
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: [TrueHorror] - разработка

Поругалась что OpenAL32 не юзабельна и вылетела.

Upd Удалил и заработало

В общем после начала напряг вид руки и все еще звук зажигалки.
Пошел в тоннель там меня завалило и появилось задание проверить вход , после того как сходил ко входу оно не исчезло.
Вошел в пещеры - фпс как рукой сняло.
Вседозволенность перемещения это не очень крутая фича без подсказок куда идти.
Полез по лестнице - пролез через нее и цеплялся не знай чем (скрины).
После лестницы остались звуки топанья по металу.
Зарядил фонарик керосином.
Добрался до детонатора но он не взрывается ( предполагаю что бомбу надо сделать)

Запустил игру в окне а его двигать нельзя
Миниатюры
Нажмите на изображение для увеличения
Название: Скриншот 2014-10-06 23.13.36.png
Просмотров: 1068
Размер:	204.5 Кб
ID:	21032  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (07.10.2014)
Старый 07.10.2014, 00:07   #447
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: [TrueHorror] - разработка

Энжой йор свой движок
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (07.10.2014)
Старый 07.10.2014, 00:44   #448
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Блин я на восьмерке не тестировал. Вообще хз че может быть. Может поможет удаление OpenAL32.dll?

upd. Поиск сказал что это из-за перемешивания 32 битных и 64 битных библиотек. Хотя я компилировал всё в 32 бита.

И еще - поставь http://www.microsoft.com/ru-ru/downl....aspx?id=30679

Добрался до детонатора но он не взрывается ( предполагаю что бомбу надо сделать)
Да, надо собрать по четыре штуки - детонаторов, взрывчатки и проводов закрепить их на стене и потом взорвать.
__________________

(Offline)
 
Ответить с цитированием
Старый 07.10.2014, 01:13   #449
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: [TrueHorror] - разработка

Собрал все в стену и взорвал и фпс вернулся =)
Погулял и собрал 2 предохранителя , вернулся поставить и вылет.
Скажи как попасть сразу на какой то левл !
(Offline)
 
Ответить с цитированием
Старый 07.10.2014, 01:23   #450
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Погулял и собрал 2 предохранителя , вернулся поставить и вылет.
Вылет? Опиши ситуацию, как произошел?
Скажи как попасть сразу на какой то левл !
Ну никак пока. Хотя я добавлю в mine.cfg номер уровня для загрузки.
__________________

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:04.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com