Jump to content

Java 4K Game Programming Contest

From Alfawiki
Adapted from the English Wikipedia article Java 4K Game Programming Contest, available under CC BY-SA 4.0Updated 9 August 2025
Java 4K Game Programming Contest
Company typeInformal challenge
IndustryVideo game development
FoundedAugust 29, 2002; 24 years ago (2002-08-29)
Foundermlk, codymanix (proposed)
Area served
Global
Key people
mlk, Arni Arent, Joakim Johnsson, Kevin Glass, Chris Melissinos
ProductsJava games limited to 4 kibibytes
Websitejava4k.com

The Java 4K Game Programming Contest (often called Java 4K or J4K) is an informal challenge created by the Java game development community, aimed at encouraging programmers to build games within strict size constraints.

Concept

Participants are tasked with crafting the most compelling game possible using only four kibibytes (4096 bytes) of data. Recent guidelines specify that submissions must be packaged as executable JAR files, Java Webstart applications, or exclusively as Java Applets.

Given the inherent overhead of Java class files, fitting a full game into 4K bytes is a significant challenge. Developers must carefully distribute their limited byte allowance among graphics, audio, and gameplay elements. Although visually striking graphics can capture attention, entries that prioritize engaging gameplay over elaborate visuals frequently achieve higher rankings.

Prizes

At the contest’s inception, winners were awarded "Duke Dollars," a virtual currency used on Sun Microsystems’ Java forums that could be exchanged for tangible items such as watches and pens. Over time, the importance of this currency diminished alongside the contest’s growing popularity, and formal prizes were discontinued. Nevertheless, the competition continues to flourish through active community participation.

Spin-offs

Several offshoot contests have appeared, targeting larger size limits like 8K or 16K or focusing on specific APIs such as LWJGL, but none have matched the popularity of Java 4K. Participants attribute Java 4K’s enduring appeal to its balanced difficulty—demonstrating Java proficiency while ensuring a level playing field by imposing tight resource restrictions. The 4K limit is viewed as ideal for solo developers; even a modest increase in size could allow for more complex projects that exceed individual capabilities.

Contest creation

The Java 4K Game Programming Contest was launched on August 28, 2002, when the user codymanix proposed it on the Sun Microsystems Java forums. Following discussions about its feasibility, mlk officially organized the contest on August 29, 2002.

Early submissions were predominantly Applets because separating image assets from class files was believed to reduce overall file size. Later competitions transitioned to compressed JAR files to improve size efficiency.

Interestingly, the inaugural contest allowed non-game applications; one entry was a 4K Java telnet server. No official winner was declared that year; however, Robin Chaddock’s (Abuse/AbU5e) 4K Racing game was widely regarded as the standout entry.

Subsequent editions became more formalized with greater community involvement in management and promotion. Judging procedures evolved annually. By the third year, the contest had moved to the JavaGaming.org forums; in its fourth year, the JavaUnlimited website was introduced as the official platform for hosting entries and tracking submissions across multiple forums.

Evolution throughout the years

  • Year 2 (2004)

This edition saw extensive use of pre-rendered sprites, transparency effects, and sound integration. Leading titles included Defender 4000, Abuse's Shooty-Transparenty Game, and Space Invaders. However, Space Invaders' absence of sound caused it to trail behind competitors focused on maximizing both technology and gameplay depth.

Notably, Abuse utilized a limited number of high-color images combined with runtime transparency and rotation effects. Meanwhile, Jbanes developed an image packing method that stored twenty-one single-color images for pre-rendered animations. For audio, Abuse employed MIDI instruments whereas Jbanes generated PCM sounds at runtime reminiscent of late 1970s video games.

Year 2 marked the final time sound influenced judging criteria; subsequent contests shifted focus away from audio toward enhancements in 3D graphics, level design, and boss encounters. This year also featured the first official judging by organizer mlk, who awarded Prong Best Technical Achievement and declared Defender 4000 overall winner despite Abuse's Shooty-Transparenty Game achieving a slightly higher score.

  • Year 3 (2005)

A surge of professional Java developers participated this year alongside a trend toward incorporating 3D graphics. The competition gradually relocated to JavaGaming.org forums while JavaUnlimited began archiving entries using a database-driven content system.

A panel of three volunteer professional judges—including Sun’s Chief Gaming Officer Chris Melissinos—evaluated submissions using an evolved scoring system that recognized outstanding gameplay or technical accomplishments.

Kevin Glass’s T4XI won first place due to its innovative gameplay and pseudo-3D building perspectives. Some controversy arose when complex or network-dependent entries like JM4K and IsOlation Net went unscored because judges could not effectively test them. As a result, future rules mandated self-contained executable games and discouraged networked submissions.

  • Year 4 (2006)

This year emphasized gameplay quality over graphical or technical complexity. Many entries were simple yet focused on delivering engaging player experiences.

For the first time, a dedicated forum on JavaGaming.org hosted contest discussions while JavaUnlimited.net served as the official entry submission and judging site. Although community judging was planned, resistance led organizers to retain traditional judging methods.

The top prize went to Markus Persson’s Miners4K, followed by Kevin Glass’s Roll4K in second place and Woogley’s Goomba4K in third. Improvements in judging arose from enforcing executable submission formats; however, technical issues affected scores for titles like Xero and JSquares, prompting suggestions such as using trimmed mean scoring and verifying judge scores for accuracy.

  • Year 5 (2007)

Held from December 2006 through March 2007, Year 5 featured mostly two-dimensional games with limited emphasis on 3D visuals. The contest continued on JavaGaming.org forums with JavaUnlimited hosting entries.

Initially planned with both public voting and judging panels, the judging panel was unexpectedly removed after submissions closed, causing unrest among forum members and leading two participants to withdraw from a field of 65 entries.

Voting was restricted to forum members; only twenty-five cast votes during the allotted period. Blaine Hodge’s city-building simulation Metro4k claimed first place, followed by Jojoh’s racing game Roadfourk and Ulf Ochsenfahrt’s AI chess title aichess4k. Unlike previous years, no game received "last place" due to an approval voting system that allowed voters to support approximately half of all entries.

  • Year 6 (2008)

From December 2007 through March 2008 submissions declined to twenty-one games dominated by two-dimensional designs with three featuring some form of three-dimensional or pseudo-3D graphics.

The competition moved to a new website—Java4k.com—which also archived previous contests’ entries. Following Woogley’s departure from administration duties, Arni Arent (appel) and Joakim Johnsson (jojoh) assumed contest management responsibilities. A dedicated forum remained active on Java-Gaming.org.

Five judges—Arni Arent, Joakim Johnsson, Kevin Glass, Matt Hicks, and Chris Melissinos—evaluated games across Overall Impression, Technical Merit, and Presentation categories. Results were announced on March 28, 2008.

  • Year 7 (2009)

Running from December 2008 until an extended deadline of February 28, 2009, submissions rebounded to sixty-seven games. A requirement for JNLP deployment resulted in a mix of applications and applets among entries.

Noteworthy innovations included word puzzle games utilizing built-in levels or API reflection as dictionaries (Word Twister, Scr4mble) as well as a microphone-controlled title (Frequent Flier).

Judges—Arni Arent, Chris Melissinos, Matt Hicks, Eli Delventhal, and Mark DeLoura—rated submissions across Overall Quality, Technical Execution, and Presentation categories. Initial scoring controversies emerged when some judges assigned zero scores for unplayable games; these zeros were later excluded from average calculations.

  • Years 8 (2010) through 12 (2014)

Due to complications with Webstart deployment in 2009, contests from 2010 onward accepted only applet submissions but introduced pack200 compression techniques. Judges provided normalized overall scores without separate category distinctions. Additionally, a community voting mechanism allocated points per voter with limits on how many points could be assigned per game; starting in 2013 voters were also able to submit brief comments alongside their votes.

