gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

C/C++ > Earthworm Jim Style Game for GBA

#126043 - DakeDesu - Thu Apr 19, 2007 3:44 pm

Hi, some of you may remember me from the drama that goes on at GameDev.net. Essentually they don't want me there, so I am here asking a question.

Originally I wanted to make the game work on SNES hardware, so as to make it easier to put onto the Wii, as a method of Indy game distribution. However, I don't know of any communities for SNES emulation that are as decent as this one (if you know one, it would be perfectly on topic mention it in this thread--yes, I did do a google)

Enough of this babble, what is the game:

Summary: A continuation of the Kid Radd _game_ series you can find out more about kid radd by reading the official comic: http://kidradd.com (doesn't work in IE6--surprised it works in any browser to be honest). The game is called "Super Radd Proceed: Super Radd: Kid Radd 4", To disect the name "Kid Radd 4" means it is the fourth game in the series (yes, the fans of Kid Radd have made up a series of fan games--none are anywhere near completion), Super Radd means it was for a parody of the SNES, SENS, Super Radd Proceed, means the fictional companies Sosumi Co and Seveightgo stole an idea from Nintendo and ported a SENS game to a system the fans of the series call "Game Kid Proceed" (which should be easy to figure out what _that_ is parodying :P ).

The game is to be handdrawn. Which, from what I am find is: the sprites aren't really much harder to hand draw--levels may be different. But that is heresay in this forum (or atleast off topic).

What I need to know is what Mode would be best todo a hand drawn game with. I don't imagine too many tiles would repeat themselves. Even doing tricks found in FFV and FFVI, I don't think I could lower the tile count enough to make it worth it. Unless yuo guys can say different that is (you, alledgely ,are the experts =^.^= )

What I was thinking of doing was storing, in ROM memory, all the sprites facing one way, then loading up the game into sprite mode, flipping some copies of the sprites, and then slipping into the othe mode where I write the screen using a one dimensonal loop (should be kids stuff--correct me if I am wrong here). This would be done inbetween levels, so that only the sprites that are needed are loaded into the appropriate part of RAM, and only the ones that need to have been flipped are flipped. This is only to be done if the mode does not allow flipping.

An idea is to go for a nontilled mode with multiple layers, put the sprites onto the first background (there is no sprite memory for non tiled layers, right? so I simply use a background as a sprite layer), have two backgrounds (one close, one further back), and a hit detection layer. With rgb(x,0,0) be a PC (where x is an id), rgb(x,y,0) be pickup object where x<<8+y is the object id, rgb(0,255,0) be wall, rgb(0,0,x) be baddy (with the number be the baddie id), and rgb(x,0,x) be an attack of some kind, with x being the direction id.

Most of the stuff I am asking about in this post is recalling after months of not touching GBA, and most likely wrong. I am posting this to ask what mode would be best for a handdrawn game (and some ideas I have), so that I don't have to research six times as much information for an anwser somebody here might know the answer to. I won't bother googling "handdrawn GBA game demos" as I _know_ it will be a waste of time, as I've yet to see much of anything for the GBA that qualifies as handdrawn.

Oh yeah, game design doc:
http://www.krfp.dakedesu.info/temp/2007/04/19/super-radd-proceed-kid-radd-4/
_________________
[ Main Site | Kid Radd Fan Project | Forums ]

#126050 - Ant6n - Thu Apr 19, 2007 4:32 pm

sprites can be flipped with a flag in hardware.
nontiled modes 3,4,5 only have one bg-layer, so if you want multiple ones you have to 'emulate' them.
when you use these bmp modes, you still can have sprites, although you only have 16 instead of 32 K of sprite memory.

what's your beef with tiled backgrounds?
what's a "hand drawn game"? I.e. arent all graphics for most gba games handdrawn; with the only possible alternative i can think of being 'photographed'?
Is this thing a sidescroller? Do you wanna have some sort of parallax pseudo 3d effect (multiple layers from 'front' to 'back' moving at different speeds to create the illusion that some are farther away)?

#126052 - tepples - Thu Apr 19, 2007 4:35 pm

Anything that resembles what was done on the Sega Genesis should probably be done in mode 0.

Ant6n: "Hand drawn" graphics are as opposed to graphics modeled in a 3D program (e.g. Donkey Kong Country) or photographed (e.g. Mortal Kombat).
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#126061 - DakeDesu - Thu Apr 19, 2007 5:33 pm

No, beef with tile modes--if I could save memory like that I would--but AFAIK, a game with graphics similar to Earthworm Jim probably doesn't have enough regularity in its backgrounds to warrant using tiles.

As per Hand Drawn, takea look at Earthworm Jim and Earthworm Jim 2, when they came out for the SNES and Genesis, they were revolutionary, as, well, the games were completely drawn by hand--the backgrounds, the sprites, etc.. This as oppose to drawing it on the computer like a lot of games do, or using 3d models, like a lot more games (today anyways) do.

Thanks tepples, I'll look into Mode 0
_________________
[ Main Site | Kid Radd Fan Project | Forums ]

#126064 - tepples - Thu Apr 19, 2007 5:53 pm

DakeDesu wrote:
No, beef with tile modes--if I could save memory like that I would--but AFAIK, a game with graphics similar to Earthworm Jim probably doesn't have enough regularity in its backgrounds to warrant using tiles.

Yes it does. Even Yoshi's Island for Super NES, which looks like a hand-drawn children's book, uses a tile mode.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#126069 - Ant6n - Thu Apr 19, 2007 7:07 pm

