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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2013, 20:14   #1
Masafi
Форумчанин
 
Регистрация: 12.03.2011
Сообщений: 113
Лампочка Сложно ли создать 2d движок?!

Сижу, думаю о смысле жизни. Сам не профессионал (только начинаю), хочу спросить у вас: сложно ли создать свой 2D движок с нуля? Т.е. редактор уровней и компилятор этих уровней в саму игру (.exe). + Сохранение самих уровней в каком то своем формате. Может даже кто то такое делал?
Masafi вне форума Ответить с цитированием
Старый 06.06.2013, 21:11   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Уровни "!в саму игру" компилировались тогда, когда это были не *.exe, а *.com - и исключительно для облегчения загрузки с магнитофона (наверное, не все помнят, что раньше вместо флешек и жесткого диска были дискеты, а еще раньше - бытовой кассетный магнитофон).
Сейчас уровни вместе с остальными необходимыми вещами помещаются в файлы ресурсов. В принципе, в виде такого файла может быть использован обычный zip-архив. Например, именно так сделано в игре Quake-3.

Сложно или нет - зависит от умения и фантазии. Но самое главное здесь - желание.
s-andriano вне форума Ответить с цитированием
Старый 06.06.2013, 21:20   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Нет, не сложно. На определённом этапе профессионального роста это становиться возможным. Я лично писал, парочка моих знакомых с помощью своих "движков" к Пряхину в контору устроились.
Виталий Желтяков вне форума Ответить с цитированием
Старый 06.06.2013, 21:58   #4
Masafi
Форумчанин
 
Регистрация: 12.03.2011
Сообщений: 113
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Уровни "!в саму игру" компилировались тогда, когда это были не *.exe, а *.com - и исключительно для облегчения загрузки с магнитофона (наверное, не все помнят, что раньше вместо флешек и жесткого диска были дискеты, а еще раньше - бытовой кассетный магнитофон).
Сейчас уровни вместе с остальными необходимыми вещами помещаются в файлы ресурсов. В принципе, в виде такого файла может быть использован обычный zip-архив. Например, именно так сделано в игре Quake-3.

Сложно или нет - зависит от умения и фантазии. Но самое главное здесь - желание.
Я же говорю, что я только начинающий

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Нет, не сложно. На определённом этапе профессионального роста это становиться возможным. Я лично писал, парочка моих знакомых с помощью своих "движков" к Пряхину в контору устроились.
Вы даете мне надежды!
А не подскажите, на каком языке стоит его писать (не для супер платформеров где есть физика воды и т.д. и т.п., а простых, типа марио и т.д.). Я его начну учить, т.к. хочу создать свою не большую игрушку. Flash и все что с ним связано учить не хочу - учил, не получилось выучить :С
Masafi вне форума Ответить с цитированием
Старый 06.06.2013, 23:03   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Пишите на том языке, который Вам ближе.

А вообще, нужно не учить язык, а учиться программировать. Язык можно выучить за 2 недели, а чтобы научиться программировать, нужно минимум 2 года.

Насчет движка:
Рекомендую поставить перед собой конкретную задачу. Задачей может быть создание клона известной игры (мне кажется, это оптимальный вариант, и мое мнение подтверждено практикой). А движок пишется изначально под эту конкретную игру. Потом при необходимости можно будет пересмотреть его структуру и/или дополнить необходимыми функциями.
s-andriano вне форума Ответить с цитированием
Старый 07.06.2013, 03:13   #6
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
(наверное, не все помнят, что раньше вместо флешек и жесткого диска были дискеты, а еще раньше - бытовой кассетный магнитофон).
Помню жуткую загрузку с магнитофона. Если бы теперешние геймеры увидели сию картину глаза от удивления поди сошли с орбит

А по теме: движок, конечно, сравнительно не сложно создать. Но нужны ли велосипеды?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 07.06.2013, 08:47   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Larboss Посмотреть сообщение
Но нужны ли велосипеды?
Интересный вопрос. Но если бы велосипеды были не нужны мы бы все еще редактировали на EdLin
waleri вне форума Ответить с цитированием
Старый 07.06.2013, 13:22   #8
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

В одиночку очень трудно создать игру, так как при создании игр програмист зависит от художников, создателей текстур, аниматоров, моделлеров и других. Игру делает команда.

Программист может создать игру в одиночку, если всю графику нарисует сам. Чтобы самостоятельно нарисовать графику, нужно брать фотографии и перерисовывать, затем оцифровывать, либо купить специальное перо для рисования на компьютере


Редактор уровней выводит спрайты, которые представляют объект игрового мира
(
1. элемент ландшафта ( например, скала, камень, дерево, набор деревьев, цветы, лесы и т.п.)
2. элемент игры ( например, герой, который перемещается по карте, юнит, город, какой-либо ресурс
и т.д.
)

Уровень это матрица, двухмерный массив

Чтобы понять как делаются игры, скачайте движок CryEngine. Нужно учиться моделировать структуру приложения. Вот например, некоторые из классов игры Crysis 3 вышедшей в феврале 2013..

Код:
smartptr.h ( умные указатели )
- class _smart_ptr ( класс умный указатель )
- class _cfg_reference_target

Cry_Vector2.h ( вектор двухмерного пространства )
- struct Vec2Constants
- struct Vec2_tpl
Cry_Vector3.h ( вектор трехмерного пространства )
- struct Vec3Constants
- struct Vec3_tpl;
- struct Vec4_tpl
- struct Ang3_tpl
- struct AngleAxis_tpl
- struct Plane_tpl ( шаблон плоскости )
Cry_HWVector3.h
Cry_Matrix.h ( матрица )
- struct Matrix33_tpl
- struct Matrix34_tpl
- struct Matrix44_tpl
- struct Diag33_tpl
Cry_HWMatrix.h
- struct hwmtx33
Cry_Quat.h ( кватернион ) 
- struct __passinreg Quat_tpl (шаблон кватерниона)
- struct __passinreg QuatTS_tpl
- struct QuatD_tpl

Cry_Color.h ( цвет )
- struct Color_tpl

Cry_Camera.h ( камера ) 
- class CCamera

Cry_Geo.h
- struct PosNorm
- struct RectI ( прямоугольник )
- struct Line (  прямая )
- struct Ray ( луч )
- struct Lineseg_tpl
- struct Triangle_tpl ( треугольник )
- struct AABB; ( AA Axis Aligned Bounding Box  )
- struct OBB; ( Object Bounding Box )
- struct Sphere; ( сфера )
- struct AAEllipsoid; ( AA Axis Aligned Ellipsoid )
- struct Ellipsoid; ( эллипсоид )
- class Velocity3 ( скорость )
Cry_Geo_info.h  ( информационный класс )
Cry_GeoDistance.h ( расстояние )
Cry_GeoIntersect.h ( пересечение )
Cry_GeoOverlap.h ( наложение ) 

primitives.h 
- struct primitive (примитив)
- struct box : primitive
- struct triangle : primitive
- struct indexed_triangle : triangle
- struct grid : primitive
- struct heightfield : grid
- struct ray : primitive
- struct sphere : primitive
- struct cylinder : primitive
- struct capsule : cylinder
- struct grid3d : primitive
- struct voxelgrid : grid3d
- struct plane : primitive
- struct coord_plane : plane
- struct prim_inters
- struct contact
- struct geom_contact_area
- struct geom_contact
primitives_info.h


Cry_ValidNumber.h  ( арифметика с плавающей точкой )
Cry_Math.h
Cry_XMath.h
Cry_XOptimise.h

CryArray.h ( класс массив )
- struct Array
- struct ArrayStorage
- struct StaticArrayStorage
- struct AllocPrefix
- struct StaticArray: Array
- struct DynArrayRef: Array
- struct DynArray: DynArrayRef
- struct FixedDynArray: DynArray
- struct StaticDynArray: DynArray
- struct FastDynStorage: ArrayStorage
- struct SmallDynStorage: RawStorage
- struct StandardAlloc


CryString.h ( класс строка )
- class CryStringT

CryThread.h ( класс поток )
- class CryLockT
- class CryAutoLock
- class CryOptionalAutoLock
- class CryRunnable
- struct CryThreadInfo
- class CrySimpleThread;
- class CryThread : public CrySimpleThread
- class CryRWLock
- class CryReadModifyLock
- class AutoLockRead
- class AutoLockModify

CryFile.h ( класс файл )
- class CCryFile
CryBufferedFileReader.h ( класс читателя файлов )


StackContainer.h ( контейнер  стек )
- class CStackContainer

AgePriorityQueue.h ( приоритетная по возрасту очередь )
- struct AgePriorityQueue

RendElement.h ( элемент отрисовки )
- class CRendElement
- class CRendElementBase : public CRendElement
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 09.06.2013, 21:55   #9
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
А не подскажите, на каком языке стоит его писать (не для супер платформеров где есть физика воды и т.д. и т.п., а простых, типа марио и т.д.). Я его начну учить, т.к. хочу создать свою не большую игрушку. Flash и все что с ним связано учить не хочу - учил, не получилось выучить :С
На том, который лучше знаете, и который более практичный.
Лично я писал движок на js (свои php наработки движком назвать сложно). Выбор объясняется тем, что я пишу браузерную игру, которую я могу реализовать.
Цитата:
В одиночку очень трудно создать игру, так как при создании игр програмист зависит от художников, создателей текстур, аниматоров, моделлеров и других. Игру делает команда.

Программист может создать игру в одиночку, если всю графику нарисует сам. Чтобы самостоятельно нарисовать графику, нужно брать фотографии и перерисовывать, затем оцифровывать, либо купить специальное перо для рисования на компьютере
challengerr, в самую точку. Жаль не все это понимают.
Виталий Желтяков вне форума Ответить с цитированием
Старый 13.06.2013, 00:44   #10
Odinok
Пользователь
 
Аватар для Odinok
 
Регистрация: 08.03.2011
Сообщений: 91
По умолчанию

Вообще 2д движок не сложно делается =)
главное знать основные моменты, как вывести на экран определенную часть изображения (спрайты), структура карты вектора или массивы для определенной клетки, структура игрока(что умеет игрок ходить и прочее). И все вроде. А ну и отслеживание нажимание основных кнопок.
Всё будет так, как должно было быть, даже, если будет наоборот.
Odinok вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать движок сервиса инет магазинов, существует ли что то подобное? BACKSEET PHP 4 03.04.2016 05:07
Найти движок под партнерку или создать с нуля сайт noread Фриланс 0 07.03.2012 20:00
Помогитеу становить движок на сайт. Движок Joomla acmilan WordPress и другие CMS 2 01.04.2009 11:26