Results

Year Dates Number of Entries Judges Awards Links
2003 Not documented - Judging was not conducted officially.
2004 Not documented mlk
  • Champion: Defender 4000
  • Top Technical Achievement: Prong
  • Highest Score: Abuse's Shooty-Transparenty Game
2005 50 Chris Melissinos and associates
  • Champion: T4XI by Kevin Glass
2006 55 kingaschi, borkert, Malohkan, nonnus29, peggy, shelton, tim

Template:GoldMedal Miners4K by Markus Persson
Template:SilverMedal Roll4K by Kevin Glass
Template:BronzeMedal Goomba4K by Woogley

2007 December 1, 2006 – March 1, 2007 57 - (voted by community)

Template:GoldMedal Metro4k by Blaine Hodge
Template:SilverMedal Roadfourk by Jojoh
Template:BronzeMedal aichess4k by Ulf Ochsenfahrt

Overall Rating Technical Rating Presentation Rating
2008 December 1, 2007 – March 1, 2008 21 Arni Arent, Joakim Johnsson, Kevin Glass, Matt Hicks, Chris Melissinos

Template:GoldMedal Spiderball4k by Måns Olson
Template:SilverMedal Pinball 4K by Tom-Robert Bryntesen
Template:BronzeMedal t4kns by Markus Persson

Template:GoldMedal Z4rch by Simon
Template:SilverMedal Mini Golf by Tim Foden
Template:BronzeMedal Pinball 4K by Tom-Robert Bryntesen

Template:GoldMedal t4kns by Markus Persson
Template:SilverMedal Spiderball4k by Måns Olson
Template:BronzeMedal war4k by Michael Bliem

2009 December 1, 2008 – February 28, 2009 67 Arni Arent, Chris Melissinos, Matt Hicks, Eli Delventhal, Mark DeLoura

Template:GoldMedal Left 4k Dead by Markus Persson
Template:SilverMedal Bridge4k by Måns Olson
Template:BronzeMedal Pixeloids4k by Måns Olson

Template:GoldMedal Bridge4k by Måns Olson
Template:SilverMedal Pixeloids4k by Måns Olson
Template:BronzeMedal Left 4k Dead by Markus Persson

Template:GoldMedal Left 4k Dead by Markus Persson
Template:SilverMedal Red Baron 4K by Marcin Kochanowski
Template:BronzeMedal NiGHTS 4k by Orangy Tang

Judges' Votes Community Votes
2010 December 1, 2009 – February 28, 2010 34 Arni Arent, Eli Delventhal, Kevin Glass

Template:GoldMedal Burning Man by SquashMonster
Template:SilverMedal GTA4K by Simon
Template:BronzeMedal FortressFall4k by soothsayer

Template:GoldMedal Burning Man by SquashMonster
Template:SilverMedal GTA4K by Simon
Template:BronzeMedal FortressFall4k by soothsayer

2011 December 1, 2010 – February 28, 2011 45 Arni Arent, Kappa, Riven

Template:GoldMedal 4Kube 3D by Erik Byström
Template:SilverMedal Stick Shift 4k by pjt33
Template:BronzeMedal Legend of Zelda 4K by zeroone

Template:GoldMedal 4Kube 3D by Erik Byström
Template:SilverMedal 4Kanabalt by Kevin Glass
Template:BronzeMedal Legend of Zelda 4K by zeroone

2012 December 1, 2011 – February 29, 2012 51 Arni Arent, Eli Delventhal, Drabiter, pjt33

Template:GoldMedal The Little Scientist by Marwane Kalam-Alami
Template:SilverMedal Kobold Tournament 4k by Damocles
Template:BronzeMedal Di4klo by StephR

Template:GoldMedal Laser Pinball by zeroone
Template:SilverMedal Snake on a Plane by Kevin Glass
Template:BronzeMedal PORT4K by Erik Byström


External links

References