Войти
TRASH TEAMФорумНытье

TRASH TEAM. Курилка программистов. (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
12:29, 17 дек. 2015

Вектор почти готов - достаточно долго анализировал код. Нужно ввести небольшие правки и добавить несколько функций.


#16
23:29, 30 дек. 2015

Вектор готов. Надо тестировать. Нужно сказать, что мне придется тормознуть клепание этой библиотеки. Долбаный вектор я делал наверное недели две, если суммировать. Разработка контейнеров требует кучу времени и здорово выматывает.
Для себя решил взять готовый движок.
1. Сначала посмотрел движок Catmother Engine. Собрал демку не без усилий. В итоге, оказалось что исходники не поддерживают формат карты, идущей в примерах.
С точки зрения графической части - это не динозавр, но близко к этому - устарел.  Хотя можно посмотреть на структуру игрового кода.
2. Urho3D. Движок современный, но я так и не смог до конца разобраться в командах Cmake. Также я не слышал об играх, выпущенных на этом движке.
3. Sauerbraten. Клево, полностью готово и главное, компилируется без правок. Но код тяжело читать, так как там плоский C-код почти без комментариев.
4. Nebula2 Device - много выпущенных игр. Пробежался по коду. В плане математики и контейнеров не ахти как сделано, но в плане графической подсистемы вполне нормально. Пока остановился на нем.

#17
7:42, 31 дек. 2015

graveman
> Urho3D. Движок современный, но я так и не смог до конца разобраться в командах Cmake.

Зачем тебе в них разбираться? щелкаешь по батнику и генерится файл проекта. Потом собираешь движок. Вот и всё. Усилий минимум в общем.

#18
11:26, 31 дек. 2015

cin
> Зачем тебе в них разбираться?
Ну а если мне нужно свой проект собрать, а не демки и движок?

#19
13:39, 31 дек. 2015

graveman, вот тогда делаешь myproject/cmake/cmakelist.txt с таким содержимым
подразумевается что у тебя исходники лежат в папке myproject/source

PROJECT(myproject)
SET (TARGET_NAME myproject)
cmake_minimum_required (VERSION 2.8.6)

if (COMMAND cmake_policy)
    cmake_policy (SET CMP0003 NEW)
endif ()

SET (CMAKE_CONFIGURATION_TYPES "release;debug" CACHE STRING "" FORCE)
set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "$ENV{URHO3D_HOME}/CMake/Modules/")
include (Urho3D-CMake-common)
find_package (Urho3D REQUIRED)
include_directories (${URHO3D_INCLUDE_DIRS})
file (GLOB CPP_FILES ../Source/*.cpp)
file (GLOB H_FILES ../Source/*.h)
set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/")
setup_main_executable ()

Прописывание пути к Urho3D в переменной окружения PATH
В папке Urho3D создаешь батник с такой строчкой:

setx URHO3D_HOME %CD%
Запускаешь его. это он пропишет в PATH путь к Urho3D

Генерация файлов проекта
Запускаешь cmakе и указываешь:

Изображение

Жмёшь Configure и Generate

Копирование ресурсов
Cоздаешь каталог myproject/bin
Пишешь батник который ресурсы из Urho3D тебе скопирует.

xcopy %URHO3D_HOME%Bin\Data %CD%\Bin\Data\ /Y /E /Q
xcopy %URHO3D_HOME%Bin\CoreData %CD%\Bin\CoreData\ /Y /E /Q
pause

Кладешь его в каталог myproject и запускаешь.

#20
11:47, 1 янв. 2016

cin
Спасибо за информацию, попробую.

Прошло более 6 месяцев
#21
12:55, 18 июля 2016

В мае я решил начать использование сторонних библиотек для написания движка. Я нашел gainput для ввода. Разобрался со строками и вектором STL.
Оставался вопрос с математикой. Мне ничего не нравилоссь из того, что есть - не встретил библиотеки с OBBox, Plane, Line, Sphere. Либо какой-то гребаный дизайн с шаблонами, либо огромный вес. Х... с ним начал писать свою. В итоге  я несколько раз пересоздавал проект на гитхабе из-за приступов перфекционизма - сейчас там нет ничего полезного - я вырезал, все у меня на компе по несколько копий - галимый бардак, который нужно разбирать не один день. Каждая хрень вылизывается по полдня - у меня нет столько времени. Сегодня думаю, х... сним, буду юзать D3DX - буду редист с игрой поставлять - лишние десятки метров ничего не решат.
В итоге, с сегодняшнего дня начинаю писать движок с названием Zavod3D "Trash". "Trash" - название редакции/версии. Смысл его в том, что я не буду заботиться о красоте кода и правильности его с точки зрения дизайна - буду стараться душить в себе любые намеки на перфекционизм и использовать нелюбимые многими STL, D3DX Math и эффекты. В качестве ориентира по архитектуре буду смотреть движок Catmother (готовый прототип игры на DirectX9, а не просто движок с примерами).
Итак:
Контейнеры, строки, IO: stl.
Математика: D3DX.
Ввод: Gainput.
Архивы: zlib.
GUI для редакторов: wxWidgets.

Репозиторий будет находиться тут

#22
17:32, 19 июля 2016

Сегодня занимался доработкой новой Debug системы трэш-движка. Хорошо бы сегодня закончить с ней.

#23
18:43, 19 июля 2016

graveman
> Для себя решил взять готовый движок.
Так какой движок всё-таки выбрал?
А, Catmother для ориентира.
А в Urho3D заглядывал или нет? Вполне возможно, он недалёк от идеальной архитектуры.
Вот батничек, запускаешь его из каталога движка, переходишь в каталог build, запускаешь *.sln, компилируешь - и всё работает.

call cmake_vs2013.bat build -DURHO3D_64BIT=1 -DURHO3D_LUA=1 -DURHO3D_LUAJIT=1 -DURHO3D_SAMPLES=1 -DURHO3D_D3D11=1 -DURHO3D_LIB_TYPE=SHARED -DURHO3D_DATABASE_ODBC=1 -DURHO3D_PCH=1 -DURHO3D_C++11=1 -DURHO3D_STATIC_RUNTIME=0
#24
12:42, 21 июля 2016

Саша123
> Так какой движок всё-таки выбрал?
Возился в начале года с Nebula Device2. Но там нет одной важной вещи - полноценных примеров.
Сейчас нацеливаюсь на Catmother по причине того, что это уже игра, не пример, а игра. В Urho3D есть примеры и даже что-то наподобие игры ("пример с ниндзя"), но слишком примитивный пример и все-таки думаю, что там надо знать CMake, чтобы не чувстовать себя обязьяной с гранатой.
Я переименовал движок. Треш мне не нравится - звучит как мусор.
Есть проблемы с запуском собранной игры в catmother. Думаю дело в коде шейдеров или в Lua скриптах.Короче решил походу изучения шейдеров, писать движок, о чем написал пару постов ранее.

#25
7:18, 22 июля 2016
cmake используется там для того лишь, чтобы избавиться от необходимости хранения в дистрибутиве проЭкта для каждой поддерживаемой среды, коих поддерживает очень много, и периодически добавляются новые IDE. Знание его не является необходимым. Готовые батники идут в комплекте. Нужно лишь вызвать соответствующий с нужными параметрами.
#26
23:24, 23 июля 2016

Urho как-нибудь в будущем попробую. Пока пробую catmother

#27
13:56, 8 авг. 2016

Начну-ка я дневник разработки движка "Zavod3D Trash". Итак, про то, что уже готово:
1) мега-убойную систему отладки я запилил - причем недели две назад (Надо бы залить ее в гит, эх..., мой косяк).
2) Класс приложения Windows c окном и главным циклом вроде запилил - типа реализуй абстрактный интерфейс проекта с несколькими функциями и не парься насчет окна и главного цикла. Вот тут у меня возникла трудность. Разработку я веду в Code::Blocks. Но не могу скомпилить gainput под эту IDE. Ужас, который творит makefile этой библиотеки для gcc (куча каких-то папок, непонятных файлов для вроде бы простой вещи как ввод) вынудил меня думать, чтобы взять в качестве библиотеки ввода. Тут есть два варианта.
Первый - взять SDL. Вроде бы все есть для создания простого приложения. Но я не имею серьезного опыта работы с SDL - придется разбираться не только с вводом, но и с таймерами, как прикручивать DirectX9 к SDL тоже надо думать (может просто SysWMInfo получить, а может и нет). Да и свои наработки по фремворку псу под хвост в этом случае - зря ебся штоль. 
Второй: есть еще DXInput. Ну как-то давно я ввод реализовывал. Вспомнить будет легче, думаю. Лишних либ прикручивать не надо - тот же DirectX9.
Что ж пока попробую реализацию ввода на DXInput. Не получится - буду пробовать SDL.
День первый, задача:
1) Разработать систему ввода на DirectX Input и прикрутить ее к фрейфорку.

#28
14:30, 8 авг. 2016

>1) Разработать систему ввода на DirectX Input и прикрутить ее к фрейфорку.
тебе нужно думать о потоко-независимом инпут менеджере, навроде такого :)

https://github.com/turanszkij/WickedEngine/blob/master/WickedEngi… nputManager.h

#29
15:01, 8 авг. 2016

codingmonkey
> тебе нужно думать о потоко-независимом инпут менеджере
Забыл сказать. Я на днях отказался от поисков идеальной архитектуры движка в пользу скорости разработки.
Я сейчас преследую немного другую цель - написание неказистого, но более-менее законченного работающего движка. Так что допускаю появление близких к говнокоду некрасивых решений в своем проекте (хули, треш же).
А то, что ты предложил - я буду долго пилить, наверное.

Страницы: 1 2 3 4 5 Следующая »
TRASH TEAMФорумНытье