Помощь - Поиск - Пользователи - Календарь
Полная версия: Графический движок
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
Страницы: 1, 2
AlaRic
Сможем написать или нет?
GLuk
Как в Думе, Дюке - да, а дальше - сомневаюсь. Хотя написать, то можно все.
Ivs
Цитата
Сможем написать или нет?

А что он двигать будет ??????????
AlaRic
Как в Думе думаешь сможем? Может в этой теме кто-нибудь напишет несколько мессаг про написание графических движков, а там глядишь и может что-нибудь сами напишем!
GLuk
Но сразу определимся, что это будет чисто движок обработки и перемещения объектов (без обработки клавы и прочего). А насчет движка Дума - это бы в Алгоритмы сунуть, сам просчет...
AlaRic
Цитата
Но сразу определимся, что это будет чисто движок обработки и перемещения объектов (без обработки клавы и прочего).

Хотя бы так! С чего начнем?
GLuk
Распределим работу, e.g. кто-то биб-ки работы с видео, кто-то с объектами и т.д.
AlaRic
У тебя инфа есть по этому делу?
PS. Аська работает?
GLuk
Цитата
У тебя инфа есть по этому делу?
PS. Аська работает?


Аськой не пользуюсь (Mirabilis must die) из принципа. Только мыло - типа по старинке  :)
Инфа есть в разбросанном состоянии, есть даже пример движка (страшного, но 3Д движка - клон дума).
AlaRic
Если не трудно скинь мне инфу - посмотрю!
GLuk
Получи, движок по E-Mail...
Гляди мыло - высказывай соображения  :o
AlaRic
Кто-нибудь хочет попробовать написать простенький движок?
GLuk
Цитата
Кто-нибудь хочет попробовать написать простенький движок?

И ты хочешь взвалить все это на одного человека? :o
AlaRic
Цитата
И ты хочешь взвалить все это на одного человека? :o

Нет. Поэтому и спрашиваю. Один чел даже простенький будет писать долго!
GLuk
Цитата
Нет. Поэтому и спрашиваю. Один чел даже простенький будет писать долго!


Просто вишь ли - вопросом "Кто-нибудь" ты конкретизировал стиль обращения, поэтому я и спросил. Ты бы предложил это дело с предварительной раскидкой тем...
AlaRic
Предложи-ка ты, а я если что подкорректирую.
GLuk
Ну, предварительно так:

1) Работа с видеокартой. (надеюсь вывод пикселя будет не через int 10h)

2) Работа с 3Д-объектом, т.е. поворот, вращение, mip-mapping и все такое

3) Дизайн предварительных сцен

4) Что-нибудь еще... smile.gif

Вот - типа того
AlaRic
Хоть так для начала, хотя не думаю, что будет много сцен!
Насчет вывода пикселя поподробнее   ;)
GLuk
Конечно - вывода пикселя в граф. движке присутствовать не должно быть, т.е. вывод должен быть экранный. Я имел ввиду, то что если кто-то и возьмется за видео-топик - он должен осознавать, что ему нужно будет почитать про порты VGA адаптера (думаю разрешение ограничим - 320х200х256, как наиболее оптимальное во всех смыслах) и вообще работать с памятью напрямую, ну и все такое, а не юзая след. код:
asm
mov ax,0C12h
mov bh,0
xor cx,cx
mov cx,dx
int 10h
end;
Дилетантство не приветствуется... хотя по сути дела мы и сами дилетанты  ;)
AlaRic
Цитата
Дилетантство не приветствуется... хотя по сути дела мы и сами дилетанты

Самого тянуло сказать об этом.
Да и еще... почему именно 320*200*256? Может хотя бы 320*240*256  или 400*300*256!!
Kr@b
Ребята, а как насчет денежного вознагрождения - вы ничего не сказали. Или это дело на интерес - сидеть дома две недели и ничего не делать, кроме как этот проект!!!
AlaRic
Движок, который мы напишем(если напишем), никому не будет нужен кроме нас самих - это проба своих сил.
Движок будет делаться не 2 недели!   ;)
Shadow
:D приеду с отпуска кину граф движок на асме
именно в EXE формате может пригодится
полностью трехмерный
GLuk
Цитата
Ребята, а как насчет денежного вознагрождения - вы ничего не сказали. Или это дело на интерес - сидеть дома две недели и ничего не делать, кроме как этот проект!!!


To Kr@b: Ты бы сначала прочел все мессаги по сабжу, а потом спрашивал - по моему из них явно видно, что все это чистый энтузиазм.
To AlaRic:
А по поводу разрешения - это стандартное разрешение Дума+с ним намного легче работать, чем с нестандартными (e.g. 320x240, 400х300 и т.п.), т.к. куча инфы по этому поводу. И кстати кому-то надо будет заняться кодировнием спрайтов (наверное GIF, на крайняк PCX). Кстати где-то видел Дум в 1024х768  :).
Чой-то мало кто откликается (типа не осталось энтузиастов в совр. мире), а за деньги я его и сам напишу  ;)
AlaRic
Тебе виднее - значит 320*200*256
А энтузиастов действительно маловато!
GLuk
Хрен с ним - я начну с чего-нибудь, потом чего-нибудь выложу, а там посмотрим... :smile.gif
AlaRic
http://www.gamedev.ru/coding/20517.shtml    
GLuk
Это ж клон Wolf/Doom, но не Quake. У нас же будут спрайты (если будут), а не полигоны/треугольники. Да и инфа для разработки винапов, но во всяком случае было интересно почитать. Но этот автор слишком уж вкратце об этом рассказывает...
AlaRic
Там говорится об основах - это самое главное.
Посмотри сколько его движок умеет всяких фенек!
GLuk
Об основах полигонального, но не спрайтового движка, у нас текстуры не будут натягиваться на скелет - это будут спрайты, возможно, с MIP-MAPPING'ом... А стены будут просчитываться пожалуй, как в Wolf.
AlaRic
Да погоди ты с MIP-MAPPING'ом   smile.gif
GLuk
Все начинаю писать, вроде с генерацией 9-значных чисел закончил, а в каком формате будем спрайты держать, e.g. GIF, PCX, BMP, PNG. Я склоняюсь к GIF, не думаю, что UniSys придерется к RussianDoom'у со своим долбаным патентом smile.gif
AlaRic
Да GIF будет полегче чем BMP.
Скажи для начала, что надумал писать!
GLuk
Цитата
Да GIF будет полегче чем BMP.
Скажи для начала, что надумал писать!


GIF полегче - В Кб/Мб?  ???

Писать я все еще думаю - движок, но не клон Дума, а пожалуй Вульфа. Т.к. в думе больше просчета (стены не под прямыми углами и все такое из этого вытекающее). А пока что думаю сделать что-то типа WADа в Думе, т.е. файл со скринами/спрайтами...а для жима буду юзать LZW...
Присоединился бы что-ли?  ;)
AlaRic
Поясни, что такое LZW?
Присоединюсь как освобожусь!Дел много!
Мы вдвоем будем писать?? Интересно нам плохо не будет?
GLuk
LZW - алгоритм сжатия данных, придуманный тремя корешами: Lempel'om, Ziv'om & Welch'em. Используется для сжатия данных в ZIP, GIF и многих других. А в ГИФе между прочим юзается модифицированная версия этого алгоритма, запатентованная фирмой UniSys и она воняет по этому поводу на все проги читающие этот формат. Типа каждый должен купить лицензию на чтение и все такое... Но до нас я думаю она вряд до***тся. И кстати неофициальная расшифровка PNG - PNGs not GIF...
А по поводу того, что в два лица будем писать, дык энтузиастов/программистов, то ни хрена нету... sad.gif
ozzy
Смысл? Если для души, то пойму/приму, а если  с претензиями, то кхе-кхе :P
trminator
ИМХО спрайты лучше хранить в BMP или вообще в RAW (т. е. просто матрицу пикселей),  так не придется дополнительно их распаковывать. Тем более что все равно они будут сжаты во что-то типа Думовского WAD'а
AlaRic
Еще будут мнения? Они не помешают!
Вовчик
У меня есть прога на паскале с движком и прочим, однако для частного случая типа DOOM, но скорее типа Wolf, т.к. нет вертикального движения. Работает на удивление быстро. Я офигел, что паскаль на такое способен. Половина проги написана на Ассемблере, но я его так и не взялся учить!
Могу переслать!

И еще вопрос:
Вы не знаете, как сделать в графическом режиме vga256 или vesa16 две страницы для перерисовки экрана. setactivepage, setvisualpage?
AlaRic
Цитата
И еще вопрос:
Вы не знаете, как сделать в графическом режиме vga256 или vesa16 две страницы для перерисовки экрана. setactivepage, setvisualpage?

Сам себе ответил!
for Gluk: ты будешь использовать асму?
Dark
Привет, если вы хотите, я мог бы работать с вами над движком - в общем то у меня есть гр. библиотека для работы с VESA - написана на асме под паскалем.  :D

P.S. В моей библиотеке есть шрифт, обновление экрана, работа с режимами 800*600,640*480... кому интересно - мыльте [email] darkmaze@yandex.ru [/email]
GLuk
To Dark:Читай все мессаги сабжа - разрешение 320х200х256. И по поводу сторонних модулей, дык я категорически против - типа делать самим все!

To Alaric:Конечно буду, уже весь модуль написан на нем... smile.gif

To Ozzy:Может потрудишься над темой поворота стен и все такое? ???
Dark
8)
Ну
1. Эта библиотека написана полностью МНОЙ! !!!(писалась где-то 2 мес.)
2. Хорошо, MCGA, так MCGA, но я буду работать с вами или нет?

Я согласен работать на полном энтузиазме - так как это полностью совпадает с направлением полета моей творческой мысли  :P
GLuk
А не мог бы выложить пару строчек из нее (в плане сама реализация меня интересует) или кинуть на мыло. Участие: попробовал бы просчет поворотов стен при движении, объекты на поворот не надо вить, т.к. спрайтовая орг-ия.

:D Энтузиазм только приветствуется :D
AlaRic
Цитата

Я согласен работать на полном энтузиазме - так как это полностью совпадает с направлением полета моей творческой мысли  :P

Вот и отлично, так как бабок лучше не ждать ;D
Обговори свою задачу с Gluk'ом!
Dark
Ну в обшем то я готов попробовать... :-)
Кое какая документация у меня есть - буду изучать  ;D

To Gluk: а для чего тебе генерация 9-ти значных цифр?
И не проще ли использовать PCX? или можно JPG ;-)
Dark
8) 8) 8)
Ну вобщем я понял ту задачу, которую мне предлагают, так:
Имеется двумерная карта об"ектов.
Имеется игрок - и нам известен его вектор направления, и x,z координаты( по правой с.к.) и надо написать программу, которая бы отображала бы то, что игрок видит...

Если что не так подправьте, добавьте...  ;D
GLuk
Цитата
To Gluk: а для чего тебе генерация 9-ти значных цифр?
И не проще ли использовать PCX? или можно JPG ;-)


Генерация 9-значных чисел это был такой сабж который мы с reill долго мусолили...

А по поводу PCX модуль был и так...

JPG: пиши декодер сам :D т.к. на данный момент проследить всю цепочку дискретного косинус-преобразования мне не под силу а пользоваться сторонними библиотеками не буду...
GLuk
Модуль для работы с VESA:

Я тут выложу кусочек из-за которого все говняется (to Dark):
+ парочку переделанных процедур
Function TestVESAExt:boolean;Assembler;
asm
lea di,InfoBuf
push ds
pop es
mov ax,4F00h
int 10h
dec ah
jns @NoVESA
mov al,1
jmp @vesok
@NoVESA:
mov al,0
@VesOk:
end;


Function TestVESAMode(Mode:Word):Boolean;Assembler;
asm
lea di,InfoBuf
mov ax,4F01h
mov cx,Mode
int 10h
dec ah
jns @NotEx
mov al,1
jmp @Exist
@NotEx:
mov al,0
@Exist:
end;

Function ReadCurrentMode:Word;Assembler;
asm
mov ax,4f03h
int 10h
mov ax,bx
end;

Procedure VESAClScr(col:byte);
begin
asm
jmp @beg
@vmc:
pusha { Результат работы подпрогр-мы - переполнение стека }
mov dx,[curwin]
xor bx,bx
call vmc
popa
retn

@beg:
push $A000
pop es
xor di,di
mov ax,[maxy]
mov dx,[maxx]
mul dx
mov bx,ax
inc dx
mov al,[col]
mov [curwin],0
call @vmc {Отсюда нач-ся г-но}
@l1: mov cx,0ffffh
rep stosb
dec dx
jz @ok
inc [curwin]
call @vmc
loop @l1
@ok: mov cx,bx
REP stosb
end;
end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.