3D движок Irrlicht Engine за 8 минут: Быстрый старт с C++ и Visual Studio — Компьюпико.ком

3D движок Irrlicht Engine за 8 минут: Быстрый старт с C++ и Visual Studio

С чего начать создание игры? Конечно же с освоения одного из игровых или графических движков. Впореки распространенному мнению, что путь в геймдев начинается с быстрых решений типа Unreal Engine и Unity, если вы действительно хотите стать разработчиком, то вам просто необходимо познакомиться с такими технологиями как DirectX и OpenGL, изучить один-два классических языка программирования таких как C++ и C#, понять основы 2D и 3D графики. В нашем новом видео мы поптылаись показать, что даже классические ламповые технологии, при всей их сложности, могут быть доступны начинающему программисту. Представляем вам Irrlicht Engine — старый добрый графический «двигатель» которому подсилу справиться с самыми разными задачами. От простых самоделок, до профессиональных проектов начального уровня. Смотрите видео на нашем YouTube канале, задавайте вопросы, ставьте лайки и подписывайтесь! Приятного просмотра!

Compupico.com на YouTube
https://youtu.be/eSt9JvrVHMQ

Irrlicht Engine

Небольшая историческая справка. Irrlicht Engine — бесплатный графический движок для работы с 3D-графикой. Он распространяется бесплатно и его можно использовать в своих проектах без ограничений.

Этот движок поддерживает OpenGL и DirectX, а также включает свои собственные рендереры. С его помощью можно загружать и управлять 3D-объектами (например, моделями и сценами), использовать базовые спецэффекты и добавлять элементы интерфейса (кнопки, окна и т. д.).

Irrlicht отлично подходит для новичков, которые хотят попробовать себя в разработке игр. С ним можно создавать простые игры и демосцены. Движок поддерживает популярные игровые форматы, такие как модели из Quake 2 и Quake 3, а также файлы карт уровней.

Еще один плюс Irrlicht — он не требует установки сторонних модулей для работы с графикой, физикой и интерфейсом. В нем уже есть базовая физика, простая система интерфейсов (GUI) и другие полезные инструменты.

Дополнительно к движку есть три официальных расширения:

  • IrrKlang — библиотека для работы со звуком;
  • IrrXML — инструмент для загрузки и обработки XML-файлов;
  • IrrEdit — редактор сцен, который помогает собирать уровни.

Если нужна продвинутая физика, можно подключить внешний физический движок ChronoEngine, так как встроенные физические возможности Irrlicht довольно простые.

Irrlicht Engine — хороший старт для изучения 3D-графики и основ геймдева!

Туториал

В видео мы рассмотрели создание простого консольного проекта C++ в Visual Studio, выполнили необходимые настройки, написали базовый код для вывода вращающегося текстурированного куба при помощи движка Irrlicht Engine. Вы с легкостью сможете повторить этот пример у себя дома. Запаситесь терпением! Visual Studio может выкинуть разные сюрпризы, если что-то не получится, пишите ваши вопросы в комментариях к видео или в комментариях к этой статье — мы обязательно ответим!

В завершении статьи приводим полный листинг программы и ссылку на движок:

Irrlicht Engine https://irrlicht.sourceforge.io

#include <iostream>
#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

int main()
{
	IrrlichtDevice* device =
		createDevice(video::EDT_OPENGL, dimension2d<u32>(640, 480), 16,
			false, false, false, 0);

	if (!device)
		return 1;

	device->setWindowCaption(L"Compupico.com loves Irrlicht Engine");

	IVideoDriver* driver = device->getVideoDriver();
	ISceneManager* smgr = device->getSceneManager();
	IGUIEnvironment* guienv = device->getGUIEnvironment();

    IGUIStaticText* text = guienv->addStaticText(L"Compupico.com loves             Irrlicht Engine",rect<s32>(10, 10, 260, 22), true);

    text->setOverrideColor(SColor(255, 255, 255, 255));

    ITexture* texture = driver->getTexture("compupico.jpg");

	ISceneNode* cube = smgr->addCubeSceneNode();
	if (cube) {
		cube->setMaterialFlag(EMF_LIGHTING, false);
		cube->setMaterialTexture(0, texture);

		ISceneNodeAnimator* anim = 
                     smgr->createRotationAnimator(vector3df(0,1,1));
		cube->addAnimator(anim);
		anim->drop();
	}

	smgr->addCameraSceneNode(0, vector3df(0,10,10), vector3df(0,0,0));

	while (device->run())
	{
	    driver->beginScene(true, true, SColor(255,39,0,89));
		smgr->drawAll();
		guienv->drawAll();
		driver->endScene();
	}

	device->drop();
	return 0;

}

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *