last day (214 days later) » 

8:02 PM
Also I need to figure out how visibility will work
Ahh, tomorrow.
 
See you later @AnnonomusPenguin
Brb. Gonna go get some lunch.
 
Back. I got bored :)
@QPaysTaxes it's already in teh room description
*the
One second.
Useful Links: Source, Spec.
2
@QPaysTaxes fixed
 
8:20 PM
room topic changed to Adventure Engine: General discussion about: github.com/ShearOfDoom/TextEngine Here's the docs: docs.google.com/document/d/… [fun] [game] [no-its-an-engine]
 
Back @Ethan?
 
Yup. I had a nice lunch.
See ya
I'm wondering if we can find a way to somehow combine all three of these ideas, and not break everything.
 
@EthanBierlein the map section of mine is pretty similar to your map section, except you use a 1D array and I have a 2D array
You just go into more detail
@QPaysTaxes that is for the content of each room
no...
 
You have a point, I just use a 1D array to have somewhere to store room data, and the "links" to other rooms are just stored as part of each room's individual data.
 
It's just the contents of the room, like {"air", "water", "cheese"}
@QPaysTaxes oh yeah, it is. What's your point, though?
@QPaysTaxes why do you say that?
@QPaysTaxes each room is a graph
@QPaysTaxes we're talking about inside each room how we store data
So the layout of each room, not the layout of multiple rooms
 
8:36 PM
I'm gonna go play some starmade, I'll be around, but highly distracted.
Yes
More like zork, rather than an incremental game like A Dark Room.
I see what you mean, it's sort of a combination of both.
 
@EthanBierlein errrmm
I was thinking it was more along the lines of a grid based game where it's like it's "move left" and then it presents you with different options at each point
So, kinda like Zork except that it's more grid based
Like...
 
Yes, exactly
 
look around
@EthanBierlein can you just give us an example of gameplay?
 
You are currently at location x. You can move in directions a, b, and c.
> move a
Or
You are currently at location x. You can do a, or b.
> perform b
 
@QPaysTaxes does have a point.... it's going to be a pain to wander around in a room for an hour to figure out where everything is
 
8:44 PM
We could have an interactive map of sorts.
 
Like?:
x_____xxxxx
x_____xxx
where Xs are filled space and _s are empty space?
 
Yeah, something like that.
 
I don't know. You two seem to be more opinionated than me on this matter, so I'll let you two figure this out
@Ethan ^^^
 
What's the idea?
 
The question isn't if it will be Zork like, it's if we want to add more of a grid style to it
One second
 
8:53 PM
A Zork engine sound interesting, although I think that this engine will probably be Zork-Ish with grid maps.
 
@QPaysTaxes we're saying grids inside each room
 
Okay, maybe we should call it a "location" then.
Just to clear up all the confusion.
ABORT
 
You have now been transported to an empty room. At coordinates (2, 4) stand a tall oak door with a sign on it.

> move 2 3

You are now at (2, 3)

> open door to north

The door is locked.

> unlock door to north

The door to the north is unlocked now.

> open door to north

The door to the north is now opened.
You have been transported to a room with a long table.
I was thinking something like this originally ^^^
 
Let's go with that.
We can come up with an actual syntax later
 
> move up three

A table stands in the way
@QPaysTaxes yes, but do we equip them with a grid or not?
haha
@QPaysTaxes it would be an important feature if we do use it though
Not easily plugonified
@QPaysTaxes and completely re-writing how we store maps
Hmm
We could also do one-block rooms
But that would hurt readability
I think that having a grid would make it easier to create worlds... instead of a large list of complicated if statements and variables we could just arm the gamemaker with a few tools
So, the user might not even have to deal with coordinates, but the programmer could use them to easily automate things
One second
Think of a room with a locked door on the other end and a table in the middle that blocks the path
With a simple room, you could have a isTableBurned boolean and have a burn command for the user to use.
They can only get to the other side of the room if the table is burned
Ok, debris. I just wanted to burn a table
The table was the full width of the room
@QPaysTaxes the gamemaker wanted a table in the middle of the room
LET THE GAMEMAKER DECIDE :D
Say now that there's a series of... tables... blocking the path from the door to the king's throne, making a series of "layers"
Does that make any sense?
Exactly.
 
