|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.08.2009, 16:37 | #21 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Вадим, да не дави ты на него
будь добрее Цитата:
Цитата:
и не во всех играх скрипты многопоточны...часто бывает так что один поток читает скрпт(или сам основной) и просто из него берется команда....запускается по типу события(например запуск ракеты...полет естественно дальше...если нужно тоже скриптом идет...но если не нужно...то можно например другую запустить НЕ ожидая пока первая долетит(смотря кк нужно)) в игре же многое будет одновременно делатся(в одном потоке просто скорость большая...а так все линейно...ИИ, коллизии и тд) не забываем о том что движки же обрабатывают не полное движение персонажа как единственное действие(искл пошаговые) а каждый момент оного... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
21.08.2009, 07:31 | #22 |
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Вообщем объясню подробно что нужно на первую задачу сделать
это только на первую, 1) Надо реализовать функцию которая будет регистрировать опкоды Код:
ProcAddress - в этот параметр записывается адрес процедуры которая будет вызывается при выполнении опкода. 2)Надо реализовать функцию которая и будет обрабатывать зарегестрированые опкоды Код:
пока все,вот не недоделанные модули: |
21.08.2009, 15:22 | #23 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
хм...с таким подходом тебе придется на АСМ перейти для передачи аргументов...(и то не выйдет даже...ибо ты нигде не учитываешь что твои процедурам нужно)
вариант с case один из самых лучших выходит... хотя твой вариант тоже можно развить... но тут есть свои нюансы Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.08.2009, 15:37 | #25 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
мне делать нечего?
я играл в них как то...и только я больше к стратегиям располагаю Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 21.08.2009 в 15:40. Причина: грамотическая ошибка |
21.08.2009, 15:43 | #26 |
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Так вот раньше моды делал на gta-шки
миссии и прочие и вот там существует движок опкодных скриптов я бы хотел бы узнать как он устроен и работает зачем тогда надо было бы изобретать велосипед как это сделать? RockStar не дает исходники или бы какую нибудь книгу найти по данной теме что скажеш. |
21.08.2009, 15:49 | #27 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
велосипед изобреть то и не надо.
главное понять логику такой вещи... составь четкий алгоритм. и его реализуй в коде... а использовать чужое...не стоит...он то заточен под игру скорее всего, а не отдельно выполнен Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.08.2009, 15:57 | #28 | |
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Пепел Феникса
Цитата:
Это же RockStar не как мы они профи... И реализуют свою особую логику, но все же я рад что на этом форуме есть хорошие люди хоть с чем то поделятся,и я думаю если мы все будем друг другу помогать то мы сила! и обгоним RockStar. |
|
21.08.2009, 16:16 | #29 |
not
Участник клуба
Регистрация: 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; |
21.08.2009, 16:49 | #30 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ааа...так текcтовые скрипты...а я чет про битовые думал(аля машинные коды)
так этож практически тоже что и у Вадима(если я верно все уловил) насчет типов данных...используй лучше типы выравненные на 4 байта(integer,Double) так ты сделай основу какуюнить(вспомни как Вадим делал) а потом уже добавляй новые команды Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с рамами/Проблема с ЖД | DRAGGER | Компьютерное железо | 6 | 04.01.2009 23:37 |