Ну тут главное что тебе по душе! Любишь программировать, хочешь сделать 3д экшн, с отличной графикой, не коммерческий- твоя дорога UDK (ИМХО). Но многие будут спорить. Хочешь сделать 2д аркаду- включай GameMaker или Конструкт (ИМХО). Но опять, многие будут спорить. Так что , что бы не запутаться прислушивайтесь к своему сердцу ( то есть , что больше тебе самому понравиться , а не кому то) (ИМХО). А тут никто спорить не будет! ConsMark - поисковик по интернет магазинам.
Вот нашёл 25 уроков по созданию игры на UDK.Качество не очень, а так сойдёт.Ссылка Если вы заметили, то список с видео появится в колонке справа.Все уроки на русском языке!
Также знаю ещё один хороший портал по видео урокам, это:Ссылка
Я так понял: Unreal Engine - это платный, и даже очень дорогой, популярный движок. А Unreal Development Kit - это бесплатная,урезанная,не комерчиская версия Unreal Engine. Я правильно понял?
Он работал в банке на Таганке, У него был сейф и дырокол, И портрет жены на фото в рамке Украшал его рабочий стол.
Был он честен по российским меркам, Не имел ни денег, ни врагов... Вот таким вот неприметным клерком Шел по жизни Митя Му_аков.
Но в одно прекрасное мгновенье, Будто бы во сне или в бреду В лифте с Председателем Правления Он столкнулся на свою беду.
И в раздумьях, видимо, о вечном, Посмотрев на Митю, как отец, Тот сказал, обняв его за плечи: Знаешь, Митя, нам пришел п....ц
На прощанье, улыбнувшись криво, Заглянув за грань добра и зла, Он ушел, а с ним ушли активы И зарплата Митина ушла...
Жило-было Детище у Папищи и Мамищи, и было это Детище великое лентяище, великое балбесище. И захотела Мамища, а вместе с нею Папища, отдать Его Величище в какую-нибудь школищу, а может, и в училище. Но Детище-балбесище не хочет грызть гранитище, и потому-то Детище померло от безумища.
Собачке как-то Бог послал кусочек мяса, - На ель бедняжка взгромоздясь (Чего не делала доселе отродясь - Да вот река конкретно разлилась), позавтракать совсем уж собралась, Да призадумалась... А мяса кус во рту держала...
На ту беду с Мазаем рядом лодка проплывала. Мазай увидел кус, - Мазая "понесло": Он, поудобнее перехватив весло, Без всплесков - тихо к песику подходит, Вертит веслом, И с мяса глаз не сводит... Прицелился он тихо - чуть дыша... И как веслом ударит по ушам!
Собака взвизгнула во все собачье горло, Пошла ко дну, из раны кровь поперла...
Мазай с тех пор же потерял покой! - Собака ночью выла под луной - Погромче Баскервиллей был тот вой! А то к Мазаю шастала домой, Он поседел, замкнулся, стал немой - И чтоб не сильно мучицца виной - Спасать он зайцев стал от наводнения весной... Но по ночам, не зная почему Топил собак, мыча загадочно: "Му-му"...
Тургеньев услыхав все приукрасил - В его рассказе появляется Герасим... А Толкиен забил последний кол - Мазай в его рассказах - Смеагорл...
А мы, всей правды ранее не зная, В героя превратили Дед Мазая!
Кто-нибудь может провести границу между этими движками.Вот про Unreal Engine очень много слышал в комерции( каждая 3 игра на нём сделана). А Unreal Development Kit впервые здесь увидел.Вроде очень похожи. ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Воскресенье, 09 Мая 2010, 21:52
Здравствуйте! Продолжим изучение Blitz 3D. В этом уроке я научу вас создавать простейший искусственный интеллект.
Искусственный интеллект это не ум, а обыкновенный команды, которые будет выполнять персонаж.
dist# = EntityDistance ( bot, cub )
If dist > 2 - вычисляет расстояние между двумя объектами.
TurnEntity bot,0,Sgn(DeltaYaw(bot,cub))*0.9,0 – команда вращает объект в сторону другого объекта по оси Y. Где у нас *0.9,0 это скорость вращения.
MoveEntity bot,0,0,0.03 – двигает бота со скорости 0.3 вперёд (можно изменить).
If EntityCollided (bot,Typestolb) –столкновение бота с колонной.
TurnEntity bot,0,5,0 – бот поворачивает на право.
EndIf– конец цикла
Это мы сделали самый простой способ искусственного интеллекта. Если вы уже проделали всё о чём я писал в 1 уроке, то у вас должна получиться такая игра:
Code
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Const TypeCub=1,TypeStolb=2
lit=CreateLight()
cub=CreateCube()
EntityColor cub,0,255,0
EntityType cub,TypeCub
cam=CreateCamera(cub)
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
EntityType stolb,TypeStolb
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
EntityType stolb2,TypeStolb
EntityRadius cub,2
bot=CreateCube()
ScaleEntity bot,1,0.5,2
bot1=CreateCube(bot)
ScaleEntity bot1,0.7,0.8,0.3
PositionEntity bot1,0,1.5,0.4
EntityType bot,TypeCub
EntityRadius bot,2
plan=CreatePlane()
EntityColor plan,0,0,255
PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5
Collisions TypeCub,TypeStolb,2,3
Collisions TypeCub,Typecub,2,3
Repeat
dist# = EntityDistance ( bot, cub )
If dist > 2
TurnEntity bot,0,Sgn(DeltaYaw(bot,cub))*0.9,0
MoveEntity bot,0,0,0.03
EndIf
If EntityCollided (bot,Typestolb)
TurnEntity bot,0,5,0
EndIf
If KeyDown(200) MoveEntity cub,0,0,.1
If KeyDown(208) MoveEntity cub,0,0,-.1
If KeyDown(203) TurnEntity cub,0,1,0
If KeyDown(205) TurnEntity cub,0,-1,0
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Появление Здоровья. Во многих играх здоровье(жизни) очень важная деталь.
zdorov=100 – это переменная. Пишем любое имя, в данный момент у нас Zdorov и вписываем, сколько должно быть здоровья, у нас 100.
Global fntArial – Глобальная переменная
fntArial=LoadFont("Arial Cry",24,False,False,False) – Это команда изменяет текст: “Arial Cry” это шрифт текста, где 24 это размер шрифта, где False если изменить на True, первая будет жирный цвет, вторая курсивом, третья подчёркнутый текст.
И так теперь нам нужно вывести на экран сколько у нас здоровья
Text 280,47,"Health="+zdorov – Выводим на экран текст, где цифры это место положение текста, в кавычках это слово или фраза которая будет показана на экране, в данный момент у нас сейчас слово Health- переводится как здоровье. Где +zdorov, это наша переменная, которая будет показывать сколько в данный момент сейчас здоровья.
If EntityCollided (cub,Typecub) zdorov=zdorov-1 – проверяем на столкновение куба с ботом, если столкновение происходит то отнимает один процент здоровья zdorov=zdorov-1 И так, если здоровье достигает меньше нуля то отщёт идёт на минус но нам это не надо то мы делаем так:
If zorov=zdorov<1 – если здоровье меньше одного
Else - то
End – закрываем программу, выход.
EndIf
Как вы догадались можно не только так использовать здоровье но и кол-во брони кол-во патронов и т.д
Теперь вы знаете, что создание игр на Blitz 3D –это не очень сложно, главное понимать, что и зачем делаешь. Если будет время, напишу ещё уроки.
А почему автор сам не может решить даж первое задание...!?
Да я их даже и не пробовал решать . Просто ленивый друг попросил.Я вобще в алгебре абсолютный слабак. Мне такого не прислали. Лёгкое или сложное не знаю , он не решил и меня попросил найти кто сможет. А раз говорите легкотня , то странно... он вроде по алгебре и физике шарит, раз его в институт зовут и задание уже для подготовки присылают. ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Суббота, 08 Мая 2010, 20:59
Это из МФТИ. Если вы не знаете что это , то скажу. Эти задание нам присылают из института, чтобы мы решали, а они повышенной сложности! Это самые трудные. ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Суббота, 08 Мая 2010, 20:39
Игра разработана на RGM. Она является последней в трилогии В трилогию входят: Den of the Enemy Den of the Enemy-The tenth floor Den of the Enemy- Великая Отечественная Война Описание: 9 мая - это день, которым гордиться страна. Это великая дата победы. Победы над сильным противником! Эта игра посвящается всем, кто воевал за родину! СКАЧАТЬ Версия 1.02
Пожалуйста, помогите решить несколько заданий. С меня репа. 1) Решите уравнения: а) |x2-6x+5|=3 b) |5(x2-6x+8)|=|x2-6x+5|
2) При каком значении параметра а, уравнение x2-a\x-5=0 единственный корень.
3) Решите уравнение при всех допустимых значениях параметра а: а) (3а+5)x=3a2+2a-5 b) (a+1) x2+ (2a-1) x+a-5=0
4) Докажите, что уравнение (x2-10x+30)(x2-4x+6)=7 не имеет решений.
5)Не решая квадратное уравнение x2+x-7=0 , найдите значение выражения x14+x24 ,если x1 и x2 корни данного уравнения.
6) Решите систему уравнений для любых допустимых значений параметра а : ax + (3a-2) y=a -это система x + ay =2-a
7) Решите уравнения: a) |5x2-6x-8|=x-2 b) V3x-5+V6-x=3 V-корень. с)(x2-9\x2)-4(x-3\x)=2 d) 10x\2x2+5x+3 – 2x\2x2-6x+3
Если что, \ - дробная черта.
Я их даже и не пробовал решать . Просто ленивый друг попросил.Я вобще в алгебре абсолютный слабак. Мне такого не прислали. Лёгкое или сложное не знаю , он не решил и меня попросил найти кто сможет. А раз говорите легкотня , то странно... он вроде по алгебре и физике шарит, раз его в институт зовут и задание уже для подготовки присылают. P.S. Я гуманитарными предметами увлекаюсь.
Во первых прочитай вот это Потом можешь уже читать вот это
Quote (Kolik)
QWER56, тебе сюда форум со знающими людьми. У этого форума в шапке есть ссылка на файлообменник где можно найти кучу исходников,переведённых туториалов,сделанных игр на конструкте и прочего.Удачи в освоении.
Постить разрешается. На форуме буду выкладывать не большие уроки по Blitz3D. Уроки пишутся по моему, не большому опыту, поэтому надеюсь спроса большого с них не будет. Всё, что знаю напишу.Надеюсь вы уже установили движок и знаете куда писать код и как компилировать.Статья
Начало. Начнём с создания 3D окна в мир игры:
Code
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Repeat
Until KeyHit(1)
End
Теперь попытаюсь объяснить, что мы написали.
Graphics3D 640,480,16,1 это строка открывает окно в 3D мир Устанавливает 3D Графический способ. Эта команда должна быть выполнена перед любой другой 3D командой, иначе программы возвратят ошибку. Синтакс: Graphics3D ширина, высота, глубина цвета, режим Ширина, высота – размер создаваемого экрана (в пикселях) Глубина – глубина цвета – 16, 24 или 32 бита на пиксель. Цветовой способ с 16 частицами показывает наименьшее количество количества цветов, 65536. И с 32 частицами цветовые способы с 24 частицами показывают более чем 16 миллионов Цвета и в результате предлагают лучшую картину качества, хотя могут кончаться более медленными программами, чем с 16 частицами. Режимы: 0 – оконный во время разработки (если возможно), полноэкранный в .exe формате; 1 – всегда полноэкранный 2 – всегда оконный 3 – всегда оконный, с возможностью изменения размеров окна. SetBuffer BackBuffer() – Установить поток, буфер. Repeat Until KeyHit(1) – Между этими двумя командами будет происходить основной цикл игры. При нажатии кнопки ESC начинает читать следующую команду. End – Завешает программу
Продолжим.
cam=CreateCamera() – это самая основная команда в 3D программах. Это камера, наши глаза. Lit=CreateLight() – эта команда создает источник света. Можно изменять тип света, в скобки можно вписать следующие значения: 1:направленный 2:точка 3: пятно
Свет – это объект, а это значит, что им тоже можно управлять, как и всеми объектами.
cub=CreateCube()–3D объект куб. Кроме куда можно ещё создать объекты: CreateSphere ( [segments][,parent] ) CreateCylinder ( [segments][,parent][,solid] ) CreateCone ( [segments][,parent][,solid] )
PositionEntity cub,0,0,5– эта команда помещает объект в позицию.
Объекты помещены, используя X, Y, Z системы координат. X, Y и Z каждый имеет собственную ось. Определяя ценность для каждой оси, Вы можете помещать объект где-нибудь в 3D пространстве. 0,0,0 – центр. Положительный Z находиться перед камерой, а отрицательный позади камеры. Изменение X это наклон в бок. Y будет изменять положение лево право.
ScaleEntity cub,1,0.3,1 – Изменяет размер объекта RotateEntity cub,0,40,0 – Вращение объекта. TurnEntity cub,.6,.2,.3 - TurnEntity entity,pitch#,yaw#,roll#,[,global] Tpitch# - наклон вперед / назад. Yaw#- переворот налево / вправо. Roll# - наклон налево / вправо. UpdateWorld – UpdateWorld [anim_speed#] anim_speed# (необязательный) – скорость мультипликации. Установлен по умолчанию в 1. RenderWorld [tween#]Показывает все объекты в мире.
Ура!Вот , что получилось:
Code
Graphics3D 640,480,16,1 SetBuffer BackBuffer()
cam=CreateCamera()
lit=CreateLight()
cub=CreateCube()
Posit ionE ntit y cub,0,0,5
PositionEntity cub,0,0,5
ScaleEntity cub,1,0.3,1
RotateEntity cub,0,40,0
Repeat
TurnEntity cub,.6,.2,.3
TurnEntity lit,5,5,0
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Управление объектами. EntityColor cub,0,255,0– Устанавливает цвет объекта. Зеленые, красные и синие (R,G,B) в диапазоне 0-255. Default цвет – 255,255,255.
If KeyDown(208) MoveEntity cub,0,0,-.1- При нажатие кнопки в верх объект начинает двигатся вперёд, сканкод 200. При нажатие кнопки вниз объект начинает двигаться назад, сканкод 208. Чтобы узнать сканкод каждой кнопки в справке есть раздел Scancodes, там можно узнать номер каждой кнопки. Команда MoveEntity перемещает объект в пространстве.
If KeyDown(203) TurnEntity cub,0,1,0- поворот куба.
Вот теперь у нас получилась маленькая игра.
Code
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
lit=CreateLight()
cub=CreateCube()
EntityColor cub,0,255,0
cam=CreateCamera(cub)
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
plan=CreatePlane()
EntityColor plan,0,0,255
PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5
Repeat
If KeyDown(200) MoveEntity cub,0,0,.1
If KeyDown(208) MoveEntity cub,0,0,-.1
If KeyDown(203) TurnEntity cub,0,1,0
If KeyDown(205) TurnEntity cub,0,-1,0
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Столкновение с объектами.
Вы уже заметили, что кубик проходит сквозь стены. Исправим, сделаем стены твёрдыми.
Const TypeCub=1,TypeStolb=2 – И так сначала мы создали две константы – TypeCub, равная единице и TypeStolb Равная двойке . EntityType – присваивает данному объекту данный тип. В нашем случае, тип – это просто цифры. Здесь мы вместо цифр использовали константы – чтобы не запутаться, да и чтобы легко можно было прочитать – к какому типу этот объект относится, и с чем соприкасается. Collision -Первый тип для столкновений. Второй тип должен столкнуть.
Типы столкновений. 1: столкновения « сфера к сфере « 2: столкновения « сфера к многоугольнику» 3: столкновения « сфера к box»
Действия объекта при столкновении. 1: Стоп, остановка. 2: полное столкновение со скольжением
EntityRadius cub,2 – Радиус столкновения объекта.
Ну вот теперь в нашей маленькой игре кубик врезается в стены:
[spoiler]
Code
Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Const TypeCub=1,TypeStolb=2
lit=CreateLight()
cub=CreateCube()
EntityColor cub,0,255,0
EntityType cub,TypeCub
cam=CreateCamera()
stolb=CreateCube()
ScaleEntity stolb,1,4,1
PositionEntity stolb,-7,0,7
EntityType stolb,TypeStolb
stolb2=CreateCube()
ScaleEntity stolb2,1,4,1
PositionEntity stolb2,7,0,7
EntityType stolb2,TypeStolb
EntityRadius cub,2
plan=CreatePlane()
EntityColor plan,0,0,255
PositionEntity plan,0,-1,5
PositionEntity cam,0,3,-5
Collisions TypeCub,TypeStolb,2,3
Repeat
If KeyDown(200) MoveEntity cub,0,0,.1
If KeyDown(208) MoveEntity cub,0,0,-.1
If KeyDown(203) TurnEntity cub,0,1,0
If KeyDown(205) TurnEntity cub,0,-1,0
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
Столкновение с объектами.
Вы уже заметили, что кубик проходит сквозь стены. Исправим, сделаем стены твёрдыми.
Const TypeCub=1,TypeStolb=2 – И так сначала мы создали две константы – TypeCub, равная единице и TypeStolb Равная двойке . EntityType – присваивает данному объекту данный тип. В нашем случае, тип – это просто цифры. Здесь мы вместо цифр использовали константы – чтобы не запутаться, да и чтобы легко можно было прочитать – к какому типу этот объект относится, и с чем соприкасается. Collision -Первый тип для столкновений. Второй тип должен столкнуть.
Типы столкновений. 1: столкновения « сфера к сфере « 2: столкновения « сфера к многоугольнику» 3: столкновения « сфера к box»
Действия объекта при столкновении. 1: Стоп, остановка. 2: полное столкновение со скольжением
EntityRadius cub,2 – Радиус столкновения объекта.
Ну вот теперь в нашей маленькой игре кубик врезается в стены: