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

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

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

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

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

Результаты опроса: Ваше мнение после прочтения
Эта чушь никому не может понадобиться 7 29.17%
Если над этим поработать, может что-то и выйдет 10 41.67%
Где-то похожее уже встречалось 7 29.17%
Голосовавшие: 24. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 04:43   #1
DaggerBall
 
Регистрация: 29.11.2009
Сообщений: 3
По умолчанию My "Gamedeveloper"

Не знаю, может я не совсем в тему, потому как реализовывать то, о чем я здесь напишу, я не собираюсь, к тому же это не проект новой игры - это попытка создания твердой теоретической основы для программы, упрощающей написание игр, чего-то вроде GameMaker, но на другом фундаменте. Понятное дело, что любая программа такого рода ограничивает полет творческой фантазии , но зато позволяет угнаться за этой своей фантазией чуть большему количеству людей... но это все лирика, потому как я, как было сказано, ничего реализовывать не собираюсь - это всего лишь теория.
Итак вот они, мои идеи:
Программа представляет собой интерпретатор некоего языка, наложенный на скомпилированное и, соответственно, неизменяемое ядро. В языке, помимо стандартных int, float, bool, char, string, есть еще ref, типы для 2D и 3D графики, звука, всевозможных графических эффектов и придуманный лично мной (изобретателем многочисленных велосипедов ) тип "множество". Этот тип пока, думаю, единственный непонятный, а тот, кто понял его как set из Pascal-я малость неправ. Тип "множество" неограниченный (в разумных пределах) и ему сопоставлены три операции: add(set,element), del(set property) и set operation[\property]. Первая добавляет element в set, вторая удаляет все элементы set, удовлетворяющие property, а третья производит operation над всеми, или, если указано \property, то только удовлетворяющими ему, элементами set.
Пользовательские типы данных подразделяются только на Type (это обычный Pascal-евский record) и Class (о... а вот это уже поинтереснее).
Приблизительный вид объявления класса такой: "Classname=Class [costants;] [variables;] [functions;] end." и единственная функция над классами - Make(Class):Ref - создает локальную игровую реализацию класса, т.е. игровой объект. Также каждому классу сопоставлена переменная Classname.lockals:set[ref] - множество ref-ссылок на локальные копии класса. Тут кстати будет замечание, что consts вообще тоже изменяемые, но локальной копии от класса передаются по ссылке, т.е. изменение константы затрагивает все локальные копии этого класса, тогда как одноименные переменные для различных копий одного класса могут иметь разные значения.
Если подумать, то, по-моему, лучше бы объявлять Types, Classes, GlobalVars и GlobalConsts в отдельных окнах, а не внутри кода, дабы его не засорять, но это уже тонкости реализации...
Кроме вышеперечисленных "языковых" должны быть еще и переменные, типы и функции "из ядра" - это FramesDelay:float, Screen.(Width,Height,Maximazed,Came ra,Brightness,..), intersection(3Dgr,3Dgr):bool, contact(3Dgr,3Dgr):bool и наверное что-нибудь еще, но зачем собственно я и пишу это на форум - пожелания и замечания по шлифовке этого теоретического базиса, и ваше мнение на счет возможности реализации подобных проектов в будущем с радостью принимаются.
DaggerBall вне форума Ответить с цитированием
Старый 29.11.2009, 09:49   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А не проще ли чем изобретать "очередной велосипед" просто использовать паскаль\дельфи?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.11.2009, 10:41   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
А не проще ли чем изобретать "очередной велосипед" просто использовать паскаль\дельфи?
Согласен.Я сам с Game Maker не работал, но как понял его преимущество в том, чтобы делать игры особенно не зная программирования. Учить некий интерпритатор будет сложнее чем выучить Pascal.
Вадим Буренков вне форума Ответить с цитированием
Старый 29.11.2009, 11:15   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Со своей стороны также добавлю, что C++ тоже хорошо подходит под ваше описание... Type и Class, полагаю, вообще есть во всех объектно-ориентированных языках программирования. Ну а "множества" - это стандартные контейнеры из библиотеки STL.
Цитата:
Если подумать, то, по-моему, лучше бы объявлять Types, Classes, GlobalVars и GlobalConsts в отдельных окнах, а не внутри кода, дабы его не засорять
А вот это уже обычные .h и .cpp файлы (первые содержат объявления всего, что только можно, вторые - определения и, стало быть, основную часть кода)

Изобретать велосипед, конечно, хорошо с академической точки зрения, но для практического применения лучше всего использовать давно созданные и неоднократно обкатанные продукты.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.11.2009, 17:26   #5
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Из идеи автора мне удалось вычленить следующее:
- все языки (ЯВУ) в основном универсальные, т.е. годятся и для обучения, и для БД, и для игр, мультимедии и т.п.
- программы типа GameMaker - это не программирование, а просто инструмент для реализации определенной задачи( в данном случае - для создания игровой программы);
- идея автора - в создании не программы , а среды программирования для создания игр. А это как говорят в Одессе, две большие разницы.
Поэтому идея автора заслуживает внимания и, по возможности, помощи и сотрудничества. Почему бы и нет, в своей среде создать классы, свойства, типы переменных и другие атрибуты чисто для индустрии игр. Реализация такой идеи может сравнится с операционными системами. Спрос на различные игры, интерес к этой тематике огромен.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 30.11.2009, 13:55   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тогда уж лучше создать библиотеку к нужному ЯП. и использовать её там
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.11.2009, 18:33   #7
DaggerBall
 
