Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Structure Building Blocks #3

Open
travisby opened this issue Nov 3, 2012 · 6 comments
Open

Structure Building Blocks #3

travisby opened this issue Nov 3, 2012 · 6 comments

Comments

@travisby
Copy link

travisby commented Nov 3, 2012

What will we use to "build' code?

I would like if we could make it "you can use (almost) any tool to build a structure, but some are more suited than others". I can't think of how we could do this simply, but it'd really be awesome

  • List
  • Stack
  • Queue
  • Array
  • Primitives
  • Pointers?
  • Loops
  • Model
  • View
  • Controller
  • Unit Tests (-- how can we add this in? The more you have, the less bugs should spawn)

Even if the tools in the game don't have any relation to the usage in actual code (i.e., what kind of building block would a loop look like?). I think it would be too hard to make things that semantically correct, but I at least believe we should have multiple building blocks, and they should be named after developing tools, possibly separated by pattern

@trescenzi
Copy link

I think that we've got enough puns and jokes in the rest of the game to have the blocks built out of things that are not CS related. I vote we just look to real world structures and build it that way. Which brings up another issue because now that I think about it we need a physics engine for this game to work the way we want it too...

Edit:
Oh and the reason I think that having the building blocks be actual CS related things is because then it's just going too far. I think that the game should be playable and enjoyable to people that have know absolutely nothing about CS.

Also as you pointed out there is no real way to make the paradigmes and CS concepts relate to building a real world building in a meaningful way. It's going to be more difficult for anyone to attempt to play the game if they have to use pointers instead of rope. Everyone knows that rope is long, kinda stretchy and could be used to connect two objects but even CS people would have no way to know without using it that pointers are stretchy. People should be able to pick it up and play it like I was able to with that bridge game. Spending time worrying about what the materials relate to IRL I think would be a huge barrier to entry.

Another edit:
If you really want to do that then why not make a geek mode that people can enter via the command line? They turn on the "pro" mode and everything only relates to CS concepts. Suddenly the button for rope says pointers and all commands have to be entered via the command line.

If we want we can correlate things to CS concepts behind the senes for bug creations. Like those pesky teleporters(GoTos) boy do they have a tendency to create a ton of bugs. I think that something like that, saying that the teleporters are still experimental and are prone to be dangerous, makes more sense to everyone than saying place a goto here to teleport.

@travisby
Copy link
Author

travisby commented Nov 4, 2012

AWESOME TELEPORT IDEA!

And the first edit was perfect. Exactly what I was looking for -- a way to debunk the idea. It's a solid reason not to do it too, thank you.

@travisby travisby closed this as completed Nov 4, 2012
@travisby travisby mentioned this issue Nov 4, 2012
@travisby travisby reopened this Nov 4, 2012
@travisby
Copy link
Author

travisby commented Nov 4, 2012

Reo-opening the issue, because we DO need to figure out what material still. :p

Wood / Steel / ?

@travisby
Copy link
Author

travisby commented Nov 5, 2012

bump

@trescenzi
Copy link

I think that we can find a good list in http://www.armadillorun.com/. It's an amazingly fun physics building game that should be a good starting point. I'll put a list together today and you should try to get one started too and then we can compair and combine the lists.

@trescenzi
Copy link

Ok so I figured that we don't need lots of building materials. Instead of many we can just make the ones that we have useful enough to really build anything. The list I have right now is:

Rope
Piston
Wood Block
Steel Plank
Rivet
Pivot Point
Teleporter

I think that would really let you build whatever you wanted. They need to be fleshed out a bit and the next time we chat I can do that. I was also thinking that they could be related to CS terms as follows, in the same order:

Pointer
Recursive Function
Loop
Straight Line Code
Header File
Conditional
Go-To

Here is what I jotted down about the different materials:

Rope connects things in a loose way. Maybe you can add tension to make it harder? Or just have both a rope and a pole. As to the CS connection with pointers they are quite safe but if you start to use too many it can be dangerous. Maybe if you forget to connect them to something bad stuff happens?

Pistons are a way to push objects and make things like elevators and what not. I don't really know why they would be like recursion except they just do the same thing over and over again. Maybe they speed up over time and then "overflow" if used too much?

Wood Blocks are just a way to get something that's like a platform but has a height to it. I'm thinking they are like loops because that way they are pretty much safe but because they aren't steel they can be broken by too many bugs or something like that.

Steel Planks would just be 1 dimensional objects. I figure they are like straight line code because while heavy they are rather resilient to major problems.

Rivets would be immovable anchors that are kind just there. Maybe you don't even build them but they are in the level already. They are like headers because they hold everything together.

Pivot Points would be like rivets but they can move and most likely you would be able to build them. Or maybe they exist in the level already and by nailing it with a rivet it prevents it from moving. They are like conditionals because they are flexible? Makes sense to me lol. Maybe the rivets plug the pivot points together like how a header file keeps all of the code together? That way they don't more anymore?

Teleporters are teleporters lol. I really just want an excuse to allow for go-tos. I think it could be hilarious if you got to the level where you unlocked teleporters and the guy's all worried about the moral problems of using teleporters and how dangerous they are.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants