Misc Let's make a dungeon crawler!

Discussion in 'Community Creations' started by lychee, Apr 8, 2018.

  1. lychee

    lychee [- slightly morbid fruit -] ❀[ 恋爱? ]❀

    Joined:
    Jul 22, 2017
    Messages:
    2,156
    Likes Received:
    5,407
    Reading List:
    Link
    Hi! I'd like to make a NUF bot game, and I'd love to have help!

    Setting/premise:
    • A maze-like dungeon that's filled with monsters
    • Floors get bigger as you get deeper, and monsters get harder
    • Gain exp, sell loot, gain levels, etc.
    • If you die, you lose all your levels and need to start over

    How it would work:
    • Bot follows one thread, and scrapes for commands (e.g. !forward !back !right !left !attack)
    • Bot checks for commands every 5 minutes and posts output for each player that did something in a spoiler.

    Bot output would look something like this:
    Code:
    ##################
    ######████  ######
    ####██████  ██####
    ####██.a    ██####
    ##████      ████##
    ##████  []  .b  ##
    ####██    ████####
    ##################
    
    []: You
    .a: A treasure chest
    .b: A large rat
    

    Things needed:
    • Bot that can scrape and post on NUF (in progress... I have scrap code)
    • Dungeon generating algorithm or floor maps
    • Monster list with exp and stat values
    • Character stats, HP, etc, etc.
    • Battle system
    • Items, equipment, drops, and shop values
    I think the easiest thing to do is to adopt D&D features, but I've never played D&D before so I don't fully understand it.
     
  2. Fossil

    Fossil 「Spooky」「Scary」「Skeleton」

    Joined:
    Jun 5, 2016
    Messages:
    3,566
    Likes Received:
    19,341
    Reading List:
    Link
    Sounds fun! And in multiplayer compatibility and then it gets ten times better! Though it would also get ten times harder to code I’d imagine.
     
    Nino Sasou likes this.
  3. lychee

    lychee [- slightly morbid fruit -] ❀[ 恋爱? ]❀

    Joined:
    Jul 22, 2017
    Messages:
    2,156
    Likes Received:
    5,407
    Reading List:
    Link
    Actually multiplier isn't that bad because it's kind of like a turn-based game with 5-minute turns.

    The idea is to fit all the players on the same world map lol
     
    Fossil likes this.
  4. Anon Ymous

    Anon Ymous Well-Known Member

    Joined:
    Apr 16, 2016
    Messages:
    2,667
    Likes Received:
    8,521
    Reading List:
    Link
    good luck perverted fruit we will root for you and your project
     
  5. Fossil

    Fossil 「Spooky」「Scary」「Skeleton」

    Joined:
    Jun 5, 2016
    Messages:
    3,566
    Likes Received:
    19,341
    Reading List:
    Link
    Then I’m all for it! I’d love to help with the ideas, but coding is not something I’m good at. Maybe beta-testing if you need it?

    It sounds fun, so if you do, count me in!
     
    lychee likes this.
  6. Fi

    Fi Chosen One

    Joined:
    Mar 28, 2018
    Messages:
    225
    Likes Received:
    125
    Reading List:
    Link
    Go for roguelike map generation for floor maps? There's so many roguelike you can play on the terminal if you want.
     
  7. lychee

    lychee [- slightly morbid fruit -] ❀[ 恋爱? ]❀

    Joined:
    Jul 22, 2017
    Messages:
    2,156
    Likes Received:
    5,407
    Reading List:
    Link
    What is this?

    Err, it might take months. XD depends on when I have time~
     
  8. DocB

    DocB "I see you, little mouse! Run along"

    Joined:
    Nov 10, 2015
    Messages:
    3,573
    Likes Received:
    8,110
    Reading List:
    Link
    go play brogue
     
    lychee likes this.
  9. Ddraig

    Ddraig Frostfire Dragon|Retired lurker|FFF|Loved by RNG

    Joined:
    Apr 6, 2016
    Messages:
    7,853
    Likes Received:
    22,455
    Reading List:
    Link
    I want this >.<
     
  10. Agecaf

    Agecaf Grand Archmathemagician

    Joined:
    Feb 24, 2016
    Messages:
    605
    Likes Received:
    331
    Reading List:
    Link
    Sounds interesting, good luck with that. From what I understand, it'd be a roguelike? Or like a MUD (multi user dungeon)?
    A way to make it "multiplayer" and simpler at the same time would be to make it like something like Twitch plays Pokemon, where users put the commands and they are all taken into account, for the same unique play-through. It'd be easier to make than having separate games for each user, and maybe more fun as a forum game?
     
  11. Devil of Boredom

    Devil of Boredom Exists.

    Joined:
    Jan 25, 2017
    Messages:
    503
    Likes Received:
    398
    Reading List:
    Link
    Sounds good.......
    interested in this so i support it........
    Not good at Coding can help in other areas if i can...........
     
  12. xconan25x

    xconan25x Well-Known Member

    Joined:
    Mar 11, 2016
    Messages:
    82
    Likes Received:
    6
    Reading List:
    Link
    I hope you can make it. Please let it be unlimited level and stats and have free distibution on it.
     
  13. Ddraig

    Ddraig Frostfire Dragon|Retired lurker|FFF|Loved by RNG

    Joined:
    Apr 6, 2016
    Messages:
    7,853
    Likes Received:
    22,455
    Reading List:
    Link
    For weapons and stuff, you can have a database of effects and every stuff gets a random assortment from those.
    For multiplayer you can do like, everyone enters there input. All entered inputs are executed by the bot together whenever the bot checks the thread. Bot checks the thread every 10 sec
     
  14. Milanin

    Milanin [Reader] [???] [Freeloader]

    Joined:
    May 6, 2016
    Messages:
    1,573
    Likes Received:
    1,497
    Reading List:
    Link
    With players joining in, it would be a spamfest even from bots side, let alone the number of replies you'd get.
    I'd be a nightmare to follow along and interacting with others would cause all sorts of trouble.
    If the monsters are stationary, that solves a lot of problems. And that they don't attack if a player is just standing next to them, but only wait to counterattack. Also a multi-player gang-up on a single monster which causes the bot to choose one of the attackers instead of all of them (raid bosses, possibly later with multi-hit).
    The shops would need unlimited items or per-player limited shopping otherwise if it were to have unlimited, someone who is willing to grind, would. (Maybe nerf the gains from attacking lower level monsters by dividing the level by level, meaning that also those who are lower level than the monster would get higher rewards, but it'll be a mess if power leveling happens)
    ... etc...
     
    lychee likes this.
  15. Fi

    Fi Chosen One

    Joined:
    Mar 28, 2018
    Messages:
    225
    Likes Received:
    125
    Reading List:
    Link
    Try to search for roguelike or MUD on play store or something? If you experience it, you'll know.
     
  16. lychee

    lychee [- slightly morbid fruit -] ❀[ 恋爱? ]❀

    Joined:
    Jul 22, 2017
    Messages:
    2,156
    Likes Received:
    5,407
    Reading List:
    Link
    Prototyping.... so for each "turn", db would update:

    Maps (doesn't change unless there's a map generator function):
    • Floor 1: X-Y matrix with valid cells marked
    • Floor 2: X-Y matrix with valid cells marked
    • Unnecessary to keep floor saved unless there's a player on it
    Players (positions):
    • @lychee - Floor 1, position(x,y), facing(up/down/left/right)
    • @yuzuki - Floor 1, position(x,y), facing(up/down/left/right)

    Monsters (positions):
    • Rat - Floor 1, position(x,y)
    • Rat - Floor 1, position(x,y)
    • Rat - Floor 1, position(x,y)
    • Bat - Floor 1, position(x,y)
    • If a monster dies, respawn it in a valid place on the same floor
    • Only necessary to run AI when players on on the same floor as monsters

    Static (positions - generated when floor is made):
    • Treasure chest - Floor 1, position(x,y)
    • Treasure chest - Floor 1, position(x,y)
    • Trap - Floor 1, position(x,y)

    -------------------------------------------------

    Monster AI:
    • Random 1-space move every turn (5 minutes) (...for now)

    Player actions:
    • !move Can move up to three spaces per turn (5 minutes per turn)
      • Example: !move UUR (up-up-right)
    • !status
    • !attack [target]
    • !action [target]
    • !logoff - saves your position and quits so time isn't running for you

    -----------------------------------

    Bot would post once per 5 minutes regardless of the number of players currently "online". If there are no players online, then it wouldn't post at all.

    Each player's screen would be printed in a spoiler within the bot post.

    For players that didn't move, the screen isn't printed again with each bot post unless there's a change to that player's screen (e.g. a monster appeared).

    It's important for players to "logoff" when they're not playing or they might be killed by wandering monsters.

    Haven't figured out monster AI yet. But good point about multiple attackers.
     
  17. Ddraig

    Ddraig Frostfire Dragon|Retired lurker|FFF|Loved by RNG

    Joined:
    Apr 6, 2016
    Messages:
    7,853
    Likes Received:
    22,455
    Reading List:
    Link
    You dont need to keep them stationary, make them move every bot post. Make a 2d array detailing position of everything making sure they dont overlap. Monster moves towards nearest person (atleast for easy melee monsters). If the range is greater than the dist, attack depending on aggressiveness.
    You can make traps, increase grid size when there are many people
    Make experience formula have heavy decrease with level difference (dont make it exponential decrease but near enough)
    Items would be random assortment of stats, type, effects made from a database. The probabilities of powerful items would be locked based on level. Have a simple currency system. Make player markets.

    I can help code a little (highschool student who knows java and can code)
     
    lychee likes this.
  18. Fluffums

    Fluffums 【R-18 Researcher】【Seeker of Moe】

    Joined:
    May 12, 2016
    Messages:
    2,403
    Likes Received:
    3,649
    Reading List:
    Link
    Don't do D&D then. It's not all that good. I'd honestly recommend Fire Emblem mechanics for simplicity's sake if you're using a bot to resolve combat. It would also make generating monsters and characters based on race/level a bit easier, you just need level 1 stats + growth rate %s and you can make everything from zombies to death knights, or everything from baby dragons to ancient dragons, with just one stat sheet and whatever weapon stats you need.
    https://serenesforest.net/shadow-dragon/miscellaneous/calculations/

    The site also has a lot of item stats and class stats, also class skills for some games, available to look at for inspiration.
     
  19. Ddraig

    Ddraig Frostfire Dragon|Retired lurker|FFF|Loved by RNG

    Joined:
    Apr 6, 2016
    Messages:
    7,853
    Likes Received:
    22,455
    Reading List:
    Link
    For elemental parts which i think we should add, we can use pokemon type advantages system. We can also use pokemon's growth rates if required.
    For monster types, we can use digimon types for variety
     
  20. Fluffums

    Fluffums 【R-18 Researcher】【Seeker of Moe】

    Joined:
    May 12, 2016
    Messages:
    2,403
    Likes Received:
    3,649
    Reading List:
    Link
    I think those mostly only work if the players are also monsters or only fight with tamed/allied monsters. Fire Emblem lets specific classes be weak to certain weapon types (like flying units are weak to bows, and undead are weak to Light type magic) so it would work pretty well without adding too much complexity to the coding.