First

SourceAuthor: Nate879
Website:Link
Language: C

I promised I would review all of the entries, so here goes.

Not much to say about this one, it is a tech demo of what can be done in 1KB of source code; you can basically walk around the map and kill orcs. There is no score nor winning condition, the author said he may enhance it a bit later on.

After killing all orcs

Gameplay: None
Technical Highlights: Not really more than walk on the map, but try to do it yourself! 🙂

First

SourceIt’s Extremely Dark
Author: Deveah
Location: Usenet Post, Pastie Snippet
Language: Freebasic

It’s extremely dark, you can’t even see yourself.

With each step you take, you are likely to be eaten by a grue, or may be eat a grue.

You stumble around the dungeon aimlessly, bumping into walls and blindly hacking through angry mobs, trying to find the stairs, right?

so dark...

… or may be this is just an illusion, and this entry is just not what you expected, eh? 😀

A joke or not, Deveah’s entry makes us wonder what a roguelike really is… do you wander around looking for enemies, artifacts and highscore or do you just advance through, hoping for a sane victory? your rush for blood and gold diminishes your odds of surviving; this is what this game is about, this is what roguelikes are mostly about.

yahoo!

(If you are lost, just read the scroll in the darkness)

Gameplay: Just play with the odds like you are used to
Technical Highlights: Nice play!

First

SourceC# <1kB RogueLike v3
Author
: Nick Coughlin
Website: Link
Language
: C#

After recovering the amulet of Yendor, Rodney itself appears and punishes Slash, throwing him into a the Void Infinite Dungeon of the Minotaurs. Here he must get the one sacred last piece of gold, his last hope of survival.

Winning...

This is more of a tech demo than a game; the world is generated on the fly, monsters are too predicable and come in too small quantities to pose a challenge, there is no score either.

Gameplay: None
Technical Highlights: World generation on the fly

First

Oh Rats!
Author
:
BlackEye
Website:
Link
Language
:
FreeBasic

Oh… RATS!

Here and everywhere… after being thrown to the dungeons by the evil Vizier Jaffar you must seek a way out, will there be a way out?

As you climb the dungeon more and more ravenous rats appear. Where did so many rats come from?

These rats will stop at nothing to take a bite out of you, even resorting to cannibalism if the situation is right…  is this some kind of terrible dark spell? Your fate is sealed… will you kill enough rats to meet your archenemy?

OMFG, Rats!

A noble death

Oh Rats! is all about planning your first moves once you get a new level. The game becomes interesting from level 5 onward, when you are swarmed by rats and must be wise in your moves to take the less possible damage.  It is fun and challenging, and having no winning condition but scoring makes it open and interesting.

Gameplay: Challenging, Critical moments
Technical Highlights: Lots of enemies

First

Source Code IncludedBerserker Troll Hunt
Author
: konijn_
Website: http://hellband.googlepages.com/1kb.html
Language: Javascript

Rage! that is all you feel deep inside your mind. Your head burns at the memory of your town being brought to ashes by the legions of nasty trolls that just appeared. Your parents are dead and your are left defenseless, a child amidst a wrecked town full of monstruous trolls.

What is this you feel inside your veins… why does your mind wanders in visages of chaos and destruction… you are just a harmless child aren’t you?

You open your eyes, a Troll is next to you, tenths more are behind, You open your eyes again. Blood everywhere, your rampaging punch stuck into a rock, all Trolls destroyed without a chance.

Rage! that is all you feel deep inside your mind.

Winning

Berserker Troll Hunt is a simple game, (you can’t lose once you get the hang out of it, except if the RNG spawns you next to a Troll, YASD). Move around with the numpad, use ‘b’ + direction to berserk and destroy all Trolls in your path (this only works when a Troll is next to you). Destroy all the trolls and score one point, let them bash you and they get one. The bloody vicious circle never ends.

As a technically achievement, well, javascript is not specially well suited for a roguelike, specially a “small” roguelike, so it is impressive to me. Also it will run with recent versions of Firefox and Exploder.

Gameplay: Repetitive, No Score Goal (A turn count would have sufficed)
Technical Highlights: Lots of enemies chasing you, non-traditional language, non-trivial skill

First

Crunched Source CodeOoooorrrrcs!
Author
: Jakub Debski
Website: http://www.alamak0ta.republika.pl/orcs.html
Language: C++

Grievously wounded after retrieving the famed +3 Crystal Crown of the Orc from the perilous orcish mines you find yourself trapped in a valley of death. Millions of orcs of all kinds to the west, a moonlit darkness to the west into the lands of man. It is time to run, you are being hunted!

A basic, yet challenging game, Ooooorrrrcs puts you in the place of an unlucky adventurer who must go west, west and beyond. The horde of grizzly orcs currently pushes forward (thus you dont even Dare to go back), your motion is all forward by reflex. Some power up herbs and some scattered orc weaklings will let you build your forces and phasedoor yourself into freedom, step by step your blood stains the ground and your strengths fade away. Will you make it?

I will survive

After THE-HECK-OF-A-LONG run, the brave hero: Slash the Orc Slasher, survived, got to his hometown and stored the valuable artifact on his collection!

Gameplay: Challenging, addictive
Technical Highlights: Non trivial combat, map scrolling to the left, spells, collision resolution.

First

So, the First <1KBRL Challenge is over.

A total of 14 entries were produced

You may think it is pointless to make efforts to work a game on less than 1KB of source code nowadays… if i am a bit possitive, the best you could think would be “hey, it’s fun for the developer… let him be!” or “well, thats a pretty cool way to waste whatever work could go into a REAL game”.

I have news for you, and I can’t really explain it. The entries you are about to be reviewed have something, may be having such restriction in the quantity of code to create “playability” makes the developer of the game do what really matters into the game, no place for plot, no place for the simplest of effects, no place for munchkinism, no place for cool, complex algorithms or a full-live-world simulation. It is all about The Game.

I didn’t have the pleasure of living through the ages of classic gaming, but I think this is as close as I can get. My best guess (and great hope) is things were like this before. It is a shame everything has changed so much (natural de-evolution, one day soon we will be able to play games like these <1KBRLs inside a “real”, photorealistic videogame).

Play the games, you will really enjoy them. Also, be sure to tell the author he rocks, and fight with your friends for the highest score or equivalent. Use the roguetemple forums when needed.

So, without further ado, I announce the start of the 1st <1KBRL Challenge reviewing cycle, which start with an really interesting entry: Ooooorrrrcs!

First

The crazy “denziens” of rec.games.roguelike.development have announced the new, sadistic challenge of writing a roguelike in less than 1KibiBytes of source code!

Here goes some samples, proceed to rgrd to see more and submit yours!:

LUCK by “yours truly” (Java)

import sz.csi.jcurses.JCursesConsoleInterface;public class X{static
int xr,yr,xp,yp,xs,ys,xo,yo,v,r,i,e=300,s;static boolean map[][]=new
boolean[20][20];static int r(){return (int)(Math.random()*19.0d);}public
static void main(String[] p){while (i < 20){map[r()][r()]=true;i++;}c.cls();
p(21,1,”Slash1KBRL - LUCK :)!”);o:while(true){if(xo==xp&yo==yp)
{xo=21+v;yo=3;r++;}if(xs==xp&ys==yp){xs=r();ys=r();xp=r();yp=r();
xo=r();yo=r();v++;}yr=0;while(yr<20){xr=0;while(xr<20){p(yr,
xr,map[xr][yr]?”#”:”.”);xr++;}yr++;}p(2,22,”L”+v+” R”+r+” E”+e+”  “);
p(xp,yp,”@”);p(xs,ys,”>”);p(xo,yo,”)”);switch(c.inkey().code){case 112:
yp–;break;case 108:yp++;break;case 90:xp–;break;case 93:xp++;
break;case 40:break o;}e–;if(e==0){p(2,23,”LOST”);break o;}if(v==20)
{s=10-r;if(s>0)p(2,23,”LOSER”);else p(2,23,”WON “+s);break o;}}}
static JCursesConsoleInterface c = new JCursesConsoleInterface();
static void p(int x,int y,String m){c.print(x, y, m);}}

Pink Warrior, by Jurgen Lerch

PROGRAM p;USES Graph;CONST c=319;l=199;f=15;VAR
k:CHAR;d:ARRAY[0..c,0..l]OF SMALLINT;w,z:ARRAY[0..11]OF SMALLINT;
n,u,v,x,y:SMALLINT;BEGIN x:=f;y:=30001;InitGraph(x,y,'');
FOR x:=0 TO c DO BEGIN d[x,0]:=f;d[x,l]:=f END;FOR y:=0 TO l DO BEGIN
d[0,y]:=f;d[c,y]:=f END;FOR n:=0 TO 3456 DO d[Random(c),Random(l)]:=f;
FOR n:=0 TO 11 DO BEGIN w[n]:=Random(c);z[n]:=Random(l) END;
FOR x:=0 TO c DO FOR y:=0 TO l DO PutPixel(x,y,d[x,y]);
x:=160;y:=100;PutPixel(x,y,13);REPEAT Read(k);PutPixel(x,y,0);
CASE k OF'8':IF d[x,y-1]<>f THEN DEC(y);'2':IF d[x,y+1]<>f THEN INC(y);
'4':IF d[x-1,y]<>f THEN DEC(x);'6':IF d[x+1,y]<>f THEN INC(x);
END;FOR n:=0 TO 11 DO IF(x=w[n])AND(y=z[n])THEN w[n]:=-1;
PutPixel(x,y,13);FOR n:=0 TO 11 DO BEGIN u:=w[n];v:=z[n];IF u>0 THEN
BEGIN PutPixel(u,v,0);CASE Random(4)OF 0:IF d[u,v-1]<>f THEN DEC(z[n]);
1:IF d[u,v+1]<>f THEN INC(z[n]);2:IF d[u-1,v]<>f THEN DEC(w[n]);
3:IF d[u+1,v]<>f THEN INC(w[n]);END;PutPixel(w[n],z[n],4);IF(w[n]=x)
AND(z[n]=y)THEN k:=#27;END END;UNTIL k=#27;CloseGraph;END.

Energon Absorber by Numeron

class M{static char m[][]=new char[10][10];static int 
k,X=5,Y=5,x,y,a,b,s,t,e=10;public static void main(String[] A)throws 
Exception{for(;y<10;y++)for(x=0;x<10;x++){if(m[x][y]!='e'){m[x] 
[y]='.';if(Math.random()<.1&&e>0&&!(x==5&&y==5)){m[x] 
[y]='e';e--;}}if(x==9&&y==9&&e>0)x=y=0;}m[X][Y]='@';while(true) 
{e=0;for(y=0;y<m[0].length;y++){for(x=0;x<m.length;x++) 
{System.out.print(m[x][y]);if(m[x][y]=='e')e+ 
+;}System.out.println();}if(e!=0)System.out.println("t:"+t+"  e:"+e 
+"n");else System.out.println("U Win! t:"+t 
+"n");k=System.in.read();if(e==0)System.exit(0);m[X] 
[Y]='.';if(k==50&&Y!=9){Y++;if(e!=0)t++;}if(k==52&&X!=0){X--;if(e!=0)t+ 
+;}if(k==54&&X!=9){X++;if(e!=0)t++;}if(k==56&&Y!=0){Y--;if(e!=0)t+ 
+;}m[X][Y]='@';}}}