Четверг, 25 Апреля 2024, 00:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Vuvk [537]
Результаты поиска
VuvkДата: Пятница, 30 Марта 2018, 22:11 | Сообщение # 21 | Тема: The Lost Persephone [Gamiron #14]
заслуженный участник
Сейчас нет на сайте
Hammerpad, вот-вот. Не ясен смысл разглядывания версий у программ. Оцениваться будет продукт, а не то, как он сделан и на чем.

Прикладываю наброски аватарок героев - Феоктист и Персефона:
Галерея

Сошлись, наконец, во мнениях в каком разрешении рендерить персонажей и объекты. И, судя по всему, это опять будет какой-то олдскул.
У Феоктиста будет 4 состояния:
1. Безоружный. Меч и щит за спиной. Такое состояние будет использоваться в заставках.
2. Меч и щит в руках.
3. Лук в руке. Меч и щит за спиной. Сможет стрелять, когда подберет лук и при наличии стрел.
4. Волшебный посох в руке. Меч и щит за спиной. /* Далеко не факт, что это попадет в игру */
Управление в игре будет простейшее - стрелки (WASD) для перемещения, мышь для атаки.
VuvkДата: Четверг, 29 Марта 2018, 17:58 | Сообщение # 22 | Тема: The Lost Persephone [Gamiron #14]
заслуженный участник
Сейчас нет на сайте
falcoware, Age Of Empires - хорошая игра, но это стратегия. Мы же делаем какой-то обрубок Диабло :) Или имеете ввиду, что персонаж похож на стыренный? Вот моделька, с которой это рендерилось:

Добавлено (29 Марта 2018, 17:58)
---------------------------------------------
Наш герой в разных ролях:



Сообщение отредактировал Vuvk - Четверг, 29 Марта 2018, 06:59
VuvkДата: Среда, 28 Марта 2018, 19:40 | Сообщение # 23 | Тема: The Lost Persephone [Gamiron #14]
заслуженный участник
Сейчас нет на сайте
Предисловие
Персефона — дочь Деметры (богини плодородия) и Зевса (бога-громовержца), вскормленная матерью и нимфами в пещере. Когда она подросла, к ней сватались Арес и Аполлон, но оба были отвергнуты.
Однажды прекрасная Персефона вместе со своими подругами беззаботно резвилась в цветущей Нисейской долине. Аид (бог царства мертвых) наблюдал за ней и решил тотчас похитить ее. В долине вырос дивный цветок; его пьянящий аромат далеко разлился во все стороны. Персефона увидала цветок, протянула руку, схватила его и сорвала. В этот же миг разверзлась земля, и на черных конях появился из земли в золотой колеснице владыка царства теней умерших, мрачный Аид. Он схватил юную Персефону, поднял ее на свою колесницу и в мгновение ока скрылся на своих быстрых конях в недрах земли.

Деметра искала дочь по всему миру, предаваясь безутешной скорби, и в это время земля была бесплодна, ничто не всходило на засеянных полях. Голод царил всюду, слышались плач и стоны. Гибель грозила всему живому.
Наконец Деметра пришла к городу Элевсину. Там, у городских стен, села в тени оливы на "камень скорби" у самого "колодца дев". Увидали ее дочери царя Келея и привели богиню к отцу. Деметра открыла царю и царице, кто она, и приняла свой обычный образ богини. Пали на колени перед ней все присутствующие. А позднее Келей отправляет своего лучшего воина-гоплита Феоктиста на поиски Персефоны.

Игра
Главный герой — древнегреческий воин Феоктист, вооруженный мечом и щитом. В ходе игры он
также сможет подбирать лук и стрелы, возможно, магический посох.
Сеттинг — древняя Греция, Аид — подземелья.
Жанр — слэшер? С виду похоже на игры, типа Diablo, Diablo2, но нет прокачки персонажа, нет
инвентаря.
Вид в игре — от третьего лица, изометрия.
Пространство — 2D.
Управление — клавиатура.
Среда разработки - ENIGMA Development Environment.
Платформа - PC (Linux, Windows).

