Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,043
1

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

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

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

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

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

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

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

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

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

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

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

Цитата Сообщение от jonikster Посмотреть сообщение
Всё на звуке.
а зачем вам тогда
Цитата Сообщение от jonikster Посмотреть сообщение
я не смогу разработать 3D вычисления, повороты и т.д.
у звука как по мне меньше расчетов чем с графикой.
0
3922 / 2143 / 367
Регистрация: 05.10.2013
Сообщений: 6,166
Записей в блоге: 169
20.03.2018, 17:36 6
Цитата Сообщение от jonikster Посмотреть сообщение
А игровые движки и библиотеки содержат физику и другие упрощающие элементы. Самостоятельно которые я не реализую по причине отсутствия знаний высшей математики.
Игровые движки содержат физику, которая реализована с помощью готовых физических движков. Например, есть бесплатные библиотеки физики PhysX и Bullet. Они не требуют знаний высшей математики, на то они ни готовые к употреблению. Я знаю, что библиотека Bullet изначально была написана на C++, потом её переписали на Java: JBullet
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,043
20.03.2018, 18:54  [ТС] 7
f3hler, то, что нет графики, не отминяет персонажа. Поворачиваться как я буду? Мало расположить персонажа на координатах x,y,z, нужно настроить его перемещение в 3D пространстве.
0
132 / 127 / 43
Регистрация: 07.11.2017
Сообщений: 553
21.03.2018, 10:58 8
Цитата Сообщение от jonikster Посмотреть сообщение
f3hler, абсолютно никакой графики. Всё на звуке.
Цитата Сообщение от jonikster Посмотреть сообщение
f3hler, то, что нет графики, не отминяет персонажа. Поворачиваться как я буду? Мало расположить персонажа на координатах x,y,z, нужно настроить его перемещение в 3D пространстве.
вы противоречите сами себе)
а зачем вам персонаж, если все на звуке будет построено?
хотя класс персонажа как не крути все равно будет, только не будет визуализации его .
я бы вообще отринулся от графики и чисто пространство или "черный квадрат Малевича".
но честно говоря, я пока над этим не думал и не могу описать полного взаимодействия игрока и мира:
- как давать задания
- как ориентироваться в мире
- как взаимодействовать непосредственно с игровыми персонажами (атаковать или ...)
0
3922 / 2143 / 367
Регистрация: 05.10.2013
Сообщений: 6,166
Записей в блоге: 169
21.03.2018, 11:22 9
Персонаж обычно называют 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,043
21.03.2018, 11:22  [ТС] 10
Поясню.
Да, будет игровой персонаж. Например структура:
Класс Player,
поля X, Y, Z, turn, health.
Какая нибудь библиотека управляет поворотами игрока.
Есть карта, по которой можно передвигаться. С передвижением меняется позиция и воспроизводится звук шагов.
О стрельбе, враг в центре 3d звука, когда мы к нему повёрнуты, по звуку и стреляем. В некоторых играх реализован звуковой прицел, когда мы наводим на противника, он сигналит.
Я долго выбирал язык под это, и если честно, до сих пор не определился. Придется наверное реализовывать на всех трёх, C++/C#/Java. Чтобы увидеть, что лучше для меня.
Сейчас меня интересует, может юзать движок какой, или если писать свой, какие библиотеки могут помочь. Со звуком тут всё просто, bass, irrKlang. А вот с 3D...
0
3922 / 2143 / 367
Регистрация: 05.10.2013
Сообщений: 6,166
Записей в блоге: 169
21.03.2018, 11:28 11
Если это 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,043
21.03.2018, 12:37  [ТС] 12
8Observer8, я бы давно начал писать в C++, но я до сих пор не уверен. Работы в C++ не найти, и я не уверен, достаточно ли будет моих текущих знаний C++ для этого. Переменные, условия, циклы, массивы, указатели, ООП.
Потому я рассматриваю C#/Java.
0
3922 / 2143 / 367
Регистрация: 05.10.2013
Сообщений: 6,166
Записей в блоге: 169
21.03.2018, 14:36 13
Цитата Сообщение от 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,043
21.03.2018, 16:16  [ТС] 14
8Observer8, хорошо, но есть ещё Java, и там такой класс реализуется также. Проблема в том, что я не могу определиться с языком. Скорее всего, верный выбор будет изучать все 3 языка, но я не знаю, на сколько это правильный выбор.
0
Pavel_Srgv
21.03.2018, 16:39
  #15

Не по теме:

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

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

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

Добавлено через 3 минуты
Тебе могут сколько угодно приводить доводы в пользу того, или иного языка, или игрового движка, или его отсутствия. Только это ничего не изменит, пока ты сам не изменишься.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2018, 21:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.