Showing posts with label Desert Island. Show all posts
Showing posts with label Desert Island. Show all posts

Saturday, January 9, 2010

C-evo on netbook bug fixed

There's a bug in C-evo (the largest game I put on my 50 megabyte "desert island" disc) where it doesn't fully work on a netbook. In more detail, the diplomacy screen is nay-to-impossible to use on a screen only 600 pixels high because its top is cut off.

Since one rule I have for all software on my desert island disk is that it must work on a netbook [1], I have fixed this bug. Look at c-evo-netbook-fix.c and c-evo.netbook-fix.exe at samiam.org/cevo. This program, which is run in the same directory as cevo.exe, creates a cevo-netbook.exe with this bug fixed.

In more detail, the offending code is this line in Term.pas:

NatStatDlg.UserTop:=Screen.Height-PanelHeight-NatStatDlg.Height-8;

These are the variables used:

NatStatDlg: The window that pops up when you hit F9 (the nations window)

UserTop: Its default starting position, whose top is off the screen on a netbook unless we fix the above line.

Screen.Height: How high our screen is

PanelHeight: How high the "panel" on the bottom of the screen is

NetStatDlg.Height: How big the nations window is.

8: An eight pixel cushion so it looks a little nicer.

Since I don't have Delphi 4, I had to find the resulting compiled code the hard way. The offending -8 above is byte number 723333 in the code (as a positive 8, since the compiled code subtracts 8, instead of adding -8). Since C-evo is using the "subtract this 8-bit signed value with a value of 8" opcode here, we can make the number in question a negative number, resulting in the window being moved down instead of being moved up.

[1] The target netbook is a Intel N450-based netbook with a 1024x600 display.

Thursday, December 31, 2009

TCC: A C compiler in only 201k

One thing that has always irked me is that my Desert Island disc doesn’t have a C compiling suite—mingw (6 megs 7z compressed) is just too big. Well, the next version of Desert Island will have a C compiler.

Browsing around on the Wikipedia, I discovered the Tiny C Compiler, which is a full C compiler which is only 201k in size 7-zip compressed.

Needless to say, the next version of the Desert Island disk will include TCC. In addition, I am very tempted to tweak things to make sure Deadwood can compile and run in TCC.

Happy new year 2010 everyone! I will not post another blog entry until early next week, I mean year, I mean decade.

Thursday, December 10, 2009

New C-evo maps

I have made a couple of preset maps for C-evo today; both are very small maps. One is best for a 1-player game against the AI; there are a number of starting positions but the human has a better island. The other has three starting positions on a tiny map.

Also included is one of the “Total fairness” C-evo maps.

The main reason I have made these maps available is because I had a small file with just one map which was only about 800 bytes in size; since the Desert Island CD uses the ISO filesystem with a 2 kilobyte block size, making this file a little bigger (any size 2048 bytes or less) doesn’t increase the amount of space the file takes up on the disc.

It can be downloaded here:

http://samiam.org/cevo/

Saturday, December 5, 2009

I found a couple of websites with small games

Last night, I found a couple of places where I can look at and download small games.

The quickest way to find small games is to go to a website hosting files from the “demo scene”. One very significant part of the “demo scene” is coming up with tiny little demos or fully playable game whose .exe fits in a given size, such as 4k, 32k, or 96k. 4k gives you a very basic Tetris clone; 32k can give you a remarkable playable game in the vein of a 1980s or early 1990s Amiga or Atari ST game. 96k can give you a small but complete full game; there’s even a playable First-person shooter that fits in 96k (but, alas, can be finished in about 15 minutes).

The website I used to find demos was http://www.pouet.net/; the page which starts to list the tiny playable demos is at this link.

The one I like the most is a 32 kilobyte PacMan-style game. This got a few bad reviews when it first came out, but ignore them; the game has since been updated with sound added to the main game and the collision bugs people complained about have been fixed.

Some other notable demo games include a Tempest clone with 21st century graphics and sound, complete with configuration menus in only 96k (but the extensive eye candy sometimes makes gameplay a little difficult, and the screen moves around while playing in a way that can give you a headache), a 32k clone of a late 1980s platform shooting game which while beautiful and groundbreaking for its time, has hard-to-use controls, and a 32k clone of a late 1980s platform jumping game that, while amazing, is a very challenging game and the controls are a little awkward.

Another place to find tiny games is http://www.acid-play.com/, a listing of thousands of Windows freeware games. Finding diminutive games is a little harder at this site; there is no way to sort games by size. However, each game has its download size listed, which makes it possible to browse for small games.

There are a few tiny gems here; one I like is a simple little late 1980s shooter called Light-Z which 7-zip compresses down to 174k.

I’ve decided to put that 32k tiny Pac-Man style game on the next version of my Desert Island Disc. I would like to have precisely seven games; I haven’t decided whether to make the seventh game the 21st century Tempest clone or the simple shoot-em-up Light-Z.

Friday, December 4, 2009

Javascript Manic Miner

I found a version of Manic Miner more suitable for putting on the next (2010) version of my Desert Island CD: There is a Javascript implementation of Manic Miner out there.

I was able to scrape all of the files needed to play this, and after using PNGCRUSH and advpng to make the PNG files as small as possible, I was able to get this entire working Manic Miner implementation to fit in under 32k (7zip compressed).

Unlike other Manic Miner implementations, where the authors take a sadistic delight in hiding the cheat codes from users (I don’t understand why Andy Noble changed the cheat code for Manic Miner), this one is easily modified with a text editor to change the initial level or give the player unlimited lives; these are even variables easily set at the beginning of the program.

So, I’ve gotten Manic Miner down from 450KB to 32KB. Like I said before, I’ll put wedding photos in the newly opened up free space or another tiny video game if I can find something usable out there.

Thursday, December 3, 2009

Desert Island future plans

Right now, I have the following games on my Desert Island CD:Of these six games, I am going to delete two for the next Desert Island release: Cultivation and Manic Miner.

Cultivation doesn't have compelling graphics, IMO, and its gameplay is a bit far-fetched for my tastes.

Manic Miner's problem is that it's a faithful copy of the original 1983 game, and like the original game, it's, as TVTropes calls it, "Nintendo Hard". After struggling for an hour, I was able to get past the first screen, and even on to the third screen, but there's no way to save the game so I have to go back to the first screen every time I start the game up.

There is supposedly a cheat code for it (802926) which lets one jump past levels, but it doesn't work. So, out it goes. Andy's take on Tetris is nice (and my fiancée likes it), but I'm ditching his take on Manic Miner (which, yes, is faithful to the 1983 game, but we've moved beyond that).

There's a couple of other takes on Manic Miner for the PC out there but I don't like either of them either -- one of them has the audacity to ask for a shareware registration fee for the game. As a programmer who despises freetards myself, I agree people should get compensated for their work, but when original Manic miner creator Matthew Smith flat out says "if they are making money then I want my share", I don't feel it's ethical to make a shareware Manic Miner without giving Matt his cut.

So, deleting all this leaves me about 850k to play with. 150k or so of that will be some C-evo stuff (my HOWTO, a couple of small programs to mod C-evo's gameplay, a diagram of the tech tree, and slightly modified Mongol nation graphics); that leaves me with about 700k. Some of that will become wedding photos once I marry my fiancée January sometime; but I need to find one or two more really tiny games with compelling gameplay that doesn't quickly get stale.

Some ideas:
  • An emulator and some old video games. My biggest issue here is finding games the creators don't mind having available on the Internet
  • Win Frotz (under 200k) and a few text adventure games. The issue here is that these kinds of games have no replay value.
Does anyone else know of any good tiny video games for Windows? Replay value is important.

Sunday, November 22, 2009

Desert Island update

Earlier this month, I updated my Desert Island disk and changed a few files. Notably:
  • Instead of Doom, we now have six tiny video games: C-evo, David Teach’s Ginny Rummy, a tiny under 400k version of Zillions of Games (only Chess and a couple of variants, no music, no sounds), Cultivation, and two of Andy Noble’s games (Tetris, Manic Miner)
  • I have added a lot of pictures, most notably a nice desktop background picture I took nearly two decades ago and more family pictures
  • I’ve added the text of a 1979 computer article talking about computers in the home
  • Various other minor updates, most notably progress on making sure we correctly use “LORD” or “The LORD” in the Old Testament of my modified World English Bible
  • I no longer have a guide for reading playing cards; this is something I no longer do
  • MSYS update to 1.0.11; 7zip updated to 4.65
  • Spanish accents for a US keyboard added

Wednesday, October 28, 2009

Games that fit in under seven megabytes

One project I do is fitting as much useful stuff as I can on one of those business card CDs. A business card CD is a credit-card-sized CD that fits in a wallet; because of the small size of the CD, only 50 megabytes of data can be stored.

After adding the entire text of the Bible, some music I like listening to, a few applications (most notably 7zip for decompressing files), as well as having it be a bootable CD with a memory tester, I'm left with about seven megabytes (7,000,000 bytes) for games.

What compelling games fit in this very small space? Quite a few. Last time I mastered a Desert Island CD, in June, I added Doom with a random map generator, as well as a small game for playing Gin Rummy. However, since my fiancée doesn't like seeing me play Doom, there are a number of other games I am considering for the next release of the CD. Here's a list of some of the more compelling tiny games out there; I'm looking for games with a high replay value (random map generators are a must for anything using a map):
  • Doom, as mentioned before. 5,692,780 bytes in size with a modern engine using 3d acceleration (Doomsday 1.8.6) and the Doom1 wad file (7zip compressed); 6,203,357 bytes if we include a random map generator.Pros: The first-person shooter that created an entire genre of games. It's all here: Single player, deathmatch, cooperative play. Even a random map generator.Cons: Violent and disturbing imagery in the game; a mouse is needed to fully enjoy the game.
  • David Teach's Gin Rummy. 1,643,935 bytes if we include the full installer, 108,886 bytes for a 7zip compressed minimal version of it; however it's not possible to change the game settings in the smaller version of the program.Pros: Classic card game in a tiny package. Cons: Dated looking user-interface
  • FreeCiv 1.14.2. This is an older version of FreeCiv; newer versions use GTK-Win32, which is a bloated pig. A 7zip compressed copy of the full version of FreeCiv 1.14.2 is 1,872,461 bytes in size; it's only 906,762 bytes in size if we remove all of the languages except English and Spanish.Pros: Network play; highly customizable using the server command line.Cons: No diplomacy at all with AI; no full-screen mode; outdated version of game
  • C-Evo, another open-source (public domain) Civilization clone, has IMHO more compelling gameplay than the older FreeCiv. It's a little bigger, however: 2,521,088 bytes for the most recent version (self-extracting archive)Pros: Fullscreen mode; Good graphics; compelling play.Cons: No network play: the only multiplayer mode supported is hotseat and play-by-email is difficult because only the first player can save the game.
  • Chess variant-playing engines. Engines that can play Chess variants are remarkably small and lightweight if I minimize the number of games supported; if only Capablanca-type variants are supported (8x10 board, rook + knight and knight + bishop added to the standard array of pieces), the tiny version of ChessV 0.9.0 is 174,059 bytes (7zip compressed, as well as all other Chess variant playing engines), Winboard Fairy can be squeezed down to 386,278 bytes, and Zillions can fit in only 394,318 bytes. Zillions needs a registration key; the other two are open-source programs (and play Capablanca chess better than Zillions).
  • People's Tactics is a very enjoyable free war simulation strategy game with a random map generator, play-by-email, hotseat, and single-player support. The binary weights in at 6,083,408 bytes.Pros: Excellent tiny little empire-building hex-based wargame. Cons: Can't be played on netbooks; 1024x768 or better resolution needed to play.
  • Another idea: Including an emulator and a number of games for a 1980s game console. Pros: Lots of different games in a small package Cons: There are serious legal issues with most game image files
  • No list of small games is complete without Kkrieger. More a proof-of-concept than a playable game, Kkrieger is a complete first-person-shooter in only 100,185 bytes (yes, a tenth of a megabyte). The executable is 96k in size, but the zip file also includes directions for playing the game. Pros: Beautiful graphics. A full First-Person-Shooter with a number of different weapons, monsters to zap, and compelling music in a fraction of the size of even Doom. Cons: More a proof-of-concept than a real game; the only supported mode is single player and the game can be finished in 15 minutes. The game also has a low framerate on anything but the highest-end computers.

Wednesday, May 13, 2009

Desert Island Business card CD

One game people like to play is the "Desert Island Discs" game; basically, if you were stuck on a desert island and could only bring a limited number of discs or video games, which video games would you bring. For example, here is a "only one video game" version of this game

My version of the "Desert Island Discs" game is the "Desert Island Business Card CD" game; the rules of the game are:
  • I am on a desert island that has electricity (must be a bank of solar panels), air conditioning, and an unlimited food and fresh water supply
  • On said island, I have a computer with 3d video acceleration, but no software installed except a basic install of Microsoft Windows (without games)
  • I am allowed to bring one CD-R with me, but the CD-R must be a 50 megabyte "business card CD" (to be exact, said CD has 26099 2048-byte sectors, or 53,450,753 bytes, the size of some batches of Ritek Business Card CDs)
  • The desert island disk must be formatted as an ISO-9660 filesystem
  • All music and audio must be encoded as fixed-rate MP3 files (the reason for this is because I sometimes put my business card CD-R in friends' MP3 stereos, which can only play MP3s and can't play variable bitrate MP3s)
This is a project I've been doing for a couple of years. Just yesterday I burned my latest incarnation of this desert island disk. Here is what I put on it:
  • A modified version of the World English Bible
  • A memory tester and Windows password reset tool
  • A Cartomancy guide
  • The TrueType version of my Chortle font (derived from Carter's Bitstream Charter), and two of Jos Buvivenga's excellent fonts
  • The Ultimate Doom data file, using version 1.8.6 of Doomsday to play the game, and ObHack to make random maps
  • David Teach's Gin Rummy program (I removed the installer since the installed files compressed are about about 5% the size of the full installer)
  • 7-zip, to make other files smaller
  • Deadwood 2.3.02, a DNS non-recursive cache I wrote
  • MaraDNS 1.3.07.09
  • MSys 1.0.10, which gives me a good subset of *NIX in a Windows environment
  • A portable version of TextMaker from the free Soft Maker 2006 office suite; by getting rid of everything but the word processor, the 7zip compressed file is about 5 megs in size, and includes Spanish-language and English-language spelling dictionaries
  • The songs Glyder and Muroc by Jonn Serrie from his album Flightpath (Glyder encoded at 192kbps, Muroc at 160kbps)
  • A song I wrote in 1995 called Distant Vision, encoded at 160 kbps
  • Some pictures of myself and my life, including a picture of me with my girlfriend
  • A version of Radio Gatun and RG32 sums (sums generated using the 32-bit form of RadioGatun) of all files to verify the integrity of the CD