55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107

Библиотеки или собственный движок

20.03.2018, 10:01. Показов 2985. Ответов 73
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Раньше, я долго выбирал язык программирования для разработки игр. В итоге, несколько месяцев назад выбрал C++ и Java. Я выбирал долго между этими двумя языками, в итоге, решил учить оба. И сейчас не жалею.
Сейчас я более менее вспомнил основы C++ и изучил основы Java. Хочу что-то начать делать, и столкнулся с проблемой.
Дело в том, что я хочу разрабатывать звуковые игры. Такие же, как видео игры, но без графики. А все движки и библиотеки строятся на графике.
Вопрос:
Существуют ли библиотеки, где реализация игрока не через спрайт, а через объект с параметрами координатами и т.д.
Например класс игрока с координатами. Класс player, поля x, y, z И т.д.
Если нет, что можете посоветовать? То есть писать всё на графике, писать собственный движок или что ещё?
Написать собственный движок не проблема в плане звуковой игры, реализации менюшки. Но, я например хочу реализовать игру как Call Of Duty. Шутер. А игровые движки и библиотеки содержат физику и другие упрощающие элементы. Самостоятельно которые я не реализую по причине отсутствия знаний высшей математики.
Что можете посоветовать?
Заранее благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2018, 10:01
Ответы с готовыми решениями:

Движок для игр SFML. Не получается подключить библиотеки
watch?v=CVYjVCuPuY4 Всё делаю как в видео. В итоге при попытке сомпилить пример:

DirectX или готовый игровой движок?
Хочу делать игры, поэтому изучаю DirectX. Но большинство говорят, что лучше использовать готовый движок, чтобы не париться. Мне же больше...

Написать свой движок или воспользоваться существующим?
Доброго времени суток, уважаемые форумчане! Работаю в игровом движке Unity3D уже полтора года. Изучил его сверху до низу. Также,...

73
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
20.03.2018, 13:09
Цитата Сообщение от jonikster Посмотреть сообщение
Существуют ли библиотеки, где реализация игрока не через спрайт, а через объект с параметрами координатами и т.д.
обьект с параметрами это самый обычный класс в ООП.
дойдете до классов, наследования и тд, поймете что вам и не нужно ничего)

Добавлено через 1 минуту
Цитата Сообщение от jonikster Посмотреть сообщение
я например хочу реализовать игру как Call Of Duty. Шутер.
как не крути, но у вас ведь всеравно будет какая-то графика.

может проще начать делать простую игру и будет понятней откуда растут ноги?
0
Заблокирован
20.03.2018, 13:22
Эх, время течет, ничего не меняется. Через 5 лет снова будешь выбирать язык, движок и бла-бла-бла, и вся жизнь так пройдет. Я тебя помню еще с
2015 год: На чем лучше писать игру?
2017 год: Разработка игрового движка
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
20.03.2018, 14:42  [ТС]
f3hler, абсолютно никакой графики. Всё на звуке. В звуковой игре никогда нет и не будет графики. Зачем слепым графика?
ООП, я знаю об этом. Да это то, что мне нужно. Я бы разработал свой движок, ибо без графики многое отсеивается, но я не смогу разработать 3D вычисления, повороты и т.д.
Сейчас мне посоветовали библиотеку Bullet Phizix, но я не уверен.

Добавлено через 1 минуту
Pavel_Srgv, свой выбор я сделал. Не забывайте, что помимо программирования другие дела есть.
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
20.03.2018, 16:36
Цитата Сообщение от jonikster Посмотреть сообщение
Не забывайте, что помимо программирования другие дела есть.
да но вы хотели научиться программировать игры для слабозрячих и зарабатывать на этом деньги...
мой вам совет, не получается программирование, то выберите другую роль в игрострое, например, геймДизайнер - просто описывайте игру.
это тоже очень важная роль и поверьте, возможно даже важнее чем программист.
придумать и продумать мир это вам не так уж и просто.

