Shop OBEX P1 Docs P2 Docs Learn Events
Progue - a roguelike written in Spin — Parallax Forums

Progue - a roguelike written in Spin

Chris MerckChris Merck Posts: 55
edited 2009-08-18 15:08 in Propeller 1
I am working on a Rogue clone written in Spin. See attached screenshot.

So far there is just the most basic map generation, movement, and vision code.

Will post more when more exists to post.





SEE ATTACHED LATEST VERSION

Post Edited (Chris Merck) : 8/16/2009 4:36:58 AM GMT
«1

Comments

  • AndreLAndreL Posts: 1,004
    edited 2007-06-09 01:30
    Rogue? I remember an EPYX game called "rogue" the same that you are going for?

    http://home.arcor.de/cybergoth/gamesc/rogue.html

    I used to play "temple of apshai" [noparse]:)[/noparse] That got me into doing RPG games...

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

    The code was in basic/asm, so I liked opening it up and tweaking it, those were the days...kinda like that hydra [noparse]:)[/noparse]

    Andre'
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-09 02:53
    Yeah, Rogue was sold to EPYX somewhere along the line.

    Temple of Apshai is right along these lines, only with bitmapped graphics.

    (update: got traversing and vision working!)
  • edited 2007-06-09 03:11
    Is this a text adventure? wow...but does it have any graphics? besides the text? but still it's cool

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Realize that I am really a mad scientist··· and


    Don't forget it!

    http://raydillon.com/Images/Illustration/GameArt/WildIsle/WildIsle-Ink-ScientistClose.jpg

    ·
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-09 13:32
    it does have graphics, just text-mode graphics.
  • JT CookJT Cook Posts: 487
    edited 2007-06-09 16:59
    That is pretty cool. It looks like a PC character set, did you write your own character driver for that?
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-09 17:18
    nope, just the default VGA_HiRes_Text character set which is really 7-bit ASCII plus some extra symbols
  • JT CookJT Cook Posts: 487
    edited 2007-06-09 17:26
    That is cool. Can you post the source, I'd really like to try it out.

    Post Edited (JT Cook) : 6/9/2007 5:57:22 PM GMT
  • AndreLAndreL Posts: 1,004
    edited 2007-06-13 01:02
    Any progress on the game? Let's see a .1 version?

    Andre'
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-13 05:13
    Why yes, there has been progress.

    Here is a binary preview.

    I have made more progress than is apparent in the preview because most of the code does not have a front-end yet.

    HARDWARE: For use with a VGA monitor and PS/2 keyboard. This works fine on my Propeller Demo board, and it should work on the Hydra. Your mileage will vary. Someone with a HYDRA please tell me if this works or not! If anyone needs a TV version just prod me sufficiently nicely.

    Directions: move around with arrow keys or number pad (8-directional), for a rather pitiful help screen type '?'.


    Enjoy, stay tuned for more!
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-13 05:19
    the obligatory screen shot
    845 x 634 - 62K
  • JT CookJT Cook Posts: 487
    edited 2007-06-13 23:37
    I don't think it will work because the demo board and Hydra have I/O on different lines (and I think the demo board uses a 5mhz crystal and the Hydra uses a 10).

    If you can post the source I can port over though.
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-13 23:52
    ok, the attached is a Hydra build. If someone could run it quick on a Hydra I would much appreciate it!

    (i will release the source in a few days)
  • JT CookJT Cook Posts: 487
    edited 2007-06-14 00:04
    Cool, I can probably try it out tomorrow if someone else doesn't
  • JT CookJT Cook Posts: 487
    edited 2007-06-14 22:21
    I tried it out and it does work. I haven't seen that VGA driver before, but it is kinda cool for a retro DOS feel. I will have to check out the source.

    What are the keys to play other than the arrow keys (like to pick up stuff)?
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-14 23:05
    I am half-way through the inventory code, so you cant pick-up or equip yet. Press 'h' to see the proposed commands.

    Yesterday I got the monster movement code down, which operates in four modes:

    hostile - moves towards and attacks PC
    neutral - moves randomly
    tame - sticks near PC and attacks hostile monsters near PC
    afraid - moves away from PC

    it is rather satisfying to see "You hit the rat. The rat shrieks in fear!" and then having it run off into the darkness.




    JT, as far as the vga driver, it is the standard Library high-res driver + Micheal Green's terminal emulation code (very good) + my locate(x,y) and swap_cursor commands for efficiency. The driver is attached
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-15 04:49
    I did a little more work on Progue tonight and got it to a playable-ish state. By playable I mean you can progress many levels into the dungeon, there is some skill involved, and you can heal yourself in the pools located in each level. Also, harder monsters spawn on each level.

    There are bugs in the game besides the claw bug monsters so beware!

    Attached to the first post is the full source and the two modified drivers required to play. You will need a VGA monitor and a PS/2 keyboard.


    Tell me what you think! Of course this isnt finished, but the code is layed out in a way to be rather fertile to new development.




    HINT HINT HINT: to get to a lower level, look for the down stair case which always spawns on tile (50,25) (lower right of map), and press ">" when over it to go down!



    SOURCE MOVED TO FIRST POST

    Post Edited (Chris Merck) : 6/17/2007 5:13:36 AM GMT
  • AndreLAndreL Posts: 1,004
    edited 2007-06-15 05:33
    Chris, some advice about deployment. To get people try something, you have to make them work very little. So I would suggest a single ARCHIVE with the files in it, this way, one download, blow it up, grab the top file and it works. Also, you might want to start putting version numbers on your files so people can keep track of them and you.

    Andre'
  • BaggersBaggers Posts: 3,019
    edited 2007-06-15 09:48
    Cool, it's coming along nicely [noparse]:)[/noparse]
    I killed all of the baddies on level 1 then fell down a pit and died lol

    Keep it up [noparse]:)[/noparse]

    Baggers.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2007-06-15 18:24
    Chris where'd your code go? It was there last night but now its missing.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • epmoyerepmoyer Posts: 314
    edited 2007-06-16 03:35
    Nice job, Chris!

    This is actually the first time I've run VGA on my Hydra; the first couple demo's I tried didn't sync with my LCD monitor and I never bothered dragging the CRT over to try them on that.

    Good choice for a port; Rogue is very well suited to the environment. It would be cool to support a save feature eventually. The EEPROM drivers are a piece of cake to use so it probably wouldn't be so hard to support saving/restoring the game state to the region above 32K. As far as I know you'd have the first prop game with a save/restore feature (and the first game to warrant one, if the dungeon goes deep enough... [noparse]:)[/noparse]
  • epmoyerepmoyer Posts: 314
    edited 2007-06-17 02:26
    Chris,

    You can replace the start() function in vga_Drive with the code below to add a splash of color to Progue. This mod makes the background black, the play field green, the upper 2 status lines red, and the bottom status lines blue. Today the vga driver uses the upper bit of of an ascii character as an "invert" flag but I bet it wouldn't be too hard to make that bit invoke an alternate character color, which would allow you to use a different color for monsters/objects in the play field.
    PUB start(basePin) ' Default initialization
       longfill(screen,$20202020,cols*rows/4)
       wordfill(colors,%%0000_0300,rows)
       wordfill(CONSTANT(screen-2),%%0000_0030,1)
       wordfill(CONSTANT(screen-8),%%0000_0030,1)
       wordfill(CONSTANT(screen-(rows*2)),%%0000_3000,1)
       wordfill(CONSTANT(screen-(rows*2)+2),%%0000_3000,1)
       bytefill(cursor,0,6)
       colNo := rowNo := 0
       arg := 0
       return startX(basePin, screen, colors, cursor, sync) 
    
    



    Again, great work so far! It's very cool to see the Prop pumping out a game with such clean graphics on a real screen; I've been working with TV for so long that a VGA game is a real breath of fresh air.
  • Chris MerckChris Merck Posts: 55
    edited 2007-06-17 05:10
    Paul, I decided the original post was the appropriate place for the latest code. Sorry for the confusion.

    epmoyer, thanks for the tips, I would like to add color. Perhaps coloring monsters and items appropriately.
    Perhaps the high bit could be used to select two colors, but even with out it the vga driver could me modified to color monsters appropriately, making all 'd's grey, 'r's brown, 'D's red and so on (making for grey wolves, brown rats and red dragons).


    I also wonder if sound should be added to the game. Chip's monks plus some HDMF would make for epic dungeon ambiance.


    EDITED to show epmoyer's coloring effect

    Post Edited (Chris Merck) : 6/20/2007 12:02:51 AM GMT
    758 x 584 - 812K
  • Paul BakerPaul Baker Posts: 6,351
    edited 2007-06-17 05:57
    Ah missed that, cool I'll add you to the project master index now.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • epmoyerepmoyer Posts: 314
    edited 2007-07-06 15:50
    Chris,

    I had another interesting idea for faking colors. Why not appropriate some unused ASCII characters and turn them into color specifiers? The driver could render them as spaces, but whenever they occur they would set a new color for the rest of the text line. It doesn't work for stuff in the play field (like monsters and items and such), because characters of different colors need to be adjacent, but your proposed scheme above (hard coding the color of various monster/item symbols) takes care of that. It would be useful however on the command/status lines to color various fields in different colors. I's probably a useful enough general purpose mod to be folded into the text display driver.
  • AndreLAndreL Posts: 1,004
    edited 2007-07-11 00:43
    Chris,

    Any updates on the game? Once you get done, you should do a port of "Hacker". Did you ever play that on the C64 or Atari, one of the funniest non-graphical games I ever played.

    Andre'
  • soshimososhimo Posts: 215
    edited 2008-12-28 23:33
    @Chris - I realize this is a necro post but I just posted about doing Hack (which was a Rogue clone) on the Hydra forums and OBC pointed me this way. Was there any plans on incorporating some of the "Hack" features into Rogue? It included shops, pets, and tons of different monsters (rust monsters eat your armor, watch out!). I also remember the Hack game for the Amiga and C64. That would be a fun port as well I think.
  • Chris MerckChris Merck Posts: 55
    edited 2008-12-29 09:34
    @soshimo - I have actually only played Rogue once. Years ago I played a lot of Moria. Then I learned that there were other games of its genre (yeah!) and then dabbled in Rouge, Nethack, Angband, and some others. However, the best rogue-like imho is ADOM. That said, as far as my plans to continue working on this project, I don't seem to have much freetime in the vicinity of a windows box anymore, and so propeller hacking has gone to the back-burner (or maybe behind the stove). If you wan't to do a Hack port, go for it! Tell me how it goes.

    -Chris
  • ProcessingData...ProcessingData... Posts: 208
    edited 2009-06-01 23:55
    I found this "prouge" game a while ago, looked at it, said "that's nice.", and thought no more of it until recently. I found it again, hidden away on my ZIP drive, and thought i could add some stuff to it. so here it is. It has:

    Sound(for the demo board)wink.gif

    potions that accually DO somethingtongue.gif

    scrolls that accually DO something

    gold you can pick up

    you cannot get to the next level until you get all the scrolls

    IT IS COMPLETLY RANDOM, or as random as psudo random gets

    Your name is used to seed the levels

    it saves the random number to EEPROM & reads it on startup

    "=" is now a bomb or 20 gold depending on a random roll

    Alters("_") allow you to buy potions for 5 Gold or scrolls for·7

    There are glitches, and improvements do not always follow the helpful·TO DO lists

    provided, but it is at least playable and fun.

    added keys: s = quaff, v = scroll

    The file is attached.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Basic Stamp,···· Propeller,·· · SX,·· FUN!


    START:·
    >Proccessing Data. . . .··
    >Task Complete. . .·.
    >Saving Data. . . .
    >Entering SLEEP Mode. . . .
    >Signing OFF


  • Chris MerckChris Merck Posts: 55
    edited 2009-06-02 03:32
    This just made my week.

    Perhaps I'll pull the prop out of the closet and add more reasonable map generation...
  • trodosstrodoss Posts: 577
    edited 2009-06-02 14:20
    @ProcessingData,
    Very nice! Like the addition of the sound, and when I have more time this evening will play it more.

    you could just add a CON for 'soundPin,' and then use the Demo/Proto/Hydra flags at the top of the code to determine whether you use pin 10 (Demo/Proto) or 7 (Hydra).

    soundPin = (Hydra & 7) | ((Demo | Proto) & 10)··· 'SOUND

    ...You get the idea [noparse];)[/noparse]


    Since you are using the I2C code, it might be nice to add a load/save of your current items, state, modifiers, etc.

    In the OBEX there is an object titled "Real Random" that might be of some interest. It might save you from having to use the person's name as a 'seed.' That is, unless they change their name often [noparse];)[/noparse] [noparse][[/noparse]Edit:]·Using their name as a seed is pretty clever though.

    "Real Random" object
    http://obex.parallax.com/objects/62/

    Post Edited (trodoss) : 6/2/2009 2:39:10 PM GMT
Sign In or Register to comment.