[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений



Новые доски: /obr/ - Offline Battle Rap • /hv/ - Халява в интернете • /2d/ - Аниме/Беседка • /char/ - Сетевые персонажи • /wwe/ - WorldWide Wrestling Universe • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 29 | 4 | 13
Назад Вниз Каталог Обновить

Загорелся разработкой игры Аноним 01/08/16 Пнд 04:40:28 810040  
14700264282040.png (1835Кб, 1920x1080)
Сап двощ. Я загорелся разработкой игры под Windows Phone.

Игра - osu!. В магазине есть клон osu!WP, но он говно. Я хочу создать свой и лучше.

Это все конечно круто, но я не знаю с чего начать.
Я знаю что нужно знать DirectX, но даже не знаю как на нем нарисовать кружок, а как заставить его появится в нужное мне время так и подавно.

Вообщем, помогите плиз нубу, пните в нужном направлении, что учить, что знать и т.д. что бы написать такую игру.
Ответы: >>810041 >>810506 >>810554
Аноним 01/08/16 Пнд 04:42:39 810041
>>810040 (OP)
>2016
> Windows Phone
Ответы: >>810043 >>810103
Аноним 01/08/16 Пнд 04:45:25 810043
>>810041
Ты не поверишь, хоть порт и говно, но он работает и выглядит лучше любого порта на Андроиде, так что я решил именно делать на WP.
Аноним 01/08/16 Пнд 07:29:44 810103
>>810041
>2016
>не Windows Phone
Аноним 01/08/16 Пнд 07:30:59 810105
DirectX тут нахуй не нужен. Есть два стула - С# с его игровыми движками или JS через WinJS с его.
Ответы: >>810170
Аноним 01/08/16 Пнд 07:40:51 810116
14700372515390.png (77Кб, 632x915)
Директикс неудачный вариант для новичка. Писать сложно, возможностей мало, поддерживающих платформ тоже мало, а на каждый директикс десяток опенглов. Сейчас каждый школьник учит дирекикс или геймдизайн, а потом не знает что делать с этим. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Ответы: >>810170
Аноним 01/08/16 Пнд 09:28:18 810170
>>810105
Ты имеешь ввиду Win2D к примеру?

Игровые движки на JS серьёзно? как на этом скриптовом говне может быть игровой движок?

>>810116
Да, да, смещной.
Ответы: >>810171
Аноним 01/08/16 Пнд 09:33:16 810171
>>810170
Для игры вроде osu хватит и скриптоговна.
Ответы: >>810173
Аноним 01/08/16 Пнд 09:38:33 810173
>>810171
Тсс, парень, попридержи коней. Ты хоть представляешь себе какой охуевший движок нужен для осу!? Не допускаются задержки на user input более 5 мс, думаешь JS на такое способен?
Ответы: >>810190
Аноним 01/08/16 Пнд 10:09:20 810190
>>810173
У тебя нажатие на экран будет больше давать.
Ответы: >>810216
Аноним 01/08/16 Пнд 10:50:31 810216
>>810190
Двачую этого. Реально 25-250мс будет лаг. 5мс это байки уровня различать 120fps.
Ответы: >>810362
Аноним 01/08/16 Пнд 14:41:01 810362
>>810216
на есть osu!Stream - там нет никакого инпут лага, не одной миллисекунды. Чем вы это объясните?

Еще есть открытая реализация игры под названием opsu! - скачал исходники посмотреть, офигел от сложности проекта. Кажется я не затащу такое. Надо быть ультра хардкоре программистом что бы написать эту игру.
Ответы: >>810404 >>811100
Аноним 01/08/16 Пнд 15:41:09 810404
>>810362
И что же там экстраординарного? Оказывается программирование – это не шлёпать ассеты в юнити?
Ответы: >>810451
Аноним 01/08/16 Пнд 16:27:09 810451
>>810404
Да вообще звиздец, как вы програманы крутитесь во всем этом... Как стать таким умным...
Аноним 01/08/16 Пнд 17:18:48 810501
Бери главный движок для даунов - UE4. Потыкал на схемки в блюпринте и игра готова!
Ответы: >>810575
Аноним 01/08/16 Пнд 17:27:10 810506
>>810040 (OP)
Человек, разбирающийся в DirectX в треде.

ОП, бери готовый движок и не морочь себе и людям голову. DirectX слишком тонок и прекрасен для тебя. Не каждый может пользоваться им по максимуму, а по тебе видно, что ты не сможешь точно.
Ответы: >>810575
Аноним 01/08/16 Пнд 18:23:07 810554
>>810040 (OP)
Лол, зачем тебе директикс, пока ты там одну кнопку интерфейса сделаешь пройдет полгода, бери хну если под винду делаешь и не парся.
Ответы: >>810575
Аноним 01/08/16 Пнд 18:44:20 810575
14700770606660.jpg (6Кб, 334x429)
>>810501
Ага, готова с задержками по 130 мс?
>>810506
Ты прав, Директ и правда слишком хардкорен для ньюфага, но я нашел Win2D, этот API как раз построен вокруг DirectX, но при этом намного проще.
>>810554
Да уже определился - Win2D.

Благодарность всем кто отозвался.

И так, начну пожалуй с core механик, а именно - круг. Допустим я нарисовал круг, 1 строчка кода, великолепно.

Теперь главный вопрос, который меня мучает. Как задать КОГДА появится кругу на экране? Запустить что-то типа таймера и указать точную миллисекунду от начала, например 698 мс. Как такое реализовать ? Это сложно?
Ответы: >>810583
Аноним 01/08/16 Пнд 18:59:22 810583
>>810575
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644904(v=vs.85).aspx
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644905(v=vs.85).aspx

Первое - счётчик тактов, второе - число тактов в секунду. Оборачиваешь в класс Timer.

Дальше у тебя есть варианты:
1. Убогий Java-style вариант. Делаешь абстрактный класс листенера, наследуешь от него класс игры, в таймере регистрируешь все классы, унаследованные от листенеров. В каком-нибудь методе Timer::Tick() вызываешь что-то вроде
for(auto &l: mListeners)
{
    l->DoTimerWork(mTotalTime);
}
Этот метод дерьмо, потому что имеет джавовские корни. Я привёл его только для того, чтобы ты знал, как выглядят коммиблоки от мира ПО.
2. Отличный и неплохой вариант. В главном классе своей игры прописываешь членом экземпляр класса Timer.
Потом в главном цикле игры вызываешь:
...
if(mTimer->GetTotalTime() >= 698)
{
...
}
...
Этот метод более предпочтителен.
Ответы: >>810628 >>810632
Аноним 01/08/16 Пнд 20:02:48 810628
>>810583
Спасибо анончик, хотя бы понял в какую сторону копать и как вообще в программе измерять время.
Исходя из документации "which is a high resolution (<1us)" можно делать просто охуеть какую синхронизацию. Неужели все те горе разрабы наделавшие кучу портов с кривой синхронизацией не знают про QueryPerformanceCounter?
Ответы: >>810650
Аноним 01/08/16 Пнд 20:07:03 810632
14700820234870.jpg (99Кб, 854x768)
>>810583
>Делаешь абстрактный класс листенера, наследуешь от него класс игры, в таймере регистрируешь все классы, унаследованные от листенеров
Какой пиздец, господи, какой пиздец. Жавабляди ежедневно делают такое для простейших действий?
Ответы: >>810650
Аноним 01/08/16 Пнд 20:29:22 810650
>>810628
Это же просто таймер. А синхронизация зависит от времени отклика экрана и от того, как реализовано взаимодействие с интерфейсом.

>>810632
Конечно.
Аноним 01/08/16 Пнд 20:52:07 810669
Есть много зыков для геймдева. Разрабатывать игры можно на чём угодно - С++, C#, JS, Python и другие, но большинство из них крайне неудобны. Тебе придётся провести много месяцев в изучении базовых вещей, а потом окажется, что это нереализуемо на данном языке. Самый универсальный язык для геймдева - это Haskell. Он может абсолютно всё - на нём созданы Assasin's Creed, Warcraft III, WoW, Call of Duty, Skyrim и даже последний Ведьмак. Haskell подходит для любых жанров - стратегии, рпг, шутеры, симуляторы. Посмотри на список игровых движков на Haskell - https://wiki.haskell.org/Game_Development
Ответы: >>810675
Аноним 01/08/16 Пнд 20:56:33 810675
>>810669
Шуточка с хаскелем уже была, ты опоздал.
Аноним 02/08/16 Втр 10:52:07 811100
>>810362
> открытая реализация
и то ее геймплей далек от геймплея осу

кстати, осу планируют опенсорснуть, так что лучше уж смотри оригинал
Ответы: >>811121
Аноним 02/08/16 Втр 11:23:50 811121
>>811100
Согласен, геймплей там неочем, но это самая близкая к оригиналу реализация.

>опенсорснуть
Вот это уже поинтересней. Чет я сииильно сомневаюсь что пипка откроет всем желающим свое детище.
Ответы: >>811451
Аноним 02/08/16 Втр 11:38:20 811128
Зачем вообще писать игры под Windows Phone, в данный момент лидирующие платформы это Android, IOS
Аноним 02/08/16 Втр 17:50:38 811451
>>811121
> Чет я сииильно сомневаюсь что пипка откроет всем желающим свое детище.
вот это https://github.com/ppy/osu за пруф сойдет?
еще у него в блоге где-то аж в 2014 было обещание опенсорснуть, но мне лень искать
Ответы: >>811486 >>813361
Аноним 02/08/16 Втр 18:37:28 811486
>>811451
Страница с этим обещанием висит там уже ровно год.
Ответы: >>813361
Аноним 04/08/16 Чтв 19:38:09 813361
>>811451
>>811486
Вот именно, не соизволит он.

Пока иду по https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169 этим курсам.

Почему у меня нет чувства что они помогут в написании osu!? Может после них надо еще курсов по геймдеву навернуть? И где вообще можно посмотреть как ПРАВИЛЬНО писать код? ну типа как заранее все просчитывать, все классы, переменные, что закрытое, что открытое. Вот это всё.
Откуда создатель opsu! всё это знает???

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ Автообновление ] 29 | 4 | 13
Назад Вверх Каталог Обновить

Топ тредов
Избранное
Подписывайся на официальный канал Двача в Телеграме и узнавай обо всех новостях и мемах первым! https://tlg.wtf/dvachannel[X]