Цитата Сообщение от jonikster Посмотреть сообщение
Всё на звуке.
а зачем вам тогда
Цитата Сообщение от jonikster Посмотреть сообщение
я не смогу разработать 3D вычисления, повороты и т.д.
у звука как по мне меньше расчетов чем с графикой.
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
20.03.2018, 17:36
Цитата Сообщение от jonikster Посмотреть сообщение
А игровые движки и библиотеки содержат физику и другие упрощающие элементы. Самостоятельно которые я не реализую по причине отсутствия знаний высшей математики.
Игровые движки содержат физику, которая реализована с помощью готовых физических движков. Например, есть бесплатные библиотеки физики PhysX и Bullet. Они не требуют знаний высшей математики, на то они ни готовые к употреблению. Я знаю, что библиотека Bullet изначально была написана на C++, потом её переписали на Java: JBullet
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
20.03.2018, 18:54  [ТС]
f3hler, то, что нет графики, не отминяет персонажа. Поворачиваться как я буду? Мало расположить персонажа на координатах x,y,z, нужно настроить его перемещение в 3D пространстве.
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
21.03.2018, 10:58
Цитата Сообщение от jonikster Посмотреть сообщение
f3hler, абсолютно никакой графики. Всё на звуке.
Цитата Сообщение от jonikster Посмотреть сообщение
f3hler, то, что нет графики, не отминяет персонажа. Поворачиваться как я буду? Мало расположить персонажа на координатах x,y,z, нужно настроить его перемещение в 3D пространстве.
вы противоречите сами себе)
а зачем вам персонаж, если все на звуке будет построено?
хотя класс персонажа как не крути все равно будет, только не будет визуализации его .
я бы вообще отринулся от графики и чисто пространство или "черный квадрат Малевича".
но честно говоря, я пока над этим не думал и не могу описать полного взаимодействия игрока и мира:
- как давать задания
- как ориентироваться в мире
- как взаимодействовать непосредственно с игровыми персонажами (атаковать или ...)
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.03.2018, 11:22
Персонаж обычно называют Player, тогда положу начало кода, как создать персонаж на C++, перенести его в точку (x, y) и вывести его координаты, до переноса и после переноса. Если кто-нибудь хочет, то может добавить новые строчки кода. Может так совместно поможем автору темы наконец-то начать писать хоть какой-нибудь код. Не надо бояться ошибаться. Ошибки - это наши друзья, которые помогают развиваться.

main.cpp
C++
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
#include <iostream>
 
class Player
{
public:
    float x = 0.0f, y = 0.0f;
};
 
int main()
{
    Player* p = new Player();
 
    // Координаты до переноса
    std::cout << "before: " << p->x << ", " << p->y << std::endl;
 
    // Перенос в точку (x, y)
    p->x = 10.0f;
    p->y = 20.0f;
 
    // Координаты после переноса
    std::cout << "after: " << p->x << ", " << p->y << std::endl;
 
    delete p;
 
    std::getchar(); // Задерживаем консоль
    return 0;
}
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
21.03.2018, 11:22  [ТС]
Поясню.
Да, будет игровой персонаж. Например структура:
Класс Player,
поля X, Y, Z, turn, health.
Какая нибудь библиотека управляет поворотами игрока.
Есть карта, по которой можно передвигаться. С передвижением меняется позиция и воспроизводится звук шагов.
О стрельбе, враг в центре 3d звука, когда мы к нему повёрнуты, по звуку и стреляем. В некоторых играх реализован звуковой прицел, когда мы наводим на противника, он сигналит.
Я долго выбирал язык под это, и если честно, до сих пор не определился. Придется наверное реализовывать на всех трёх, C++/C#/Java. Чтобы увидеть, что лучше для меня.
Сейчас меня интересует, может юзать движок какой, или если писать свой, какие библиотеки могут помочь. Со звуком тут всё просто, bass, irrKlang. А вот с 3D...
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.03.2018, 11:28
Если это 3D игра, то добавим координату Z. Вот так и получается, что изучение происходит по мере добавления новой функциональности. Нужно писать код каждый день и много раз в течении дня. Без ежедневной практики не будет никако-то толка. Вы будете топтаться на месте и даже откидывать себя назад.

main.cpp
C++
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
28
#include <iostream>
 
class Player
{
public:
    float x = 0.0f, y = 0.0f, z = 0.0f;
};
 