Регистрация: 29.11.2009
Сообщений: 3
По умолчанию

Да, вообще говоря можно создать и библиотеку, но их использование обычно все-же усложняет текст программы. Моя же основная идея заключается в том, чтобы упростить текст и работу с 2- и 3D-графикой и визуальными эффектами, звуком, анимацией, AI. Например нам надо включить в игру "Пехотинца". Мы создаем класс Marine, создаем в прилагающемся простеньком редакторе, или импортируем, все его трехмерные "части" и их текстуры, назначаем, если надо, первичное значение Visible, связываем их анимационным скелетом, добавляем динамические связывающие поверхности и, соответственно, их текстуры, если хочется покрасивее, создаем пару-тройку анимационных функций и модулей AI (опять таки во встроенных редакторах) и кидаем их в нашего Marine, создаем модификатор для Make от нашего класса - в общем много чего делаем, а в тоже время в главном коде у нас не изменилось ничего. И если теперь мы хотим поставить на карту разъяренного пехотинца, чтобы он стрелял направо и налево, то мы просто пишем в основном коде например Make(Marine,25,34,Player_Neutral,AI _Fury) и все... вот примерно так должна бы выглядеть реализация. И потом, очень хорошим, на мой взгляд, дополнением к final_release игры будет упрощенная (а насколько - по желанию разработчика) версия самой программы (или правда что правильнее писать "среда разработки"?), использующей вместо обычного ядра скомпилированный exe вашей игры - то есть "редактор игры", "редактор уровней", "construction set" - называй как хочешь. Такого не сделаешь просто написав библиотеку - библиотеки исполняют все-таки элементарные операции, а тут работа на макроуровне, и потом довольно абстрактная, тут нужна новая система разработки.
И главное - гораздо проще искать ошибки, обезопасить нужные данные. Не правда ли просто (может и неправда, но на всякий случай) случайно потерять какой-нибудь файл из проекта игры. крах системы, синий экран или другое бедствие сведут многие ваши усилия на нет. Но среда разработки может услужливо предоставить архив истории проекта, и возможность восстановить данные оттуда.
Есть еще, думаю, много преимуществ, но это правда не важно, пока нет людей готовых взяться за это, а я явно не в их числе - я пока буду разрабатывать теорию.
И вот что я попрошу вас: Пожалуйста,не выкладывайте больше постов типа "лучше пилить тем, что есть - затачивать некогда и желания нет". Лучше уж обходить стороной. Но еще лучше выкладывать задачи, которые, по-вашему, нужны в игре, и которые нельзя решить описанными методами или (что более вероятно) способ решения которых не сразу приходит в голову - это нужно для конденсации абстрактной идеи на твердую поверхность возможностей машины, конкретизации графических, звуковых типов, а в особенности AI и анимации: какие у них будут параметры, какие процедуры, функции, или еще что-нибудь (выкладывайте мысли и на эту тему, только слишком не увлекайтесь).
Например мне уже сейчас понятно, что AI-объекты должны представлять собой конкретный интерпретируемый код, написанный уже на другом языке, по которому у меня пока нет вообще никаких идей - я с AI еще не разбирался.

PS. "Множество", как я сегодня узнал, действительно является велосипедом - его можно запросто сконструировать уже по крайней мере в PascalABC.NET из типа List и оператора foreach. Сам PascalABC.NET (а .NET меня вообще сначала удивило) - довольно интересный фрукт - чего в нем только не намешано...
DaggerBall вне форума Ответить с цитированием
Старый 30.11.2009, 18:56   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Если такая "делалка игр" дорастёт до состояния, когда на ней можно будет сделать что-то большее, чем простую аркаду или бессмысленную бомбилку с кучей эффектов, она превратится в Quest3D или UDK, освоить которые едва ли не сложнее, чем какой-то конкретный движок под конкретный язык.
пыщь
JTG вне форума Ответить с цитированием
Старый 30.11.2009, 20:31   #9
DaggerBall
 
Регистрация: 29.11.2009
Сообщений: 3
По умолчанию

Извините конечно, но ни Quest3D ни UDK не подходят уже хотя бы потому, что с их помощью нельзя сделать, если я не ошибаюсь, никакую 2D игру - то есть универсальными их не назовешь. И нигде я не говорил о движке - это среда разработки, а в ядре у нее только работа с графикой и интерпретатор для AI. По сути дела на ней можно было бы сделать и текстовый квест и прикрутить AI туда... Короче мой девиз на красном флаге: "Все, что нужно для любой игры в одной программе и ничего лишнего".

Последний раз редактировалось DaggerBall; 30.11.2009 в 20:38.
DaggerBall вне форума Ответить с цитированием
Старый 30.11.2009, 21:52   #10
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Цитата:
Короче мой девиз на красном флаге: "Все, что нужно для любой игры в одной программе и ничего лишнего".
Ваш девиз не будет видно.
Levsha100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49