А при чем здесь весна, спросите вы? В этом вся концовка игры. Здесь её не буду выкладывать, но кому хочется спойлеров, те могут загуглить миф о Персефоне.

Чтобы тема не была совсем уж пустой, прикладываю черновой вариант отрендеренного главного героя:


Cледить за последними новостями - Antoshka's Diary.


Сообщение отредактировал Vuvk - Вторник, 03 Апреля 2018, 05:34
VuvkДата: Среда, 28 Марта 2018, 11:47 | Сообщение # 24 | Тема: Зачем нужен var?(Решено)
заслуженный участник
Сейчас нет на сайте
В том числе. Плюс ты можешь избегать конфликта имён таким образом.
VuvkДата: Среда, 28 Марта 2018, 11:43 | Сообщение # 25 | Тема: Зачем нужен var?(Решено)
заслуженный участник
Сейчас нет на сайте
Удалятся. В следующем шаге будут созданы снова, а при выходе из скрипта опять удаляться. Это в случае, если зона видимости переменной весь скрипт.
Справка так говорит


Сообщение отредактировал Vuvk - Среда, 28 Марта 2018, 11:43
VuvkДата: Среда, 28 Марта 2018, 11:32 | Сообщение # 26 | Тема: Зачем нужен var?(Решено)
заслуженный участник
Сейчас нет на сайте
После выхода из зоны видимости временной переменной она будет удалена, т.е. освобождена оперативная память, ей занятая.
Т.е. когда выполнится весь скрипт или блок, где использовалась переменная, объявленная, как var, то она будет удалена
Код

{
  var xx,yy;
  xx = x+10;
  yy = y+10;
  instance_create(xx,yy,ball);
}
// xx и yy больше не существует


Сообщение отредактировал Vuvk - Среда, 28 Марта 2018, 11:34
VuvkДата: Среда, 31 Января 2018, 15:07 | Сообщение # 27 | Тема: Nuke3D - Конструктор олдскульных FPS
заслуженный участник
Сейчас нет на сайте
+ Добавлена новая информация в паки: версия пака (для определения совместимости пака и конструктора), интенсивность тумана, размер текстуры в паке.
+ Я вдруг подумал: "а какого хрена я подгоняю все загружаемые текстуры под один размер?" и отказался от этого, т.к. здесь не рейкастинг и размер не имеет такого значения, как в оригинале. Расшифровываю: если хотите загрузить текстуру 32*32, то она будет сохранена с таким размером в пак, если 256*256, то такой размер и останется и т.д. Размер подгоняется если загружаемая картинка больше 256*256 (не знаю нужно ли ещё больше?) и если размер одной из сторон картинки не является степенью двойки (1, 2, 4, 8, 16, 32, 64, 128...). Раньше любая текстура подгонялась под принятый максимум даже если она меньше этого максимума. В итоге опять получаем экономию места, быстрые текстуры (речь о POT, но не уверен, что в наше время это актуально) и отсутствие геморроя как в РГМ, где текстуры должны быть изначально "правильного" размера, потому что редактор делает сам все необходимые преобразования.
+ добавлена настройка фиксации спрайтов (скрин 1) - может либо смотреть всегда на игрока, либо иметь чисто горизонтальную или вертикальную ориентацию (скрин 2. Лампа не поворачивается)
+ кстати, увеличил максимальное количество спрайтов до тридцаточки!
+ увеличена максимальная скорость анимации для спрайтов/текстур до 60 к/с
+ добавлена возможность просмотра анимации прямо в редакторе (скрин 3. Кнопка управления проигрыванием)!
+ при генерации уровня загружаются в память только те текстуры/спрайты, которые используются на уровне
+ плавная прокрутка карты в редакторе

Скрины (кликабельно)
VuvkДата: Вторник, 30 Января 2018, 15:57 | Сообщение # 28 | Тема: Nuke3D - Конструктор олдскульных FPS
заслуженный участник
Сейчас нет на сайте
HelloAshKetchum, спасибо за ободрение. Может это и слишком наивно, но я мечтаю эту поделку разместить в Стим с символической стоимостью. Отклик какой-никакой уже даже сейчас есть. Стоит попробовать.
VuvkДата: Понедельник, 29 Января 2018, 19:37 | Сообщение # 29 | Тема: Nuke3D - Конструктор олдскульных FPS
заслуженный участник
Сейчас нет на сайте
Hobo_Gus, я сначала думал допилить свой старый редактор карт - видео во вконтаче, но потом, когда пообщался в интернетах с целевой аудиторией, то понял, что новичкам нужно МАКСИМАЛЬНО простое редактирование. Так что пока так. Более крутой формат карт отложил на RGC v2.0.
Насчет вокселей задумка интересная. У меня уже есть загрузчик моделей формата VOX (Magica Voxel). Мой код впоследствии даже внедрили в движок, который я сейчас и использую. Видео с загрузкой вокселей на Юпубе. Думаю для статики вполне достаточно было бы.

Добавлено (23 Января 2018, 17:43)
---------------------------------------------
Изменил формат паков карт, когда увидел, что его нехило раздувает от добавления слоев пола и потолка и увеличения количества карт в игре. В общем, теперь всё это хранится в сжатом виде. Также заложены настройки для каждого уровня: цвет пола, потолка, тумана, отображать ли текстурный пол, потолок, туман, небо?
Добавил преобразование формата текстур при загрузке под софтверный рендер: с ARGB8888 в ARGB1555. Программный рендеринг наконец запустился. Но выглядит это... на видео понятней - обрезаются все полигоны, у которых хоть одна вершина не попала на экран. Если ничего нельзя изменить, то отключу его.
Программный рендеринг под названием Burning's Video тоже работает с небольшим нареканием - смазывает текстуры ((
Direct3D и OpenGL работают без нареканий. Последний почему-то работает медленней и кушает больше оперативной памяти. Череда оптимизаций только впереди.
Также добавилось послойное рисование пола и потолка и их генерация в запускаторе. Буду ещё экспериментировать по поводу удобства.
Не стал разделять текстуры мира на разные паки, а просто расширил их максимальное количество до 60.
Далее я хочу добавить возможность задания кадров для текстур мира (стены, потолок, пол), чтобы создавать анимированное окружение (ну там ручейки всякие или еще чего).
Смотреть видео во вконтаче

Добавлено (27 Января 2018, 10:40)
---------------------------------------------
Работа над оптимизацией количества полигонов закончена. Также сотворил батчинг по именам текстур. Т.е., если используется 60 текстур, то значит будет 60 мешей. И всего 60 draw calls на статический мир. Думаю, с такой детализацией это нормально. Как итог на моем компе количество фпс выросло с 1000 до 4000 в этой сцене.
К тому же манипуляции с батчингом позволяют мне сделать быструю смену кадров анимированных текстур у всех объектов её использующих, т.к. технически это будет один меш.
Первые два скрина как было до, вторые два - как стало после. Кликабельно.


Последние два скрина об эффекте тумана.


Совместно с Николаем заставили работать программный рендеринг как надо.
Ну а далее работа над анимацией окружения.

Добавлено (29 Января 2018, 19:37)
---------------------------------------------
Увеличил размер текстур до 128*128. Паки заметно распухли.
Добавлена работа с анимацией для окружения (пол, стены, потолок) - до 5 кадров, задание скорости проигрывания. В очередной раз некоторые изменения в структуре паков, включая защиту паролем. То, что я планировал для быстрой обработки смены кадров работает на ура. Подробнее на видео во Вконтактике.

