Chromium bsu что это

Обновлено: 07.07.2024

Please consider filing a bug or asking a question via Launchpad before contacting the maintainer directly.

Original Maintainers (usually from Debian):

  • Debian Games Team (Почтовый архив)
  • Sam Hocevar
  • Paul Wise

It should generally not be necessary for users to contact the original maintainer.

Внешние ресурсы:

Подобные пакеты:

fast paced, arcade-style, scrolling space shooter

Другие пакеты, относящиеся к chromium-bsu

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: chromium-bsu-data (>= 0.9.14) data pack for the Chromium B.S.U. game
  • dep: fonts-uralic Truetype fonts for Cyrillic-based Uralic languages или ttf-uralic Пакет недоступен
  • dep: libalut0 (>= 1.0.1) OpenAL Utility Toolkit
  • dep: libc6 (>= 2.17) [arm64, ppc64el] GNU C Library: Shared libraries dep: libc6 (>= 2.7) [не arm64, ppc64el]
  • dep: libgcc-s1 (>= 3.0) [не armhf] GCC support library dep: libgcc-s1 (>= 3.5) [armhf]
  • dep: libgl1 Vendor neutral GL dispatch library -- legacy GL support
  • dep: libglc0 (>= 0.7.1) QuesoGLC OpenGL Character Renderer (GLC) implementation
  • dep: libglu1-mesa Mesa OpenGL utility library (GLU) или libglu1 виртуальный пакет, предоставляемый libglu1-mesa
  • dep: libopenal1 (>= 1.14) Software implementation of the OpenAL audio API (shared library)
  • dep: libsdl2-2.0-0 (>= 2.0.10) Simple DirectMedia Layer
  • dep: libsdl2-image-2.0-0 (>= 2.0.2) Image loading library for Simple DirectMedia Layer 2, libraries
  • dep: libstdc++6 (>= 5) GNU Standard C++ Library v3

Загрузка chromium-bsu

Загрузить для всех доступных архитектур
Архитектура Размер пакета В установленном виде Файлы
amd64 101,7 Кб384,0 Кб [список файлов]
arm64 95,0 Кб368,0 Кб [список файлов]
armhf 93,5 Кб315,0 Кб [список файлов]
ppc64el 114,1 Кб504,0 Кб [список файлов]
s390x 93,9 Кб388,0 Кб [список файлов]

This page is also available in the following languages:

Авторские права © 2021 Canonical Ltd.; См. условия лицензии. Ubuntu это торговый знак компании Canonical Ltd. Об этом сайте.

Chromium BSU - это космический шутер в аркадном стиле,доступный для Windows , iPhone , PSP , Mac , AmigaOS 4 , Linux и многих других UNIX-подобных операционных систем. Это бесплатное программное обеспечение, распространяемое по Clarified Artistic License . Первоначальная версия Chromium BSU была разработана в 2000 году Марком Б. Алланом и выпущена под лицензией Artistic License. С тех пор он получил много отзывов от сообщества.


Содержание

участок

Сюжетная линия Chromium BSU состоит из игрока, играющего роль капитана на борту грузового корабля. Название грузового корабля - «Хром БСУ». Игроку дается задача доставить груз войскам на передовой. Грузовой корабль имеет на борту серию роботизированных космических кораблей-истребителей. Ваша задача - использовать эти корабли, чтобы грузовое судно добралось до линии фронта.

Геймплей

Chromium BSU - это космический 2D-шутер с верхней прокруткой. Игроки должны стрелять в самолеты противника, прежде чем они достигнут нижней части экрана. За каждый самолет, достигающий нижней части экрана, игрок теряет жизнь. Именно это правило делает Chromium BSU уникальным среди космических шутеров со скроллингом. Еще один аспект сложности игры - ограниченный боезапас. Чтобы победить, необходимо эффективно использовать боеприпасы.

Когда игроку сложно уничтожить врагов, у него есть два варианта. Они могут врезаться в корабли противника и нанести урон как кораблю, так и себе. Другой вариант - самоуничтожиться, уничтожив тем самым всех врагов на экране.

На первом уровне игры всего три типа вражеских кораблей. По мере прохождения уровней игроку открывается больше вражеских кораблей. Игра была разработана для того, чтобы играть в ней через короткие промежутки времени, а не за долгие часы.

Техническая информация

Игра написана на C ++ . Графическая поддержка предоставляется OpenGL. Игра требует аппаратного ускорения, чтобы надежно поддерживать стабильную частоту кадров. Следовательно, программные реализации OpenGL не подходят для игры. SDL используется для создания окна, к которому прикреплен контекст OpenGL, а также для обработки событий ввода (таких как мышь, клавиатура, джойстик). В качестве альтернативы пользователь может выбрать для этих целей GLUT, а не SDL.

Аудио - это параметр, который настраивается пользователем во время компиляции. Пользователь может выбирать между OpenAL и SDL_Mixer для поддержки воспроизведения звука. У них обоих есть свои преимущества и недостатки. Ключевой особенностью аудиосистемы Chromium BSU является то, что она поддерживает как пользовательские списки воспроизведения, так и воспроизведение компакт-дисков. Пользователь может выбирать между FTGL и QuesoGLC для рендеринга шрифтов.


Chromium BSU.jpg

Первую версию Chromium B.S.U. разработал в 2000 году Марк Б. Аллан (Mark B. Allan). Будучи издана по лицензии Artistic License, за время существования игра получила значительный вклад со стороны сообщества. Игрок берёт на себя роль героя, пробивающегося с боем через неприятельские силы. В целом игровой процесс напоминает двумерные космические шутеры для аркадных автоматов.

Содержание

Сюжет

Сюжет игры строится на управлении грузовым космическим кораблём под названием Chromium B.S.U. В качестве командира корабля игроку дают задания доставить груз войскам на линии фронта. На борту корабля есть несколько автоматических истребителей, используя которые, нужно сделать всё, чтобы груз достиг своего получателя.

Игровой процесс

Задача игрока в том, чтобы, стреляя по вражеским кораблям, не позволить им добраться до нижнего края экрана. За каждый вражеский корабль, достигший нижнего края экрана игрок теряет одну «жизнь». Помимо этого правила, игру затрудняет ограниченное количество боеприпасов. Чтобы выиграть, приходится рассчитывать количество выстрелов.

В тяжёлых положениях игроку даются на выбор две возможности: столкнуться с вражеским кораблём, причинив урон и себе, и противнику, либо самому уничтожить свой корабль — при этом с экрана исчезают и все враги.

Первый уровень игры содержит всего три типа вражеских судов, однако на дальнейших уровнях начинают появляться всё новые и новые враги.

Техническая информация

Игра написана на C/C++. Графическую поддержку обеспечивает OpenGL. При наличии аппаратного ускорения игра стабильно выдаёт примерно 50 кадров в секунду. Программные реализации OpenGL (например, MESA), однако, не подходят для запуска игры. Для создания окна и обработки событий ввода (от клавиатуры, мыши и джойстика) используется SDL. Впрочем, пользователь может выбрать для этой же цели GLUT.

Параметры звука задаются пользователем во время компиляции. Для вывода звука можно использовать OpenAL или SDL_Mixer, каждая из которых имеет свои преимущества и недостатки. Аудиосистема в Chromium B.S.U. поддерживает как пользовательские списки воспроизведения, так и чтение с CD.

Для отрисовки шрифтов используется FTGL либо QuesoGLC.

Критические отзывы

Журнал «Ubuntu Magazine» отметил в игре графику, музыкальное оформление, лёгкое, удобное управление мышью и интересный игровой процесс. [2] «Linux Planet» подчеркнул несколько отличительных, на их взгляд, особенностей игры: сбежавший противник лишает игрока одной «жизни», относительная свобода действий позволяет игроку таранить вражеские суда, а количество боеприпасов у игрока ограничено. [3] Novell порекомендовала игру как «забавное средство от стресса». [4]


Большинство людей привыкли, что Chromium — это и браузер, и основа для других браузеров. До недавнего времени я тоже так думал, но, изучая эту тему уже пару месяцев, я начал открывать другой дивный мир. Chromium — это огромная экосистема, в которой есть всё: и система зависимостей, и система кроссплатформенной сборки, и компоненты почти на все случаи жизни. Так почему же не попробовать создавать свои приложения, используя всю эту мощь?

Под катом небольшое руководство, как начать это делать.

Подготовка окружения

В статье я буду использовать Ubuntu 18.04, порядок действий для других ОС можно посмотреть в документации:

Установка depot_tools

depot_tools — это набор инструментов для разработки Chromium. Для его установки необходимо выполнить:


И добавить путь в переменную окружения PATH:


Важно: если depot_tools были скачаны в домашнюю папку, то не используйте

в переменной PATH , иначе могут возникнуть проблемы. Необходимо использовать переменную $HOME :

Получение кода

Для начала надо создать папку для исходников. Например, в домашней директории (необходимо около 30 Гб свободного места):


После этого можно скачать исходники с помощью утилиты fetch из depot_tools :


Теперь можно пойти попить чай/кофе, так как процедура небыстрая. Для экспериментов история не нужна, поэтому используется флаг --no-history . С историей будет ещё дольше.

Установка зависимостей

Все исходники лежат в папке src , идём в неё:


Теперь нужно поставить все зависимости с помощью скрипта:


И запустить хуки:


На этом подготовка окружения завершена.

Система сборки

