Давайте пофантазируем. Каким минимальным функционалом должен обладать игровой движок?
Важные дополнения, чтобы движок имел практическую ценность:
1. Чистый 2д или 3д.
2. Кроссплатформа да или нет (десктоп, мобилы, веб).
3. Язык.
Сначала надо функциональные требования уточнить.
Арктик Енжайн был не плох.
Готовая игра, платформер с редактором карт
Простейший пример - движок, умеющий всего три функции:
1) вывод текста в консоль;
2) ожидание нажатия клавиши игроком;
3) переход к заданным веткам игрового алгоритма в зависимости от нажатой клавиши.
Многие ЯВУ умеют это, так что затраты на создание такого движка нулевые. Вопрос лишь в успешности созданных на нем игр. :) Такие графон и геймплей нынче не в моде. Но теоретически, мощный сценарий мог бы вывезти такую игру.
Я начинал на движке, который умел:
SetBlending(A,R,G,B);
Blit(x,y);
Blit(x,y,rect);
DrawLine(x,y,x2,y2);
FillRect(x,y,sizeX,sizeY);
BlitScaled(x,y,sizeX,sizeY);
BlitRotated();
BlitRotatedScale();
При этом три последних без билинейки (некрасиво) и медленно (на девайзе не было юнита floating point математики). Все, этого было достаточно.
Ну еще можно было залочить текстуру и писать обработку ручками, но часто такое делать нельзя - тормозил не lock/unlock, он-то был бесплатен, банально не хватало скорости копировать буферы.
В принципе мне этого достаточно и сейчас. Хотя рендер пиксельных шрифтов хорошо бы иметь искаробки.
C++, C# - вполне сойдут.
ryzed
> Сначала надо функциональные требования уточнить.
Их нахождение - это цель исследования, как раз. :)
Причем, хороших решений может быть много и кардинально отличающихся друг от друга.
entryway
> Арктик Енжайн был не плох.
Можно ли сделать успешный двиг с еще меньшим функционалом?.. (Не обязательно являющимся подмножеством функционала AE.)
Зависит от того что ты подразумеваешь под словом движок.
Фреймворк, обертка над GAPI, набор библиотек, или редактор уровней полноценный?
Фреймворк в принципе может таким движком - просто код свой туда добавляешь
в нужные места.
Слишком абстрактный вопрос, я бы спросил: "Самый минималистичный движок-убийца юнити"
single file engine, шрифт захардкожен массивом, ввод X11/win32
nerengd
> Зависит от того что ты подразумеваешь под словом движок.
> Фреймворк, обертка над GAPI, набор библиотек, или редактор уровней
> полноценный?
Что угодно.
> Фреймворк в принципе может таким движком - просто код свой туда добавляешь
> в нужные места.
Какие места минимально необходимы? Какие функции минимально должно быть в ЯП, чтобы написать код игры?
jaguard
> Я начинал на движке, который умел:
Это вывод графики. А как же ввод от игрока? А игровая логика? Если перечислить все используемые функции - не так уж и мало получится, небось?
nes
> C++, C# - вполне сойдут.
Если считать со всеми стандартными библиотеками, то там же тысячи функций. Это минимализм разве? И неужели они все необходимы, чтобы сделать успешную игру?
Если придумать движок, который умеет всего несколько функций, то его сможет за 5 минут освоить любой разработчик.
Этот движок уделает Юнити по популярности или нет, как думаете? :)
Нужно понять, что за функции это должны быть. Простейшие (типа вывода спрайта) дают больше творческой свободы, но игру делать сложнее. Более продвинутые функции позволяют всего парочкой параметров описать сразу игровой объект целиком, включая его внешность, физику и поведение, но ограничивают возможность создать что-то необычное.
Virtex
> Это вывод графики. А как же ввод от игрока?
Ввод - берешь виндоз апи и кодишь. Это недолго. Со звуком посложнее если нужно микшировать.
> А игровая логика?
Юнити головного мозга? Игровая логика пишется программистом, при чем тут движок?
> Если перечислить
> все используемые функции - не так уж и мало получится, небось?
С синусами и косинусами? Да, прилично. Но они не входят в движок.
Virtex
Какова цель исследования?
Тема в архиве.