donkey kong uses mode0, and uses one layer for the background (backdrop?), two for the 'level' - one layer for stuff that's behind and one layer for stuff that's in front of the actors. the last layer is sometimes used when there is something in the very front, or inbetween the level and the background.
you can basicly load picture like graphics in tile modes. A problem is that cant fill the whole screen with unique tiles using one layer by default - because one layer can only show a certain number of unique tiles. But there are a bunch of tricks. I.e. if parts of the layer are transparent, they can use the same 'transparent' tile

#126070 - tepples - Thu Apr 19, 2007 7:19 pm

Ant6n wrote:
you can basicly load picture like graphics in tile modes. A problem is that cant fill the whole screen with unique tiles using one layer by default - because one layer can only show a certain number of unique tiles.

There is room for a little over 1800 tiles in the GBA's VRAM. Each layer can see 1024 tiles, and it takes only 600 to cover the screen. But yes, you will want to reuse tiles to save space in ROM.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#126073 - Ant6n - Thu Apr 19, 2007 8:08 pm

yeah, i guess for 4bit tiles the picture doesnt look as grim (I assumed using 8bit).
assuming one needs scrolling in x and y direction, one needs 21*31 tiles displayed (651), that is 20832 KB. Knowing tile ram is 64 KB, one could fit 3 completely drawn 4 bit surfaces in ram (being short by only 4KB, which can be tricked around).
The only problem then is to have graphics which only uses 4bit per tile and uses only 16 palettes.

#126124 - DakeDesu - Fri Apr 20, 2007 5:52 am

tepples wrote:
DakeDesu wrote:
No, beef with tile modes--if I could save memory like that I would--but AFAIK, a game with graphics similar to Earthworm Jim probably doesn't have enough regularity in its backgrounds to warrant using tiles.

Yes it does. Even Yoshi's Island for Super NES, which looks like a hand-drawn children's book, uses a tile mode.


I dunno, with Yoshi's Island, I could normally, very easily see patterns in the screen... maybe I need to play EWJ and EWJ2 again--to refresh it in my mind.

...

/me reads further...

...

Well looks like that won't be a problem.

Anyways time to research mode 0 a little more.
_________________
[ Main Site | Kid Radd Fan Project | Forums ]

#126853 - RegalSin - Fri Apr 27, 2007 11:14 am

I am more an artsy person so.....

Well I own Rudoras Treasure and the entire game has sprites that are extremly well animated. When my SNES stop playing Mode 7 games correctly guess what?

RT use Mode 7 to display it's animated sprites in battle mode which there is many animations during any battle.

The realsim of the animations is just amazing. They could have used giant sprites anytime ( which there is a couple of ) and make giant Street Fighter Sprites in Turn based combat ( Which is barely done ).

This game and Dragon Quest Six is probably the most animated game on the SNES if there is not any I do not know of yet. RT is more animated then Bahamuts Lagoon also.

About Earthworm Jim the game was okay on the Mega Drive and I do admit had nice sprites ( I love the show also ) but there was also BoogerMan ( thats all I can think of ) on the SNES.
_________________
Graphics Design Major currently enrolled in CUNY for a start in art world. A figure artist who can create people, babies, Aliens, animals, cowboys, beasties, warriors, cyborgs, monsters. I am limited by tools, refrence materials that is provided.

#128595 - The_Perfection - Sun May 13, 2007 7:44 am

I personally think you should use mode 0. The four backgrounds can't really be topped on a GBA. I would have also recommended that you try to make it for DS because of the (relatively) massive amount of VRAM you have to work with, but you asked for a GBA usage.

I recommend mode 0 because of the four backgrounds mainly. The GBA has more VRAM than most seem to think it does. The maps only have to be 32x32 tiles and can be updated when scrolled, along with any tiles that are necessary for the next drawing area. We plan to make our game work this way, as we plan to have a few huge stages.

More than likely, you don't want to run in a bitmap mode. Bitmaps can't be scrolled like tilemaps can. The sprite ram is only reduced when using a bitmap mode, not completely eradicated.

The sprites can be flipped using a flag if they aren't affine. If they are, then there's a simple calculation to flip them.

If you have some questions, feel free to ask. For not being the best programmer, I do have some knowledge about the workings of the machine.

#128618 - Dwedit - Sun May 13, 2007 2:51 pm

It's not too hard to have a dynamic tilemapping system that automatically writes new tiles to VRAM on as they scroll on to the screen. Then you don't need to be as concerned with limits on number of total tiles, instead be concerned about the number of unique tiles visible on one screen.

Forget about the "Hit detection layer", nobody would ever consider using anything like that on a GBA. Even if you would place collidable objects into a ram buffer to make hit checking faster than iterating through object tables, it would make no sense to use a GBA Graphics Layer to do so. Also avoid pixel collision detection. It's just bad.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."

#130565 - sgeos - Tue Jun 05, 2007 9:10 am

The hit detection layer could be a virtual layer that only exists in RAM.

-Brendan

#130600 - tepples - Tue Jun 05, 2007 7:49 pm

It's best to keep the maps in some kind of normal form, generating the hit detection layer (in RAM) and the graphics layer (in VRAM) as views of the same underlying representation of the world.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#137101 - elyk1212 - Tue Aug 07, 2007 11:12 pm

I am developing a 2d side scroller cartoon-ish game, and I hand draw all my sprites. They are all in mode 0, otherwise things would be uber slow. I tried that at first since I am learning about the GBA hardware.

Remember from engineering classes, routines in hardware are always faster than software! That is why many cameras have ASICs used as JPEG decoders etc...

Save cycles any way you can on an embedded system!