Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Keystone Kapers 4K [Atari 2600] [Work In Progress]  (Read 5199 times)
0 Members and 1 Guest are viewing this topic.
Offline zeroone
« Posted 2010-12-01 00:30:31 »

http://meatfighter.com/java4k2011/keystonekapers4k/







Offline teletubo
« League of Dukes »

JGO Ninja


Medals: 48
Projects: 6
Exp: 8 years



« Reply #1 - Posted 2010-12-01 11:40:38 »

excelent !! Just like the original .
I don't remember if that's allowed, but the thief climbed from the 3rd floor to the roof in the left side, that is, without using an escalator .

Offline zeroone
« Reply #2 - Posted 2010-12-03 01:27:20 »

Quote
excelent !! Just like the original .
I don't remember if that's allowed, but the thief climbed from the 3rd floor to the roof in the left side, that is, without using an escalator .

As in the original game, the thief can do some pretty sneaky things that the player cannot.  Somehow, he is able to run out of the frame and reappear on a different floor.  Be especially careful while chasing him around escalators.  If you hop on an escalator while he is directly above, he may turn around, run out of the frame and return to the floor that you just departed.  Instead, wait for him to run beyond the escalator.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline luisoft

JGO Coder


Projects: 6


Java games rock!


« Reply #3 - Posted 2010-12-06 16:30:58 »

amazing!  Cheesy

I was looking at the source code... how exactly do you proceed to generate the compressed sprites in the final String s variable? Do you use any program to generate that big String?

I really like to understand that compress/decompress stuff, maybe I could re entry my previous entry PacPitall4k but this time much better looking....

Thanks for the great work.
Offline zeroone
« Reply #4 - Posted 2010-12-06 18:14:45 »

Quote
how exactly do you proceed to generate the compressed sprites in the final String s variable? Do you use any program to generate that big String?


See this thread: http://www.java-gaming.org/topics/best-way-of-embedding-binary-data-in-source/21648/view.html

Quote
I really like to understand that compress/decompress stuff, maybe I could re entry my previous entry PacPitall4k but this time much better looking....

If you do decide to recreate Pitfall, try to make it as true to the original as possible.
Offline luisoft

JGO Coder


Projects: 6


Java games rock!


« Reply #5 - Posted 2010-12-06 18:39:04 »

yes, I'll try it. Last time I did the PacPitfall (http://www.java4k.com/index.php?action=games&method=view&gid=253) because I was not able to fit the sprites in 4k....

thanks
Offline zeroone
« Reply #6 - Posted 2010-12-06 19:38:00 »

Quote
yes, I'll try it. Last time I did the PacPitfall (http://www.java4k.com/index.php?action=games&method=view&gid=253) because I was not able to fit the sprites in 4k....

thanks

Study the original source code carefully:

http://www.qotile.net/minidig/disassembly/pitfall.asm

You need to reproduce the byte sequences that represent the sprites and the color tables in the long String.  See the following link and the references within to better understand the palette:

http://en.wikipedia.org/wiki/Television_Interface_Adaptor

From the source code, here is how the maze is generated:

http://meatfighter.com/pitfall/
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 70
Projects: 15


★★★★★


« Reply #7 - Posted 2010-12-07 14:37:30 »

oh, really nice remake of one of the great classics. If you can somehow fit sound effects into this, it'd be super awesome Smiley
Offline Terminalord

Senior Newbie





« Reply #8 - Posted 2010-12-09 02:24:41 »

Very nice. I had the original game when it was new Smiley Loads of fun.

Terminalord
Offline luisoft

JGO Coder


Projects: 6


Java games rock!


« Reply #9 - Posted 2011-01-02 19:09:25 »

Quote
Study the original source code carefully:

http://www.qotile.net/minidig/disassembly/pitfall.asm

Did you do the same for Keystone Kapers and the other games you're doing? I have to confess that I'm not so smart to read assembler code... besides that, I'm reading the source code you provided and trying to get how the compress/decompress works and also about the color/palette stuff that I still find it complicated to understand... persecutioncomplex

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Abuse

JGO Coder


Medals: 10


falling into the abyss of reality


« Reply #10 - Posted 2011-01-02 19:49:57 »

Nice! Very authentic!

Thankfully I can truthfully say this game predates me.

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline luisoft

JGO Coder


Projects: 6


Java games rock!


« Reply #11 - Posted 2011-01-03 12:11:40 »