В качестве основной системы сборки Chromium используется Ninja, а утилита GN применяется для генерирования .ninja -файлов.

Чтобы понять, как пользоваться этими инструментами, предлагаю создать тестовую утилиту example. Для этого в папке src надо создать подпапку example :


Затем в папке src/example надо создать файл BUILD.gn , который содержит:


BUILD.gn состоит из цели (исполняемого файла example ) и списка файлов, которые необходимы для сборки цели.

Следующим шагом надо создать сам файл example.cc . Для начала предлагаю сделать классическое приложение «Hello world»:


Исходный код можно найти на GitHub.

Чтобы GN узнала о новом проекте, нужно в файле BUILD.gn , который находится в src , в разделе deps добавить строку "//example" :


Теперь необходимо вернуться в папку src и сгенерировать проект с помощью команды:


GN также позволяет подготовить проект для одной из поддерживаемых IDE:

  • eclipse
  • vs
  • vs2013
  • vs2015
  • vs2017
  • vs2019
  • xcode
  • qtcreator
  • json


Например, для работы с проектом example в QtCreator надо выполнить команду:


После этого можно открыть проект в QtCreator:


Финальный шаг — сборка проекта с помощью Ninja:


На этом краткое ознакомление с системой сборки можно завершить.

Приложение можно запустить с помощью команды:


И увидеть Hello world. На самом деле, про систему сборки в Chromium можно написать отдельную статью. Возможно, и не одну.

Работа с командной строкой

В качестве первого примера использования кодовой базы Chromium как фреймворка предлагаю поиграться с командной строкой.

Задача: вывести на экран все аргументы, переданные приложению в стиле Chromium.
Для работы с командной строкой необходимо в example.cc подключить заголовочный файл:


А также надо не забыть в BUILD.gn добавить зависимость от проекта base . BUILD.gn должен выглядеть так:


Теперь всё необходимое будет подключено к example .

Для работы с командной строкой Chromium предоставляет синглтон base::CommandLine . Чтобы получить ссылку на него, надо использовать статический метод base::CommandLine::ForCurrentProcess , но сначала надо его инициализировать с помощью метода base::CommandLine::Init :


Все аргументы, переданные приложению в командной строке и начинающиеся с символа - возвращаются в виде base::SwitchMap (по сути, map<string, string> ) с помощью метода GetSwitches . Все остальные аргументы возвращаются в виде base::StringVector (по сути, vectоr<striпg> ). Этих знаний достаточно, чтобы реализовать код для задачи:


Полную версию можно найти на GitHub.

Чтобы собрать и запустить приложение надо выполнить:


На экран будет выведено:

Работа с сетью

В качестве второго и последнего на сегодня примера предлагаю поработать с сетевой частью Chromium.

Задача: вывести на экран содержимое URL'а, переданного в качестве аргумента.

Сетевая подсистема Chromium


Полную версию можно посмотреть в документации.

Для создания URLRequest 'а необходимо использовать URLRequestContext . Создание контекста — довольно сложная операция, поэтому рекомендуется использовать URLRequestContextBuilder . Он проинициализирует все необходимые переменные значениями по умолчанию, но, при желании, их можно поменять на свои, например:

Многопоточность

Сетевой стек Chromium расчитан на работу в многопоточной среде, поэтому пропустить эту тему нельзя. Базовыми объектами для работы с многопоточностью в Chromium являются:

Реализация

Некоторые компоненты Chromium требуют наличия base::AtExitManager — это класс, позволяющий зарегистрировать операции, которые надо выполнить при завершении приложения. Использовать его очень просто, необходимо в стеке создать объект:


Дальше нужно с помощью Context builder 'а создать Context :


Чтобы послать запрос, необходимо с помощью метода CreateRequest объекта ctx создать объект URLRequest . В качестве параметров передаются:

  • URL, строка с типом GURL;
  • приоритет;
  • делегат, который обрабатывает события.


Вся основная логика находится в обработчике события OnResponseStarted : содержимое ответа вычитывается, пока не произойдёт ошибка или будет нечего читать. Так как после чтения ответа нужно завершить приложение, то делегат должен иметь доступ к функции, которая прервёт основной Run loop , в данном случае используется callback типа base::Closure .

Теперь всё готово для отправки запроса:


Чтобы запрос начал обрабатываться, надо запустить Run loop :


Полную версию можно найти на GitHub.

Чтобы собрать и запустить приложение нужно выполнить:

Финал

На самом деле, в Chromium можно найти много полезных кубиков и кирпичиков, из которых можно строить приложения. Он постоянно развивается, что, с одной стороны, является плюсом, а с другой стороны, регулярные изменения API не дают расслабиться. Например, в последнем релизе base::TaskScheduler превратился в base::ThreadPool , к счастью, без изменения API.

Читайте также: