LINUX.ORG.RU

Геймдевим...(FVWM 2.5.16, Blender 2.42a, VIM70, MOCp)


0

0

Вот он мой десктоп, точу его со времени скрина http://www.linux.org.ru/jump-message.jsp?msgid=1506454.

Как видите, появились FvwmButtons, с ними стало куда удобнее.

Что происходит:

Давно хотел и вот решился взяться за написание Игры. Начали с другом ее разрабатывать. Послольку обладаю некоторыми навыками художника и учусь на программера, я на правах художника и программера :). Друг помогает с программированием и идеями. Недавно начал осваивать Блендер (лет 6 назад, то есть ближе к детству, несколько месяцев посидел за 3д МАХом), результаты вы видите — это безголовый монстр :), войдет он в игру или нет — не знаю, это вообще первая более-менее серьезная модель, которую я сделал, надо бы ему голову доделать.

Игра будет написана на С++ с использованием SDL-OpenGL связки. Эксперементальный период с SDL-OpenGL пройден, то есть проведены нужные тесты на красивость/производительность. Начинаем проектирование классового дерева и понемногу внедряем это в жизнь. На данном этапе планируется, что игра будет напоминать Crimsonland по графике и геймплею (Hardware accelerated 2d, top view).

В VIM вы видите быстрый код по проверке факта пересечения двух кругов (формула расстояния между двумя точками). Второй ассемблерный кусок нашел на gamedev.ru, - квадратный корень считается с довольно неплохой точностью (погрешность ~0.2: для таких игр самое ОНО) всего в 3 операции процессора!

Музыка у меня под MOCp (Music On Console player), он меня устраивает по всем параметрам: есть перекодировка тэгов (кириллица), плеер запускает сервер — закрытие окошка и даже смерть иксов не останавливают проигрывание музыки ни на секунду :).

Вот так живем и развиваемся, ругайте!

P.S. wallpaper: http://p32.com.ua/pics/albums/userpics/10001/creep.ru.nature_vista.319.jpg P.P.S. за jpeg извините.

>>> Просмотр (1152x864, 298 Kb)

Небольшой вроде скрин, а стока места занимает... Цветовая схема приятная.

clubber
()

мне нравится, молодец. когда алфа версия игры будет? игра как опенсоурце??

пс: за moc отдельный респект, сам юзаю. (и за музыку тоже)

djung ★★
()

ИМХО, предыдущая обоина была лучше. За все остальное (кроме Opera) +.

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

Валлпапер у меня вообще рандомный. Игра конечно ОпенСорс, К Опере привык еще с масдая, а тут она бесплатная стала, Лису еще не пробовал, очень разносторонние мнения относительно Оперы.

fifajan
() автор топика

За fvwm, opera, blender и полезное занятие +10

My_quest ★★★★★
()

Лучше ASM не использовать иначе замучаетесь на платформах отличных от i386. ЛУчше всё перепишите на С тем болие данную задачиу и gcc нормально скомпилит.
удачи вам! Надеюсь что ваш интузиазм не иссякнет.

stalkerg ★★★★★
()

Прекрасно. У меня в курсе комп. графики стоят похожие задачи.

Arceny ★★
()

Монстру на месте башки нарисуй пятно крови (или екак-то так),типа зомби безголовый :)

vdm ★★
()

Музыку любишь? Тогда почему 128? Если хорошие колонки, проиграй ту же композицию в 320 - разница приятно удивит.

Другие замечания.

Прозрачность отвлекает от работы.

Булевская функция неправильно названа (имя должно начинаться с "is_" или иметь глагольную форму в 3-м лице).

Camel notation - в сад (practicallyUnreadableVeryLongName vs very_long_but_perfectly_readable_name).

Объекты классов передавать только по константной ссылке. У тебя по значению - типичный случай преждевременной пессимизации.

Всякие asm напротив, типичный случай преждевременной оптимизации. На этом этапе нужно думать только о высокоуровневых вещах, всё остальное - ненужное отвлечение. Оптимизацию проводят позже, с профайлером в руках.

Наконец, неуклюжий возврат из функции. Гораздо элегантнее и читабельнее:

return squareRoot <= (c1.r + c2.r);

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

> Лучше ASM не использовать иначе замучаетесь на платформах отличных от i386. ЛУчше всё перепишите на С тем болие данную задачиу и gcc нормально скомпилит.

Тут очень критична скорость, а для 64 разрядной платформы нужно поменять будет всего одну константу (ту, что HEX), с этим ./configure справится.

fifajan
() автор топика
Ответ на: комментарий от hbee

>Булевская функция неправильно названа (имя должно начинаться с "is_" или иметь глагольную форму в 3-м лице).

>Camel notation - в сад (practicallyUnreadableVeryLongName vs very_long_but_perfectly_readable_name).

>Объекты классов передавать только по константной ссылке. У тебя по значению - типичный случай преждевременной пессимизации.

>Всякие asm напротив, типичный случай преждевременной оптимизации. На этом этапе нужно думать только о высокоуровневых вещах, всё остальное - ненужное отвлечение. Оптимизацию проводят позже, с профайлером в руках.

Этот алгаритм был сделан в порыве интузазизма (вышеупомянутые тэсты). Сейчас идет размеренный и продуманный (на сколько мы с другом это умеем) процесс разработки. Замечания учту, спасибо!

>Музыку любишь? Тогда почему 128? Если хорошие колонки, проиграй ту же композицию в 320 - разница приятно удивит.

Музыку люблю, колонки - аЦтой (две свистелки по 10W, саундкарта еще хуже).

fifajan
() автор топика

выглядит реально юзабельно! зачет! буду благодарен если выложишь настройки FVWM куда-нибудь.

svyatogor ★★★★★
()

а есть альфа игры ?
где можно скачать, потестить? ))

dreamer ★★★★★
()

Главное - чтобы была ракетница. Остальное не епёт

Stalwart ★★★
()

Заюзай какой-нить CVS или SVN - посмотрим :)

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

>Валлпапер у меня вообще рандомный. Игра конечно ОпенСорс, К Опере привык еще с масдая, а тут она бесплатная стала, Лису еще не пробовал, очень разносторонние мнения относительно Оперы.

За Оперу респект, самый лучший браузер. Паленый лис и рядом не валялся. Не слушай фсякий фонатегов.

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

Да, будет дело приближатся к альфе, надо на ЛОРе попросить обладателей 64 разрядных камней потестить.

Алгаритм корня такой (х86):

заносим в региста float (4 байта, наше подкоренное число)
отнимаем оттуда 3F800000 (4 байта, - уже химия: в регистре флоат с мантиссой и экспонентой, а отнимаем инт)
двигаем регистр вправо на 1 разряд (эффективное деление, но в регистре, мне например, непонятно что)
добавляем к регистру 3F800000(о том что в регистре мне уже и думать страшно :))

И, вуаля: получаем флоат со значением корня. Кажется это очень умно и хитро записанная формула по разложению коренной функции в ряд Тейлора,
причем взяти только 2 первых члена.

Если кто-то хорошо понимает откуда там берется корень, пожалуйста обьясните мне, буду очень признателен.

P.S. x86'сятнеки могут проверить - код рабочий.

fifajan
() автор топика
Ответ на: комментарий от fifajan

Если хотите, могу намылить конфиг FVWMа, колорсхему VIMа, иконки и скин gkrellm'a. А вы уж расшарите ибо у меня на файлообменниках акаунтов нет.

fifajan
() автор топика
Ответ на: комментарий от fifajan

Не, asm юзать можно и нужно, но только:

1) Сначала все равно надо писать на C. Это позволит: - не тратить время на преждевременную оптимизацию - иметь гарантированно рабочий код (ошибки в asm коде вероятнее) - иметь код, работающий на любых платформах - иметь читабельную версию кода

2) Только потом, если скорость не устроит (либо руки чесаться будут), для отдельных платформ можно написать asm версии.

anonymous
()

> Игра будет написана на С++ с использованием SDL-OpenGL связки.

А почему именно на OpenGL, а не, скажем, Ogre3D или CrystalSpace? Хочеться всё самим сделать?

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

>Ути какой Медвед! :)

это не медвед! это бабай! ясно же написано boogie-man :)))

AcidumIrae ★★★★★
()

2 вопроса:

1. Где б взять туториал по blender, желательно на русском, а то метод тыка очень долгий.

2. Нам нужны левел-дизайнеры. Интересует? мылом://aceler(бяка)gmail.com

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

> Алгаритм корня такой (х86):
откуда дровишки?

интересса ради решил посмотреть по ближе, вот, что вышло:

float           uint            -0x3f80000      >> 1            +0x3f80000      float

1.000000        3f800000        00000000        00000000        3f800000        1.000000
4.000000        40800000        01000000        00800000        40000000        2.000000
9.000000        41100000        01900000        00c80000        40480000        3.125000
16.000000       41800000        02000000        01000000        40800000        4.000000
25.000000       41c80000        02480000        01240000        40a40000        5.125000
36.000000       42100000        02900000        01480000        40c80000        6.250000
49.000000       42440000        02c40000        01620000        40e20000        7.062500
64.000000       42800000        03000000        01800000        41000000        8.000000
81.000000       42a20000        03220000        01910000        41110000        9.062500
100.000000      42c80000        03480000        01a40000        41240000        10.250000

т.ч. похоже, что алгоритм работает точно _только_ для степеней двойки :-/

beastie ★★★★★
()

Молодец, дело нужное :) А вот чтобы сберечь много времени и нервов:

1) На ASM пока забей, правильно тебе советуют. Сперва заставь свой код нормально работать, а потом профилировщик в зубы и оптимизируй сколько душе угодно.

2) Не мешай С и АСМ в одном файле - это жесть. Возьми с idsoftware.com исходники quake1 и погляди, как надо.

3) О кроссплатформенности не мешало бы подумать -> см. пункты 1 и 2.

4) Комментарии и описания работы функций - рулят :)

anonymous
()
Ответ на: комментарий от svyatogor

> @fifajan: ок, давай на <мой_ник>@gmail.com

Отправлено!

fifajan
() автор топика
Ответ на: комментарий от AsphyX

> Что-то монстр этот больно похож на одного персонажа из Serious Sam...

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

fifajan
() автор топика

корень не нужно брать.

Вот в псевдокоде: return sqr(c1.x - c2.x) + sqr(c1.y + c2.y) <= sqr(c1.r + c2.r);

К словам про ассемблер на данном этапе +1. Переписать на ассемблере всегда успеете.

Скрин приятный.

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

> А почему именно на OpenGL, а не, скажем, Ogre3D или CrystalSpace? Хочеться всё самим сделать?

Ага, технически игра довольно простая, охота получить опыт и оставить свой след в ОпенСорсе и ГеймДэве. Через некотрое время, когда сформируется каркас игры, возможно попрошу помощи у талантливых интузиастов, кто потестит, кто еще чем-то поможет.

fifajan
() автор топика
Ответ на: комментарий от Legioner

> корень не нужно брать.

> Вот в псевдокоде: return sqr(c1.x - c2.x) + sqr(c1.y + c2.y) <= sqr(c1.r + c2.r);

А чуть-чуть розжевать, как появилось?

fifajan
() автор топика
Ответ на: комментарий от vdm

Спасибо. А левел-дизайнеров там не пасут? :)

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

>> корень не нужно брать.

>> Вот в псевдокоде: return sqr(c1.x - c2.x) + sqr(c1.y + c2.y) <= sqr(c1.r + c2.r);

>А чуть-чуть розжевать, как появилось?

Дааа... Стареем и глупеем.
Возвести то в квадрат я не додумался.

Во втором слагаемом разумеется плюс?

fifajan
() автор топика

> На данном этапе планируется, что игра будет напоминать Crimsonland по графике и геймплею (Hardware accelerated 2d, top view).

А поподробнее концепт можно описать? А то как-то не вяжутся у меня безголовые 3d-модели монстров с "Hardware accelerated 2d, top view" )))

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

>> На данном этапе планируется, что игра будет напоминать Crimsonland >>по графике и геймплею (Hardware accelerated 2d, top view).

>А поподробнее концепт можно описать? А то как-то не вяжутся у меня >безголовые 3d-модели монстров с "Hardware accelerated 2d, top view" )))

Во, млин, шо пиво с человеком делает! Я уже Crimsonland с Crimson попутал, минут пять соображал как же это выглядеть будет ))))))

Renso ★★
()

*если это хоть кто-нибудь прочитает*

по поводу конфига fvwm. Если не трудно - отошли плз и мне на dv5ife at yandex .ru.

dv5ife
()
Ответ на: комментарий от grishnak

> Если не трудно - отошли плз и мне на dv5ife at yandex .ru. > Очень прошу намылить конфиги на grishnak at inbox dot ru. Заранее благодарен!

Выслано!

fifajan
() автор топика
Ответ на: комментарий от fifajan

Пажалуста, кому выслали конфиги - выложите их на рапидшару или есчо куда-нибудь

anonymous
()

Мужик респект! Желаю тебе закончить до конца проект, сам баловался OpenGL/SDL, но дальше демки не ушёл.

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