Subject: [stella] New project - RPG engine From: emooney1@xxxxxxxx (Erik K Mooney) Date: Wed, 30 Jul 1997 03:41:24 -0400 |
I still can't force myself to go any further on the Invaders clone, but I can start a whole new project: the engine for an RPG. Obviously, the biggest problem is space: how to cram a game the size of NES Zelda or Final Fantasy into 4k.... well, first off I'm aiming for a 16k bankswitched game. I can fit the world maps and their display kernel into one 4k bank, text messages, allowing for a reasonably deep plot, into a second bank, the monster graphics and code for battles into a third bank (think separate screens for monster battles, a la Final Fantasy, Dragon Warrior, or Ultima 3-4, not realtime like Zelda), and everything else (status bar display kernel, processing player movement/console switches, etc) into the last bank. For the world, I'm using a "screens" paradigm, where I can re-use a screen over again for 22 bytes of ROM. Each screen consists of 14 rows, broken into three blocks of four rows each separated by two "special" rows. Each three-row block is 12 bytes and can be reused as often as I want.. so it's not hard to make a generic "forest" block with a few trees and reuse that, or a block with a few houses as a "town" block. The two special rows are used for stuff like shops, talking to townspeople, initiating specific monster battles, and so on. The bottommost four-row block can be skipped, and four (or more) lines of text could be displayed in its place. Each row consists simply of a sprite type, a horizontal position, and a NUSIZ/ REFP value... so a complete tiling engine like the NES does is undoable, but I can do some pretty convincing fakes with multiple copies of sprites. Think outdoor Zelda 1 scenes minus the monsters, and that's pretty much what I'm aiming for. In addition to the sprites (player 1 is used for all the background objects, leaving player 0 for the player), I'm set up to use a playfield. Because of various factors involving storage space and cycles, I need to fit the entire playfield data into one page, limiting me to six different playfields used throughout the game. This is enough, I think... if you look closely at Legend of Zelda's dungeons, Nintendo did quite a bit of floor pattern reuse without being extremely obvious. Each of my screens can use any of the six maze types, and any three of the 42 block types, allowing quite a number of combinations. Space: as I said, the world will fit into 4k (16 pages.) Two pages for the display kernel, one for the maze data, two for sprite data (each sprite takes 15 bytes - 10 GRP1 lines plus a color every other line - this allows 34 different sprites, should be enough), two for the block data, eight for the screen data, one for tables and other misc data. I have 2kb reserved for screen data... each screen takes 21 bytes of that plus one in the tables page, so I can fit 97 screens in the world. By comparison, Legend of Zelda is 128 screens in the overworld and about 150 total in the dungeons, so I'm not too far behind. Also, each of Zelda's screens is 16 x 12 tiles, while mine are 20 x 14. I have room for a 32-line status bar at the top of the screen, again similar to Zelda. I'm aiming for a Dragon Warrior-style game, with one player character (not a party), with Zelda-style outdoor scenes and dungeon maps, and Final Fantasy-style battle scenes. Anyways, I obviously can't do this entire game myself. This could become a real team project here, if you guys are willing to help. A text-display routine would be helpful... graphics design would be nice (the sprites are 10 lines, with a color change allowed every other line, and any NUSIZ value is allowed for the sprites... the player also will be 10 lines, but allow a color change every line) and so on. I don't want any plotlines or storyboards yet, though a world map would be usable. I hope to be able to release the game as a 16k cartridge, likely with password savegames... "Superchip" RAM doesn't (yet) seem necessary. Attached is the current state of the kernel.. it doesn't do much yet, but the infrastructure is there. Don't be fooled by how chaotic it looks.. the code is definitely there. I'm just using that short name cause it's easy and quick to type :) I gotta clean up those HMOVE lines, and I've only drawn one sprite so far =) but put a little imagination into it. begin 644 r.bin M>-BB_YJI`)4`RM#[J?^-@0*-@P(@6?$@+/`@0O`@0_`@1/`@7/`@2/%,%_"I M`H4"A0"%`H4"J2R-E@*I`(4"A0!@8&"@`(2&J?2%A[&&A8"@`[&&A8+(L8:% M@V"MA`+0^X4"A0&%"(4)A1R%!Z(?RH4"$/N@`80*L8:%",BQAH4)(,'PI888 M:06%@J6':0"%@R#-\*`(L8:%@LBQAH6#(,'PI888:0J%@J6':0"%@R#-\*`- ML8:%@LBQAH6#(,'P8*D$A8D@S?#&B=#Y8(4"IH"]`/.%#;T!\X4.O0+SA0^@ M`(0<L8*J*?"%A(HI#QAI_(6%YH*Q@JJ]`/^%(84"*0^JX`40".KJZLH0_841 MYH*Q@H4%A0R@#HHP"CCI!:KJRA#]A1&%`H4JL82%!XBQA(4<B+&$A2N(A0*% M'!#GYH*E@!AI`X6`8*DCC98"J0&%`:V$`M#[A0)@8/__________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____\/]_,```,```,*J`,`"`,%7```#```#_,``#,``#,`P#,`P!,```\/]_ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M_____________________________________________P`ZA`#X`!```/@` M$@`,^````````/______________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M______________________________\``0$``@,``P8`!`@`"04`"04`!08` M``#_________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M________________^[\L[_\J_GXF?#PD/!@,________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________`''Q8N)3TT3$-;4FIA>7"'GY:MK_____________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M____________________________________________________________ M________________________________________________________`/`` !\``` ` end -- Archives updated once/day at http://www.biglist.com/lists/stella/archives/ Unsubscribing and other info at http://www.biglist.com/lists/stella/stella.html
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] Intellivision development?, Greg Troutman | Thread | [stella] Re: Intellivision developm, Frank Palazzolo |
[stella] Intellivision development?, Greg Troutman | Date | [stella] Re: Intellivision developm, Frank Palazzolo |
Month |