Java 4K Game Programming Contest

Last updated

The Java 4K Game Programming Contest, also known as Java 4K and J4K, is an informal contest that was started by the Java Game Programming community to challenge their software development abilities.

Contents

Concept

The goal of the contest is to develop the best game possible within four kilobytes (4096 bytes) of data. While the rules originally allowed for nearly any distribution method, recent years have required that the games be packaged as either an executable JAR file, a Java Webstart application, or a Java Applet, and now only an applet.

Because the Java class file format incurs quite a bit of overhead, creating a complete game in 4K can be quite a challenge. As a result, contestants must choose how much of their byte budget they wish to spend on graphics, sound, and gameplay. Finding the best mix of these factors can be extremely difficult. Many new entrants believe that impressive graphics alone are enough to carry a game. However, entries with more modest graphics and focus on gameplay have regularly scored higher than such technology demonstrations.

Prizes

When first conceived, the "prize" for winning the contest was a bundle of "Duke Dollars", a virtual currency used on Sun Microsystems' Java forums. This currency could theoretically be redeemed for physical prizes such as watches and pens. The artificial currency was being downplayed by the introduction of the 4K contest, thus leaving no real prize at all. While there has been some discussion of providing prizes for the contest, it has continued to thrive without them.

Spin-offs

Following the creation of the Java4K contest, spin-offs targeting 8K, 16K, or a specific API like LWJGL have been launched, usually without success. While there has been a great deal of debate on why the Java 4K contest is so successful, the consensus from the contestants seems to be that it provides a very appealing challenge: not only do the entrants get the chance to show off how much they know about Java programming, but the 4K size helps "even the odds" compared to other competitions where the use of artists and musicians can easily place an entry far ahead of the others. The contestants seem to believe that 4K is the "sweet spot" that balances what an individual can do. Because of the tricks developed for the 4K contest, it's believed that adding even a single kilobyte would open the doors to far more complex games that are beyond the ability of a single developer.

History

Contest creation

The Java 4K Game Programming Contest came into being on August 28, 2002, when a user by the handle of codymanix posted the suggestion to the Sun Microsystems Java forums. After a bit of argument over how feasible a game would be in 4K, a user by the handle of mlk officially organized the contest on August 29, 2002.

Slowly but surely, entries began to trickle in for the contest. The majority of these entries were Applets, as it was believed that separating the images from the class files would help reduce the size of the file. Future contests would see a reversal of this as game creators utilized compressed JAR files to reduce the size of their code.

One of the most interesting points about the first contest was that non-game applications were allowed. One contestant produced a telnet server in 4K of Java. However, this artifact of the first competition did not survive, and was most likely allowed because of the loose handling of the first contest. While no winner was officially declared the first year, the 4K Racing game submitted by Robin Chaddock (aka Abuse/AbU5e) was generally agreed upon to have "won".

Successive competitions became more and more organized, with many of the contestants pitching in to handle administration and promotion of the contest. All contests received official judging, with the method of judging being refined each year. By the third year, the contest was officially transitioned over to the JavaGaming.org forums. The fourth year saw the introduction of the JavaUnlimited website as the official repository for the contest. The site had been used the previous year to track entries that had been posted to the official threads on JavaGaming.org and forum.java.sun.com.

Evolution throughout the years

Heavy use of pre-rendered sprites, transparency, and sound effects defined this year's entries. The strongest contenders were Defender 4000, Abuse's Shooty-Transparenty Game, and Space Invaders. However, Space Invaders' lack of sound caused it to fall behind the other two entries which were competing hard to pack in the most technology and gameplay.

Of particular interest were the different tactics used by the two entries. For graphics, Abuse used precious few high color images which he then applied transparency and rotation to at runtime. Jbanes, on the other hand, developed an imaging packing technique that allowed him to store twenty-one single-color images. Rather than applying rotation and transparency, he chose to use his larger number of images to produce pre-rendered animations. For sound, Abuse used clear chimes and other instruments from the MIDI soundbank. Jbanes chose to use runtime-generated PCM sound that sounded more like video games of the late 1970s and early 1980s.

Both approaches had their merit, so it's difficult to say what finally swayed the judge's opinion. What is known is that Year 2 was the last year that sound would be a deciding factor in the games. In future years, the bytes allocated to sound were reallocated to other functions such as 3D graphics, levels, and bosses.

Year 2 was the first year that official judging took place. Unlike subsequent years, the only judge was the contest organizer, mlk. After careful consideration, the judge decided to award Prong with the Best Technical Achievement Award, and declared Defender 4000 as the overall winner. He scored each game but did not use this score in determining the winner. Abuse's Shooty-Transparenty Game actually scored one point higher than Defender 4000.

Year 3 was defined by a major influx of professional Java developers, 3D graphics in the games, and a gradual transition to the JavaGaming.org forums. JavaUnlimited also began mirroring the competitors in a permanent archive. While the mirror started as a manually edited HTML page, it eventually grew into a complete content management site with a database back-end.

Judging this year was handled by a panel of three volunteers, professional developers who were not participating in the contest. One of the volunteer judges was Chris Melissinos, Sun's Chief Gaming Officer. The scoring method used was based on the method that mlk had applied the previous year, but was updated to allow the judges to give awards for exceptional gameplay or technological achievements.

While most of the entries were of exceptional quality, T4XI by Kevin Glass (aka kevglass) was chosen as the winner. Besides having extremely original gameplay, it provided exceptional graphics through a pseudo-3D effect that gave perspective to the buildings.

A minor amount of controversy erupted due to entries that judges had failed to score. Entries like JM4K and IsOlation Net were either too complex for the judges to launch, or contained networking components that they couldn't test. After this year's competition, the rules were changed to require that games be self-executable. In addition, contestants were warned in advance about the difficulties in judging networked games.

Year 4 marked a period of transition toward making gameplay a priority over graphics and technical accomplishment. Many of the games were fairly simple in design, but aimed to make up for it with engrossing or addictive gameplay.

For the first time in the contest's history, a special forum was set up on JavaGaming.org to host the contest. In addition, the JavaUnlimited.net site became the official site for entries and judging. While judging was originally going to be handled through JavaUnlimited by the Javagaming.org community, pushback from several members resulted in falling back on a more traditional judging system.

After the results came back, Miners4K by Markus Persson was declared the winner. Second place was given to Kevin Glass's Roll4K, and third place was given to Goomba4K by Woogley.

The results of Year 4's judging were significantly better than those of Year 3, in part due to the rule changes which forced the entries to conform to easily executable formats. However, this did not eliminate judging issues. Some controversy erupted when two entries (Xero and JSquares) were given lower scores due to technical glitches. Several recommendations were posed to prevent this from happening in future contests, including trimmed mean scoring and verification of judge's scoring before acceptance.

Year 5 launched in December 2006 and lasted until March 1, 2007. It saw some great games, with much less focus on 3D and pseudo-3D graphics. Most games were 2D, with Pipe Extreme and Trailblazer being the only notable exceptions (one could argue that a few others are 3D as well, but distinctly less so).

Just like year 4, a forum was hosted on JavaGaming.org to host the contest. JavaUnlimited's system was used for hosting the games again, being considered the official site for the entries. A site update was planned for JavaUnlimited, but did not occur. Originally, the plan was to have a public vote and a judging panel. One month after the contest closing date the organizer without further explanation dropped the judging panel, which caused some unrest in the forums, accusations of censorship, locked threads and two participants withdrawing their entries from the contest (bringing the total down from 65 to 58). [1] Voting was limited to javagaming.org forum participants, and within the allotted time, 25 people voted. About two months after the contest closing date, the official results were announced.

The winner was Metro4k by Blaine Hodge, followed by Jojoh's Roadfourk and Ulf Ochsenfahrt's aichess4k. Metro4k is a Sim City-like city simulation game, Roadfourk a racing game, and aichess4k a chess game featuring an AI opponent.

Unlike previous years, year 5 saw no game take the "last place", because the approval voting system used only gave votes to around half the games.

Year 6 launched in December 2007 and lasted until March 1, 2008. Notably less games were submitted than in 2006 and 2007 - only 21 in total. Most of the games were 2d, with a total of 3 games using 3D or pseudo-3D graphics.

The competition was hosted on a new website, Java4k.com. Games from previous years can also be found on the new website. Before the launch of the contest, woogley had announced his withdrawal from arranging contest. The task of administrating the contest and hosting the site was therefore taken over by Arni Arent (appel) and Joakim Johnsson (jojoh). Just like previous years, there was also a dedicated forum at Java-Gaming.org.

The games were then thoroughly reviewed by five judges; Arni Arent, Joakim Johnsson, Kevin Glass, Matt Hicks and Chris Melissinos. They reviewed each game in three categories; Overall, Technical and Presentation. The results were announced on March 28, 2008.

Year 7 launched in December 2008 and lasted until February 28, 2009 (extended from an original closing date of January 31). The number of games submitted returned to previous levels, with 67. This year introduced a requirement (later relaxed, but still followed by most games) to use JNLP deployment, and as a result had a mix of applications and applets.

Other technical first for this year were the submission of word games and a game which used the microphone. Word Twister used built-in levels, and Scr4mble used reflection to grab class names from the J2SE API and split them into words to build a dictionary. Frequent Flier was controlled by the pitch sung into the mic.

The games were reviewed by five judges: Arni Arent, Chris Melissinos, Matt Hicks, Eli Delventhal, and Mark DeLoura. As previously, they reviewed in the three categories of Overall, Technical, and Presentation.

There was minor controversy over the scoring because some judges were unable to play some games. Their scores for those games were initially 0 and counted against those games when the scores were first released on April 1, but the averages were changed to discount these 0 scores three hours later.

Following problems with Webstart in 2009, the 2010 and later contests were applets-only, but it did introduce the option of using pack200 compression. Since 2010, judges gave only an overall score, which was normalised before averaging. There was also a separate community voting system where each voter had 50 points (25 before 2013) to allocate between the games, with a limit of 5 points to any game. Since 2013, there is the option for voters to add a short sentence for feedback.

Results

YearDatesEntriesJudgesRankingsLinks
2003Unknown-No official judging.
2004Unknownmlk
  • Winner: Defender 4000
  • Best Technical Achievement Award: Prong
  • Best score: Abuse's Shooty-Transparenty Game
200550 Chris Melissinos
and others
  • Winner: T4XI by Kevin Glass
200655kingaschi, borkert,
Malohkan, nonnus29,
peggy, shelton, tim

Gold medal with cup.svgMiners4K by Markus Persson
Silver medal with cup.svgRoll4K by Kevin Glass
Bronze medal with cup.svgGoomba4K by Woogley

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

Gold medal with cup.svgMetro4k by Blaine Hodge
Silver medal with cup.svgRoadfourk by Jojoh
Bronze medal with cup.svgaichess4k by Ulf Ochsenfahrt

Overall ScoreTechnical ScorePresentation Score
2008December 1, 2007
March 1, 2008
21Arni Arent, Joakim Johnsson,
Kevin Glass, Matt Hicks,
Chris Melissinos

Gold medal with cup.svgSpiderball4k by Måns Olson
Silver medal with cup.svgPinball 4K by Tom-Robert Bryntesen
Bronze medal with cup.svgt4kns by Markus Persson

Gold medal with cup.svgZ4rch by Simon
Silver medal with cup.svgMini Golf by Tim Foden
Bronze medal with cup.svgPinball 4K by Tom-Robert Bryntesen

Gold medal with cup.svgt4kns by Markus Persson
Silver medal with cup.svgSpiderball4k by Måns Olson
Bronze medal with cup.svgwar4k by Michael Bliem

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

Gold medal with cup.svgLeft 4k Dead by Markus Persson
Silver medal with cup.svgBridge4k by Måns Olson
Bronze medal with cup.svgPixeloids4k by Måns Olson

Gold medal with cup.svgBridge4k by Måns Olson
Silver medal with cup.svgPixeloids4k by Måns Olson
Bronze medal with cup.svgLeft 4k Dead by Markus Persson

Gold medal with cup.svgLeft 4k Dead by Markus Persson
Silver medal with cup.svgRed Baron 4K by Marcin Kochanowski
Bronze medal with cup.svgNiGHTS 4k by Orangy Tang

Judges' votingCommunity voting
2010December 1, 2009
February 28, 2010
34Arni Arent, Eli Delventhal,
Kevin Glass

Gold medal with cup.svgBurning Man by SquashMonster
Silver medal with cup.svgGTA4K by Simon
Bronze medal with cup.svgFortressFall4k by soothsayer

Gold medal with cup.svgBurning Man by SquashMonster
Silver medal with cup.svgGTA4K by Simon
Bronze medal with cup.svgFortressFall4k by soothsayer

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

Gold medal with cup.svg4Kube 3D by Erik Byström
Silver medal with cup.svgStick Shift 4k by pjt33
Bronze medal with cup.svgLegend of Zelda 4K by zeroone

Gold medal with cup.svg4Kube 3D by Erik Byström
Silver medal with cup.svg4Kanabalt by Kevin Glass
Bronze medal with cup.svgLegend of Zelda 4K by zeroone

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

Gold medal with cup.svgThe Little Scientist by Marwane Kalam-Alami
Silver medal with cup.svgKobold Tournament 4k by Damocles
Bronze medal with cup.svgDi4klo by StephR

Gold medal with cup.svgLaser Pinball by zeroone
Silver medal with cup.svgSnake on a Plane by Kevin Glass
Bronze medal with cup.svgPORT4K by Erik Byström

2013December 1, 2012
February 28, 2013
68Arni Arent, Drabiter
Roi Atalla

Gold medal with cup.svgFlywrench4k by Mans Olson
Silver medal with cup.svgRainbow Road by zeroone
Bronze medal with cup.svgFarmer John and the Birds 4k by Grunnt

Gold medal with cup.svgRainbow Road by zeroone
Silver medal with cup.svgPlants 4K Zombies by teletubo
Bronze medal with cup.svgtiny_world by dapy

2014December 1, 2013
February 28, 2014
24Arni Arent, Jimmt
teletubo

Gold medal with cup.svgIn The Dark 4K by Gef
Silver medal with cup.svgRaid On Java 4K by Felix
Bronze medal with cup.svgMyPrecious by ApoGames

Gold medal with cup.svgIn The Dark 4K by Gef
Silver medal with cup.svgSokobond4k by ApoGames
Bronze medal with cup.svgMyPrecious by ApoGames

Related Research Articles

<span class="mw-page-title-main">Simple DirectMedia Layer</span> Free software multimedia library

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

<i>SimCity 3000</i> 1999 video game

SimCity 3000 is a city building simulation video game released in 1999, and the third major installment in the SimCity series. It was published by Electronic Arts (EA) and developed by series creator Maxis. It was released for Microsoft Windows, Macintosh, and, through an arrangement with Loki Games, Linux.

A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is similar to the term "software engine" used in the software industry.

X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).

<i>Railroad Tycoon</i> Video game series

Railroad Tycoon is a business simulation game series. There are five games in the series; the original Railroad Tycoon (1990), Railroad Tycoon Deluxe (1993), Railroad Tycoon II (1998), Railroad Tycoon 3 (2003), and Sid Meier's Railroads! (2006).

A game programmer is a software engineer, programmer, or computer scientist who primarily develops codebases for video games or related software, such as game development tools. Game programming has many specialized disciplines, all of which fall under the umbrella term of "game programmer". A game programmer should not be confused with a game designer, who works on game design.

Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or more of the following areas: simulation, computer graphics, artificial intelligence, physics, audio programming, and input. For multiplayer games, knowledge of network programming is required. In some genres, e.g. fighting games, advanced network programming is often demanded, as the netcode and its properties are considered by players and critics to be some of the most important metrics of the game's quality. For massively multiplayer online games (MMOGs), even further knowledge of database programming and advanced networking programming are required. Though often engaged in by professional game programmers, there is a thriving scene of independent developers who lack a relationship with a publishing company.

<span class="mw-page-title-main">Java 3D</span> Java 3D graphics API

Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs on top of either OpenGL or Direct3D until version 1.6.0, which runs on top of Java OpenGL (JOGL). Since version 1.2, Java 3D has been developed under the Java Community Process. A Java 3D scene graph is a directed acyclic graph (DAG).

<i>Battletoads/Double Dragon</i> 1993 video game

Battletoads/Double Dragon is a 1993 beat 'em up developed by Rare and published by Tradewest. It was originally released for the Nintendo Entertainment System and later ported to the Mega Drive/Genesis, Super NES, and Game Boy. Retro-bit Publishing has re-released the 8-bit NES version in early 2022 with plans to release the 16-bit versions later this year.

<i>3D Lemmings</i> 1995 puzzle video game

3D Lemmings is a 1995 puzzle video game developed by Clockwork Games and published by Psygnosis. The gameplay, like the original Lemmings game, requires the player to lead all the lemmings to their exit by giving them the appropriate "skills". It was the first Lemmings game to be rendered in 3D. It was released for DOS, PlayStation, and Sega Saturn.

<i>Super Star Wars: The Empire Strikes Back</i> 1993 video game

Super Star Wars: The Empire Strikes Back, also known as Super Empire Strikes Back, is a 1993 action video game developed by LucasArts and Sculptured Software and published by JVC Musical Industries for the Super Nintendo Entertainment System. It is based on the 1980 film The Empire Strikes Back and is the sequel to Super Star Wars. The game was followed by a sequel, Super Star Wars: Return of the Jedi in 1994. Unlike its predecessor, Nintendo wasn’t involved in its publishing. The game was re-released on the Wii's Virtual Console in North America on August 24, 2009 and in the PAL regions on October 2, 2009, alongside the other games in the Super Star Wars series.

<i>Quake II</i> engine Game engine

The Quake II engine is a game engine developed by id Software for use in their 1997 first-person shooter Quake II. It is the successor to the Quake engine. Since its release, the Quake II engine has been licensed for use in several other games.

<i>Threads of Fate</i> 1999 video game

Threads of Fate is an action role-playing game developed and published by Square for the PlayStation, released for Japan in 1999 and for North America in 2000. The story is split between two protagonists in search of an ancient relic said to grant any wish; the amnesiac Rue who seeks to revive a dead friend, and the banished princess Mint who dreams of conquering the world. Gameplay focuses on action-based combat while exploring dungeon levels featuring minor platforming elements.

Wintermute Engine (WME) is a set of software tools and a runtime interpreter primarily designed for creating and running graphical adventure games.

<i>Quest for Glory V: Dragon Fire</i> 1998 video game

Quest for Glory V: Dragon Fire is the fifth and final game in the Quest for Glory computer game series by Sierra FX, a former "sub brand" of Sierra On-Line. Unlike the first four games, Dragon Fire is primarily an action role-playing game with some elements of graphical adventure.

<i>Spider: The Video Game</i> 1997 video game

Spider: The Video Game, is a 2.5D platform game developed by Boss Game Studios and published by BMG Interactive for the PlayStation. The player takes the role of a cybernetic spider, within which the mind of its creator, Dr. Michael Kelly, has been implanted.

A variety of computer graphic techniques have been used to display video game content throughout the history of video games. The predominance of individual techniques have evolved over time, primarily due to hardware advances and restrictions such as the processing power of central or graphics processing units.

<i>Line of Fire</i> (video game) 1989 video game

Line of Fire is a first-person light gun shooter game developed by Sega and released for arcades in 1989. It was released with two arcade cabinet versions, a standard upright and a sit-down cockpit, both featuring two positional guns. The cockpit design allows the player(s) to sit down while playing the game, while having two-handed machine guns, controlled by a potentiometer-controlled gun alignment software system. The game follows a two-man commando unit as they try to escape from a terrorist facility after seizing a prototype weapon.

The Intel Level Up was a series of annual video game competitions organised by Intel to support independent video game development, with winning games receiving monetary rewards in addition to the award. The first competition, titled the Intel Game Demo Contest, was held in 2006. It was restarted in 2009 as the Intel Level Up Game Developer Contest. The competition has not been held after 2017.

References

  1. "JavaGaming Forum" . Retrieved 2007-04-30.