@LanskoyGames
У модераторов первое место, но только с конца...

Какие библиотеки и как использовались для создания Minecraft Bedrock?

Я сам в Minecraft ни разу не играл, но учитывая, что по статистике она соревнуется по популярности с Tetris и Mario Bros. , то как без UE и какого-то игрового движка был создан Bedrock Minecraft на C++? Вопрос для понимания дополнительных вариантов создания кроссплатформенных игр и приложений помимо Unity и UE, а также Godot(хотелось чего-то ближе к C++, чем UE).
  • Вопрос задан
  • 2480 просмотров
Пригласить эксперта
Ответы на вопрос 3
@maksam07
как без UE и какого-то игрового движка

А по вашему, игровые движки не = скелет какой-то игры?

У вас в описании указано "Python". Вы же знаете, что такое библиотека для питон? Или фреймворк для питон (аля Django и пр.). Представьте что UE это django. А джанго это что? Просто инструмент для быстрого и удобного создания полноценного сайта. Можно ли обойтись без джанго? Конечно да! Только сайт придется реализовывать значительно дольше, продумывая весь функционал с нуля, практически с нативного кода питон, самому обрабатывать запросы, коды ответов, роутинг и кучу-кучу всего.

Как это работает в джанго?
from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello, World!")

from django.urls import path
from myapp.views import hello_world

urlpatterns = [
    path('hello/', hello_world),
]


Как это работает без фреймворка:
from http.server import BaseHTTPRequestHandler, HTTPServer

class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(b"Hello, World!")

httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()


То же самое и с игровыми движками, но немного сложнее.
Ответ написан
@rPman
Майнкрафт был создан на собственном движке и написан на java, позже часть движка значительно модернизирована с помощью мода optyfine (текстур паки и шейдеры, поддержку этого в Майнкрафте так и не допили), там ещё есть моды движка но не такие значимые.

Помимо графического движка, есть движок для модификаций - forge (тоже не единственный, например fabric) с mcp, собственно поддерживаемый движок для создания модификаций, способных невероятным образом менять проведение игры и это (а так же свободное лицензирование, до покупки майкрософтом) сделал игру популярной.

Там есть ещё куча других нюансов, которые важны для качества результата но далёкие от графического движка, типа лянчера и способа хранения ресурсов для мультиверсионности, централизованного curseforge,..
Ответ написан
@theDmitr
Minecraft Java Edition имеет собственный не OpenSource движок.
Для взаимодействия с графикой используется lwjgl (Light Weight Java Game Library). Сам пробовал с ней работать, писать собственный движок, библиотека не очень сложная, по сути предоставляет интерфейс к C-шным функциям OpenGL, Vulkan и т. д.
Если интересно, то обязательно попробуйте, не будет лишним для опыта.

Чтобы дать возможность людям создавать свои расширения для игры (моды), был создан Forge API, скачать его на любую доступную версию можно с официального сайта forge - https://files.minecraftforge.net.
До версии 1.7.10 эти jar-ники назывались SRC, позже были переименованы в MDK (Minecraft Development Kit).

Что касательно Bedrock Edition, движок был полностью перенесён с Java на C++, а в качестве библиотеки рендера теперь используется DirectX (Так же реализована поддержка OpenGL и его можно выбрать в качестве отрисовщика).

Кратко: Java Edition имеет собственный движок на Java, рисует с помощью lwjgl (OpenGL); Bedrock Edition имеет тот же движок с минимальными отличиями, но на C++, рисует с помощью DirectX и если захочется, то OpenGL.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы