Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2009, 16:37   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Вадим, да не дави ты на него
будь добрее
Цитата:
Да это не параметр,это нужно указать потоку куда переместится.
вообще-то это параметр и называется...ты ведь указываешь куда переместится?
Цитата:
Ну предположим в одном потоки идет ожидание 15 сек до активации миссии
а в другом 5 сек для получения оружия.
ну а о синхронизации кто думать будет?
и не во всех играх скрипты многопоточны...часто бывает так что один поток читает скрпт(или сам основной)
и просто из него берется команда....запускается по типу события(например запуск ракеты...полет естественно дальше...если нужно тоже скриптом идет...но если не нужно...то можно например другую запустить НЕ ожидая пока первая долетит(смотря кк нужно))

в игре же многое будет одновременно делатся(в одном потоке просто скорость большая...а так все линейно...ИИ, коллизии и тд)

не забываем о том что движки же обрабатывают не полное движение персонажа как единственное действие(искл пошаговые) а каждый момент оного...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 07:31   #22
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Вообщем объясню подробно что нужно на первую задачу сделать
это только на первую,
1) Надо реализовать функцию которая будет регистрировать опкоды
Код:
procedure Req_Opcode(Opcode:word;ProcAddress:pointer);
Opcode - в этот параметр записывается номер опкода
ProcAddress - в этот параметр записывается адрес процедуры которая будет вызывается при выполнении опкода.

2)Надо реализовать функцию которая и будет обрабатывать зарегестрированые опкоды

Код:
procedure Process_scripts;
Process_scripts; - которая и будет обрабатывать зарегестрированые опкоды,а также в нем надо придумать как читать это из памяти,
пока все,вот не недоделанные модули:
Вложения
Тип файла: rar Модули.rar (1.9 Кб, 11 просмотров)
VintProg вне форума Ответить с цитированием
Старый 21.08.2009, 15:22   #23
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

хм...с таким подходом тебе придется на АСМ перейти для передачи аргументов...(и то не выйдет даже...ибо ты нигде не учитываешь что твои процедурам нужно)

вариант с case один из самых лучших выходит...

хотя твой вариант тоже можно развить...
но тут есть свои нюансы
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 15:30   #24
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Пепел Феникса
У меня есть такой вопрос ты не ковырялся в gta-sa или gta-vc?
VintProg вне форума Ответить с цитированием
Старый 21.08.2009, 15:37   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

мне делать нечего?
я играл в них как то...и только

я больше к стратегиям располагаю
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 21.08.2009 в 15:40. Причина: грамотическая ошибка
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 15:43   #26
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Так вот раньше моды делал на gta-шки
миссии и прочие и вот там существует движок опкодных скриптов
я бы хотел бы узнать как он устроен и работает зачем тогда
надо было бы изобретать велосипед как это сделать?
RockStar не дает исходники
или бы какую нибудь книгу найти по данной теме
что скажеш.
VintProg вне форума Ответить с цитированием
Старый 21.08.2009, 15:49   #27
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

велосипед изобреть то и не надо.
главное понять логику такой вещи...
составь четкий алгоритм.
и его реализуй в коде...

а использовать чужое...не стоит...он то заточен под игру скорее всего, а не отдельно выполнен
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.08.2009, 15:57   #28
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Пепел Феникса

Цитата:
составь четкий алгоритм.
и его реализуй в коде...
Думаеш получится?

Это же RockStar не как мы они профи...
И реализуют свою особую логику,
но все же я рад что на этом форуме есть хорошие люди хоть с чем то
поделятся,и я думаю если мы все будем друг другу помогать то мы сила!
и обгоним RockStar.
VintProg вне форума Ответить с цитированием
Старый 21.08.2009, 16:16   #29
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Вообщем давай все изложу что нужно сделать и так поехали:
я начил писать свой собственный движок пока для 2d игр,
и решил первым делом заняться скриптовыми функциями,сами понимаете игры со скриптами значительно луче,
пусть даже 2d игра ,даже потом можно будет написать игру "червячки" и миссии делать на основе скриптов и так далее...

вот сидел планировал что нужно моему скриптовому движку:

======================== Опкодные скрипты =================================== =================

Тип данных:
%i% - integer - 4 - байта целое
%d% - word - 2 - байта целое
%f% - Real48 - 6 - байт вещественое

Диапазон опкодов (0001..FFFF);

сам опкод состоит из индитификатора команды к примеру 0001:

к примеру если это в редакторе скриптов то выглядит вот так:
0001: wait 1000

Компилятор игнорирует слова в опкодах

0001: wait 1000
и
0001: 1000
Идентичны

0001: имеет один параметр это %i%


Прочии команды:
0001: wait 5000 ms //ожидания
0005: Exit_Game //Команда выхода из игры

Переходы и условия:
0002: Jump @Start //Команда безусловного перехода
0003: Jump_if_false @Lass //Условный переход
0004: if - так и не понял

пока хотя бы это реализовать потом ище изложу

Для чего нужна регистрация новых опкодов?
-----------------------------------------------------------

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

Req_Opcode($000A,@Create_Worm);
Process_scripts;
VintProg вне форума Ответить с цитированием
Старый 21.08.2009, 16:49   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ааа...так текcтовые скрипты...а я чет про битовые думал(аля машинные коды)

так этож практически тоже что и у Вадима(если я верно все уловил)

насчет типов данных...используй лучше типы выравненные на 4 байта(integer,Double)

так ты сделай основу какуюнить(вспомни как Вадим делал)
а потом уже добавляй новые команды
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37