9:07 PM
room topic changed to Adventure Engine: General discussion about TextEngine: github.com/ShearOfDoom/TextEngine specs docs.google.com/document/d/… [fun] [game] [no-its-an-engine]
 
Hmmm
One second
Let me finish
;jkfsda;jlkfsd;lkadsf;jdsf;kljfdsk;jasdf;kjdk;sjakj;s
Rage quits
 
I gotta go, brb later.
 
Ok
burns computer
 
You guy can keep discussing if you want to. I can catch up later.
 
OK
@QPaysTaxes don't forget I can put this room on time-out >:)
However, let's say that in the third level there's a door to the side that leads to a bathroom. That bathroom has a window that can be broken quicker than a table can be burned
But, now, how do you do this situation?
You're in level three, with no locks broken yet.
@QPaysTaxes exactly!
It's a mess to work with
Tons of variables, tables shared between rooms, etc.
But, if we had a grid
We could let the gamemaker set a layout for the room with each table
And then, they could use a isValidPath() function
When a table is broken, they physically remove the table block
And big room?
@QPaysTaxes try stop reading the Odyssey
@QPaysTaxes I guess you're right now that I think about it
That your approach would be easier
But instead of a room to the N/E/S/W, you would just have an option to switch to a different room
So you could have 50 doors in a room
?
Huh?
???
@QPaysTaxes yes, defined by the user
So they would have a function like this:
def openDoor():
switchRoom("tacoRoom")
Now we just need to figure out if commands should be cascading or room-specific
> Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say that they were perfectly normal, thank you very much.
> They were the last people you'd expect to be involved in anything strange or mysterious, because they just didn't hold with such nonsense.
Oh sorry.
Didn't see that you were trying to focus there.
Carry on :D
Hmm....
Maybe?
Wait... list of what?
ok...
@QPaysTaxes agreed
Yes
I understand that
:D
Trust me, I'm ready!
Maybe. Probably not.
Yes
I'm not liking it totally. What if there were two doors to the north?
oh, so it wouldn't have to be west or north
I see
The thing is this--what if the door to the north had a lock on it?
I don't see where that would be helpful to have that as a default
They would want to explain it if it's not
> The door just rejected you. Better luck next time!
Give me a scenario where a room would reject a player
I see, but that makes it too complicated
It would make more sense to have a door reject you, not a room
Let me write some example code
Ooohh.... can we call this engine Cactus?
We should have an easter egg where it, no matter what, kills you if you type eat cactus
@QPaysTaxes we have a "mandatory" header that disables/enables the cactus functionality
No
We should have a goto function that automatically draws a t-rex on the screen and exits
ANYWAY:
Have these items as part of a Geolocation class item:
dictionaryOfRoomExits = {'north': [id], 'south': [id]}
dictionaryOfRoomItems = {'taco': 'Moldy Taco', 'cactus': 'Cactus', 'door': 'Door to the west'}
@QPaysTaxes I'm calling it a Geolocation to avoid confusion
But you can call it whatever
So the goto() function will 1.) read the game files and create a Geolocation class using the data (like the stuff above) 2.) list out all of the items ("This room has: Moldy Taco, Cactus, Door to the west"
And for each of the items it has an option
so you could do taco help and it would display Taco: eat, pick up
So the dictionary would be string → tuple(longer description, dictionary(commandString → functionWithArgs))
So... we could include a default open function
And then they could do this:
 
9:42 PM
Yes, I am very okay with naming it Cactus.
 
def eatTaco():
    game.player.kill()

tacoRoom = Room.init({'taco': ['Moldy Taco', {'eat': eatTaco}])
So the game engine would, when they enter the taco room, automatically list out all of the contents of the room and it would handle everything for the user
For a door, they could link it to a switch_room_to_main_room() type function
Does that make sense?
@EthanBierlein haha yay
@QPaysTaxes but how?
We could let them override the function that lists out the rooms content
I see this being a very "think" framework that has a ton of defaults that they override when they don't like it
But, for now, we should build to do the ton of defaults and then do the overrides later
Let me revise my spec
Do you want to just consolidate?
Like the file structure?
Okay
So, any objections to me diving in?
 
9:58 PM
Wow, I feel like I'm not really helping here. Sorry!
Yes
BRB
 

  last day (214 days later) »