Сап двощ. Я загорелся разработкой игры под Windows Phone.Игра - osu!. В магазине есть клон osu!WP, но он говно. Я хочу создать свой и лучше.Это все конечно круто, но я не знаю с чего начать.Я знаю что нужно знать DirectX, но даже не знаю как на нем нарисовать кружок, а как заставить его появится в нужное мне время так и подавно.Вообщем, помогите плиз нубу, пните в нужном направлении, что учить, что знать и т.д. что бы написать такую игру.
>>810040 (OP)>2016> Windows Phone
>>810041Ты не поверишь, хоть порт и говно, но он работает и выглядит лучше любого порта на Андроиде, так что я решил именно делать на WP.
>>810041>2016>не Windows Phone
DirectX тут нахуй не нужен. Есть два стула - С# с его игровыми движками или JS через WinJS с его.
Директикс неудачный вариант для новичка. Писать сложно, возможностей мало, поддерживающих платформ тоже мало, а на каждый директикс десяток опенглов. Сейчас каждый школьник учит дирекикс или геймдизайн, а потом не знает что делать с этим. Лучше попробуй 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 Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
>>810105Ты имеешь ввиду Win2D к примеру?Игровые движки на JS серьёзно? как на этом скриптовом говне может быть игровой движок?>>810116Да, да, смещной.
>>810170Для игры вроде osu хватит и скриптоговна.
>>810171Тсс, парень, попридержи коней. Ты хоть представляешь себе какой охуевший движок нужен для осу!? Не допускаются задержки на user input более 5 мс, думаешь JS на такое способен?
>>810173У тебя нажатие на экран будет больше давать.
>>810190Двачую этого. Реально 25-250мс будет лаг. 5мс это байки уровня различать 120fps.
>>810216на есть osu!Stream - там нет никакого инпут лага, не одной миллисекунды. Чем вы это объясните?Еще есть открытая реализация игры под названием opsu! - скачал исходники посмотреть, офигел от сложности проекта. Кажется я не затащу такое. Надо быть ультра хардкоре программистом что бы написать эту игру.
>>810362И что же там экстраординарного? Оказывается программирование – это не шлёпать ассеты в юнити?
>>810404Да вообще звиздец, как вы програманы крутитесь во всем этом... Как стать таким умным...
Бери главный движок для даунов - UE4. Потыкал на схемки в блюпринте и игра готова!
>>810040 (OP)Человек, разбирающийся в DirectX в треде.ОП, бери готовый движок и не морочь себе и людям голову. DirectX слишком тонок и прекрасен для тебя. Не каждый может пользоваться им по максимуму, а по тебе видно, что ты не сможешь точно.
>>810040 (OP)Лол, зачем тебе директикс, пока ты там одну кнопку интерфейса сделаешь пройдет полгода, бери хну если под винду делаешь и не парся.
>>810501Ага, готова с задержками по 130 мс?>>810506Ты прав, Директ и правда слишком хардкорен для ньюфага, но я нашел Win2D, этот API как раз построен вокруг DirectX, но при этом намного проще.>>810554Да уже определился - Win2D.Благодарность всем кто отозвался.И так, начну пожалуй с core механик, а именно - круг. Допустим я нарисовал круг, 1 строчка кода, великолепно.Теперь главный вопрос, который меня мучает. Как задать КОГДА появится кругу на экране? Запустить что-то типа таймера и указать точную миллисекунду от начала, например 698 мс. Как такое реализовать ? Это сложно?
>>810575https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644904(v=vs.85).aspxhttps://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){...}...Этот метод более предпочтителен.
>>810583Спасибо анончик, хотя бы понял в какую сторону копать и как вообще в программе измерять время.Исходя из документации "which is a high resolution (<1us)" можно делать просто охуеть какую синхронизацию. Неужели все те горе разрабы наделавшие кучу портов с кривой синхронизацией не знают про QueryPerformanceCounter?
>>810583>Делаешь абстрактный класс листенера, наследуешь от него класс игры, в таймере регистрируешь все классы, унаследованные от листенеровКакой пиздец, господи, какой пиздец. Жавабляди ежедневно делают такое для простейших действий?
>>810628Это же просто таймер. А синхронизация зависит от времени отклика экрана и от того, как реализовано взаимодействие с интерфейсом.>>810632Конечно.
Есть много зыков для геймдева. Разрабатывать игры можно на чём угодно - С++, C#, JS, Python и другие, но большинство из них крайне неудобны. Тебе придётся провести много месяцев в изучении базовых вещей, а потом окажется, что это нереализуемо на данном языке. Самый универсальный язык для геймдева - это Haskell. Он может абсолютно всё - на нём созданы Assasin's Creed, Warcraft III, WoW, Call of Duty, Skyrim и даже последний Ведьмак. Haskell подходит для любых жанров - стратегии, рпг, шутеры, симуляторы. Посмотри на список игровых движков на Haskell - https://wiki.haskell.org/Game_Development
>>810669Шуточка с хаскелем уже была, ты опоздал.
>>810362> открытая реализацияи то ее геймплей далек от геймплея осукстати, осу планируют опенсорснуть, так что лучше уж смотри оригинал
>>811100Согласен, геймплей там неочем, но это самая близкая к оригиналу реализация.>опенсорснутьВот это уже поинтересней. Чет я сииильно сомневаюсь что пипка откроет всем желающим свое детище.
Зачем вообще писать игры под Windows Phone, в данный момент лидирующие платформы это Android, IOS
>>811121> Чет я сииильно сомневаюсь что пипка откроет всем желающим свое детище.вот это https://github.com/ppy/osu за пруф сойдет?еще у него в блоге где-то аж в 2014 было обещание опенсорснуть, но мне лень искать
>>811451Страница с этим обещанием висит там уже ровно год.
>>811451>>811486Вот именно, не соизволит он.Пока иду по https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169 этим курсам.Почему у меня нет чувства что они помогут в написании osu!? Может после них надо еще курсов по геймдеву навернуть? И где вообще можно посмотреть как ПРАВИЛЬНО писать код? ну типа как заранее все просчитывать, все классы, переменные, что закрытое, что открытое. Вот это всё.Откуда создатель opsu! всё это знает???