VuvkДата: Среда, 24 Января 2018, 07:14 | Сообщение # 30 | Тема: Лучшая альтернатива FPSCREATOR X9 ?
заслуженный участник
Сейчас нет на сайте
COOLGAMER, странный вопрос. А зачем тебе делать игры? Чем готовые не устраивают?
VuvkДата: Среда, 24 Января 2018, 06:40 | Сообщение # 31 | Тема: Лучшая альтернатива FPSCREATOR X9 ?
заслуженный участник
Сейчас нет на сайте
А ещё там появился заголовок для работы с движком посредством языков С/С++. Я как-то делал биндинг под FreePascal, но чо-т не заехало. Сейчас использую его для своего конструктора игр, пишу на чистом Си. А для Си движков на пальцах одной руки сосчитать.

Сообщение отредактировал Vuvk - Среда, 24 Января 2018, 06:40
VuvkДата: Вторник, 23 Января 2018, 20:50 | Сообщение # 32 | Тема: Лучшая альтернатива FPSCREATOR X9 ?
заслуженный участник
Сейчас нет на сайте
COOLGAMER, ws3d это полноценный движок для любого типа игр, а не конструктор. Так что без программирования никак
VuvkДата: Пятница, 19 Января 2018, 16:31 | Сообщение # 33 | Тема: Nuke3D - Конструктор олдскульных FPS
заслуженный участник
Сейчас нет на сайте
salewa, огромное спасибо за тестирование на разном железе и подробный отчет! Хоть некоторые результаты и выглядят странно, но я вижу, что целевые 60 FPS уже достигнуты даже на слабых ПК (я про ноут). Посмотрим, что нам даст трэд пул :)

---
После тестирования на восьми разных машинах, включая ну очень древние, подтвердилось, что из всех "раннеров" лучше всех себя показал вариант в 4 потока с фиксированной запятой. Ну, как я и подозревал.

Добавлено (10 сентября 2017, 11:51)
---------------------------------------------
+ ускорены функции перевода числа с фиксированной запятой в плавающую в библиотеке libfixmath;
+ исправлен мелкий баг с образованием неверных линий на полу/потолке (из-за погрешностей);
+ адаптирована библиотека A simple C thread pool. В оригинале используется pthread (который, как известно, работает только на системах POSIX), я переписал на С11 threads дабы это всё было кроссплатформенным. Прирост FPS нулевой. Однако рендеринг всё равно стал менее прожорливым, что однозначно плюсик:


Может есть какой-то инструмент, через который правильней производительность измерять, чем подсчет FPS?

Добавлено (13 сентября 2017, 17:26)
---------------------------------------------
Сейчас я пробую свою технику рейкастинга, основанную на секторах и сегментах. Плюс техники в том, что можно с легкостью создавать кривые стены, а также перемещающиеся. Просчет точки столкновения быстрый, но луч бьёт насквозь и нужно проверять все элементы карты. Так что нужно теперь быстро сортировать видимые/невидимые сектора и оптимизировать уже новые алгоритмы.
Принцип на видео.
Реализовал что-то типа "фрустум куллинга" (на последнем видео с 0:50 видно, как отсекается вращающийся треугольник). Есть ещё идея проверять на пересечение только повернутые к игроку сегменты (на картинке ниже луч бьет в стены, но проверяются только зеленые сегменты).

В общем, теперь надо пол/потолок и попытаться это всё оптимизировать. ФПС в этой реализации более стабильный, т.к. удаленность сегмента от камеры вообще не играет никакой роли.

Добавлено (23 сентября 2017, 14:12)
---------------------------------------------
Так, давненько я ничего не писал...
В общем, поигравшись с обновленным рейкастингом, описанным выше, я пришёл к выводу, что оно всё равно не может работать быстро на высоких разрешениях. Что у меня получалось, можно увидеть в этом ролике.
Затем я решил попробовать последний шанс - растеризацию, аналогичную OpenGL, но без аппаратной поддержки. Попробовал tinyGL, но там всё грустно внутри (так всё написано, что даже разбираться не хочется).
В итоге начал писать свой рендер. Обозвал его tinyRender ^_^ .
Пока что ничего не ясно в том плане, насколько это может (и будет ли) работать быстрее.
Демо в двух роликах
один
два

Если кому-то интересно будет, то вот демки рендера (те, что на видео). Пока забагованные...

И да. Если оно не взлетит, то запилю на OpenGL да и всё :)

Добавлено (19 Января 2018, 16:31)
---------------------------------------------
Всем привет. Отпишусь хоть, что после длительного запоя каникул и после долгой маеты с написанием собственного софтверного рендера, я решил забить и взять готовый движок для среды исполнения уровней. Выбор пал на WorldSim3D. Точнее на его последнюю версию под С/С++. "Запускатор" пишется на Си, короче. А редактор в Lazarus'e на FreePascal. Как я и планировал.
На данный момент готова загрузка текстур стен, спрайтов, кадров, установка свойств для спрайтов (твердость, анимация) и формирование паков собственного формата. Рисование карт простое, как 5 копеек. Есть зум карты, возможность включения/выключения сетки.
Прикладываю пару скриншотов:


И два видео с демонстрацией работы того, что сейчас готово: раз и два (видео во вконтаче).

Всем спасибо, всем пока.


Сообщение отредактировал Vuvk - Пятница, 19 Января 2018, 16:33
VuvkДата: Пятница, 10 Ноября 2017, 13:43 | Сообщение # 34 | Тема: Вопрос о opengl
заслуженный участник
Сейчас нет на сайте
glViewport (0, 0, 1024, 600)
VuvkДата: Вторник, 07 Ноября 2017, 13:56 | Сообщение # 35 | Тема: Не рисует треугольник в opengl
заслуженный участник
Сейчас нет на сайте
afq, ну например
0, 0, 10,
0, 0, 0,
0, 1, 0
VuvkДата: Среда, 01 Ноября 2017, 06:27 | Сообщение # 36 | Тема: Не рисует треугольник в opengl
заслуженный участник
Сейчас нет на сайте
Не поленился и накидал отрисовку треугольника. Правда на Си и SDL2. Но везде одно и то же...
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

#include "GL/gl.h"
#include "GL/glu.h"
#include "SDL2/SDL.h"

#define WIDTH   1024
#define HEIGHT  768

bool quit = false;
SDL_Window* sdlWindow = NULL;
SDL_Event   sdlEvent;
SDL_GLContext sdlGlContext;

void draw_triangles ()
{
  glBegin(GL_TRIANGLES);
    glColor3f(1, 0, 0);
    glVertex3f(-1, -1, -3);

    glColor3f(0, 1, 0);
    glVertex3f(1, -1, -3);

    glColor3f(0, 0, 1);
    glVertex3f(0, 1, -3);
  glEnd();
  glFlush ();
}

void render ()
{
    glViewport(0, 0, WIDTH, HEIGHT);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, (double)WIDTH / HEIGHT, 0.1, 1000);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    glClearColor ( 0.44, 0.44, 0.44, 1.0 );
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    draw_triangles ();

    SDL_GL_SwapWindow(sdlWindow);
}

#undef main
int main(int args, char* argv[])
{
    if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        printf("Couldn't init SDL2! Error: %s\n", SDL_GetError());
        return 1;
    }

    sdlWindow = SDL_CreateWindow("Example",
                    SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
                    WIDTH, HEIGHT,
                    SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);

    if (sdlWindow == NULL)
    {
        printf("Couldn't init SDL2-window! Error: %s\n", SDL_GetError());
        return 2;
    }

    sdlGlContext = SDL_GL_CreateContext(sdlWindow);

    while (!quit)
    {
        render ();

        while(SDL_PollEvent(&sdlEvent) == 1)
        {
            if (sdlEvent.type == SDL_KEYDOWN)
            {
                switch (sdlEvent.key.keysym.sym)
                {
                    case SDLK_ESCAPE :
                        quit = true;
                        break;

                    default:
                        break;
                }
            }

            if (sdlEvent.type == SDL_QUIT)
            {
                quit = true;
            }
        }

        SDL_Delay(1);
    }

    SDL_Quit();

    return 0;
}




Сообщение отредактировал Vuvk - Среда, 01 Ноября 2017, 06:29
VuvkДата: Вторник, 31 Октября 2017, 07:03 | Сообщение # 37 | Тема: Не рисует треугольник в opengl
заслуженный участник
Сейчас нет на сайте
Попробуй нарисовать в рамках логических координат: -1...1
Установлены ли параметры проекционной, модельной матриц?

---
Посмотрел код, там такого и в помине нет.
Попробуй такое:

Код

void draw_triangles ()
{
  glBegin(GL_TRIANGLES);
    glColor3f(1, 0, 0);
    glVertex3f(-1, -1, -1);

    glColor3f(0, 1, 0);
    glVertex3f(1, -1, -1);

    glColor3f(0, 0, 1);
    glVertex3f(0, 1, -1);
  glEnd();
  glFlush ();
}

gboolean render ( GtkGLArea *area, GdkGLContext *context, gpointer user_data )
{
    glViewport(0, 0, WIDTH, HEIGHT);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45, (double)WIDTH / HEIGHT, 0.1, 1000);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();    

    glClearColor ( 0.44, 0.44, 0.44, 1.0 );
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    draw_triangles ();

    return TRUE;
}


Я в гтк не шарю, но после draw_triangles должен быть ещё SwapBuffers или что-нибудь такое


Сообщение отредактировал Vuvk - Вторник, 31 Октября 2017, 07:12
VuvkДата: Пятница, 20 Октября 2017, 17:28 | Сообщение # 38 | Тема: Как нарисовать векторного персонажа для игры [УРОК]
заслуженный участник
Сейчас нет на сайте
Впервые видео с хоть какой-то пользой. Но проявились лютые проблемы с русским языком. Значение некоторых слов так и осталось для меня загадкой, а многократное "группирировать" добило. Это все.
VuvkДата: Понедельник, 16 Октября 2017, 16:41 | Сообщение # 39 | Тема: Очередной "школьник" ищет энтузиаста
заслуженный участник
Сейчас нет на сайте
Sirius105, если сможешь мне помочь с разработкой игры с таким графонием, как на картинках (или лучше), либо с выдумыванием логических загадок, уровней, то вэлкам.

Но это не гамак.


Сообщение отредактировал Vuvk - Понедельник, 16 Октября 2017, 16:46
VuvkДата: Понедельник, 16 Октября 2017, 06:38 | Сообщение # 40 | Тема: Очередной "школьник" ищет энтузиаста
заслуженный участник
Сейчас нет на сайте
Цитата Ordan ()
Забей на гамак и бери конструкторы и делай сам

Чем гамак не конструктор? Самое оно и есть. Я с него начинал и именно благодаря ему влюбился в создание игр и программирование в частности (хотя до этого уже писал на паскалюшке и Делфи) crazy Когда надоело костылировать, тогда и начал въезжать в "нормальные" языки.
Цитата Ordan ()
еще не видел такого что бы два и более новичка собирались и могли сделать что то путное, как правило это тонны фантазий, споров и ничего толкового.

Мой дебютный кровавый Марио как раз и был сделан двумя "школьниками". Главное найти толкового подельника. Все остальные мои попытки сделать что-то с кем-то на энтузиазме терпели фиаско.

Топикстартеру предлагаю начать делать в одного - ни от кого зависеть не будешь, а потом, когда будет готов рабочий прототип, либо кто-нибудь подтянется, либо поймешь, что никто не нужен. Я бы может и присоединился, но не уверен, что автор сам же не сдуется через пару-тройку дней/неделю.


Сообщение отредактировал Vuvk - Понедельник, 16 Октября 2017, 07:47
Форум игроделов » Записи участника » Vuvk [537]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг