LINUX.ORG.RU
ФорумGames

[опять 25] Таки хочу накалякать игру


0

2

Собственно just for fun. Накидайте манов по теории создания игры. Идея есть, но не представлю как должно работать в общем, естественно стоит вникнуть в openGL(игра в 2d), ну это не главное. Какашками нее кидать, спасибо. :)

★★★

Последнее исправление: thelonelyisland (всего исправлений: 1)
Ответ на: комментарий от papaya

Ты не поверишь, но в любой программе под винду есть цикл. Просто он может быть спрятан внутри фреймворка. В винде следующая итерация цикла начинается, когда что-то случилось, в игре, когда прошло 1/FPS секунд. Разницы никакой.

PolarFox ★★★★★
()
Ответ на: комментарий от papaya

у вас есть окно и на нем выводится статичная картинка

Речь про игру, где картинка статичная разве что в меню настроек.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Да ребята причем здесь игры,тактики написания кода для всего одинаковы.. Все о чем я говорил основывается на былом опыте писания под винапи(правда давно это было), там даже для открытия простой форточки из-под чистого апи нужно задать коллбэк функцию.. для таймеров тоже (это и есть нормальный способ задания "цикла"), кстати есть и мултимедия таймеры - очень точные.. Все это широко используется, потому что очень логично Реагировать на события (пусть и таймер), нежели постоянно проверять ввод.. Я много чего подзабыл так как много лет ничего не пишу, пускай меня поправят те, кто активно кодит, только скажу что в моем подходе ничего нового нет и не привязан он к фреймворкам (если ОС за такую не считать), даже под ДОСом было такое, не помню как называлось, можно было создавать такой код(софтовые прерывания), который вызывался автоматически при некоих событиях, так писали резидентные программы работающие прозрачно -антивири, или русификаторы клавиатуры,... О многопоточности и речи небыло тогда!

papaya
()

Иди рабатать в контору которая занимается разработкой игр. Опенсорц и создание игр вещи не совместимые.

Ygor ★★★★★
()
Ответ на: комментарий от papaya

кстати есть и мултимедия таймеры - очень точные..

Рад что где-то можно задавать точные паузы в микросекундах не нагружая при этом процессор.

потому что очень логично Реагировать на события (пусть и таймер), нежели постоянно проверять ввод.

В этом случае ты не можешь управлять событиями. Не можешь их генерировать, стирать ненужные до обработки, нет, если пришло 100 ненужных событий то отрабатывай в порядке очереди или изобретай «забиватель болта». А ввод можно проверять не всегда а только когда надо, не объясняя системе подробностей.

даже под ДОСом было такое, не помню как называлось, можно было создавать такой код(софтовые прерывания), который вызывался автоматически при некоих событиях, так писали резидентные программы работающие прозрачно -антивири, или русификаторы клавиатуры,... О многопоточности и речи небыло тогда!

Благодаря Билли ДОС не успел развиться до нормальной многозадачной ОС но вплотную к этому подошёл. Ещё десяток лет развития и всё в досе появилось бы. Думаю и у тебя также, если не забьёшь, то через несколько лет захочешь и движки и потоки, и кнопку «сделать зашибись». Сделай демку с одним объектом и отпишись о результатах.

Napilnik ★★★★★
()
Ответ на: комментарий от Ygor

Пропущено слово «интересные». В винде в указанное либо играл минут 10 от силы, либо вообще не играл. А из opensource нашёл несколько действительно интересных игр.

deb
()
Ответ на: комментарий от Napilnik

если пришло 100 ненужных событий то отрабатывай в порядке очереди или изобретай «забиватель болта»

В каком случае может прийти 100 ненужных событий?

Использую события для всего — и для ввода, и для сети, и для графики. У меня был долгий путь к текущим принципам построения приложений, но они работают идеально и просто и в сложном сетевом приложении с тяжелой графикой и анимациями, и в 200-килобайтных программах для телефонов с 200 мгц процессорами и тормозной jvm.

note173 ★★★★★
()
Ответ на: комментарий от Ygor

По-твоему игры ограничиваются исключительно этими жанрами? Я, к примеру, в такие игры вообще не играю (ладно, из шутеров квейк 3 гоняю, но и только).

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Очередно пасьянс, конечно, очень нужен.

O02eg ★★★★★
()
Ответ на: комментарий от Ygor

crossfire, atrinik. также angband, но он пока слишком сложен и непонятен для меня. the battle for wesnoth, подсел на него ещё на винде, и со временем стал играть в него чаще, чем в любимый с конца 90-х heroes of might and magic ii. много чего ещё. из коммерческих играю только в упомянутый hommii и раньше - в carmageddon (вот на что нет свободного аналога - это обидно. был бы свободный - я бы изменил немного правила, чтобы играть было так, как мне интереснее. но он закрыт на все засовы, так что увы. ещё бы в одной комм. игрушке изменил бы правила, и тоже бы играл ещё много лет с удовольствием - а так надоело).

deb
()
Ответ на: too fat от Ygor

не игра

ага, так и знал, что на самом деле это дефрагментатор

unC0Rr ★★★★★
()
Ответ на: комментарий от O02eg

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

unC0Rr ★★★★★
()
Ответ на: комментарий от note173

В каком случае может прийти 100 ненужных событий?

Жму на кнопку в гуёвине, запускается окно с графикой, гуёвина блокируется ибо больше не нужна а выключить нельзя. Графика отработала, её окно закрылось, гуёвина разблокировалась и тут же начинает обрабатывать лишние клики случившиеся до запуска гуёвины.

Использую события для всего — и для ввода, и для сети, и для графики.

Попробуй использовать классы не так, как того хотят авторы - столкнёшься с ограничениями и неидеальной логикой которую так просто не исправишь. Если пропатчишь исходники базовых системных либ, то получишь несовместимость с новыми версиями, оно тебе надо?

Napilnik ★★★★★
()

Срочно пилюлю антивылдроднина этому господину!

malices_gossips ★★★
()
Ответ на: комментарий от Napilnik

Не знаю, у меня в основных приложениях все свое (и ввод, и графика, и сеть, и интерфейс), так проще. Так что использую классы именно так, как хочет автор)

В сторонних библиотеках — да, часто бывает, что навязываются определенные ограничения к возможным подходам написания приложения. Но у их разработчиков есть на это право.

note173 ★★★★★
()
Ответ на: комментарий от O02eg

не особо

А по-конкретнее?

И напомню, изначальный посыл был «опенсорц и создание игр вещи не совместимые». Приходим к выводу, что совместимые.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Многие игры - просто переделки проприетарных, многие переделки до сих пор не обзавелись своими ресурсами.

В UFO:AI нельзя разрушать стены. В OpenTTD тупые пассажиры. В VCMI нет своих ресурсов, хотя WoG Team уже выложили свои исходники. И т.д. и т.п.

O02eg ★★★★★
()
Ответ на: комментарий от O02eg

Тем не менее, есть нормальные опенсорсные игры, что опровергает начальный тезис. /thread

unC0Rr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.