Just another question... do you use the same compress method for all the games? Or do you create a specific compress method for each one? Would you mind posting an example of how do you perform the sprite compress? I'm tired of trying making 4k games just using procedural graphics, I'm trying to incorporate sprites like you do in your games, but I'm not really able to figure out how to achieve a great compression of the graphics. Thanks!  Undecided
Offline pjt33
« Reply #12 - Posted 2011-01-03 13:57:53 »

IMO the thing to do for bitmap graphics is to use a small palette and don't try to be clever. E.g. use a 16-colour palette, but encode each pixel as a character in a string rather than trying to pack two pixels or four into each character. That way the pack200 compressor can do a better job.
Offline zeroone
« Reply #13 - Posted 2011-01-10 00:41:46 »

Quote
Did you do the same for Keystone Kapers and the other games you're doing? I have to confess that I'm not so smart to read assembler code... besides that, I'm reading the source code you provided and trying to get how the compress/decompress works and also about the color/palette stuff that I still find it complicated to understand...

Quote
Just another question... do you use the same compress method for all the games? Or do you create a specific compress method for each one? Would you mind posting an example of how do you perform the sprite compress? I'm tired of trying making 4k games just using procedural graphics, I'm trying to incorporate sprites like you do in your games, but I'm not really able to figure out how to achieve a great compression of the graphics. Thanks!

I'll try update the Wiki with a discussion of various ways to add bit-mapped sprites to 4K games at some point when I have more time, but I'll try to explain the gist of it here.

Obviously, I do not want to promote piracy of intellectual property.  But, if you want to borrow graphics and gameplay from Atari 2600 games, then the first thing you should do is install an Atari 2600 emulator and download the associated game ROMs.  Google will show you the way if you haven't already done this step.  At the very least, this will allow you to carefully the study the game that you are attempting to recreate.

The ROM files contain the compiled code and graphics data.  Write a program that reads in a ROM file, one byte at a time, and prints out each byte on a separate line in binary.  But, instead of printing ones and zeros, print X's and periods instead.  Carefully study the results.  You'll find the same upside-down silhouette sprites that appear in that assembly source file. 

The Atari 2600 used rectangular pixels, with a 2x1 ratio if I recall correctly.  So, each row of 8 bits actually represents 16 pixels on a computer monitor (each pixel repeating twice).

For compression and hardware reasons, each row is assigned only one color and the Atari 2600 game artists often did an amazing job with that limitation.  The color palette is essentially in HSV color space as described in one of the links.  For each row in the sprite, there is a byte somewhere else containing the associated color.  Finding the color tables can be a challenge without decompiling the source.  But, in the case of Pitfall, someone already did the work for you. 

As for storing the graphics in a 4K game, you can take the bytes representing the upside-down silhouette sprites and the associated color table bytes and generate a Unicode String out of them.  For instance, you can take the 4 bytes 0xDE, 0xAD, 0xBE, 0xEF and generate the String, "\uDEAD\uBEEF".  You can reference each Unicode character within the String using the charAt() method.  From there, it's just a matter of extracting the individual bits.  But, if you were able to print out the Atari 2600 ROM as I described above, you should be able to handle that step.

pjt33 writes:

Quote
IMO the thing to do for bitmap graphics is to use a small palette and don't try to be clever. E.g. use a 16-colour palette, but encode each pixel as a character in a string rather than trying to pack two pixels or four into each character. That way the pack200 compressor can do a better job.

That may be very true.  You can try it either way.  That technique probably works better for level maps as opposed to the bit-mapped graphics because levels contain a lot of empty areas. 
Offline zeroone
« Reply #14 - Posted 2011-03-06 00:24:53 »

<a href="http://www.youtube.com/v/tNDpMoW6-uY?fs=1&amp;amp;hl=en_US" target="_blank">http://www.youtube.com/v/tNDpMoW6-uY?fs=1&amp;amp;hl=en_US</a>

http://www.youtube.com/watch?v=tNDpMoW6-uY
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (53 views)
2014-04-15 18:08:23

BurntPizza (51 views)
2014-04-15 03:46:01

UprightPath (65 views)
2014-04-14 17:39:50

UprightPath (48 views)
2014-04-14 17:35:47

Porlus (65 views)
2014-04-14 15:48:38

tom_mai78101 (89 views)
2014-04-10 04:04:31

BurntPizza (149 views)
2014-04-08 23:06:04

tom_mai78101 (245 views)
2014-04-05 13:34:39

trollwarrior1 (203 views)
2014-04-04 12:06:45

CJLetsGame (210 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!