Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336

Как самому создать 3D engine типа DOOM 1995

09.01.2021, 14:12. Показов 6830. Ответов 18

Студворк — интернет-сервис помощи студентам
С наступившим 2021 годом вас форумчане!!!!

Я хотел написать 3D движок как типа DOOM 1995 года
не совсем такой без врагов но со стенами и текстурами
и потолком то есть совсем простой движок

Если кто-то знает как помочь мне хотя бы намекните каким должен быть код движка
пишу на SFML 2.4.2 & C++ (CLion)

С Уважением, Сергей
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2021, 14:12
Ответы с готовыми решениями:

Использование библиотек в doom engine (id tech 1)
Здравствуйте! Прошу помощи у тех, кто хотя бы несколько знает об движке doom. Использовались ли в этом движке какие нибудь сторонние...

Как создать самому конструктор сайтов?
Всем привет. Имея только знания HTML и CSS, как создать конструктор сайтов самому? Может есть готовые движки? Мануалы? Статьи?...

Как создать engine js?
Всем доброго времен суток. Есть такая ссылка на сайте: https://wmglobus.com/engine_js/?loc Как создать такой же документ на хостинге?...

18
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
09.01.2021, 14:25
Псевдо 3D в консоли.
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 14:51  [ТС]
GoshaM, Я знаю про этот урок и он мне не понравился там нет
полного кода движка за 10 минут, а извините меня модераторы просто разглагольствования
я же хочу увидеть полный код самого простого движка

Добавлено через 6 минут
Цитата Сообщение от Segeja Посмотреть сообщение
я же хочу увидеть полный код самого простого движка
Буквально не более 100 - 150 строк кода
0
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
09.01.2021, 15:15
Код
И вторую часть видео смотрели? Там как раз на SFML и ссылка на код под видео.
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 15:20  [ТС]
Цитата Сообщение от GoshaM Посмотреть сообщение
И вторую часть видео смотрели? Там как раз на SFML и ссылка на код под видео.
Смотрел даже хотел откомпилировать сие кода куча и не понятно где что спасибо за ссылку я попробую откомпилировать этот код
0
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
09.01.2021, 15:37
Цитата Сообщение от Segeja Посмотреть сообщение
хотел откомпилировать сие кода куча и не понятно где что
Полное непонимание должно наводить на мысль, что ещё рано таким заниматься. Начните с чего попроще: текстовые квестики к консольке, ещё чего. Ах, да, крестики-нолики с произвольным размером поля, потом 'HEX' (читается 'хекс'), потом ИИ для этих игр. У меня тот же HEX с ИИ вышел строк на 400. Потом завезите графическую оболочку для всего этого. На том же SFML. Так хотя бы попрактикуетесь в работе с SFML.
1
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 15:37  [ТС]
GoshaM, Никак не могу откомпилировать этот файл на который ссылка была
вот мои настройки CMakeLists.txt
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
cmake_minimum_required(VERSION 3.9)
project(myProject)
 
set(CMAKE_CXX_STANDARD 17)
 
add_executable(myProject src/main.cpp)
 
include_directories(headers /usr/include c:/SFML/include)
 
#set(SOURCE_FILES src/main.cpp)
 
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
find_package(SFML REQUIRED system window graphics)
if (SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(myProject ${SFML_LIBRARIES})
endif()
 
#file(COPY assets DESTINATION ${CMAKE_BINARY_DIR})
 
# Copy dlls to build
if(WIN32)
    file(GLOB BINARY_DEP_DLLS "${SFML_INCLUDE_DIR}/../bin/*.dll")
    file(COPY ${BINARY_DEP_DLLS} DESTINATION ${CMAKE_BINARY_DIR})
    file(GLOB MINGW_DEP_DLLS "C:/mingw64/bin/*.dll")
    file(COPY ${MINGW_DEP_DLLS} DESTINATION ${CMAKE_BINARY_DIR})
endif()
Тестовый кружочек зелёный выводит на экран
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
09.01.2021, 15:39
Цитата Сообщение от Kroval Посмотреть сообщение
HEX
Что за Хекс? Мне почему-то знакомо слово, но кажется это не игра
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 15:44  [ТС]
Цитата Сообщение от Kroval Посмотреть сообщение
Так хотя бы попрактикуетесь в работе с SFML
Всё правильно вы сказали, я уже змейку делать начал, дальше другое что-то, понятно практика должна быть
0
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
09.01.2021, 15:46
Laborant666, ну hex - это hexadecimal. Но и игра тоже, да. Суть в том, что игроки должны соединить противоположные концы игрового поля своими "фишками" (я взял в качестве них крестики и нолики). Один игрок соединяет запад и восток, второй север и юг. Вот на скриншоте результате игры двух CPU. Да, есть маленькие артефакты в консольке. Но такова консолька
Миниатюры
Как самому создать 3D engine типа DOOM 1995  
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
09.01.2021, 15:48
Kroval, забавная штука. Я игры не писал совсем, ботов всяких, что-то что себе сразу использовать смогу пишу. А с простых игр смотрю многие начинают, даже если не планируют их писать потом. Настолько полезно?
0
5 / 5 / 2
Регистрация: 27.03.2018
Сообщений: 33
09.01.2021, 16:05
Laborant666, вообще говоря, HEX я писал не потому, что я такой любитель парить себе мозги консольными играми, а потому что это был курсач по C++ курсу. Но как по мне, да, это полезно, потому что увлекательно. В курсе проходились основы теории графов, алгоритмы нахождения кратчайшего пути, минимального остовного дерева и прочего. И это было интересно. Но написать игрушку, основанную на теории графов, было ещё интереснее.
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 16:11  [ТС]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
====================[ Build | myPro | Debug ]===================================
"C:\Program Files\JetBrains\CLion 2020.1\bin\cmake\win\bin\cmake.exe" --build C:\CLionProjects\SFML_3DGAME\cmake-build-debug --target myPro -- -j 4
Scanning dependencies of target myPro
[ 50%] Building CXX object CMakeFiles/myPro.dir/src/main.cpp.obj
C:\CLionProjects\SFML_3DGAME\src\main.cpp: In function 'int main()':
C:\CLionProjects\SFML_3DGAME\src\main.cpp:216:109: error: cannot convert 'wchar_t*' to 'LPCSTR {aka const char*}' for argument '2' to 'WINBOOL WriteConsoleOutputCharacterA(HANDLE, LPCSTR, DWORD, COORD, LPDWORD)'
         WriteConsoleOutputCharacter(hConsole, screen, nScreenWidth * nScreenHeight, { 0,0 }, &dwBytesWritten);
                                                                                                             ^
mingw32-make.exe[3]: *** [CMakeFiles/myPro.dir/src/main.cpp.obj] Error 1
mingw32-make.exe[2]: *** [CMakeFiles/myPro.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/myPro.dir/rule] Error 2
mingw32-make.exe: *** [myPro] Error 2
CMakeFiles\myPro.dir\build.make:62: recipe for target 'CMakeFiles/myPro.dir/src/main.cpp.obj' failed
CMakeFiles\Makefile2:74: recipe for target 'CMakeFiles/myPro.dir/all' failed
CMakeFiles\Makefile2:81: recipe for target 'CMakeFiles/myPro.dir/rule' failed
Makefile:117: recipe for target 'myPro' failed
две ошибки выдаёт компилятор
0
Just Do It!
 Аватар для XLAT
4205 / 2663 / 654
Регистрация: 23.09.2014
Сообщений: 9,059
Записей в блоге: 3
09.01.2021, 16:16
Цитата Сообщение от Segeja Посмотреть сообщение
две ошибки выдаёт компилятор
я вижу одну ошибку.

#define UNICODE
?
1
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 16:23  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
#define UNICODE
А куда сие поставить
0
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
09.01.2021, 16:29
Лучший ответ Сообщение было отмечено Segeja как решение

Решение

Цитата Сообщение от Segeja Посмотреть сообщение
А куда сие поставить
Для MinGW Перед заголовочными файлами
C++
1
2
3
#define UNICODE
#define _UNICODE
#undef __STRICT_ANSI__
И swprintf_s заменить на swprintf (выкинув 40)
1
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 16:42  [ТС]
GoshaM, Спасибо вам огромное сие запустилось в консоли, буду изучать сие
0
Just Do It!
 Аватар для XLAT
4205 / 2663 / 654
Регистрация: 23.09.2014
Сообщений: 9,059
Записей в блоге: 3
09.01.2021, 16:43
Цитата Сообщение от Segeja Посмотреть сообщение
А куда сие поставить
а вы что там компилируете?
если по первой ссылке, где Дум в 100 строк в консоле,
то вот:
Как запустить код?
0
82 / 9 / 1
Регистрация: 31.05.2016
Сообщений: 336
09.01.2021, 19:08  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
а вы что там компилируете?
если по первой ссылке, где Дум в 100 строк в консоле,
то вот:
Как запустить код?
Консольную программу на 3D engine файл называется CommandLineFPS.cpp с GITHUB ссылка выше
FPS зашкаливает за 1000 кадров

Добавлено через 2 часа 14 минут
Цитата Сообщение от XLAT Посмотреть сообщение
а вы что там компилируете?
если по первой ссылке, где Дум в 100 строк в консоле,
то вот:
Как запустить код?
Обязательно зайду на вашу страничку по этой теме про DOOM на 100 строк
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2021, 19:08
Помогаю со студенческими работами здесь

Как сделать что-то типа Art Money или Cheat Engine, средствами .NET?
Нужен пример, желательно с проектом на c# Надо чтобы на форме были такие возможности. Выбор процесса для последующего редактирования...

Введенную дату вида "мм/дд/гг" преобразовать к форме "месяц, день, год". Например, "10/17/1995" дает " ноябрь, 17, 1995"
Введенную дату вида "мм/дд/гг" преобразовать к форме "месяц, день, год". Например, "10/17/1995" дает " ноябрь, 17,...

Как Вы думаете игровые движки типа Dunia Engine после компилевки в каком формате используются? в dll?
Вообще прочитал что такое игровой движок на википедии. но на самом деле интересно в каком он формате? и когда н-р юбисофт использовала...

Как самому создать сайт по недвижимости — за неделю, без знаний?
Добрый вечер! Хочу за неделю создать свой сайт по купле-продаже недвижимости. Никаких знаний у меня нет, поэтому подскажите,...

Как создать динамический двумерный массив и самому его заполнить?
Как создать динамический двумерный массив и самому его заполнить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru