The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

Who wants to make a new game? :D

slash000slash000 Registered User regular
edited February 2010 in Games and Technology
The original project was C&D'd and I took everything related to it down.

So.

I have this brand new game engine that I made from the ground up. It's similar in gameplay style with dragons, items, and a Bat. The Bat works now the way we want it to. But I cannot put it in a game like the original project.

So let's make a new overworld!


Who wants to help design a new overworld?

Any takers?

slash000 on
«13456716

Posts

  • Doc HollidayDoc Holliday Registered User regular
    edited November 2008
    This is fantastic and awesome. I regret that praise is the only contribution I can offer.

    Doc Holliday on
    PSN & Live: buckwilson
  • slash000slash000 Registered User regular
    edited November 2008
    This is fantastic and awesome. I regret that praise is the only contribution I can offer.

    Thanks. As a matter of fact, any interest and suggestions that you or anyone else can make will be appreciated. As I get further and further into/along the project, I'll surely have questions of my own about how to best go about doing certain aspects, and input from anyone reading the thread is appreciated at such times. It really helped me get together some good overworld art when I took suggestions on those various areas.

    slash000 on
  • ZackSchillingZackSchilling Registered User regular
    edited November 2008
    It looks like the main character moves just like he did in the 2600 game. I don't know, it seems like it would be cool if it controlled more like a modern game.

    ZackSchilling on
    ghost-robot.jpg
  • slash000slash000 Registered User regular
    edited November 2008
    It looks like the main character moves just like he did in the 2600 game. I don't know, it seems like it would be cool if it controlled more like a modern game.

    That's a concept that I've been torn over since I took over this project...


    Remakes face a difficult balance --- do you sacrifice "accuracy to the original" in favor of "modern convention," or do you sacrifice some modern convention for the sake of staying true to the original?


    The default plan was to make everything from the movement of the character, to the dragon AI, to the magnet functionality, to how the rooms and bridge and items work, make it all as close to the original as possible, but within a game environment that looks and sounds like a 16 bit game.


    So right now the Hero moves pretty much exactly how he does in the original game (except at a much higher frame rate (the youtube video doesn't do the framerate justice)). I could very easily tone his "speed" down and adjust his acceleration/decelaration and animation framerate to make him move more like you would expect from a more 'modern' game of this nature, sort of like Link in LTTP.

    But would people interested in an Adventure 2600 remake want it that way?



    I've contemplated providing 2 modes: a "Classic Mode" and a "Reboot Mode," wherein Classic mode functions exactly like the original, and Reboot makes everything sort of 'control' and look even more modern. But then I realized that I was getting ahead of myself, and that I should get at least the "Classic Mode" done first and once that's 100% done, then consider doing a "reboot mode."


    So... I've been contemplating your suggestion, but I think it takes a second priority behind a more true-to-the-original Remake.

    slash000 on
  • RainbowDespairRainbowDespair Registered User regular
    edited November 2008
    How difficult would it be to add new levels?

    RainbowDespair on
  • slash000slash000 Registered User regular
    edited November 2008
    How difficult would it be to add new levels?

    Hm.. I dunno. I would say.. not super hard, but not as easy as it looks. Each room is a collision mask covered over by an image. So you create the overlying image by placing tile art into place using a program called Mappy, then save the file as an image and load it onto the collision map. That's to make 1 room. To make multiple rooms connected together, you obviously have to repeat the process. I dunno. I haven't really thought about how difficult it would be beyond that. I'll have a better idea once I finish the aspects of the "engine" and start building and connecting the rooms of the overworld together.

    slash000 on
  • DusdaDusda is ashamed of this post SLC, UTRegistered User regular
    edited November 2008
    Slash, what are you developing this in?

    Dusda on
    and this sig. and this twitch stream.
  • halkunhalkun Registered User regular
    edited November 2008
    That's pretty cool. I'm glad you picked up where I left off.

    Looking at the video demo, you have to remember that the gates also close when you touch an open one with the key.

    If you need a map of where all the starting places are, let me know. Level 1 and level 2 are different, and level 3 is just level 2 with everything in random locations.

    halkun on
  • Capt HowdyCapt Howdy Registered User regular
    edited November 2008
    slash000 wrote: »
    So right now the Hero moves pretty much exactly how he does in the original game (except at a much higher frame rate (the youtube video doesn't do the framerate justice)). I could very easily tone his "speed" down and adjust his acceleration/decelaration and animation framerate to make him move more like you would expect from a more 'modern' game of this nature, sort of like Link in LTTP.

    But would people interested in an Adventure 2600 remake want it that way?

    :^: Please keep it this way. The first thing I noticed was how the movement looked identical to what I remember. It's a nice touch.

    Capt Howdy on
    Steam: kaylesolo1
    3DS: 1521-4165-5907
    PS3: KayleSolo
    Live: Kayle Solo
    WiiU: KayleSolo
  • KhavallKhavall British ColumbiaRegistered User regular
    edited November 2008
    This is fantastic and awesome. I regret that praise is the only contribution I can offer.

    Yeah I mean I could... um.... write music? But that's pretty much the end of all useful skills I have.




    It's come a long way though, damn.

    Khavall on
  • slash000slash000 Registered User regular
    edited November 2008
    halkun wrote: »
    That's pretty cool. I'm glad you picked up where I left off.

    Looking at the video demo, you have to remember that the gates also close when you touch an open one with the key.

    ..(goes to try this out in the game)...

    Holy crap you're right. If you touch the key to the gate, it will both open and close. I was under the impression that it just sort of stayed open once you touched an appropriate key to it. Okay, cool, these are little nuances that I need to be aware of. I'll make it so that doors shut upon 'touching' the key as well..
    If you need a map of where all the starting places are, let me know. Level 1 and level 2 are different, and level 3 is just level 2 with everything in random locations.

    OK cool.. I think what I'm going to do is start putting together "Level 3" first because it has all the stuff, then once that's done, whittling it away to make Levels 2 and 1 should be easier.

    But anyway, sure, post the maps of the different levels, or PM me a link, or PM me for my email if you need to attach and send them.





    Capt Howdy wrote: »
    slash000 wrote: »
    So right now the Hero moves pretty much exactly how he does in the original game (except at a much higher frame rate (the youtube video doesn't do the framerate justice)). I could very easily tone his "speed" down and adjust his acceleration/decelaration and animation framerate to make him move more like you would expect from a more 'modern' game of this nature, sort of like Link in LTTP.

    But would people interested in an Adventure 2600 remake want it that way?

    :^: Please keep it this way. The first thing I noticed was how the movement looked identical to what I remember. It's a nice touch.


    Sure thing; I think it'll be easier to start out making the game as close to the original as possible for starters anyway. Once I get everything done in terms of how it was in the original, then afterwards I'll start considering how to create a "Reboot Mode" or something, perhaps.

    But I think the first priority is doing a true-to-original remake. (or as true as I can achieve)


    Dusda wrote: »
    Slash, what are you developing this in?

    Let's just call it a "middleware solution...."
    games factory 2

    slash000 on
  • slash000slash000 Registered User regular
    edited November 2008
    Khavall wrote: »
    This is fantastic and awesome. I regret that praise is the only contribution I can offer.

    Yeah I mean I could... um.... write music? But that's pretty much the end of all useful skills I have.

    Actually I might be putting music in certain parts, maybe. I was thinking, if nothing else, at least a sort little diddy for the opening title screen, or a nice tune for an intro or ending.

    I guess at the least there could be a kind of "victory music" for when you return the Chalice to the Castle.

    slash000 on
  • BlueBlueBlueBlue Registered User regular
    edited November 2008
    Adventure_Easteregg.PNG

    This is the only thing I know about the adventure game. Will you change the name to yours?

    BlueBlue on
    CD World Tour status:
    Baidol Voprostein Avraham Thetheroo Taya Zerofill Effef Crimson King Lalabox Mortal Sky ASimPerson Sal Wiet Theidar Tynic Speed Racer Neotoma Goatmon ==>Larlar Munkus Beaver Day of the Bear miscellaneousinsanity Skull Man Delzhand Caulk Bite 6 Somestickguy
  • slash000slash000 Registered User regular
    edited November 2008
    BlueBlue wrote: »
    Adventure_Easteregg.PNG

    This is the only thing I know about the adventure game. Will you change the name to yours?

    Hahah, nah, I'll probably do something ridiculous with the Easter Egg room. I haven't actually decided what, yet, though.

    slash000 on
  • slash000slash000 Registered User regular
    edited November 2008
    OK, here's a question for Adventure 2600 fans:


    The dragons. Do they all move at the same speed? Or does the Yellow move at one speed, the Green dragon at another speed, and the Red at another speed? Or does the Red move faster and the other two move at the same slower speed? Or is it something else?

    I'm not sure but I think the Red dragon moves faster than the yellow but I'm not 100 % sure.

    slash000 on
  • Edgler VessEdgler Vess Registered User regular
    edited November 2008
    Its been ages since I played when I was just a kid but if I recall the 3 dragons moved at 3 separate speeds...and why do I think there was a black dragon?

    Anyhow

    Red is Faster than Yellow which is faster than Green...

    I remeber being actually afraid of the red dragon when he would show up, they make a startiling sound when they attack....

    Yeah i was kind of a wuss

    Edgler Vess on
    steam_sig.png
  • slash000slash000 Registered User regular
    edited November 2008
    if I recall the 3 dragons moved at 3 separate speeds...and why do I think there was a black dragon?

    I'm not sure. I think the Red is faster, but I dunno if Yellow and Green are the same speed or not. I've played Level 1 of Adventure, and the Green and Yellow move at the same speed, but I dunno if that's because it's Level 1 or if it's because those two dragons both move at the same speed.




    also I have an update for some lols:


    http://www.youtube.com/watch?v=MNxOGSGmMsc



    New video!

    I just got the "Dragon AI" working, but just for kicks I decided to show how the Magnet works as well.

    The Dragon works but he won't eat the player yet, haven't done that quite yet. And also the player can walk through the dragon which is something I'll fix shortly.

    But until then, this video is kind of funny, but it shows that the Magnet and Dragon are working properly so far.

    slash000 on
  • ZackSchillingZackSchilling Registered User regular
    edited November 2008
    How am I supposed to get all nostalgic when the dragon looks nothing like a duck?

    ZackSchilling on
    ghost-robot.jpg
  • slash000slash000 Registered User regular
    edited November 2008
    How am I supposed to get all nostalgic when the dragon looks nothing like a duck?

    Hahah.

    As a bonus, I'm going to throw in a secret mode of some kind that turns the Dragons into ducks. I just have to.

    slash000 on
  • slash000slash000 Registered User regular
    edited November 2008
    view the video in the spoiler at your own risk.

    especially you, zackschilling....


    in all seriousness..
    I just made that in 5 minutes as a joke. Quick and dirty. But I plan on adding real ducks, evil ducks, to the final version, as a secret mode or something.


    I'm having way too much fun with this.

    slash000 on
  • Capt HowdyCapt Howdy Registered User regular
    edited November 2008
    :lol:

    Capt Howdy on
    Steam: kaylesolo1
    3DS: 1521-4165-5907
    PS3: KayleSolo
    Live: Kayle Solo
    WiiU: KayleSolo
  • ZackSchillingZackSchilling Registered User regular
    edited November 2008
    slash000 wrote: »
    view the video in the spoiler at your own risk.

    especially you, zackschilling....


    in all seriousness..
    I just made that in 5 minutes as a joke. Quick and dirty. But I plan on adding real ducks, evil ducks, to the final version, as a secret mode or something.


    I'm having way too much fun with this.

    Now THAT is a superb modernization of the old sprite. :^:

    ZackSchilling on
    ghost-robot.jpg
  • Doc HollidayDoc Holliday Registered User regular
    edited November 2008
    The hero needs to shout, at some point, "somebody get this freaking duck away from me"

    edit: link for sound effects:
    http://www.homestarrunner.com/main13.html (hover over 'email')

    Doc Holliday on
    PSN & Live: buckwilson
  • halkunhalkun Registered User regular
    edited November 2008
    Here is some help on object definitions...

    Here is a list of initial locations for game 1

    The format is object, room, x, y, state, movement x, movement y

    movement x, movement y is how many pixels to move per cycle, it can be positive or negative,

    You have to translate X and Y from Atari coordinates to PC graphics coordinates.
    X is calculated as (x*4)-4;
    Y is calculated as 384-(y*4)+32+4
        OBJECT_REDDRAGON, 0x0E, 0x50, 0x20, 0x00, 0x00, 0x00, // Red Dragon
        OBJECT_YELLOWDRAGON, 0x01, 0x50, 0x20, 0x00, 0x00, 0x00, // Yellow Dragon
        OBJECT_GREENDRAGON, 0x1D, 0x50, 0x20, 0x00, 0x00, 0x00, // Green Dragon
        OBJECT_SWORD, 0x12, 0x20, 0x20, 0x00, 0x00, 0x00, // Sword
        OBJECT_BRIDGE, 0x04, 0x2A, 0x37, 0x00, 0x00, 0x00, // Bridge
        OBJECT_YELLOWKEY, 0x11, 0x20, 0x40, 0x00, 0x00, 0x00, // Yellow Key
        OBJECT_WHITEKEY, 0x0E, 0x20, 0x40, 0x00, 0x00, 0x00, // White Key
        OBJECT_BLACKKEY, 0x1D, 0x20, 0x40, 0x00, 0x00, 0x00, // Black Key
        OBJECT_BAT, 0x1A, 0x20, 0x20, 0x00, 0x00, 0x00, // Bat
        OBJECT_DOT, 0x15, 0x51, 0x12, 0x00, 0x00, 0x00, // Dot
        OBJECT_CHALISE, 0x1C, 0x30, 0x20, 0x00, 0x00, 0x00, // Challise
        OBJECT_MAGNET, 0x1B, 0x80, 0x20, 0x00, 0x00, 0x00, // Magnet
    

    Game 2 is here....
        OBJECT_REDDRAGON, 0x14, 0x50, 0x20, 0x00, 3, 3, // Red Dragon
        OBJECT_YELLOWDRAGON, 0x19, 0x50, 0x20, 0x00, 3, 3, // Yellow Dragon
        OBJECT_GREENDRAGON, 0x04, 0x50, 0x20, 0x00, 3, 3, // Green Dragon
        OBJECT_SWORD, 0x11, 0x20, 0x20, 0x00, 0x00, 0x00, // Sword
        OBJECT_BRIDGE, 0x0B, 0x40, 0x40, 0x00, 0x00, 0x00, // Bridge
        OBJECT_YELLOWKEY, 0x09, 0x20, 0x40, 0x00, 0x00, 0x00, // Yellow Key
        OBJECT_WHITEKEY, 0x06, 0x20, 0x40, 0x00, 0x00, 0x00, // White Key
        OBJECT_BLACKKEY, 0x19, 0x20, 0x40, 0x00, 0x00, 0x00, // Black Key
        OBJECT_BAT, 0x02, 0x20, 0x20, 0x00, 0, -3, // Bat
        OBJECT_DOT, 0x15, 0x45, 0x12, 0x00, 0x00, 0x00, // Dot
        OBJECT_CHALISE, 0x14, 0x30, 0x20, 0x00, 0x00, 0x00, // Challise
        OBJECT_MAGNET, 0x0E, 0x80, 0x20, 0x00, 0x00, 0x00, // Magnet
    


    The room numbers are here. The format for those are below...
    {
        { "NumberRoom", ROOMFLAG_NONE, COLOR_PURPLE, 0x00,0x00,0x00,0x00 },                    // 00 - Number Room
        { "BelowYellowCastle", ROOMFLAG_LEFTTHINWALL, COLOR_OLIVEGREEN, 0x08,0x02,0x80,0x03 }, // 01 - Top Access
        { "BelowYellowCastle", ROOMFLAG_NONE, COLOR_LIMEGREEN, 0x11,0x03,0x83,0x01 },          // 02 - Top Access
        { "LeftOfName", ROOMFLAG_RIGHTTHINWALL, COLOR_TAN, 0x06,0x01,0x86,0x02 },              // 03 - Left of Name
        { "BlueMazeTop", ROOMFLAG_NONE, COLOR_BLUE, 0x10,0x05,0x07,0x06 },                     // 04 - Top of Blue Maze
        { "BlueMaze1", ROOMFLAG_NONE, COLOR_BLUE, 0x1D,0x06,0x08,0x04 },                       // 05 - Blue Maze #1
        { "BlueMazeBottom", ROOMFLAG_NONE, COLOR_BLUE, 0x07,0x04,0x03,0x05 },                  // 06 - Bottom of Blue Maze
        { "BlueMazeCenter", ROOMFLAG_NONE, COLOR_BLUE, 0x04,0x08,0x06,0x08 },                  // 07 - Center of Blue Maze
        { "BlueMazeEntry", ROOMFLAG_NONE, COLOR_BLUE, 0x05,0x07,0x01,0x07 },                   // 08 - Blue Maze Entry
        { "MazeMiddle", ROOMFLAG_NONE, COLOR_LTGRAY, 0x0A,0x0A,0x0B,0x0A },                    // 09 - Maze Middle
        { "MazeEntry", ROOMFLAG_NONE, COLOR_LTGRAY, 0x03,0x09,0x09,0x09 },                     // 0A - Maze Entry
        { "MazeSide", ROOMFLAG_NONE, COLOR_LTGRAY, 0x09,0x0C,0x1C,0x0D },                      // 0B - Maze Side
        { "SideCorridor", ROOMFLAG_RIGHTTHINWALL, COLOR_LTCYAN, 0x1C,0x0D,0x1D,0x0B },         // 0C - Side Corridor
        { "SideCorridor", ROOMFLAG_LEFTTHINWALL, COLOR_DKGREEN, 0x0F,0x0B,0x0E,0x0C },         // 0D - Side Corridor
        { "TopEntryRoom", ROOMFLAG_NONE, COLOR_CYAN, 0x0D,0x10,0x0F,0x10 },                    // 0E - Top Entry Room
        { "White_Castle", ROOMFLAG_NONE, COLOR_WHITE, 0x0E,0x0F,0x0D,0x0F },                   // 0F - White Castle
        { "Black_Castle", ROOMFLAG_NONE, COLOR_BLACK, 0x01,0x1C,0x04,0x1C },                   // 10 - Black Castle
        { "Yellow_Castle", ROOMFLAG_NONE, COLOR_YELLOW, 0x06,0x03,0x02,0x01 },                 // 11 - Yellow Castle
        { "NumberRoom", ROOMFLAG_NONE, COLOR_YELLOW, 0x12,0x12,0x12,0x12 },                    // 12 - Yellow Castle Entry
        { "BlackMaze1", ROOMFLAG_NONE, COLOR_LTGRAY, 0x15,0x14,0x15,0x16 },                    // 13 - Black Maze #1
        { "BlackMaze2", ROOMFLAG_MIRROR, COLOR_LTGRAY, 0x16,0x15,0x16,0x13 },                  // 14 - Black Maze #2
        { "BlackMaze3", ROOMFLAG_MIRROR, COLOR_LTGRAY, 0x13,0x16,0x13,0x14 },                  // 15 - Black Maze #3
        { "BlackMazeEntry", ROOMFLAG_NONE, COLOR_LTGRAY, 0x14,0x13,0x1B,0x15 },                // 16 - Black Maze Entry
        { "RedMaze1", ROOMFLAG_NONE, COLOR_RED, 0x19,0x18,0x19,0x18 },                         // 17 - Red Maze #1
        { "RedMazeTop", ROOMFLAG_NONE, COLOR_RED, 0x1A,0x17,0x1A,0x17 },                       // 18 - Top of Red Maze
        { "RedMazeBottom", ROOMFLAG_NONE, COLOR_RED, 0x17,0x1A,0x17,0x1A },                    // 19 - Bottom of Red Maze
        { "WhiteCastleEntry", ROOMFLAG_NONE, COLOR_RED, 0x18,0x19,0x18,0x19 },                 // 1A - White Castle Entry
        { "TwoExitRoom", ROOMFLAG_NONE, COLOR_RED, 0x89,0x89,0x89,0x89 },                      // 1B - Black Castle Entry
        { "NumberRoom", ROOMFLAG_NONE, COLOR_PURPLE, 0x1D,0x07,0x8C,0x08 },                    // 1C - Other Purple Room
        { "TopEntryRoom", ROOMFLAG_NONE, COLOR_RED, 0x8F,0x01,0x10,0x03 },                     // 1D - Top Entry Room
        { "BelowYellowCastle", ROOMFLAG_NONE, COLOR_PURPLE, 0x06,0x01,0x06,0x03 }              // 1E - Name Room
    };
    

    Here is the format for the rooms
    {
        const char* graphicsData;   // room filename
        byte flags;                 // room flags - see below
        int color;                  // foreground color
        int roomUp;                 // index of room UP
        int roomRight;              // index of room RIGHT
        int roomDown;               // index of room DOWN
        int roomLeft;               // index of room LEFT
    }
    
    #define ROOMFLAG_NONE           0x00
    #define ROOMFLAG_MIRROR         0x01 // bit 0 - 1 if graphics are mirrored, 0 for reversed
    #define ROOMFLAG_LEFTTHINWALL   0x02 // bit 1 - 1 for left thin wall
    #define ROOMFLAG_RIGHTTHINWALL  0x04 // bit 2 - 1 for right thin wall
    

    In game 3, there are upper and lower bounds of a room that an object can randomly appear in
    // Room bounds data for game level 3
    // Ex. the chalise can only exist in rooms 13-1A
    static const int roomBoundsData [] =
    {
       OBJECT_CHALISE, 0x13, 0x1A,
       OBJECT_REDDRAGON, 0x01, 0x1D,
       OBJECT_YELLOWDRAGON, 0x01, 0x1D,
       OBJECT_GREENDRAGON, 0x01, 0x1D,
       OBJECT_SWORD, 0x01, 0x1D,
       OBJECT_BRIDGE, 0x01, 0x1D,
       OBJECT_YELLOWKEY, 0x01, 0x1D,
       OBJECT_WHITEKEY, 0x01, 0x16,
       OBJECT_BLACKKEY, 0x01, 0x12,
       OBJECT_BAT, 0x01, 0x1D,
       OBJECT_MAGNET, 0x01, 0x1D,
       OBJECT_NONE, 0, 0
    };
    

    Careful, there is a bug here that allows keys to be locked inside castles....

    Objects that move on their own have a priority of what they guard/steal/take.

    The magnat has a priority of what it grabs first if more than one object is in the room.
    The bat has a priority of what it wants to steal
    The dragons have a priority of what it wants to "guard" or be near to.

    The dragons run away from the sword on easy difficulty, and ignore it on hard.
    Green and Yellow dragon have speed of 2, Red has speed of 3.

    From what I gather, When the dragons and the bat are "seeking" they go in a direction until
    they wind up in a room that has an object. If there are two objects it heads to the higher priority one.
    If the object is not in the list it will ignore it and continue in the direction it was going in. They have no
    idea what objects are outside the room, and only know then they enter one.

    The bat has a "boredom timer" that goes down from 255 when it has something. When it drops to 0 it
    drops whatever it has and goes into "seek" mode when it leaves the room.

    Here is the priorities of the bad guys...
    // Magnet Object Matrix                                                                             
    static const int magnetMatrix[] =
    {
           OBJECT_YELLOWKEY,    // Yellow Key
           OBJECT_WHITEKEY,     // White Key
           OBJECT_BLACKKEY,     // Black Key
           OBJECT_SWORD,        // Sword
           OBJECT_BRIDGE,       // Bridge
           OBJECT_CHALISE,      // Challise
           0x00
    };
    
    // Green Dragon's Object Matrix                                                                                      
    static const int greenDragonMatrix[] =
    {
        OBJECT_SWORD, OBJECT_GREENDRAGON,       // Sword, Green Dragon                                                         
        OBJECT_GREENDRAGON, OBJECT_HERO,        // Green Dragon, Hero                                                          
        OBJECT_GREENDRAGON, OBJECT_CHALISE,     // Green Dragon, Chalise                                                        
        OBJECT_GREENDRAGON, OBJECT_BRIDGE,      // Green Dragon, Bridge                                                        
        OBJECT_GREENDRAGON, OBJECT_MAGNET,      // Green Dragon, Magnet                                                        
        OBJECT_GREENDRAGON, OBJECT_BLACKKEY,    // Green Dragon, Black Key                                                     
        0x00, 0x00
    };
    
    // Yellow Dragon's Object Matrix                                                                                      
    static const int yellowDragonMatrix[] =
    {
        OBJECT_SWORD, OBJECT_YELLOWDRAGON,      // Sword, Yellow Dragon                                                    
        OBJECT_YELLOWKEY, OBJECT_YELLOWDRAGON,  // Yellow Key, Yellow Dragon
        OBJECT_YELLOWDRAGON, OBJECT_HERO,       // Yellow Dragon, Hero
        OBJECT_YELLOWDRAGON, OBJECT_CHALISE,    // Yellow Dragon, Challise                                                        
        0x00, 0x00
    };
    
    // Red Dragon's Object Matrix                                                                                      
    static const int redDragonMatrix[] =
    {
        OBJECT_SWORD, OBJECT_REDDRAGON,         // Sword, Red Dragon
        OBJECT_REDDRAGON, OBJECT_HERO,          // Red Dragon, Hero
        OBJECT_REDDRAGON, OBJECT_CHALISE,       // Red Dragon, Chalise
        OBJECT_REDDRAGON, OBJECT_WHITEKEY,      // Red Dragon, White Key
        0x00, 0x00
    };
    
    // Bat Object Matrix
    static const int batMatrix [] =
    {
           OBJECT_CHALISE,          // Chalise                                                                 
           OBJECT_SWORD,            // Sword                                                                   
           OBJECT_BRIDGE,           // Bridge                                                                  
           OBJECT_YELLOWKEY,        // Yellow Key                                                              
           OBJECT_WHITEKEY,         // White Key                                                               
           OBJECT_BLACKKEY,         // Black Key                                                               
           OBJECT_REDDRAGON,        // Red Dragon                                                              
           OBJECT_YELLOWDRAGON,     // Yellow Dragon                                                           
           OBJECT_GREENDRAGON,      // Green Dragon                                                            
           OBJECT_MAGNET,           // Magnet                                                                  
           0x00                                                                                                   
    };
    

    halkun on
  • slash000slash000 Registered User regular
    edited November 2008
    Oh, wow, nice Halkun. That actually explains a lot of the game's behavior pretty well. Thanks!

    slash000 on
  • halkunhalkun Registered User regular
    edited November 2008
    If you need anything else explained, I'll read the code and put it into English for you.

    halkun on
  • slash000slash000 Registered User regular
    edited November 2008
    Halkun, couple of questions:

    The magnet has a priority list.

    Does that mean that it only "attracts" one object at a time if there are more than 1 in a room? And when there are more than 1 in a room, it attracts the one highest on its priority, and just that one object? Rather than attracting multiple objects in the room?


    Also, on Quest 1, it seems like the Green Dragon just chills out in his little red cave with the Black Key, and will stay there as long as the black key is there, and won't chase the Hero to another room. Is that because the Green Dragon has a prioirty to guard the black key?

    slash000 on
  • halkunhalkun Registered User regular
    edited November 2008
    slash000 wrote: »
    Halkun, couple of questions:

    The magnet has a priority list.

    Does that mean that it only "attracts" one object at a time if there are more than 1 in a room? And when there are more than 1 in a room, it attracts the one highest on its priority, and just that one object? Rather than attracting multiple objects in the room?

    Yup, the magnet only attracts one thing at a time.

    Also, on Quest 1, it seems like the Green Dragon just chills out in his little red cave with the Black Key, and will stay there as long as the black key is there, and won't chase the Hero to another room. Is that because the Green Dragon has a prioirty to guard the black key?

    (wrong stuff was written here)

    ===EDIT===
    Nope this is wrong, the hero has a higher priority. He will chase the hero until the hero leaves the room. If the dragon is lured out of the room, he will then wander around. If not, he will return to the key.
    ===EDIT===




    Here's the logic directly from the code.

    Every program loop, each of the dragons are moved. Yellow/green two pixels, and red three.

    The dragon has three states. 0=Moving, 1=Dead, 2=you in his tummy (Not moving), and 3=roaring.

    if the dragon is state 0 (moving), and you touch the dragon, his state turns to 3 (roaring), then he jumps so you are near his open mouth, and will pause for ~1 second on easy and .5 seconds on hard. If you are still touching him, the state goes to 2, you are eaten, you are moved to his tummy and the game ends.

    If you have the sword and touch him, the dragon state goes to 1 (dead), the dead dragon sound is played.

    ----
    if the dragon state=0 (moving)...

    [if you have the sword, and it's on easy, chase =-1 and it flees (the movement vars are made to move away from you)]

    else

    [if the hero is in the room, and out of all the objects in the list, the hero is the highest priority, than chase=1 and he will move toward the hero.]

    if the dragon state=0 (moving)... AND looking for an object. (meaning.. there is no hero here)
    if an object is sharing the same room as the dragon. Go to the highest priority one
    (chase =1 and go towards the object)

    If there are no objects of interest, keep going in the same direction and move off the room into the adjacent one.


    Does that make sense?



    Oh BTW

    MOVING THINGS CAN MOVE OFFSCREEN WHEN NOT BEING SHOWN

    halkun on
  • halkunhalkun Registered User regular
    edited November 2008
    Oops, looking at the green dragon, the hero has a higher priority than the black key, so the dragon will chase the hero if he enters the room.

    halkun on
  • ZackSchillingZackSchilling Registered User regular
    edited November 2008
    So the entire game is an elaborate (for the time) state machine. Object oriented design without an object oriented language. Pretty neat the degree to which it was ahead of its time.

    ZackSchilling on
    ghost-robot.jpg
  • halkunhalkun Registered User regular
    edited November 2008
    Yup the whole thing, from the gates to the dragons. The whole game multitasked every object every cycle. Even if you were "eaten" the bat still flew around and fucked with shit offscreen, and sometimes flew past.

    halkun on
  • ViscountalphaViscountalpha The pen is mightier than the sword http://youtu.be/G_sBOsh-vyIRegistered User regular
    edited November 2008
    halkun wrote: »
    Yup the whole thing, from the gates to the dragons. The whole game multitasked every object every cycle. Even if you were "eaten" the bat still flew around and fucked with shit offscreen, and sometimes flew past.

    I've seen the bat grab a dragon once. It was fairly amusing.

    Viscountalpha on
  • slash000slash000 Registered User regular
    edited November 2008
    OK, halkun, just for some clarification:

    I just played Quest 1 for a bit. Neither the Yellow Dragon nor the Green Dragon "runs" the other way when I have the sword. Although the Yellow Dragon runs the other way when I have the Yellow Key. If I have nothing, the Yellow Dragon chases me from one room to the next to the next and so on. But the Green Dragon is in a room with a Black Key. When I enter that room, with nothing, the Green Dragon chases me around the room, but as soon as I leave the room, the Green Dragon stays with the black key in the other room. If I enter the Green Dragon's room with a Sword, it's the same thing; he'll chase me around the room but won't follow me out of the room.

    The Green Dragon will only follow me out of the room to subsequent rooms if I take the Black Key with me. If I leave to another room, he follows; if I drop the black key in another room, the Green Dragon stays in that room with the key and won't pursue me to another room.


    So it seems like in Quest 1 the Green Dragon absolutely guards the Black Key, but neither dragon is afraid of the sword. (but the yellow dragon is afraid of the yellow key at least)



    edit:
    rereading the priorities and dabbling in the game a bit, I think I'm understanding how it all works.

    slash000 on
  • halkunhalkun Registered User regular
    edited November 2008
    check what difficulty you are on. (Not game type, but what state the actual physical 2600 difficultly switch is set at.) I may have the difficulty logic backwards. I don't remember if "hard" is a 1 or a 0.

    halkun on
  • slash000slash000 Registered User regular
    edited November 2008
    halkun wrote: »
    check what difficulty you are on. (Not game type, but what state the actual physical 2600 difficultly switch is set at.) I may have the difficulty logic backwards. I don't remember if "hard" is a 1 or a 0.

    Oh, huh, okay, I'll have to double check on that.

    slash000 on
  • slash000slash000 Registered User regular
    edited November 2008
    Just got the Dragon's "eat player" code working. So that it'll properly eat the player if hes standing in the dragon's mouth too long. Also made it so that the dragon stops and roars when he touches the player. And of course I also made the dragon a tangible object, and set it up so that attacking him with the sword will kill it. The corpse is tangible too.

    Now I just have to make the Yellow dragon afraid of Yellow key, which should be easy... and I guess set up its priority list.


    Also.. I can't seem to figure out what's up with the original 2600. None of the dragons ever seems to flee from the Sword, regardless of the difficulty I have the system set to. Maybe I'm doing it wrong?


    What difficulty do I set it to? Left or right, a or b? What should the switches be properly set to? Does that matter? I can't get the dragons to fear the sword.



    Man. I keep looking over the priority list that Halkun posted on the last page, but I don't see how that can be. On Level/Quest/Game 1 and on 2, I come into rooms with the sword and the dragons always chase right at me. They don't ever seem to fear the sword. I've tried left and right switches on difficulties a and b and everything. Maybe they simply flee a room where the sword resides, but if the player comes into a room while holding a sword, they'll chase the player.


    I think my best course of action is to simply "Code it how I see it." If it works a certain way when I play the original, that's how I'll make it work in this one.

    slash000 on
  • slash000slash000 Registered User regular
    edited November 2008
    Should I put music for each individual area of the game? Like.. deep, slow scary music for the catacombs, spooky music for the Haunted Forest, adventurous music for the connecting overworld areas, etc.? I'm pretty sure I'd be able to do that...

    slash000 on
  • KhavallKhavall British ColumbiaRegistered User regular
    edited November 2008
    My view on scoring for multimedia is that the amount, style, all that, should depend on the reason for the scoring.

    With this sort of retro redesign from a 2600 game I personally would think that the scoring should be retro-ish in terms of general structure, but with the modern technological aspects, and when I think old games and music I think constant scoring.

    Personally, were I to do a score for something like this I think my scoring would be retro in terms of melody and harmonic structure, but something orchestrated with modernistic electronic instruments, possibly some that are slightly below the cutting edge, giving an overall aesthetic of modern technology and aesthetics being used as a look at the past. Almost a postmodernistic pastiche of the Atari 2600. And it would also be constant.

    Khavall on
  • slash000slash000 Registered User regular
    edited November 2008
    Khavall wrote: »
    My view on scoring for multimedia is that the amount, style, all that, should depend on the reason for the scoring.

    With this sort of retro redesign from a 2600 game I personally would think that the scoring should be retro-ish in terms of general structure, but with the modern technological aspects, and when I think old games and music I think constant scoring.

    Personally, were I to do a score for something like this I think my scoring would be retro in terms of melody and harmonic structure, but something orchestrated with modernistic electronic instruments, possibly some that are slightly below the cutting edge, giving an overall aesthetic of modern technology and aesthetics being used as a look at the past. Almost a postmodernistic pastiche of the Atari 2600. And it would also be constant.

    I really don't know anything about music, but what you write here sounds good.

    Personally, I couldn't compose a damn thing if I wanted to. But I can take music that's already made and put it into the game :D


    Since I can't make music, that was kind of part of my initial decision not to include it, opting instead for mostly ambient audio sound effects.

    Now I'm wondering if I should include both ambient sounds as well as music.


    But you've made a good point about music for this game. It would probably have to actually be written/scored by someone to be a good fit for a retro remake of this nature.

    Well, if you or you know anyone that'd be willing to give it a shot, I'd be happy to incorporate the music. There are only a few different areas in the game, plus intro, title, and ending music.

    slash000 on
  • KhavallKhavall British ColumbiaRegistered User regular
    edited November 2008
    I'll be working on some Ligeti etudes soon, but I'll see about coming up with a few quick mock-ups, I may end up having time to throw together a few real tracks soon-ish, before all the spring semester recitals and performances need a pianist or need a new piece to play for their concert.

    Khavall on
Sign In or Register to comment.