ID:806795
 
I'm just asking for some advice here. I'm making a text based RPG. How should I handle buildings in certain locations? Should I just make individual "turfs" and use move() to get to them? Or is there a more general way to handle it? The reason I ask is because right now I'm trying to use Room list variables to handle everything (including buildings). I suppose making the building a turf and controlling exits would be no prob...

What do you guys think? How should I handle this?
If it's fully text based (MUD style), the first would work fine I imagine. Just treat buildings as another room.

One thing you might want to do is write some code that constructs rooms from a list. So, say you have a list of rooms, each of which contains another list with descriptions, exits, etc. Then write code that generates all the rooms from that list on startup. As an example:

var/list/Rooms = new /list()
var/list/Butchery = list("Desc", "North Exit", "South Exit" ..etc)
Butchery["Desc"] = "A big butchery filled with meat."
Butchery["North Exit"] = Rooms[..Insert room num..]
Butchery["South Exit"] = null // No exit
What I do is utilize the map, but keep it hidden in-game of course. Use turfs with variables that control how you can interact with them. Also lets you use the default movement system without having to create your own.

This allows you to actually see what you're doing as you design the game's map, and gives you more freedom in creating things like objects and non-player characters.
In response to Nadrew (#2)
Nadrew wrote:
What I do is utilize the map, but keep it hidden in-game of course. Use turfs with variables that control how you can interact with them. Also lets you use the default movement system without having to create your own.

This allows you to actually see what you're doing as you design the game's map, and gives you more freedom in creating things like objects and non-player characters.

This won't count for telnet clients will it? - it shouldn't as you have to use Command() for the most part, But I guess you could do Command() up arrow = move north with BYOND's default movement system...
I'm trying to go with a completely retro style. I want players to feel like they were sent back to the 80's (I used to play Avalon RPG) when they play it. I'll probably utilize some "hidden map" feature but I most certainly will not have macros for anything like that. Players will have to macro if they really want to (if only I could disallow that too!).
In response to Lugia319 (#4)
Not sure who you are replying to there.

My concern with Nadrews answer is how Telnet would work with the game.

If you are going to implement Telnet ... if you don't then you are going to have a bad time.

The MUD community is pretty large and if you give access to the game via Telnet/other clients that use Telnet's protocols then you will hopefully get a large fan base.