На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Приручаем змею , OpenGL, OpenAL, Delphi, геймдев
    Приветствую всех круглых любителей квадратных пикселов ))
    Я пишу свою "Змейку". Пока что получается весьма похоже на slither.io, но это пока)

    user posted image

    Демка (под Windows любой версии): Viper 0.4, zip архив 1.25 MB.
    https://drive.google.com/open?id=0B66mpaIlv...TFFDblduVGo4YkE
    Клавиши: [WASD] или стрелки, [F11] - полный экран, [Esc] - выход. FPS можно глянуть по [F3].

    На чем пишу: Delphi XE7 (WinAPI, без VCL и FM), графика OpenGL, звук OpenAL.

    Вопросы:
    - работает ли демо у Вас? хотелось бы протестировать программу на разных компьютерах (Win XP .. Win 10, видеокарты от встроенных до игровых и т.п.) и слышен ли звук?
    - понравилась ли Вам демка, или не понравилась? если да или нет, то почему?;
    - какие есть идеи, предложения? (я планирую доработать одиночную игру, а потом делать сетевой вариант);
    - до какой длины Вы смогли вырастить змею? (пишем в сантиметрах, скриншоты принимаются:))
    - если хочется спецэффектов - предлагайте;
    - кто может снять толковое видео с экрана? (чтобы качество изображения не особо пострадало, цвета были в порядке, со звуком и объем не страшный);
    - говорят под Linux Debian через Wine демка работает, и без тормозов, но будет ли там звук? (OpenAL использует DirectSound от DirectX)

    В тематической ветке форума "Программирование графики" хотелось бы сделать акцент на графическую часть.
    Сообщение отредактировано: Блекморша Таня -
      WinXP SP3, GeForce GT430, работает без проблем, звук есть, управление удобное, хоть и не как в slither.io.
      Без врагов неинтересно, поэтому сантиметрами меряться не буду, жду врагов.
        Цитата Блекморша Таня @
        Вопросы:

        1. Работает. Звук слышен. Windows 7 x64, GeForce GTS 450, всё время 60 FPS
        2. Понравилась отчасти. Потому что слишком мало контента: не хватает анимации, челенджа, условия победы, более адекватных звуков. Ну и управление, как по мне, должно быть мышинным.
        3. Собственно, предложения в пункте выше: анимация главного героя, дополнительные элементы на сцене (преграды, интерактивные элементы вроде гравитационных аномалий для шариков и т.д., враги -- да), больше звуков, и не таких, как сейчас, а чего-нибудь поживее. Фоновая музыка лишней не будет, даже MIDI.
        4. А смысл меряться длинами, если челенжа никакого нет? :)
        5. В п. 2 и 3.
        6. В смысле "снять видео с экрана"? Fraps, что-ли?
        7. Не в курсе.
          Mikle и B.V., я вас категорически приветствую! давно не виделись)
          Спасибо за объективный тест моей скромной пионерской демки и за ваш позитивный настрой.
          Такая тема у меня возникла случайно, просто на днях надоело возиться с Android и 3D, захотелось чего-то простого, доброго, тёплого, лампового ...

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

          B.V.
          Звук - в подкаталоге /wav есть файл eat.wav, это и есть пока что весь мой звук. Разный тон получается рандомным заданием pitch (тон, скорость воспроизведения звука) в OpenAL. Модинг - этот файл можно заменить на свой. Хотелось бы найти хороший звук лопающегося пузыря.

          Фоновая музыка лишней не будет, даже MIDI
          Прошу предлагать свои темы для фоновой музыки, MIDI было бы ок, если красивое и free.

          На остальное отвечу позже, Змея зовёт ))
            Цитата Блекморша Таня @
            Хотелось бы найти хороший звук лопающегося пузыря.

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

              user posted image

              Скачать демку: Viper 0.5, zip архив 1.32 MB.
              https://drive.google.com/open?id=0B66mpaIlv...Q21fS283dEN2LUU

              По началу все то же самое ... но как услышите шипение и увидите лучи - убегайте быстрее. Цель игры не изменилась - требуется отрастить длинный хвост, однако появились желающие ваш хвостик откусить )) Длина 100 набивается довольно легко, после 200 приходится быть внимательнее. Враги - я их назыываю "Foe" или "глаза" - они это, когда нажрутся то размножаются делением. Конец игры никак не запрограммирован, и пока что никем не исследован ... там наверное будет адово, паузы нет, чаю не попить. Короче - жду скриншотов, у кого змея длинее ))
              Сообщение отредактировано: Блекморша Таня -
                Цитата Блекморша Таня @
                По началу все то же самое ... но как услышите шипение и увидите лучи - убегайте быстрее.

                Не так они и страшны, ещё и скучны - убегать всегда не интересно, агрессивная натура хочет дать сдачи.
                Работает без нареканий.
                Набрал 307, выключил (не погиб).
                Прикреплённая картинка
                Прикреплённая картинка
                  Цитата Блекморша Таня @
                  после 200 приходится быть внимательнее

                  Ни после 200, ни после 400 внимания так и не потребовалось. В общем, по моим личным ощущениям, весь геймплей упирается во время. Я не играл в "slither.io", но разве там змейка не самоубивается об собственный хвост, как это делают классические аналоги? Да и враги, прямо скажем, далеки от того, что бы создавать хоть сколь-нибудь заметный челенж
                    А, ну да, просто терпения на большее не хватило
                    Прикреплённая картинка
                    Прикреплённая картинка
                      Нормальные враги. Только сделать по активнее. Для баланса нужна система линейных уравнений. А для интересности не линейных.
                      Прикреплённая картинка
                      Прикреплённая картинка
                        А почему у меня змейка сама маленькая? А у вас такая жирная?
                        Сообщение отредактировано: Pavia -
                          Цитата Pavia @
                          Только сделать по активнее

                          Я бы сказал -- поагрессивнее. И дать игроку средство противодействия. Например, можно научить змейку плеваться шариками разных цветов, они будут убывать из общего числа и убивать этих врагов. Дополнительно можно сделать врагов разноцветными и уязвимыми только к определенному цвету шарика, а цвета назначить на разные клавиши от 1 до 9.

                          Добавлено
                          Цитата Pavia @
                          А почему у меня змейка сама маленькая? А у вас такая жирная?

                          У тебя и враги мелкие. Предположу, что Татьяна задает размеры через glPointSize, а на твоей машине драйвер видеокарты размер интерпретирует несколько иначе, чем на наших с Майклом.
                            Цитата B.V. @
                            Я не играл в "slither.io", но разве там змейка не самоубивается об собственный хвост, как это делают классические аналоги?

                            Не убивается, там несколько изменили правила, благодаря чему и вышел хит. Погибает змейка при ударе головой о чужой хвост, на месте погибшей остаётся еда. Можно, к примеру, брать врага в кольцо и постепенно сжимать, пока он не убьётся, потом съедать трофеи.
                              Pavia
                              У меня есть просьба к Вам - в папке с viper.exe лежит текстовый файл viper.log, в нём есть строчка типа:
                              OGL Point size: 1.000..189.875; step 0.125
                              Какая цифра у Вас вместо 189.875? Это возможный размер точек GL_POINT, на разных видеокартах макс. размер отличается, но чтоб было меньше чем 64 пиксела мне не попадалось пока.
                              И ещё, там же лежит файл viper.inf, в нём есть строчка типа:
                              GPU: NVIDIA Corporation; GeForce GT 440/PCIe/SSE2/3DNOW!; OGL 4.5.0 NVIDIA 364.72
                              Это тип видеокарты и версия OpenGL драйверов, тоже интересно.
                                Держи Log1.
                                Прикреплённый файлПрикреплённый файлLog1.rar (1,22 Кбайт, скачиваний: 205)
                                Прикреплённый файлПрикреплённый файлLog2.rar (1,23 Кбайт, скачиваний: 184)
                                  "Мой вчерашний лог:"

                                  Start: 22.05.2016 19:40:01
                                  CreateWindow; 448:156; 1024x768
                                  Handle $0304E4; DC $01010054; PixelFormat 9; RC $010000
                                  VSYNC: 1
                                  PCInfo 848,4 мкс
                                  OGL Point size: 1,000..189,875; step 0,125
                                  OGL Line width: 0,500..10,000; step 0,125
                                  InitFont: Lucida Console; Height 10 pix -13 pp; Weight 400; 47,4 мс
                                  InitFont: Comic Sans MS; Height 22 pix -29 pp; Weight 400; 20,0 мс
                                  InitFont: Comic Sans MS; Height 11 pix -15 pp; Weight 400; 7,8 мс
                                  Load texture: ID 1; logo.png; 170x174; PNG Transparency None; ColorType RGB; 27,4 мс
                                  ShowWindow
                                  InitOpenAL
                                  InitEFXAlcExt
                                  22.05.2016 19:40:03; [!]; InitEFXUtilLib
                                  File load: eat.wav; mono 16 bit; 15280 b; 44100 Hz
                                  File load: ops.wav; mono 16 bit; 15280 b; 44100 Hz
                                  File load: see.wav; mono 16 bit; 53378 b; 44100 Hz
                                  Load texture: ID 2; back1.jpg; 326x365; JPEG jf24Bit; Compression 90%; 31,3 мс
                                  DestroyWindow
                                  Quit: 22.05.2016 19:45:18; Code:27; Frames:18917
                                    Pavia
                                    По логам получается: на видеокарте Intel® HD Graphics 4600 максимальный размер точки GL_POINT всего 20 пикселей, маловато будет (на другой, NVIDIA GeForce GT 750M, все норм: 189,875 пикс). Для пробы нашлась Intel HD Graphics 2000 - там те же 20 пикс. Интегрированные видеокарты Intel HD Graphics, такие Intel (( Не умеют они большие точки рисовать. Макс. размер точки GL_POINT вот так определяю:
                                    ExpandedWrap disabled
                                      glGetFloatv(GL_POINT_SIZE_RANGE,@PointSizes);


                                    Mikle
                                    Да с NVIDIA нет проблем.

                                    Придётся спрайты лепить, текстуру с кружком.
                                    Сообщение отредактировано: Блекморша Таня -
                                      На свежем HD Graphics 530 та же байда - максимум 20 пикселей...
                                        x128
                                        Да, потому что это Intel ... ГОСТа на них нет. Предлагаю запретить все видеокарты кроме NVIDIA, чесс слово - было классно ))
                                        А серьёзно - у линий GL_LINES те же проблемы с макс. толщиной на разных видеокартах как и у точки с размером.

                                        ExpandedWrap disabled
                                           glGetFloatv(GL_LINE_WIDTH_GRANULARITY,@LineStep); // шаг поддерживаемой толщины линий
                                           glGetFloatv(GL_LINE_WIDTH_RANGE,@LineSizes); // диапазон поддерживаемой толщины линий
                                          // на всех видеокартах: Line width 0,500..10,000, step 0,125
                                          // кроме ATI AMD Radeon HD 6450; OGL 4.4.1: Line width 1,000..63,000, step 0,125
                                          // кроме Intel HD Graphics 2000; OGL 3.1.0: Line width 0,000..6,992, step 0,500

                                        Причины таких расхождений - изначально в спецификации OpenGL предусмотрена только одна толщина линий, 1.0. Но в реализации OpenGL от Microsoft: толщина линий от 0.5 до 10.0 с шагом 0.125. Некоторые производители видеокарт и писатели драйверов игнорируют MS и делают по своему. Поэтому в OpenGL толщину линий и размер точек если и используют в 2D (для чертежей, например) то очень ограничено.
                                        Линии можно нарисовать через GL_QUADS, GL_TRIANGLE_STRIP. А красивые круглые большие точки-кружочки ... или окружности строить из треугольников, или спрайты рисовать (текстуры), или в шейдерах мутить что-то.
                                        Сообщение отредактировано: Блекморша Таня -
                                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                        0 пользователей:


                                        Рейтинг@Mail.ru
                                        [ Script execution time: 0,1295 ]   [ 25 queries used ]   [ Generated: 28.03.24, 10:49 GMT ]