Результаты поиска
| |
Akyltist | Дата: Вторник, 27 Октября 2009, 16:31 | Сообщение # 541 | Тема: Half-Life City14 |
заслуженный участник
Сейчас нет на сайте
| Quote ZombieCrew решил на сайте больше не появляться, взе из-за того, как он сказал, что ему начисляют глупые баны. Проект мине доделывать придется. ZombieCrew получил бан на 1 день, да скорее он даже не справедливый чем справедливый, просто его просьба об активации была получена в тот момент когда материал уже был активирован, и там уже имелись комментарии. Возможно это произошло из-за того что ЛС просто очень долго шло,так что возможно ZombieCrew совершенно не виноват в случившемся. Я прошу у него прощения за эту не справедливость и прошу меня извинить, уровень замечаний будет снижен, и в качестве примирения я могу только повысить его репутацию. Уважаемую администрацию проще не рассматривать это как накрутку, это мои личные извинения которые хоть как то выражены. Quote нет, нефиг спамить, активируют сами. А тебе я б дал +20 за обсуждение действий администрации Спасибо за поддержку друг мой сердечный, но я сам считаю, что я в данном случае не прав, по этому ни каких мер принимать не стоит. Удачи с проектом. Seregando передайте пожалуйста мои пожелания ZombieCrew так как я с ним не посредственной связи не имею.
|
|
| |
Akyltist | Дата: Понедельник, 26 Октября 2009, 16:31 | Сообщение # 542 | Тема: Денвер |
заслуженный участник
Сейчас нет на сайте
| Денвер представляет собой инсталятор который устанавливает на Ваш компьютер php, MySql, Perl, Python и некоторые другие программы, включая и документацию, на Ваш компьютер и предназначен для тестирования скриптов на локалхосте, благодаря специфической конфигурации производимой этим инсталятором.
|
|
| |
Akyltist | Дата: Понедельник, 26 Октября 2009, 16:02 | Сообщение # 543 | Тема: Вы заметили что сейчас мода делать движки? |
заслуженный участник
Сейчас нет на сайте
| Шикарная тема однако. Ну если кому интересно мое мнение, то я сугубо скажу, что я не знаю зачем я пишу свой двиг))) ну не знаю я, я мог бы юзать огру + ODE или ньютон. Или апокалипсис, да много чего. Я так полагаю, что написание двига для меня это не получение бесценного опыта, и даже мне не важен настолько процес самосовершенствования. Да, для высоко организованного разума даже смерть очередное приключение, но и это не важно. Наверно я пишу двиг потому, что это некий культ, темный секретный ритуал, которым пытаются овладеть очень малое количество душ, а достигает результатов еще меньше. Это как секретная технология, свой андеграунд, ты постигаешь тайны от которых иногда приходишь в ужас, замешательство, ненависть, кидаешь пару сотен проклятий,но в итоге,когда твое творение почти готово, и ты понимаешь что ты влюбился в свое творение. Вот она та чистая любовь. Любовь которой принадлежит тебе, она обволакивает твое сердце, в ней есть частица твоей души, и разум ей не противится. И тут ты понимаешь что как только ты завершишь сие творение, пока оно будет существовать, часть твоей души не умрет, и переживет тебя по эту сторону зеркала миров. И возможно если ты когда то захочешь вернуться в этот мир, и эта частичка души будет существовать, то ты сможешь это сделать. Ну а если так, то я зх для чего мне двиг, для души наверное.
|
|
| |
Akyltist | Дата: Понедельник, 26 Октября 2009, 02:41 | Сообщение # 544 | Тема: Как создать свой 3d движок? |
заслуженный участник
Сейчас нет на сайте
| 3D Rad http://gcup.ru/forum/46-1509-1 http://www.3drad.com/how-to-make-a-3d-game.htm Там в самом низу картинки это справка по компонентам, но это на английском. Как + радуга через неделю официально на русском появится. Racer http://www.racer.nl/ - официальная дока по рейсеру (англ) Создание карты в блендере для Рейсера Русскоязычное сообщество, но там не густо Ну а также gcup@conference.jabber.ru настройки тут. Не забываем изучать правила ресурса. Если вы зашли по делам, то просьба сразу говорить ник на GCUP и тему. Основной онлайн в чате с 14:00 по Мск до 22:00 по Мск
|
|
| |
Akyltist | Дата: Воскресенье, 25 Октября 2009, 21:21 | Сообщение # 545 | Тема: Как создать свой 3d движок? |
заслуженный участник
Сейчас нет на сайте
| Quote Visual C++ и просто C++ Ох молодой человек, даже не знаю как Вам сказать, так чтобы не шокировать... Ну да ладно не буду я смеяться и издеваться, со всеми по незнанию бывает. Вы запутались немножко: MS Visual Studio С++, Это среда разработки (специальная программа для разработки) обозванная Вами уважаемый как Visual C++. А с++ всего один, ну за исключением некоторых фишек для компиляторов. Я даже не стану Вас отговаривать его не учить и не пытаться в нем разобраться, это Ваше право, если у Вас душа лежит к математике и логике, и появится способность выражать это в коде то за месяца три можно достичь хороших результатов. Для создания гонок есть специальные конструкторы, как Рейсер и 3Д Рад. Оба они обладают достаточной функциональность для создания гонок качества НФС. Уровень графики будет зависеть от Ваших способностей. Удачи!
|
|
| |
Akyltist | Дата: Суббота, 24 Октября 2009, 01:02 | Сообщение # 546 | Тема: Требуется разрешение на использование Джи - Си -Апа |
заслуженный участник
Сейчас нет на сайте
| Благодарю! Щас разбираюсь с компиляцией сижу, как соберу стабильный билд, так сразу выложу в соответствующей теме. Администрации еще раз огромное человеческое спасибо!
|
|
| |
Akyltist | Дата: Пятница, 23 Октября 2009, 22:49 | Сообщение # 547 | Тема: Требуется разрешение на использование Джи - Си -Апа |
заслуженный участник
Сейчас нет на сайте
| Уважаемая Администрация! По личной инициативе я связался с разработчиками игрового конструктора 3DRad, Фернандо Занини, с разрешением создавать портированные на русский язык версии этого конструктора. Теперь прошу Вас разрешить указание как портала инициатора переводов ЖдиСиАп пользователя Akyltist. Это будет представлять собой вложенную в справке информацию представляющую собой текст: "Лицензированный перевод на русский язык совершил Akyltist специально для http://gcup.ru" Объяснением моей просьбы является то, что это мое основное место препровождение в глобальной сети как игродела, ну не считая справок и документаций. Ну и лично мне будет приятно. Разрешение на перевод и указание группы авторов перевода и размещение ссылки на их сайт имеется. Прошу снизойти до моих личных симпатий к данному порталу и позволить использование ссылки на портал. Благодарю за внимание!
|
|
| |
Akyltist | Дата: Пятница, 23 Октября 2009, 22:06 | Сообщение # 548 | Тема: Что лучше??? |
заслуженный участник
Сейчас нет на сайте
| Quote Меня, как потребителя, больше интересовал бы одинокий exe-шник: в файлах не путаешься. Ну, это если мнение потребителей вас интересует, конечно. Можно при инсталяции лить dll в System32, И проект сам будет их оттуда подгружать. В плане работоспособности зависит от того как линковать эти dll, статически или динамически, если их линковать при запуске программы, то они подгружаются еще до Энтри поинт самого exe, то есть перед инициализацией самой программы. На счет работоспособности отвечу легко и просто, dll - это обычный com объект, на них построена винда, на них заложен DX и OpenGL - инициализация com объекта занимает пару сотен тактов, так что на быстродействии это не как не скажется, по крайней мере для глаза точно)). Как заметил уважаемый (лично мной) nilrem, в плане фпс Вы ничего не заметите, ну а на счет скорости работы, она основанна только на инициализации, и все функции которые локализированны в компиляторе основаны на WinAPI функциях которые инициализируются компилятором по умолчанию и Вы этого не видите, однако взглянув в IDA или Ольге (OllyDBG) да просто в таблицу импорта EXE вы увидите там либы, которые Вы можете присягнуть самому черту, Вы никогда не подключали. Quote Меньше шансов на взлом де компилятора и больше придётся попотеть! Тут уже зависит от уровня знаний кодокопателя, можно и в либу сделать антиотладку не хуже чем в ехе)) не говоря о полиморфности и прочих приблудах, как тарить Точку входа, хучить кольцо, отлавливать VM и тд. Ну и собственно по сабжу. Quote А как на счет среднего по размеру exe и среднего количества dll ? Золотые слова. (ИМХО). Делайте оптимально и как лучше и удобнее Вам, а от обычного пользователя лишнее можно спрятать.
|
|
| |
Akyltist | Дата: Пятница, 23 Октября 2009, 21:34 | Сообщение # 549 | Тема: Нужна библиотека для работы с сетью(сетевой движок) |
заслуженный участник
Сейчас нет на сайте
| (сетевой движок) Quote Нужна либа для разработки сети...исп. Винсокс... Винсокс это итак уже либа, ее и надо юзать, а не надстройки под нее. WinSock или Windows socket - это интерфейс программного программирования (API) созданный для реализации приложений в сети на основе протокола TCP/IP. То есть это просто группа функций !!!! Для работы используется WSOCK32.DLL. Практически это интерфейс к протоколу TCP/IP. При взаимодействии клиент - сервер в сети каждого участника взаимодействия можно рассматривать как конечную точку. Сокет это вроде как и есть эта конечная точка. В приложении Вы определяете сокет. И хоть программирование сокетов в UNIX и Windows похоже, мы с Вами будем рассматривать именно Windows socket. Незнаю интересно это или нет, но Windows socket разрабатывался на основе интерфейса Беркли для UNIX, но к ним добавлены функции поддержки событий Windows. Есть две версии WinSock * WinSock 1.1 - поддержка только TCP/IP * WinSock 2.0 - Поддерка дополнительного программного обеспечения Спецификация WinSock разделяет функции на три типа: 1. Функции Беркли 2. Информационные функции (получение информации о наименовании доменов, службах, протоколах Internet) 3. Расширения Windows для функций Беркли Все функции могут быть блокирующие и неблокирующие. Обычно блокирующие это функции Беркли. То есть при работе такой функции нельзя выполнять другие функции WinSock. Давайте рассмотрим как производится подключение к серверу. Сначала программа подключается к адресу IP с созданием сокета. Программа будет ждать подключения. Для подключения программа клиент тоже создает сокет и пытается подключиться к сокету сервера. Но сервер не спит !!! Только он увидит попытку подключения он создаст новый сокет. И этот новый сокет будет использоваться для взаимодействия с клиентом. А тот, к которому была попытка подключения будет ждать следующего. На этой основе производится взаимодействие сервера и многими программами. Сам сокет может быть создан на основе: 1. TCP (transport control protocol) - надежное соединение 2. UDP (user datagram protocol) - ненадежное соединения Функции для winsocket Функция | Описание | accept | Принимает входящую попытку соединения на сокете. | AcceptEx | Принимает новое соединение, возвращает локальный и удаленный адреса, а также принимает первый блок данных, посланный клиентским приложением. | bind | Связывает локальный адрес с сокетом. | closesocket | Закрывает существующий сокет | connect | Устанавливает соединение с указанным сокетом | ConnectEx | Устанавливает соединение с указанным сокетом, и (необязательно) посылает данные, как только соединение установлено | DisconnectEx | Закрывает соединение на сокете, и позволяет снова использовать дескриптор этого сокета. | freeaddrinfo | Освобождает информацию об адресе, которая была получена динамически при помощи функции getaddrinfo. | gai_strerror | Помогает сформировать сообщения об ошибках из кодов ошибок типа EAI_*, возвращенных функцией getaddrinfo. | GetAcceptExSockaddrs | Анализирует данные, полученные функцией AcceptEx. | GetAddressByName | Запрашивает пространство имен или устанавливает пространства имен заданные по умолчанию для получения информации о сетевом адресе указанного сетевого сервиса. Этот процесс известен как Разрешение Имен Сервисов (Service Name Resolution). | getaddrinfo | Обеспечивает протоколо-независимую трансляцию имени хоста в его адрес. | gethostbyaddr | Получает информацию о хосте по сетевому адресу. | gethostbyname | Получает из базы данных хостов информацию, соответствующую имени хоста. | gethostname | Получает стандартное имя хоста для локального компьютера | getnameinfo | Обеспечивает разрешение имени из адреса в имя хоста | getpeername | Получает имя одноуровнего (peer) узла сети, с которым соединен сокет | getprotobyname | Получает информацию о протоколе по его имени. | getprotobynumber | Получает информацию о протоколе по его номеру | getservbyname | Получает информацию о сервисе по имени сервиса и протоколу | getservbyport | Получает информацию о сервисе по номеру порта и протоколу | getsockname | Получает локальное имя для сокета. | getsockopt | Получает опции сокета. | htonl | Преобразует порядок байтов u_long из формата хоста в сетевой формат TCP/IP (формат big-endian) | htons | Преобразует порядок байтов u_short из формата хоста в сетевой формат TCP/IP (формат big-endian). | inet_addrv | Преобразует строку, содержащую десятично-точечный адрес протокола Internet (IPv4) в надлежащий адрес для структуры in_addr. | inet_ntoa | Преобразует адрес Internet (IPv4) из сетевого формата в строку, содержащую стандартный десятично-точечный адрес | ioctlsocket | Управляет режимом ввода-вывода сокета | listen | Переводит сокет в состояние ожидания входящих соединений | ntohl | Преобразует порядок байтов u_long из сетевого формата TCP/IP в формат хоста (формат little-endian на процессорах Intel). | ntohs | Преобразует порядок байтов u_short из сетевого формата TCP/IP в формат хоста (формат little-endian на процессорах Intel). | recv | Получает данные от присоединенного или связанного сокета | recvfrom | Получает датаграмму и сохраняет адрес источника | select | Определяет статус одного или нескольких сокетов, ожидая в случае необходимости исполнения синхронного ввода-вывода. | send | Посылает данные на соединенный сокет | sendto | Посылает данные определенному адресату | setsockopt | Устанавливает опции сокета. | shutdown | Запрещает прием или передачу на сокете | socket | Создает сокет и связывает его с определенным сервисом | TransmitFile | Передает данные файла через соединенный сокет. | TransmitPackets | Передает данные из памяти или данные файла через соединенный сокет | WSAAccept | Принимает соединение, основываясь на возвращаемом значении функции условия, обеспечивает качество обслуживания (QoS) спецификаций процесса и разрешает передачу данных соединения. | WSAAddressToString | Преобразует все компоненты структуры SOCKADDR в понятное для человека строковое представление адреса. | WSAAsyncGetHostByAddr | Асинхронно получает информацию о хосте по его адресу | WSAAsyncGetHostByName | Асинхронно получает информацию о хосте по его имени | WSAAsyncGetProtoByName | Асинхронно получает информацию о протоколе по его имени | WSAAsyncGetProtoByNumber | Асинхронно получает информацию о протоколе по его номеру | WSAAsyncGetServByName | Асинхронно получает информацию о сервисе по его имени и номеру порта. | WSAAsyncGetServByPort | Асинхронно получает информацию о сервисе по номеру порта и протоколу. | WSAAsyncSelect | Назначает сообщение, которое будет посылаться оконной процедуре в том случае, когда на сокете произойдет какое-либо событие. | WSACancelAsyncRequest | Отменяет незавершенную асинхронную операцию | WSACleanup | Завершает использование Ws2_32.dll. | WSACloseEvent | Закрывает открытый дескриптор объекта события | WSAConnect | Устанавливает соединение с сокетом другого приложения, обменивается данными соединения и определяет необходимое качество обслуживания (QoS), основываясь на указанной структуре FLOWSPEC | WSACreateEvent | Создает новый событийный объект | WSADuplicateSocket | Возвращает структуру, которая может использоваться для создания нового дескриптора общедоступного сокета (сокет может использоваться несколькими процессами). | WSAEnumNameSpaceProviders | Возвращает информацию о доступных пространствах имен | WSAEnumNetworkEvents | Обнаруживает сетевые события для обозначенного сокета, очищает внутренние записи сетевых событий и сбрасывает событийные объекты (необязательно). | WSAEnumProtocols | Получает информацию о доступных транспортных протоколах | WSAEventSelect | Определяет событийный объект, который будет связан с указанным набором FD_XXX сетевых событий. | WSAGetLastError | Возвращает статус ошибки для последней операции, которая завершилась неудачно. | WSAGetOverlappedResult | Получает результаты перекрытой (совместной) операции на указанном сокете. | WSAGetQOSByName | Инициализирует структуру QOS, основываясь на названном шаблоне, или предоставляет буфер для получения доступных имен шаблонов. | WSAGetServiceClassInfo | Получает информацию о классе (схему), имеющую отношение к указанному классу сервиса, от заданного поставщика пространства имен (name space provider). | WSAGetServiceClassNameByClassId | Получает название сервиса, связанного с указанным типом. | WSAHtonl | Преобразует порядок байтов u_long из формата хоста в сетевой формат | WSAHtons | Преобразует порядок байтов u_short из формата хоста в сетевой формат | WSAInstallServiceClass | Регистрирует схему класса сервиса в пространстве имен. | WSAIoctl | Управляет режимом сокета. | WSAJoinLeaf | Присоединяется к узлу многоточечной сессии, обменивается данными соединения и определяет необходимое качество обслуживания (QoS), основываясь на указанных структурах. | WSALookupServiceBegin | Инициализирует клиентский запрос, основываясь на критериях, содержащихся в структуре WSAQUERYSET. | WSALookupServiceEnd | Освобождает дескриптор, использовавшийся предыдущими вызовами WSALookupServiceBegin и WSALookupServiceNext. | WSALookupServiceNext | Получает информацию о требуемом сервисе. | WSANSPIoctl | Разработан для создания запросов к зарегистрированному пространству имен, управляющих вводом-выводом. | WSANtohl | Преобразует порядок байтов u_long из сетевого формата в формата хоста. | WSANtohs | Преобразует порядок байтов u_short из сетевого формата в формата хоста. | WSAProviderConfigChange | Уведомляет приложение о смене конфигурации поставщика. | WSARecv | Получает данные от соединенного сокета. | WSARecvDisconnect | Завершает прием на сокете и получает данные разъединения, если сокет является ориентированным на соединение | WSARecvEx | Получает данные от соединенного сокета. | WSARecvFrom | Получает датаграмму и сохраняет адрес источника. | WSARecvMsg | Получает данные и дополнительную управляющую информацию от соединенных и несоединенных сокетов. | WSARemoveServiceClass | Удаляет схему класса сервиса из системного реестра. | WSAResetEvent | Сбрасывает состояние указанного событийного объекта в несигнальное. | WSASend | Посылает данные на соединенный сокет. | WSASendDisconnect | Инициализирует завершение соединения на сокете и посылает данные разъединения. | WSASendTo | Посылает данные определенному адресату, используя перекрываемый ввод-вывод где это возможно. | WSASetEvent | Устанавливает состояние указанного событийного объекта в сигнальное | WSASetLastError | Устанавливает код ошибки. | WSASetService | Регистрирует или удаляет из системного реестра экземпляр сервиса в пределах одного или нескольких пространств имен | WSASocket | Создает сокет, связанный с определенным поставщиком транспортных услуг (transport-service provider). | WSAStartup | Инициализирует использование Ws2_32.dll процессом. | WSAStringToAddress | Преобразует числовую строку в структуру SOCKADDR. | WSAWaitForMultipleEvents | Возвращает значение в том случае, когда один или все указанные событийные объекты находятся в сигнальном состоянии, или когда истекает интервал ожидания (тайм-аут). | http://club.shelek.ru/viewart.php?id=35 http://www.firststeps.ru/mfc/net/socket/r.php?1 Самоучитель игры на WinSock Со знанием Си, Asm, Delphi и др ЯП реализация сокетов милое дело. Есть проблемы с ними конечно как выход за NAT, Отлов ошибок и событий, их блокирование. Потоковая обработка. Но ни одна надстройка не решает этих моментов ибо незачем, так как сами сокеты уже это содаржат. Единственные надстройками над сокетами которые я по своему личному мнению приветствую - это реализация протоколов.
|
|
| |
Akyltist | Дата: Понедельник, 19 Октября 2009, 19:24 | Сообщение # 550 | Тема: Играем в желания |
заслуженный участник
Сейчас нет на сайте
| Хочу винни пуха в женском платье
|
|
| |
Akyltist | Дата: Понедельник, 19 Октября 2009, 10:49 | Сообщение # 551 | Тема: Играем в желания |
заслуженный участник
Сейчас нет на сайте
| Хочу симпатичную эмочку...
|
|
| |
Akyltist | Дата: Суббота, 26 Сентября 2009, 10:57 | Сообщение # 552 | Тема: Правила оформления тем в разделе " Проекты в разработке" |
заслуженный участник
Сейчас нет на сайте
| Темы, которые будут не подобающе оформлены, будут взяты на заметку, а их владельцам сделаны замечания, в виде устного предупреждения или 20% карточки. Также при создании тем по данным правилам Помните: Ни кто не отменял главные правила сайта и форума, которые обязательны к соблюдению, а также правовые и этические нормы. Удачи Вам во всех начинаниях! ОБЯЗАТЕЛЬНОЕ УСЛОВИЕ РАЗДЕЛА
Описание игры обязательно должно сопровождаться минимум 3 скриншотами игрового процесса, и/или видеороликом из игры.
Скетчи, модели, скрины меню и иные подобные изображения таковыми не являются. Только скриншоты геймплея. Видео также должно явно давать понять, что проект действительно находится в разработке. Если таковых у вас нет, значит вам дорога в раздел "Идеи для реализации"
За несоблюдение этого условия минимальное наказание - минус к репутации.
Добавлено 28.07.2010 1. Правильный заголовок темы.
Заголовок темы должен содержать в себе как минимум название вашего проекта, для придания уникальности Вашей темы. Также можно делать приписку в виде [3D] или [2D] или [2.5D] в самом заголовке на первой позиции или таким же образом указывать жанр, но на последней.
Неправильно: Мой новый проект, присоединяйтесь! Давайте творить уникальное вместе!
Правильно: [3D] - SharinganStory - [FPS] [2D] - Дульсинея в Африке SharinganStory Дульсинея в Африке - [Логическая] 2. Что писать в первый топик темы.
В первое сообщение нужно вписать информацию, полностью раскрывающую суть вашего проекта. Если не можете явно изложить суть проекта то придерживайтесь просто принципиальной схемки изложенной ниже. Помните, это всего лишь схема, часть некоторых пунктов при создании Вы можете опустить, часть добавить. А можете создать тему самостоятельно, если Вы в силах нормально это сделать, и серьезно к этому подойти.
(в скобках для примера показаны некоторые возможные варианты)
Жанр игры: (RPG, FPS, TPS, TDS, Пошаговая стратегия, Лётный симулятор, Аркадная гонка, логическая и т.д.) На каком движке/конструкторе: (Движок, Игровой движок, Графический движок, Физический движок, Конструктор игр и т.д.) В каком пространстве: (2D, 3D, 2D+3D) Какой вид в игре: (сверху, от первого лица, от третьего лица, сбоку и т.д.) Какие есть похожие игры: (WOW, L2, R2, GAT 1-2, GTA3, Heroes, NFS, WarCraft, Gothic 1-2, TES, Onimusha, Dune 2 и т.д.) Какой Язык Пр. используется в игре: (C++, Basic, Delphi, Java, LUA, GML, Phyton, PHP и т.д.) Для какой платформы: (ОС, компьютера, консоли, ,браузерка)? (Windows, Linux, Mac OSX, Web, PSP, PS3, X-Box 360, PSX, NDS, GBA и т.д.) Предоставление исходного кода игры: (Open Source, За деньги, Не требуется, Без разницы) API: (Direct3D, OpenGL, Pixomatic) Какой тип лицензии распространения: (LGPL, GNU GPL, Freeware и т.д.) или (Комерческая - Не комерческая) Сроки разработки: когда работа началась и когда планируется окончание. Состав имеющейся команды: Координатор, Flash-программист, Flash-дизайнер, Флеш-дизайнер, Banner maker, Flash-аниматор, HTML-верстальщик, HTML-кодировщик, XSL-верстальщик, 2D дизайнер, 3D дизайнер, 2D/3D дизайнер, WAP-верстальщик, Гейм дизайнер, Моделер, Аниматор, Текстурщик, Визуализатор, Web-дизайнер, Web-мастер, Веб-дизайнер, Веб-разработчик, Администратор сайта, Модератор, Контент-менеджер, Технический писатель, Веб-программист, PHP-программист, Web-программист, NET программист, Директор по IT, Руководитель IT отдела, Начальник ИТ отдела, Руководитель интернет-проекта, Менеджер интернет-проекта, ИТ-менеджер, IT-специалист, Специалист ИТ-отдела, Менеджер IT-проекта, Программист, Инженер-программист, Разработчик ПО, Программист разработчик, Системный администратор, Сетевой администратор, Администратор БД, Специалист по техподдержке, Сервис-инженер, Тестер, IT-аналитик, Системный аналитик Инженер по качеству ПО, Менеджер по продаже ПО. и тд. и тп. 3. Сюжет/Анонс: Если Вы Создаете игру, то эта часть обязательна. К ее оформлению Вы можете подойти творчески и написать маленькую предысторию, а можете перечислить все ключевые моменты, однако не увлекайтесь не теряйте последовательность изложения. После написания обязательно перепрочитайте, поймите не все другие люди телепаты, и если Ваш мозг воспринимает это как последовательные мысли и изложение, то для другого это может быть не понятно, так как Вы не раскрыли всех истин, а ключевые моменты раскрывать необходимо. 4. Кто требуется в команду: (Необходимо перечислить список доступных вакансий, и желательно указать фронт работы) Координатор, Flash-программист, Flash-дизайнер, Флеш-дизайнер, Banner maker, Flash-аниматор, HTML-верстальщик, HTML-кодировщик, XSL-верстальщик, 2D дизайнер, 3D дизайнер, 2D/3D дизайнер, WAP-верстальщик, Гейм дизайнер, Моделер, Аниматор, Текстурщик, Визуализатор, Web-дизайнер, Web-мастер, Веб-дизайнер, Веб-разработчик, Администратор сайта, Модератор, Контент-менеджер, Технический писатель, Веб-программист, PHP-программист, Web-программист, NET программист, Директор по IT, Руководитель IT отдела, Начальник ИТ отдела, Руководитель интернет-проекта, Менеджер интернет-проекта, ИТ-менеджер, IT-специалист, Специалист ИТ-отдела, Менеджер IT-проекта, Программист, Инженер-программист, Разработчик ПО, Программист разработчик, Системный администратор, Сетевой администратор, Администратор БД, Специалист по техподдержке, Сервис-инженер, Тестер, IT-аналитик, Системный аналитик Инженер по качеству ПО, Менеджер по продаже ПО. и тд. и тп. 5. Модераторам Данные правила и советы могут изменяться без предупреждения со стороны администрации или модераторов форума, однако не знание изменений не станет оправданием от устного замечания. Устное замечание на тему накладывается администраторами/модераторами на 24 часа, по истечении которых, если автор не соизволил переоформить тему, его награждают 20% замечание, а тема закрывается и уходит в небытие. Для Модераторов сделавших замечание желательно (но не обязательно) отправлять ЛС нарушителю с указанием темы где это произошло. Помните, что есть опция автоматического оповещения!.
|
|
| |
Akyltist | Дата: Четверг, 24 Сентября 2009, 19:57 | Сообщение # 553 | Тема: Юмор игроделов! |
заслуженный участник
Сейчас нет на сайте
| вместо нее надпись visual studio, правда как то она майонезом замазалась
|
|
| |
Akyltist | Дата: Четверг, 24 Сентября 2009, 19:33 | Сообщение # 554 | Тема: Юмор игроделов! |
заслуженный участник
Сейчас нет на сайте
| Мне надоела Visual Studuo и я ее съел! http://akyltist.ucoz.com/DSC00091.JPG
|
|
| |
Akyltist | Дата: Среда, 23 Сентября 2009, 21:26 | Сообщение # 555 | Тема: Куча вопросов по 3d rad |
заслуженный участник
Сейчас нет на сайте
| Neia, честно говоря пока не до радуги, это лично мне я имею ввиду, щас переезжаю на новую квартиру, а там еще и инета пока нету((( без сети неделю сидеть придется. Но могу сообщить новости. Я написал письмо разработчикам Радуге о разрешении кустарно перевести его на русский язык. Я думаю они не откажут, так что вполне возможно что радуга станет доступна на русском языке с официального разрешения. Так же советую посмотреть тут на ДжиСиАпе в разделе утилиты, были оптимизаторы.
|
|
| |
Akyltist | Дата: Вторник, 22 Сентября 2009, 08:03 | Сообщение # 556 | Тема: Тестируем игры на нетбуке Acer Aspire One 531 |
заслуженный участник
Сейчас нет на сайте
| Quote , иначе FPS выше 15 не поднимится; а при чем тут 2 гига оперативы, если шлейф нагружен на полную у видио карты - то оператива не спасет. HoMM IV идут - на 32 Мб видиокарте и 128 Мб оперативы с выдачей 53-55 Fps на Атлоне 2.0 , так что это ограничение шины, а как основа для видиокарты не так важен буфер, как важна скорость расчета, чипы в современных видиокартах считаю в несколько раз быстрее процессоров. У Нвидии есть технологи называется Cuda. Технология NVIDIA CUDA - это фундаментально новая архитектура вычислений на GPU, предназначенная для решения комплекса вычислительных задач потребителей, бизнеса и технической индустрии. Технология CUDA (compute unified device architecture - вычисления на унифицированной аппаратной архитектуре) предоставляет приложениям, активно работающим с данными, доступ к потрясающим процессинговым мощностям графических процессоров NVIDIA через революционную вычислительную архитектуру, связанную с новыми возможностями. Графические процессоры NVIDIA с технологией CUDA имеют параллельные кэши данных, которых сохраняют часто используемую информацию прямо в GPU. Хранение информации в GPU позволяет исполнять потоки, использующие общую информацию, во много раз быстрее, чем если бы она запрашивалась из системной памяти. Эта прогрессивная технология даёт возможность пользователям решать вычислительные задачи в режиме реального времени. Так что доводы про 2 G оперативной памяти не сочтите за наглость но беспочвенны, FPS от этого не подымится, так как Шина уже нагруженна на максимум.
|
|
| |
Akyltist | Дата: Понедельник, 21 Сентября 2009, 20:45 | Сообщение # 557 | Тема: РАДИАЦИЯ |
заслуженный участник
Сейчас нет на сайте
| скачал демо, все мерцает, срочно меняйте двиг. Это не дело. Иногда рабочий стол аж просвечивается. Найдите что нибудь получше.
|
|
| |
Akyltist | Дата: Понедельник, 21 Сентября 2009, 17:16 | Сообщение # 558 | Тема: Куча вопросов по 3d rad |
заслуженный участник
Сейчас нет на сайте
| Quote Хотел в качестве земли использовать высокополигональную модель города он страдает таким недостатком, попробуйте снизить количество полигонов спец утилитами, если не поможет то придется город облегчать.
|
|
| |
Akyltist | Дата: Понедельник, 21 Сентября 2009, 15:42 | Сообщение # 559 | Тема: Onigeine |
заслуженный участник
Сейчас нет на сайте
| poseparameter самого объекта или костей? скинь код где ты с ним работаешь, так быстрее дойдет что тебе точно нужно.
|
|
| |
Akyltist | Дата: Понедельник, 21 Сентября 2009, 15:18 | Сообщение # 560 | Тема: Onigeine |
заслуженный участник
Сейчас нет на сайте
| Для HalfLife2 используют тот-же формат что и для первой (за исключением весов для вершин) Если тебе нужно SMD получать их MDL и далее с ними работать, то зачем тащить mdl, конверти их на стадии разработки, декомпилер mdl > smd есть по ссылке выше, если нужен то сделаем чтобы со второй халфы декомпилил в smd. Хотя и тот что выше должен подойти для этих целей. А уже с полученным смд работай сам. Если как промежуточный то просто лоди SMD пример ниже и работай как хочешь. Пример кода по загрузки *.SMD Code typedef float vec3f[3]; typedef float vec2f[2]; typedef unsigned short word; #define Dword unsigned long typedef Dword vec3l[3];
class Tmesh{ public:
Dword mv; // количество вершин (Vertex) vec3f *v; // сами вершины vec2f *t; // текстурные координаты byte *mbi; // количество костей на вершину int **bi; // индексы костией привязанных к вершине float **sbi; // веса костей
Dword mf; // количестко треугольников (Faces) vec3l *f; // массив индексов треугольников int *ti; // индекс текстуры треугольника
byte mb; // количество костей во всей модели vec3f *bv,*ba; // bv-положение кости ba-ориетнация кости int *p; // индекс родителя кости
word mtx; // количество текстур int *tnl,*txi; // tnl-длинна имени текстуры txi-индекс текстуры в видео памяти (glGenTex(1,&txi[i])) char **txn; // имя текстуры .... };
typedef struct{ word max_tkf,max_rkf; // количество фреймов поворотов и смещений vec3f *rot,*pos; // поворот и смещение float *Ttime,*Rtime; // номер фрейма void init(){ max_tkf=max_rkf=0; rot=pos=NULL; Ttime=Rtime=NULL; }; }TMAFrame;
class Tanim{ public: Dword max_b,max_fr; // количество костей и фреймов анимации TMAFrame *fr; // массив фреймов void Initfr(){ for(int i=0;i<mb;i++){fr[i].init();}; }; };
bool Load_HL12SMD(char *name,Tmesh *m,Tanim *a){ // для работы с файлами подключить #include <stdio.h> FILE *in=fopen(name,"rb"); if(in==NULL){ALERT("HL12SMD::can't load (%s)",name);return 0;}; char buf[4096]; char bname[1024]; int parent; Dword mf=0,mv=0,i,j,k; byte mb=0; float tf; int ti;
//сперва определим количества (вершин костей ...и тд) и выделим память while(fgets(buf,4095,in)){
// считаем кости if(strcmp(buf,"nodes")){while(fgets(buf,4095,in)){ if(strcmp(buf,"end")){ m->mb=mb; m->bv=new vec3f[mb]; m->ba=new vec3f[mb]; m->p=new int[mb]; a->max_b=mb; a->fr=new TMAFrame[mb];a->Initfr(); break; }; mb++; };};
// считаем треугольники if(strcmp(buf,"triangles")){while(fgets(buf,4095,in)){ if(strcmp(buf,"end")){ m->mv=mv; m->v=new vec3f[mv]; m->t=new vec2f[mv]; m->ti=new int[mv]; if(mb>0){ m->mbi=new byte[mv]; m->bi=new int*[mv]; m->sbi=new float*[mv]; }; m->mf=mf; m->f=new vec3l[mf]; break; };
// покачто не нужная информация - пропускаем fgets(buf,4095,in);fgets(buf,4095,in);fgets(buf,4095,in); mf++; mv+=3; };}; };
// сбрасываем позицию чтения файла на начало rewind(in);
// заполняем массивы while(fgets(buf,4095,in)){ //читаем имена и индксы костей (я не сохраняю имена) if(strcmp(buf,"nodes")){ for(i=0;i<mb;i++){ fgets(buf,4095,in); sscanf(buf,"%d \"%[^\"]\" %d",&ti,bname,&parent); m->p[i]=parent; }; };
// читаем сами кости if(strcmp(buf,"skeleton")){ fgets(buf,4095,in);//time 0 for(i=0;i<mb;i++){fgets(buf,4095,in); sscanf(buf,"%d %f %f %f %f %f %f",&ti,&m->bv[i][0],&m->bv[i][1],&m->bv[i][2], &m->ba[i][0],&m->ba[i][1],&m->ba[i][2]); };
// чтение анимации //(!)важно(!) анимация уже перемножена с начальным положением костей char cmd[10]; Dword fcnt=0; a->max_fr=0; bool animFound=false; while(fgets(buf,4095,in)){ sscanf(buf,"%s %d",cmd,&k); if(strcmp(cmd,"end")){if(!animFound){a->max_b=0;};break;}; if(strcmp(cmd,"time")){animFound=true; a->max_fr++; for(i=0;i<mb;i++){fgets(buf,4095,in); a->fr[i].max_tkf++; a->fr[i].pos=(vec3f*)realloc(a->fr[i].pos,sizeof(vec3f)*a->fr[i].max_tkf); a->fr[i].Ttime=(float*)realloc(a->fr[i].Ttime,sizeof(float)*a->fr[i].max_tkf); a->fr[i].max_rkf++; a->fr[i].rot=(vec3f*)realloc(a->fr[i].rot,sizeof(vec3f)*a->fr[i].max_rkf); a->fr[i].Rtime=(float*)realloc(a->fr[i].Rtime,sizeof(float)*a->fr[i].max_rkf); fcnt=a->fr[i].max_tkf-1; a->fr[i].Ttime[fcnt]=(float)k; a->fr[i].Rtime[fcnt]=(float)k; sscanf(buf,"%d %f %f %f %f %f %f",&ti,&a->fr[i].pos[fcnt][0],&a->fr[i].pos[fcnt][1],&a->fr[i].pos[fcnt][2], &a->fr[i].rot[fcnt][0],&a->fr[i].rot[fcnt][1],&a->fr[i].rot[fcnt][2]); }; }; }; };
//читаем треугольники if(strcmp(buf,"triangles")){ int nb,bi[5]; Dword cnt=0,index; float bw[5]; vec3f RV; vec2f RT; for(i=0;i<mf;i++){ // сперва идёт имя текстуры memset(buf,'\0',4095);fgets(buf,4095,in); if(buf[0]=='\0'){m->ti[i]=0;}else{ long num=-1; buf[strlen(buf)-1]='\0';buf[strlen(buf)-1]='\0';//'\n\t' for(j=0;j<m->mtx;j++){if(!strcmp(m->txn[j],buf))continue;num=j;break;}; if(num==-1){m->ti[i]=m->mtx; m->mtx++; m->tnl=(int*)realloc(m->tnl,sizeof(int)*m->mtx);m->tnl[m->mtx-1]=strlen(buf)+1; m->txi=(int*)realloc(m->txi,sizeof(int)*m->mtx);m->txi[m->mtx-1]=num; m->txn=(char**)realloc(m->txn,sizeof(char*)*m->mtx); m->txn[m->mtx-1]=new char[m->tnl[m->mtx-1]]; memcpy(m->txn[m->mtx-1],buf,sizeof(char)*m->tnl[m->mtx-1]); m->txn[m->mtx-1][m->tnl[m->mtx-1]]='\0'; }else{m->ti[i]=num;}; };
//после имени текстуры следуют 3 вершины (со всеми свойствами) for(j=0;j<3;j++){fgets(buf,4095,in); nb=0;
// читаем // %d - индекс кости (если привязано к вершине всего одна кость) // %f %f %f - вершина // %f %f %f - нормаль (я не сохраняю) // %f %f - текстурные координаты // %d - количество привязанных костей // %d %f ....... - индекс кости и её вес (weight) // вроде больше чем 5 костей на вершину не встречал int numRead=sscanf(buf,"%d %f %f %f %f %f %f %f %f %d %d %f %d %f %d %f %d %f",&ti, &RV[0],&RV[1],&RV[2],&tf,&tf,&tf,&RT[0],&RT[1], &nb,&bi[0],&bw[0],&bi[1],&bw[1],&bi[2],&bw[2],&bi[3],&bw[3],&bi[4],&bw[4]); RT[1]=RT[1]+1.0f; if(nb==0){nb=1;bi[0]=ti;bw[0]=1.0;};
// проверка: дублирование вершины (если да то запоминаем индекс) //-------------find face index index=cnt; for(k=0;k<cnt;k++){ if(m->v[k][0]==RV[0] && m->v[k][1]==RV[1] && m->v[k][2]==RV[2] && m->t[k][0]==RT[0] && m->t[k][1]==RT[1]){ index=k;break; }; }; m->f[i][j]=index; if(index==cnt){ COPY(m->v[index],RV); COPY2(m->t[index],RT); //-------------------bones if(mb>0){ m->mbi[index]=nb; m->bi[index]=new int[nb]; m->sbi[index]=new float[nb]; for(k=0;k<(Dword)nb;k++){ m->bi[index][k]=bi[k]; m->sbi[index][k]=bw[k]; }; }; //-----------------end bones cnt++; }; //------------end find index }; // меняем порядок обхода вершин k=m->f[i][0];m->f[i][0]=m->f[i][2];m->f[i][2]=k; }; m->mv=cnt; }; }; fclose(in); return true; };
// ниже функции используемые в загрузке void ALERT(const char *messag, ...){ char text[1024]; va_list ap; va_start(ap,messag); vsprintf(text,messag,ap); va_end(ap); MessageBox(NULL,text,"ALERT",MB_SETFOREGROUND); };
#define COPY(dest,v1)dest[0]=v1[0];dest[1]=v1[1];dest[2]=v1[2]; #define COPY2(v1,v2)v1[0]=v2[0];v1[1]=v2[1]; По секрету, я свой код стащил из огры.))
|
|
| |
|