Конкурс по программированию игр на Java 4K , также известный как Java 4K и J4K , — это неформальный конкурс, который был организован сообществом программистов игр на Java, чтобы проверить свои способности в разработке программного обеспечения.
Цель конкурса — разработать лучшую возможную игру в пределах четырех кибибайт (4096 байт) данных. Хотя изначально правила допускали практически любой способ распространения, в последние годы потребовалось, чтобы игры были упакованы либо как исполняемый файл JAR , либо как приложение Java Webstart , либо как Java Applet , а теперь только как апплет.
Поскольку формат файла класса Java влечет за собой довольно много накладных расходов, создание полноценной игры в 4K может быть довольно сложной задачей. В результате участники должны выбрать, какую часть своего бюджета байтов они хотят потратить на графику, звук и игровой процесс. Найти наилучшее сочетание этих факторов может быть чрезвычайно сложно. Многие новые участники считают, что впечатляющей графики достаточно, чтобы вытянуть игру. Однако заявки с более скромной графикой и акцентом на игровой процесс регулярно набирали больше баллов, чем такие демонстрации технологий.
Первоначально «призом» за победу в конкурсе была пачка « Duke Dollars», виртуальной валюты, используемой на форумах Java компании Sun Microsystems. Теоретически эта валюта могла быть обменена на физические призы, такие как часы и ручки. Искусственная валюта была принижена введением конкурса 4K, таким образом, не оставив никакого реального приза вообще. Хотя и были некоторые обсуждения предоставления призов для конкурса, он продолжал процветать и без них.
После создания конкурса Java4K были запущены ответвления, нацеленные на 8K, 16K или определенный API, такой как LWJGL , обычно безуспешно. Хотя было много споров о том, почему конкурс Java 4K настолько успешен, похоже, что участники пришли к единому мнению, что он представляет собой очень привлекательную задачу: не только участники получают шанс продемонстрировать, насколько они разбираются в программировании на Java, но и размер 4K помогает «уравнять шансы» по сравнению с другими конкурсами, где использование художников и музыкантов может легко вывести заявку далеко вперед. Участники, похоже, считают, что 4K — это «золотая середина», которая уравновешивает то, что может сделать отдельный человек. Из-за трюков, разработанных для конкурса 4K, считается, что добавление даже одного килобайта откроет двери для гораздо более сложных игр, которые выходят за рамки возможностей одного разработчика.
Конкурс по программированию игр Java 4K возник 28 августа 2002 года, когда пользователь под псевдонимом codymanix опубликовал предложение на форумах Sun Microsystems Java . После небольшого спора о том, насколько осуществима игра в 4K, пользователь под псевдонимом mlk официально организовал конкурс 29 августа 2002 года.
Медленно, но верно, заявки на участие в конкурсе начали поступать. Большинство из этих заявок были апплетами, поскольку считалось, что отделение изображений от файлов классов поможет уменьшить размер файла. В будущих конкурсах мы увидим обратную ситуацию, поскольку создатели игр использовали сжатые файлы JAR для уменьшения размера своего кода.
Одним из самых интересных моментов первого конкурса было то, что были разрешены неигровые приложения. Один из участников создал сервер telnet в 4K Java. Однако этот артефакт первого конкурса не сохранился и, скорее всего, был разрешен из-за небрежного обращения с первым конкурсом. Хотя в первый год победитель официально не был объявлен, игра 4K Racing, представленная Робином Чеддоком (он же Abuse/AbU5e), по общему мнению, «победила».
Последовательные соревнования становились все более организованными, и многие участники принимали участие в управлении и продвижении конкурса. Все конкурсы получили официальное судейство, и метод судейства совершенствовался каждый год. К третьему году конкурс был официально переведен на форумы JavaGaming.org. На четвертый год был представлен веб-сайт JavaUnlimited в качестве официального репозитория конкурса. Сайт использовался в предыдущем году для отслеживания записей, которые были размещены в официальных темах на JavaGaming.org и forum.java.sun.com.
Интенсивное использование предварительно отрендеренных спрайтов , прозрачности и звуковых эффектов определило работы этого года. Самыми сильными претендентами были Defender 4000 , Abuse's Shooty-Transparenty Game и Space Invaders . Однако отсутствие звука в Space Invaders заставило ее отстать от двух других работ, которые изо всех сил пытались втиснуть в себя больше технологий и игрового процесса.
Особый интерес представляли различные тактики, использованные в двух записях. Для графики Abuse использовал несколько драгоценных изображений с высокой цветопередачей, к которым он затем применял прозрачность и вращение во время выполнения. Jbanes, с другой стороны, разработал технику упаковки изображений, которая позволила ему хранить двадцать одно одноцветное изображение. Вместо того чтобы применять вращение и прозрачность, он решил использовать большее количество изображений для создания предварительно отрендеренных анимаций. Для звука Abuse использовал чистые перезвоны и другие инструменты из звукового банка MIDI . Jbanes решил использовать сгенерированный во время выполнения звук PCM , который больше походил на видеоигры конца 1970-х и начала 1980-х годов.
Оба подхода имели свои достоинства, поэтому трудно сказать, что в конечном итоге повлияло на мнение судьи. Известно, что 2-й год был последним годом, когда звук был решающим фактором в играх. В последующие годы байты, выделенные для звука, были перераспределены на другие функции, такие как 3D-графика, уровни и боссы .
Год 2 был первым годом, когда официальное судейство состоялось. В отличие от последующих лет, единственным судьей был организатор конкурса mlk . После тщательного рассмотрения судья решил наградить Prong наградой за лучшее техническое достижение и объявил Defender 4000 абсолютным победителем. Он подсчитал каждую игру, но не использовал этот счет при определении победителя. Игра Abuse Shooty-Transparenty на самом деле набрала на один балл больше, чем Defender 4000 .
Третий год был отмечен значительным притоком профессиональных разработчиков Java, 3D-графикой в играх и постепенным переходом на форумы JavaGaming.org. JavaUnlimited также начал зеркалировать конкурентов в постоянном архиве. Хотя зеркало начиналось как вручную отредактированная HTML-страница, в конечном итоге оно превратилось в полноценный сайт управления контентом с серверной частью базы данных.
В этом году судейство осуществляла группа из трех добровольцев, профессиональных разработчиков, которые не принимали участия в конкурсе. Одним из добровольных судей был Крис Мелиссинос , главный игровой директор Sun. Используемый метод оценки был основан на методе, который mlk применил в предыдущем году, но был обновлен, чтобы позволить судьям присуждать награды за исключительный игровой процесс или технологические достижения.
Хотя большинство заявок были исключительного качества, T4XI Кевина Гласса (он же kevglass ) был выбран победителем. Помимо крайне оригинального игрового процесса, он обеспечивал исключительную графику посредством псевдо-3D-эффекта, который придавал перспективу зданиям.
Небольшое количество споров возникло из-за заявок, которые судьи не смогли оценить. Такие заявки, как JM4K и IsOlation Net, были либо слишком сложны для запуска судьями, либо содержали сетевые компоненты, которые они не могли протестировать. После конкурса этого года правила были изменены, чтобы игры были самоисполняемыми. Кроме того, участников заранее предупреждали о трудностях оценки сетевых игр.
4-й год ознаменовал собой период перехода к тому, чтобы сделать геймплей приоритетом над графикой и техническими достижениями. Многие игры были довольно просты по дизайну, но стремились компенсировать это захватывающим или затягивающим геймплеем.
Впервые в истории конкурса на JavaGaming.org был создан специальный форум для проведения конкурса. Кроме того, сайт JavaUnlimited.net стал официальным сайтом для заявок и судейства. Хотя изначально судейство должно было осуществляться через JavaUnlimited сообществом Javagaming.org, сопротивление нескольких участников привело к тому, что пришлось вернуться к более традиционной системе судейства.
После получения результатов победителем был объявлен Miners4K Маркуса Перссона . Второе место занял Roll4K Кевина Гласса , а третье место досталось Goomba4K Вугли.
Результаты судейства 4-го года были значительно лучше, чем 3-го года, отчасти из-за изменений правил, которые заставили заявки соответствовать легко исполняемым форматам. Однако это не устранило проблемы с судейством. Возникли некоторые разногласия, когда двум заявкам ( Xero и JSquares ) были даны более низкие баллы из-за технических неполадок. Было предложено несколько рекомендаций, чтобы предотвратить это в будущих конкурсах, включая урезание среднего балла и проверку оценок судей перед принятием.
Year 5 был запущен в декабре 2006 года и продлился до 1 марта 2007 года. Он увидел несколько замечательных игр, с гораздо меньшим акцентом на 3D и псевдо-3D графике. Большинство игр были 2D, единственными заметными исключениями были Pipe Extreme и Trailblazer (можно утверждать, что некоторые другие тоже 3D, но явно меньше).
Как и в 4-м году, на JavaGaming.org был организован форум для проведения конкурса. Система JavaUnlimited снова использовалась для проведения игр, считаясь официальным сайтом для заявок. Планировалось обновление сайта JavaUnlimited, но так и не произошло. Первоначально планировалось провести публичное голосование и сформировать судейскую коллегию. Спустя месяц после даты закрытия конкурса организатор без дополнительных объяснений распустил судейскую коллегию, что вызвало некоторое волнение на форумах, обвинения в цензуре, закрытые темы и двух участников, которые отозвали свои заявки с конкурса (сократив общее количество с 65 до 58). [1] Голосование было ограничено участниками форума javagaming.org, и за отведенное время проголосовало 25 человек. Примерно через два месяца после даты закрытия конкурса были объявлены официальные результаты.
Победителем стала игра Metro4k от Блейна Ходжа, за ней следуют Roadfourk от Jojoh и aichess4k от Ulf Ochsenfahrt . Metro4k — это градостроительный симулятор в стиле Sim City , Roadfourk — гоночная игра, а aichess4k — шахматная игра с искусственным интеллектом.
В отличие от предыдущих лет, на пятом году ни одна игра не заняла «последнее место», поскольку используемая система голосования давала голоса только примерно половине игр.
6-й год стартовал в декабре 2007 года и продолжался до 1 марта 2008 года. Было подано заметно меньше игр, чем в 2006 и 2007 годах — всего 21. Большинство игр были 2D, а в 3 играх использовалась 3D или псевдо-3D графика.
Конкурс проводился на новом сайте Java4k.com. Игры прошлых лет также можно найти на новом сайте. Перед запуском конкурса woogley объявил о своем отказе от организации конкурса. Поэтому задачу администрирования конкурса и хостинга сайта взяли на себя Арни Арент (appel) и Йоаким Йонссон (jojoh). Как и в предыдущие годы, также был специальный форум Архивировано 2015-11-04 на Wayback Machine на Java-Gaming.org.
Затем игры были тщательно рассмотрены пятью судьями: Арни Арентом, Йоакимом Джонссоном, Кевином Глассом, Мэттом Хиксом и Крисом Мелиссиносом. Они рассмотрели каждую игру в трех категориях: общая, техническая и презентация. Результаты были объявлены 28 марта 2008 года.
Седьмой год стартовал в декабре 2008 года и продлился до 28 февраля 2009 года (продлен с первоначальной даты закрытия 31 января). Количество представленных игр вернулось к прежнему уровню — 67. В этом году было введено требование (позже смягченное, но все еще соблюдаемое большинством игр) использовать развертывание JNLP, и в результате появилась смесь приложений и апплетов.
Другие технические новинки этого года — это подача словесных игр и игры, которая использовала микрофон. Word Twister использовал встроенные уровни, а Scr4mble использовал рефлексию для захвата имен классов из J2SE API и разбиения их на слова для построения словаря. Frequent Flier контролировался высотой тона, пропеваемой в микрофон.
Игры оценивали пять судей: Арни Арент, Крис Мелиссинос, Мэтт Хикс, Эли Делвенталь и Марк ДеЛура . Как и прежде, они оценивали в трех категориях: общая, техническая и презентация.
Возникли небольшие разногласия по поводу оценок, поскольку некоторые судьи не смогли сыграть в некоторые игры. Их оценки за эти игры изначально были 0 и засчитывались в счет этих игр, когда оценки были впервые опубликованы 1 апреля, но средние значения были изменены, чтобы вычесть эти 0 оценок три часа спустя.
После проблем с Webstart в 2009 году конкурсы 2010 года и более поздние были только апплетами, но в них была введена возможность использования сжатия pack200. С 2010 года судьи давали только общую оценку, которая нормализовалась перед усреднением. Также существовала отдельная система голосования сообщества, в которой у каждого избирателя было 50 очков (25 до 2013 года) для распределения между играми, с ограничением в 5 очков для любой игры. С 2013 года у избирателей есть возможность добавить короткое предложение для обратной связи.