int main()
{
    Player* p = new Player();
 
    // Координаты до переноса
    std::cout << "before: " << p->x << ", " << p->y << ", " << p->z << std::endl;
 
    // Перенос в точку (x, y)
    p->x = 10.0f;
    p->y = 2.0f;
    p->z = 20.0f;
 
    // Координаты после переноса
    std::cout << "after: " << p->x << ", " << p->y << ", " << p->z << std::endl;
 
    delete p;
 
    std::getchar(); // Задерживаем консоль
    return 0;
}
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
21.03.2018, 12:37  [ТС]
8Observer8, я бы давно начал писать в C++, но я до сих пор не уверен. Работы в C++ не найти, и я не уверен, достаточно ли будет моих текущих знаний C++ для этого. Переменные, условия, циклы, массивы, указатели, ООП.
Потому я рассматриваю C#/Java.
0
8137 / 2927 / 490
Регистрация: 05.10.2013
Сообщений: 7,856
Записей в блоге: 211
21.03.2018, 14:36
Цитата Сообщение от jonikster Посмотреть сообщение
Потому я рассматриваю C#
C# - отличный выбор. Давайте начнём писать код на C#. Я переписал код выше с C++ на C#.

Как можно больше практикуйтесь. Писать код нужно как можно чаще в течение дня. Иначе даже полученные знания очень быстро превращаются в нечто, потому что забываются.

Повторюсь, что этот пример выводит координаты персонажа 3D игры до перемещения и после перемещения. Пока что здесь используются только поля координат (x, y, z) в 3D пространстве. Вы можете добавить поле health, и поля поворота в углах Эйлера, вокруг осей (rx, ry, rz)

C#
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
28
29
30
31
using System;
 
namespace Player
{
    class Player
    {
        public float x = 0f, y = 0f, z = 0f;
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            // Создаём игрока в 3D пространстве
            Player p = new Player();
 
            // Координаты до переноса
            Console.WriteLine(string.Format("before: {0}, {1}, {2}", p.x, p.y, p.z));
 
            // Перенос в точку (x, y)
            p.x = 10f;
            p.y = 2f;
            p.z = 20f;
 
            // Координаты после перноса
            Console.WriteLine(string.Format("after: {0}, {1}, {2}", p.x, p.y, p.z));
 
            Console.ReadLine(); // Задерживаем консоль
        }
    }
}
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
21.03.2018, 16:16  [ТС]
8Observer8, хорошо, но есть ещё Java, и там такой класс реализуется также. Проблема в том, что я не могу определиться с языком. Скорее всего, верный выбор будет изучать все 3 языка, но я не знаю, на сколько это правильный выбор.
0
21.03.2018, 16:39

Не по теме:

Цитата Сообщение от jonikster Посмотреть сообщение
Проблема в том, что я не могу определиться с языком.
Опять 25... Пиши на любом.

0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
21.03.2018, 17:30
jonikster, вы научитесь программировать впринципе на одном из языков.
выучить несчастных 10* операторов, они схожи в любом языке.
понять ООП.
освоить алгоритмы программирования и некоторые шаблоны/паттерны.
и вам любой язык будет уже без проблем освоить в дальнейшем.

а вы все выбираете) начните уже практиковать, а не теорией баловаться.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
21.03.2018, 17:30  [ТС]
Pavel_Srgv, вы же надеюсь понимаете, что в зависимости от языка будут меняться способы реализации и количество кода?
0
Заблокирован
21.03.2018, 18:14
Цитата Сообщение от jonikster Посмотреть сообщение
Pavel_Srgv, вы же надеюсь понимаете, что в зависимости от языка будут меняться способы реализации и количество кода?
Понимаю. Только за несколько лет "выбирания" уже можно было написать код на любом языке любого качества и количества необходимого для решения задачи.
Объясню по-другому. Ты сидишь в городе А, и хочешь добраться в город Б. У тебя есть на выбор три тачки. Допутим, KIA Rio, Volkswage Polo и Skoda Rapid. Все разные. И вместо того, чтобы взять и доехать до пункта Б хотя бы на одной из них, ты занимаешься, как бы это помягче сказать, полной **** (фигней). Выбираешь... У киа руль кожаный, а тут на 5 сантиметров длиннее, а там на 10 ли ров багажник больше. И все это не имеет значения, потому ты все еще сидишь несколько лет в пункте А. Вот, что ты делаешь.
А почему? А потому что ехать еще не готов. Оттягиваешь момент, когда нужно заняться делом. Дело не в том, что ты не знаешь, какой язык выбрать. Дело в том, что ты и не хочешь выбирать. Потому что придется работать потом с тем, что выбрал. А так, можно имитировать для себя психологически бурную деятельность по выбиранию и изучению всего по чуть-чуть. И сам себя как бы оправдал: вроде бы и делом занят, понемногу че-то изучается, и работать реально не начал над задачей, потому что с языком не определился. И так становится спокойней.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
21.03.2018, 20:55  [ТС]
Pavel_Srgv, как вы сложно всё обрисовали.
Я не могу определиться, потому что у одного языка есть недостатки, которые решает другой язык, но не имеет плюсы первого.
Я слышал, что на C++ можно портировать под разные ОС, но есть 2 момента. Я не знаю, достаточно ли моих знаний в C++ для начала, 2 момент я слышал, что C++ нужно учиться много лет.
Как я буду писать приложения под Android на C#?
И наконец, на Java мне говорят не эффективно писать игры, а лишь корпоротивные приложения.

Добавлено через 1 минуту
Потому возвращаясь к тачкам.
Есть пункт А и пункт Б и 3 автомобиля. На 1 автомобиле доехать нереально, на другом очень сложно, а на третем можно, но он не может ездить по всем путям и на высокой скорости.
Пункт Б андроид, 1 автомобиль - C#, 2 автомобиль - C++, 3 автомобиль - Java.

Добавлено через 38 секунд
Мне нужно выбрать язык, на котором я смогу писать одинакого эффективные приложения под Windows и Android и другие ОС
0
Заблокирован
21.03.2018, 21:07
jonikster, опять ты переливаешь из пустого в порожнее. Придумываешь какие-то вопросы: а хватит ли мне знаний, а я вот слышал. Бла-бла-бла. Я тебе уже сказал: все, что ты делаешь - просто имтируешь бурную деятельность, которая тебя успокаивает психологически. Типа, вот-вот, вот сейчас я только выберу, и сразу как начну делать, как начну! Хрен там был. Твоя выбор языка - это прокрастинация. Сама ябанальная.
Цитата Сообщение от jonikster Посмотреть сообщение
Пункт Б андроид, 1 автомобиль - C#, 2 автомобиль - C++, 3 автомобиль - Java.
На любом реально доехать до твоего пункта Б. Я бы за это время, что ты мучаешься с выбором, уже пешком бы дошел.
Цитата Сообщение от jonikster Посмотреть сообщение
Мне нужно выбрать язык, на котором я смогу писать одинакого эффективные приложения под Windows и Android и другие ОС
А мне не лень, я еще раз задам вопрос: тебе не кажется, что за 3 года метания между языками, можно было на любом из этих языков написать приложение? Все эти года ты занимался банальной прокрастинацией.
Все, вопросы, которые ты поднимаешь сам для себя, описываются лишь одним словом - прокрастинация.

Добавлено через 3 минуты
Тебе могут сколько угодно приводить доводы в пользу того, или иного языка, или игрового движка, или его отсутствия. Только это ничего не изменит, пока ты сам не изменишься.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2018, 21:07
Помогаю со студенческими работами здесь

Ищу игровой движок или конструктор для новичка
Здравствуйте, есть задумка игры и даже не одной, но реализовать её с помощью сложных игровых движков не получится, т.к не имею навыков...

Собственный движок браузера
Подскажите,как написать собственный движок для браузера? т.е. в стандартных средствах vs,можно найти webbrowser,использующий технологию...

Собственный движок для форума
Мужики =) Хочу написать собственный движок для форума.Подскажите что нужно изучать и вообще с чего начинается разработка движка ? P.S...

Нужно ли писать собственный движок?
Здравствуйте, меня интересует вопрос, писать ли свой сайт вручную на пхп, или же все таки лучше ипользовать готовые cms типо joomla или...

Хочу написать собственный простенький 3d движок с генерацией карты
Я студент 4-го курса. Для защиты диплома нужно написать простенький, но свой 3d движок с генерацией карты. думаю написать на плюсах и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru