- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
var
OGTC: cardinal; // для сверки с таймером
procedure CheckPhys;
begin
if OGTC < GetTickCount then begin
Phys; // тут считается вся игровая физика и все изменения состояний. Звуки тоже здесь.
Inc(OGTC, dT);
end;
end;
procedure Graph; // процедура отрисовки графики
var
i: integer;
begin
CheckPhys;
for i := 0 to ItemCount - 1 do with Items[i]^ do CopyPosition := Position; // делаем копию состояния перед отрисовкой мира!
for i := 0 to ItemCount - 1 do begin
ShowItem(Items[i]^); // рисуем элемент мира
CheckPhys; // проверяем, не пора ли снова считать физику
end;
end;
procedure OnIdle;
begin
if PlayingGame then Graph;
end;
Надо, чтобы в игре скорость игрового процесса не зависела от тормозов графики. Даже когда кадр долго рисуется, звуки и движения делаются строго по таймеру. Создавать лишний поток мне в лом, и вообще я дико боюсь приколов с синхронизациями и так далее. Поэтому сделал такую хрень. Сэмулировал многопоточность банальным однопоточным кодом.
ну школота, что поделаешь.
Из за таких как ты сейчас программы и тормозят на четырехядерных процах.
Ох, дэльфи, дэльфи...
мне понравилось кстати, теперь я пишу на дельфи, ебусь в жопу и сру на говнокоде)
Но с точки зрения современной моды на многоядерность это действительно не лучшее решение, за что и попало сюда.
дельфи, морально устарел, и на практике является не более чем языком для обучения или написания мелких программ.
с чего ты взял?
Честно говоря за дельфи следить я практически перестал после 7й версии, сейчас там с дотнетом вроди как связались так что всё возможно. И давайте прекратим спор:)
и чо? а отдельнгые индусы не знают о циклах и копипастят код n раз. сделаем вывод, что в с++ нет цикла for?
дельфи - добротный ООП-язык, иерархия ООП в .net частично взята из дельфовского VCL (помимо java).
процедурно учат потому что это даёт понять основы построения алгоритмов. то что в совковых вузах не дают основы построения объектных интерфейсов - вина некомпетентных, нежелающих учиться учителей, а не дельфи.
я не защищаю дельфи, потому что она полное говно, просто какбэ не люблю когда клевещут :)
Ты долбоёб. Дельфи - аспектно-ориентированный язык. Настоящий ООП - это SmallTalk.
Когда, вас, макак начнут отстреливать и изолировать в зоопарке от общества?
ну ты и мудак, дельфи это компонентно-ориентированный скорее. но компониетно-ориентированность я бы сказал это разновидность ООПа, ибо включает в себя его.
нефига. медленее
>я бы сказал это разновидность ООПа
меньше болтай лось если не знаешь
хотя цпп тоже отстал от 2010 года, но засчёт огромнейшего коммьюнити живёт и здравствует, а дельфин труп перепродают из компании в компанию тем временем. и вообще ждельфи популярна только в странах разваливающегося снг, что символизируте.
платиновые вбросы /gk/
как там поддержка Дельфей 64-бит?
я как-то тетрис написал. как только пытаешься выше 30 отрисовок в секунду делать (ака 30фпс), у всех типов таймеров (включая мультимедиа таймеры) начинает крыша ехать и из-за задержек игра становится слишком не равномерной. про потоки даже не упоминайте - там все еще хуже.
ну оно как бы и логично: все смотрят в играх на frames-per-second. больше - лучше. а если хочешь как можно более высокий фпс, то само собой разумеется что CPU на 100% всегда будет загружатся. а если ЦПУ на 100% по определению может загружатся, то на кой хер с таймерами возится - простой tight loop намного более прост и эффективен.
"Главное, чтоб C и C++ не были единственными доступными программисту инструментами — иначе это адски паршивый программист."
знаю бейсек, хаскель, лисп, окамл, сишарп, жабу, чуть=чуть с++, обж-с, брейнфак, пейтон, но паскаль не знаю и знать не хочу.
"Бейсек - 11%
Крэкинг - 34%
ICQ - 10%"
Вебкилл, залогинься.
слил, короче
бородат?
это чья цитата? какого-нибудь пришибленного вирта?
цитата луговского произнесенная в одном из эпичных тредов.
Строчка номер 17.
> в-третьих синхронизировать аудиопоток стука колёс со скоростью трамвая
Нету аудиопотока колёс, понимаешь? Каждое пересечение колеса с каждым стыком честно считается, при этом издаётся стук. Дельты не катят, ритм стука сразу нарушается, я проверял. И кстати, как с дельтами сделать ускорение и гармонические колебания вагона после прохождения стыка?
> каким образом кадр должен отрисовываться так долго
Ты вообще обсуждение читал? Про 600 МГц селерон и 8 МБ видео, например?
Кстати, на современных компах игра успешно обрабатывает в реальном времени всю трамвайную сеть Петербурга. Рисует, правда, только 2-км окрестность. По ночам можно увидеть линии фонарей дальнего квартала.
> ты наверное в лоб рисуешь, без каких-либо приличных алгоритмов
Да, я не делаю БСП, если ты об этом. Там не в нём дело.
я ебу, опенгл должен справиться
Кстати, программа коммерческая? Для чего используется и используется ли? Может есть предложения, для чего она будет использоваться?
Были идеи использовать для обучения. Или для расчёта расписания.
http://www.gamedev.ru/code/forum/?id=133916
Даже скриншёты есть.
Вспоминается старый добрый ДОС. Про что игрушка хоть? Поподробней плиз. :)
> Про что игрушка хоть?
Гугль первой ссылкой выдаёт на запрос "трамвайный симулятор".
Все вопросы RTFM.
http://papertram.ucoz.com/forum/10-47-1
И да. Я Pokimon. Неправильно пишешь.
зы: Трамваи действительно разгоняются на 90 км(или миль)? А они могут больше?
Не понял насчёт бетмена.
Ой. Ну не пребедняйтесь. Был там такой с треугольными ушами. :) Он меня ещё спасал, когда два трамвая столкнулись, после выключения автопилота. :)
постарайтесь!
Потому что говнокод и логика макаронинами вшита в графический код?
Ты в фаркрае видел галочку, позволяющую играть на первом пне?
Ну вы меня поняли. Я как-бы о задачах говорю.
На днях выкачал симулятор для космофагов (кроме субъекта idee fixe, существенных отличий от железнодорожных фетишистов нет) и наблюдал совершенно сказочные тормоза, причем в таких местах, где работы шейдера в общем-то и не видно. (ЧСХ, имя файла оказалось 'orbiter100606.zip')
В 3d-редакторах вроде есть функция уменьшения числа полигонов в получившейся модели. Вообще в любых совр. играх делают сразу где-то по три версии модели (на каждый LOD).
Ты кого учишь? Гейммейкера учишь. Сколько ты игр сделал? TarasB как минимум сделал эту.
> Про известные 3Д-редакторы не надо - так народ даже с фарами геморроится по страшному.
Чё не надо? Посмотри любую игру -- на рразные LOD'ы разная детализация модельки. Какой геморой? Я точной комманды не скажу, но в тридэсмаксе уменьшать полигоны можно буквально двумя щелками
> А случайный цвет вагона?
А это как-то зависит от сложности модельки? Так же перекрашивай, как и перекрашивал. Вообще вагоны не самое главное, их можно делать "квадратными", особо никто разниц не заметит (ибо в рашке транспорт таковым и является - квадратным). Я больше говорил про окружение: дома, природа, деревца там. Чтоб было на что смотреть.
> А лампочки, меняющие цвет в зависимости от номера маршрута (есть такие на вагонах сверху)?
Над этой проблемой лучшие умы геймдева бьются уже десятилетия лол
Только опять же, я не понял каким боком здесь сложность моделек вообще
Ты промахнулся на 180 градусов.
> Так же перекрашивай, как и перекрашивал.
У меня свой формат. Что я буду делать с форматом Макса? Только модель фиксированного цвета, и всё. У меня модель - это одновременно модель и простой скрипт.
> Над этой проблемой лучшие умы геймдева бьются уже десятилетия лол
Тогда почему в Trains и MSTS так делать не выходит? И ещё много чего.
А ты в чём их делаешь? Вручную, что ли, как в детстве в бейсике: DrawLine(..) -- с постоянной проверкой Run на каждом шагу, что вышло?
В 3dsmax и подобных ему пакетах всегда есть система плагинов (в 3dsmax это MAXScript, в Blender -- Python) -- можно написать самому простенький экспортер в свой формат (перебором полигонов в сцене). Так геймдев-компании и делают обычно.
> Только модель фиксированного цвета, и всё
Хм....
> Тогда почему в Trains и MSTS так делать не выходит?
Думаю, потому что говно.
> А случайный цвет вагона?
Плохому танцору...
Тем не менее - то что есть - всё равно мне нравится.
А там только ночь? У нас по ночам трамваи не ездят. Да и ночь не всё время...
Я начинал это три года назад, мне было 19, я был бородат, писал, лишь бы работало.