Теперь вопрос ко всем: "Как я обычный начинающий программист, могу юзить ОГР и сделать свою MMORPG?"
Сможешь, если будет желание и терпение.
Кто вам сказал, что в ММОРПГ должна быть супер-пупер графика и т.п.? Смотрел скришоты многих ММОРПГ - ужасно, любая одиночная игра того же уровня (с точки зрения рекламы) будет лучше по графике. Сюжета в ММОРПГ обычно нет, а квесты штампуются как на конвейере, если есть фантазия и хорошо платят. Музыка и звуки обычно тоже не очень - чтобы не было лишней нагрузки на сеть... Клиент-сервер написать не так уж сложно, но для настоящей ММО нужен чертовски мощный сервер (сама машина - компьютер, а не программа). В остальном программирование ММОРПГ не отличается от обычной РПГ. Что я этим всем хочу сказать? Что ММОРПГ разработать может любой желающий, но дело в том, что полученный продукт будет неконкурентоспособным, хотя если будет хорошая реклама... Короче, любительский проект будет. А вот то, что 10 человек максимум онлайн - не ММО, это уже другой разговор... P.S. То, что в команде разработчиков ММОРПГ людей порой больше, чем игроков - так это только для скорости. Конечно, например, mail.ru может иметь только одного разработчика на все руки, но тогда она будет выпускать одну ММОРПГ в 12 лет... вместо 12 ММОРПГ в год...
berzegov, нажимай F7 или F8 постоянно (можно нажать и не отпускать), т.е. одно нажатие - выполнение одной строчки кода. Программа выполняется как обычно, но надо всё время нажимать кнопку. Преимущество в том, что сразу видно, при выполнении какого участка кода возникла ошибка... Сейчас посмотрю твою программу, может пойму, что там не так. ... Э... А где файл модуля? Залей ВСЕ используемые файлы. Из поста № 66 взял текст модуля... Но всё равно не удалось восстановить проект. Пишет, что нужно инициализировать H и что нельзя создать exe.
karuy, как у тебя получилось сделать такой же проект?
Да, кстати, у меня exe-файл, что в архиве был, сразу выдаёт "Исключение неизвестное программное исключение" и адрес ошибки; потом пустое окошко ошибки и закрывается. Что-то ты там перемудрил.
P.S. У тебя там 4 TImage и 2 TTimer. Нужно учиться всё выводить на один image и использовать один таймер. Это легко. Но ещё лучше вообще без этих вещей обойтись.
Ага, вот оно что. Что делает процедура memory? Я думаю, пытается получить больше памяти, т.е. расширяет отпущенные системой пределы памяти. Попробуй закомментировать вот так:
Code
procedure TForm1.FormCreate(Sender: TObject); begin //memory; PosX:=250; PosY:=250; VelX:=2; VelY:=2; end;
И скомпилируй. Ошибки должно не быть. А ещё попробуй запустить exe (если он есть) из Windows. Компилятор ограничивает.
berzegov, возможно, ты задаёшь в var какие-нибудь гигантские переменные или кучу объектов. Фишка в том, что память для обычных переменных резервируется сразу. Ну например, ты в модуле после var задаёшь много переменных - они все сразу блокируют необходимую для их существования память. А переменные из процедур и функций существуют только пока работает эта процедура. Вообще, каждой программе система отводит некоторое количество памяти... Его нельзя превышать... Компилятор проверяет, возможно ли создать все эти переменные... Кажется, так... Или ошибка вылетает при запуске exe? (сразу после компиляции) Вообще, код модуля покажи. Посмотрим конкретно, что там.
аТнОтХоАн, попробуй TStringList, там можно вводить сколько хочешь строк по 255 символов в одно место. Потом считываешь по одной строке. Кстати, если буква - 5 цифр, то как раз в строку умещается 51 символ.
Quote (аТнОтХоАн)
свой метод: одна буква - 5 цифр.
Удачи! Она тебе пригодится, чтобы не заблудится в своём же коде и не умереть с голоду.
Quote (GECK)
for i:=1 to 300 do s:=s+inttostr(i);
Такой фокус проходит, но обратиться к s[300] ты не сможешь. Потому что дальше 256 символа пути больше нет. Есть только тропинки. И, используя такой способ, можно потерять все эти символы. А вообще в string можно засунуть очень много символов. Но извлекать их можно только из ячеек 1..255, смещая остальные к "голове" строки.
Сообщение отредактировал TimKruz - Пятница, 08 Июля 2011, 19:46
Да, кстати. Тут все про "инвайты" заговорили... Видел я одну штуку (в игре "Танки Онлайн", там на бои ориентировано), короче, создаёшь бой, и у боя появляется своя уникальная ссылка (генерируется автоматически, обычно URL, но можно внутреннюю). На буковки в ссылке нам плевать, мы тупо копируем её в чат, и все, кто захочет поучаствовать, могут просто кликнуть на ссылку - сразу переходим к конкретному бою. Т.е. можно задать название типа "Все сюда!!11адынадын!", но ссылка будет уникальной, и по ней можно пригласить друзей. Но по-любому нужны и названия, и номера, т.к. многие просто-напросто ищут подходящий им бой в списке. Если кому-то понравится "Все сюда!!11адынадын!" - милости просим, а кому надо что-то конкретное - пусть нормальные названия, а они точно будут. Ещё можно сделать фильтры поиска, по параметрам типа. P.S. Номер боя должен быть уникальным, иначе на фиг он не нужен. А вот название - какое хочешь. Рекламы в названиях не будет.
Мне удобнее первое. Всё таки искать бой с названием "2356735134572363" не очень удобно, в отличии от боя с названием "Честный бой без бонусов! [2 на 2]". Тем более, чуть-чуть ошибёшься номером - попадёшь не на тот бой, а с названием такого не будет, если только не одинаковые названия. Но, в случае с названиями, придётся их проверять модераторам, чтобы не было мата и т.п. Кстати, можно совместить приятное с полезным. Первая колонка - порядковый номер боя, вторая - название, третья - свойства, четвёртая - описание и т.п. Удобно будет.
Добавлено (08.07.2011, 15:34) --------------------------------------------- Да, и ещё. Названия ведь можно по алфавиту сортировать, и прокручивать список. Так проще, чем сортировать циферки.
Ну например, у тебя укрепление имеет 50 очков прочности. В неё выстрелили, должно убавиться 1 очко. Где ты сохранишь эти данные? В массивах только тип, а в базе только общие (стартовые) сведения. Т.е. так можно реализовать только статичные клетки, они не могут изменять своих свойств. Для простых игр подобного плана, бывает достаточно одного байта для описания всех свойств клетки, а дальше их можно вкл/выкл. Т.е. каждый бит задаёт какое-то одно свойство объекта/клетки карты. Но у тебя, я вижу, много данных... Можно поступить так: отпустить несколько байт каждой ячейки в двумерном массиве, и в одном байте будут указываться простые свойства (проходимость, простреливаемость, разрушаемость, нанесение ущерба персонажам и т.п.), а в остальных байтах - числовые данные (прочность, бонус, и т.п.). Можно будет обращаться всё время к массиву, но если нужно создать или восстановить тип клетки - обращаться к базе данных. Т.е. текстура указывается в базе для типов, также как и стартовые значения; стартовые значения переносятся в массив и там обрабатываются... Ну и т.д. Если база - файл, неудобно будет её всё время читать, вот я к чему. А занимать лишними данными ОП тоже невыгодно... А вообще-то, проще будет сделать по-другому: тип поверхности - земля, вода, песок, и т.п., а окопы, укрепления, лес, и т.п. - это уже объекты, которые хранятся в отдельном массиве и выводятся поверх земли. Т.е. у земли и т.п. только простые свойства, а объекты уже имеют прочность, бонусы и т.п. Я вот только одного не понял.
Quote (Sektoid)
Создаем массив, в котором 5 массивов. Тоесть массив [5][5].
В твоём языке программирования нет, что ли, двумерных массивов? Двумерным компактнее и проще будет. В нормальных языках N-мерные массивы создаются... Кстати, есть в твоём ЯП (на котором идёт разработка игры) объекты? С ними было бы проще. P.S. Для больших карт придётся выгружать/подгружать все эти клетки из базы и сортировать их (смещать). Сложновато и затратно на ресурсы, но именно так и делают в современных играх, если я ничего не путаю.
Quote (Sektoid)
или гексы
Я вообще не понимаю, как можно сделать карту из шестиугольников... Да и зачем?.. Ходить по такой карте сложнее будет, чем по квадратной.
Вообще-то это псевдо-трёхмерная графика, или 2.5D. Т.е. там плоская карта в виде одной огромной картинки, плоские люди и плоские объекты. Оси там только две - X и Y, эффект глубины достигается за счёт перемещения вверх-вниз с учётом карты (физики карты). Т.е. колонны, неподвижные ящики, лестницы, и т.п. Физическая маска карты там довольно сложная... Как бы проекция трёхмерной карты на плоскость.
Quote (danone)
если кто то знает исходник дайте название плз или ссылку.
Я не думаю, что где-нибудь будет такой исходник, всё-таки сложный, наверное... Но можно поискать.
Да, shizofren, совсем забыл сказать. Процесс Game.exe не уничтожается после нажатия "Выход" и закрытия главного окна. Диспетчером уничтожил. Именно из-за этого "бага" получилось вот это:
Quote (bober)
и после закрытия проги музыка всё равно играет.
Но у меня, повторюсь, музыка заглохла почти в самом начале игры.
Там один музон 34 МБ весит. А сама игра - около 2,7 МБ. При этом музыка перестаёт играть, когда проходишь вопрос проигрываешь. Ещё таймер не работает, когда пытаешься пройти заново. 14 вопрос непроходимый. Варианты 1, 2 и 4 считаются неправильными, а вариант 3 "Game Maker" - тупо не работает, сколько не кликай, всё одно. И ещё один баг, меня просто убил. (см. скриншот)
Да, кстати, я думал, несгораемая сумма - типа чекпоинт... Давно не смотрел "Кто хочет стать миллионером". Кстати, чё-то времени нет. И ещё бы я сделал бонусы "помощь зала", "50 на 50", "звонок другу". Ну, первое и третье тупо рандомом, впрочем, как и второе. И ещё я бы перемешивал варианты ответов. А то я со своей "отличной зрительной памятью" теперь могу пройти эту игру вслепую. Таблица рекордов не работает. Или ещё нет рекордов на сервере? Кстати, сложно было сделать обратную синхронизацию, что бы свои рекорды на сервер слать? А то просто не удобно в эту тему писать, да и не факт, что кто-нибудь не соврёт. Некоторые вопросы непонятные. "Кто считается ... трололо?" (точно не помню) Сделай ответ №4 "Фиг Знает". Что ещё... Ах да, вот. Я бы сделал базу вопросов-ответов на удалённом сервере, да хотя бы на nextmail. Ну, там типа лежит файл с разными вопросами и по четыре ответа соответственно, каждый день файл обновляется новыми вопросами. И таблица на каждый день - сегодня миллионер такой-то, а завтра будет уже другой. Программа скачивает файл, перемешивает вопросы и выкидывает некоторые из них (15 штук) пользователю. Так будет в 1000 раз интереснее, а то твоей игры любому хватит на один раз, и потом подлежит удалению. Ещё не радует многочисленные ошибки. Конкретно писать не буду, сам найдёшь... Раздражает просто. И ещё, если мне не изменяет память, в этой телеигре можно было забрать текущую сумму и смыться, если не знаешь правильного ответа а несгораемая сумма слишком маленькая... Так будет лучше, а технически это не сложно. И вот, вопрос. У тебя для каждого вопроса своё окно создаётся, при чём с тупо одной картинкой? Я это понял по мельканию на этом, как его... короче, рядом с "ПУСК", типа уничтожается/создаётся окно, либо скрывается/появляется, ну, вы меня поняли. А картинка - сразу видно, что монолитная... Если ошибся на счёт картинок - извини.
Ну, может, у них задержка какая-то. ZhenekRULEZ последний раз заходил на GCUP в четверг, 28.04.2011, 19:25. Может, он забыл просто о дате выхода, проспал короче. В худшем случае - проект умер... Однако будем оптимистами. vicu2010, не надо лишний раз апать тему. Лучше написать в аську или вконтакте ZhenekRULEZу, чего он там так долго.
Добавлено (05.07.2011, 21:12) --------------------------------------------- K0DAK47, опередил меня. Только не заходит он с 28 апреля.
Слишком скучно. Я уже насмотрелся на эти игры про кубы. Кстати, сделайте грани по-чётче (чёрную рамку шире), а то не очень выглядит. (или это только на видео)
Quote (HacKeR)
Народ, Вы подкидывайте идеи. Самые интересные воплотив в игре!
У меня, вот, идея. Раз уж
Quote (cvbncv)
Некого %username% сбила машина. Теперь он лежит в коме
то может сделать что-то более "нереальное", типа во сне, например - изменение гравитации, полёт и т.п. Вот такие кубы можно сделать:
грави-куб - встал на него и очутился на потолке, точнее на противоположном от этого куба кубе, и пока на другой такой (на потолке) не встанешь, обратно "на пол" не попадёшь;
куб, на который можно встать с любой грани, даже вниз головой, но как только от него отойдёшь - гравитация восстановится, и можно упасть вниз;
отталкивающие кубы - подойти невозможно;
вращающиеся мега-кубы (раз в 6-8 больше, чтобы бегать по граням было удобнее);
маленькие кубы-пули и кубы-пчёлы (отличаются траекторией полёта), заметить довольно сложно, но столкновение с ними очень опасно;
невидимые кубы;
неосязаемые, но на первый взгляд как обычные кубы;
кубы-порталы;
кубы-тригеры - включает/отключает функции других кубов;
странные кубы - ни кто не знает, какая их роль, но обычно они выполняют функции других кубов, иногда сразу несколько функций сразу;
пугливые кубы - на вид обычный куб, а встанешь на него - пытается убежать и спрятаться;
сумасшедшие кубы - на вид обычный куб, но если встать - то прилипнешь и куб будет носиться (по-разному, даже вниз "головой") по всему доступному пространству, а потом может неожиданно сбросить, при чём ни кто не знает, где и когда он тебя сбросит;
кубы-призраки - осязаемы, но периодически исчезают (в случайные отрезки времени). И т.д. и т.п. Может ещё что-нибудь придумаю - напишу. Удачи вам в проекте.
Зачем тебе компилятор? И, компилятор, собственно, чего? Компилятор транслирует код программы с языка программирования на язык процессора или операционной системы. Компилятор тебе на фиг не нужен. Делай, как тебе советуют: копируешь готовый, заранее скомпилированный Delphi-компилятором exe, в него втыкаешь ресурсы и скрипты (которые, возможно, будут на твоём собственном скриптовом языке). Но это будет только конструктор, ага. А вот движок - обычно библиотеки на языке программирования или, что лучше, динамические библиотеки (*.dll). Движок реализует прорисовку, физику, создание и изменение объектов и т.д. Представляет он процедуры и функции, которые может использовать программист. Но ты хочешь, чтобы
Quote (Sellimius)
в моей программе делал exe файл?
Значит, ты хочешь писать конструктор. Для начала напиши движок, и только потом - конструктор. Пользователь на конструкторе формирует сцены, указывает пути к файлам-ресурсам, записывает с помощью блок-схем (тупо кнопок) или скриптового языка (который надо ещё придумать) алгоритмы взаимодействия объектов и т.п. Конструктор из всего этого формирует один целый алгоритм плюс стопку ресурсов. Затем можно всё это сложить отдельно, в папочку, а exe-файл записать стандартный. Конечно, ещё потребуются dll с самим движком, если движок не вшит в сам exe игры. Другой способ - все ресурсы и скрипты засунуть в exe, точно не знаю как, но компилировать ни чего не надо. Вот... постарался объяснить... вкратце... А вообще, ищи подробную инфу на Википедии и соответствующих порталах. Всё это давно и подробно было описано в многочисленных статьях по программированию...
У меня вопрос: в вашу "группу компаний" может войти любая независимая компания или у вас закрытая группа? Просто интересно, в смысле у меня нет компании. P.S. Я бы к вам пошёл, но, жаль, GML не знаю.
getName, ты в 15 лет знаешь 6 языков программирования, при чём три из семейства Си? Как-то не верится. Lord_F, а ты вообще в 14 знаешь Яву и Си - сложные языки. Конечно, если вы вундеркинды... Тогда уважаю. Но я сомневаюсь в этом. Только не обижайтесь, просто спрашиваю.
Как расшифровывается GDB? В первом посте этого не написано.
Сообщение отредактировал TimKruz - Вторник, 05 Июля 2011, 18:13
У меня 2.333 ГГц Intel Core 2 Duo 2.333 ГГц, и GTA IV идёт нормально. Хотя видеопамяти очень мало - 256 МБ... И файл подкачки до 3 ГБ доходит... Но на минимальных настройках прямо-таки летает, и без глюков и зависаний. Я думаю, в современных играх главное мощная видеокарта и достаточное количество видеопамяти... С мощной видеокартой процессор будет отдыхать. А вообще-то комп обновлять надо, менять старое на новое... Хотя бы раз в 4-5 лет...
Такой пример уже кто-то делал на GM (не помню ник) - там было реализовано то, что ты говоришь. Вот ссылка: http://gcup.ru/forum/36-6522-1 А вообще, сам пользуйся поиском по сайту! Тогда будет меньше вопросов.
Самое интересное здесь то, это как можно сделать что-то своё там, где уже несколько поколений людей изобретали велосипед. Что не сделаешь - всё плагиат будет. Ну ладно, спорить не буду. Посмотрим, что ответит ТС на это всё. Хотя, после того, что его уличили в таком преступлении, как плагиат, он может и не ответить.
P.S. Да, кстати, Тетрис придумал какой-то русский программист где-то в 60-х, что ли. А сейчас лицензию на идею Тетриса (создание и распространение этой игры) имеет какая-то американская компания. Так что как ни крути - тетрис делать противозаконно.
Quote
(Будь мужиком! Сделай тетрис!)
Ну вот это вообще тупизм. На это ни кто внимания не обратил?
Тетри уже морпльно усторел и улучшить его не как не возможно, разве что улучшить оригинальный проект, вставив в него тетрис.
Да ни чего подобного! Тетрис жил, тетрис живёт, тетрис будет жить. Если есть фантазия и желание, то можно сделать даже из крестиков-ноликов интересную и захватывающую игру.
Quote (IroNN)
Базовый тетрис. так сказать 0.01 версия. спрайты стандартные + перекрашены.
Что здесь в этом не понятно? Ну, может, он только начал делать. (а в раздел "готовые проекты" поместил не подумав) До версии 1.0 ещё дожить надо. Держу пари, что большинство игр на этом портале сделаны на основе готовых движков/примеров. Если ты сделал игру "с нуля", не читая уроков, не смотря примеров - молодец. Хотя сам по себе GM - конструктор, так давайте оскорблять всех, кто на нём делает игры. P.S. Если что, я ни кого не защищаю. Может, IroNN и виноват в чём-то, но нельзя же так набрасываться на человека, надо дать шанс исправиться.