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

git-game-v2 feedback #1774

Closed
ColdNightHour opened this issue Jun 10, 2015 · 11 comments
Closed

git-game-v2 feedback #1774

ColdNightHour opened this issue Jun 10, 2015 · 11 comments

Comments

@ColdNightHour
Copy link

Hello Mr. Izbicki. My partners @hkwan003 and @jruel006 improved upon the git game like you told us to yesterday and would like to see if we should do anything else before we actually confirm we we are done. Here is the link. Thank you very much.

@mikeizbicki
Copy link
Owner

I've issued a pull request with my comments: git-game/git-game-v2#1

@ChannelJuanNews
Copy link

Hey Prof Izbicki. Just wanted to check in and let you know that we have a website now for the git-game. It is www.git-game.com. If you are interested, check it out. @mikeizbicki

@mikeizbicki
Copy link
Owner

Awesome! I like it!

What inspired you to make the website? Have you advertised it anywhere?

On Sat, Mar 5, 2016 at 7:14 AM, Juan Ruelas [email protected]
wrote:

Hey Prof Izbicki. Just wanted to check in and let you know that we have a
website now for the git-game. It is www.git-game.com. If you are
interested, check it out.


Reply to this email directly or view it on GitHub
#1774 (comment)
.

@ChannelJuanNews
Copy link

Well, @hgarc014 and I discussed creating a website several months ago when the 2nd version was completed, but we just never got around to it. Finally, I was tired of telling people about the git-game and having no website to point them to, so I hacked this out overnight about 4 days ago. Henry had the idea of allowing a user to play the game on the website. I think I will work on that during spring break. I already have a terminal up and running through the browser, but I have no idea how long it will take. And I haven't advertised it anywhere yet, only to a couple friends and you. Do you have any suggestions?

@mikeizbicki
Copy link
Owner

It would be awesome to get the game playable in the browser. My intuition
says it will be really hard thought. Not only do you need a terminal, but
you need to have access to git commands through the browser terminal, and I
don't know of anyone who's done anything similar. Definitely let me know
if you get it working!

On Sun, Mar 6, 2016 at 3:12 AM, Juan Ruelas [email protected]
wrote:

Well, @hgarc014 https://github.com/hgarc014 and I discussed creating a
website several months ago when the 2nd version was completed, but we just
never got around to it. Finally, I was tired of telling people about the
git-game and having no website to point them to, so I hacked this out
overnight about 4 days ago. Henry had the idea of allowing a user to play
the game on the website. I think I will work on that during spring break. I
already have a terminal up and running through the browser, but I have no
idea how long it will take. And I haven't advertised it anywhere yet, only
to a couple friends and you. Do you have any suggestions?


Reply to this email directly or view it on GitHub
#1774 (comment)
.

@ChannelJuanNews
Copy link

ChannelJuanNews commented Jun 22, 2016

@hgarc014 @ColdNightHour @hkwan003 @mikeizbicki

Hey everyone I just wanted to check up on the progress of this game. I have 2 quick announcements.

  1. We were featured in a medium article along with Vim Adventures called 12 Free Games to Learn Programming. That was really cool for us since we were mentioned right next to Vim Adventures! The other really cool thing is that I have never met this person so it's really encouraging to see people using our game.
  2. I will be building out the interface for the web based game. I found a way to get the terminal to work on the browser. The only problem I have now is that it is literally bash with a different GUI. I am not sure if this is what you had in mind @mikeizbicki, but if the only point is to get the user to start playing right away without having to click away and clone the repo themselves then this is perfect. The project is called node-webterm. This is also nice since I used node.js to build the website so it will integrate perfectly.

Here it is in action

I am open to any other suggestions as well and would be happy to work with anyone if you are interested in helping. Also, I think it would be cool to maybe start talking about a version 3 of this game? What git commands would you like to see next? Let me know what you all think!

-- Juan

@mikeizbicki
Copy link
Owner

Awesome!

Are you running a server to host the bash session for the web-based git game? This sounds like a really bad idea to me. How are you going to prevent abuses, like people sending spam from your server or running a bitcoin miner on it. Either of these would rack up massive hosting costs for you. I think it should either be 100% client side or shouldn't exist at all.

@ChannelJuanNews
Copy link

OH! Yeah, I encountered this problem when I deployed it to my server and found that I could actually start messing with things through my browser. The 2 solutions I thought of were to

  1. spawn a restricted bash instead of a full-fledged bash or
  2. write my own implementation of bash in node.js that only accepts the commands needed for the game so you won't be able to mess with the server (I have already seen this done here). I would also probably have a dedicated server for just the game (maybe using play.git-game.com to point to it). This would also include some sort of authentication needed (probably from GitHub or FaceBook) so the user can't just spawn up 100 tabs and start messing with it. This means I can then cut off a user if they start to exceed a certain request rate.

How does the 2nd one sound @mikeizbicki?

@hgarc014
Copy link
Contributor

That sounds neat Juan, but I have to agree with Mike. There are a lot of problems with having it reliant on the server.

  • What access does any person have? Can I do anything other than playing the game? (create files, edit files, delete files, etc.)
  • Making sure everyone has their own start. Every person should have their own version. I shouldn't see changes from other people.
  • can i open up multiple games on my own machine? (if so, then thousands of people, opening up thousands of connections will load the server up quickly)

It would be a nice feature. However, i'm not sure if it is worth the effort @ChannelJuanNews .

@mikeizbicki
Copy link
Owner

You definitely don't want to write your own shell. It'll be guaranteed to be buggy. There are good ways to limit a user's privileges already built into unix, so just use those features. You'd create a special user account on your server for each session that has these restricted privileges, then spawn a bash shell with that user account. You could overcome all of @hgarc014's concerns this way.

I'd still be wary of this approach though. One thing I've learned when working on projects is to stop asking myself "Can I do this idea?" The answer to that is almost always yes. In your case, a node-based git game on the web is definitely doable. But a better question to ask is "Will I be able to maintain this project in 5 years?" As time goes on, you'll get lots more responsibilities, and projects that you were once in love with you'll have to abandon. I think that will happen to this project as you've specified it. Maintaining a server for the webclient to communicate with will be a fair bit of work, and if you're hit by a bus and die, the project dies too. The existing git game is nice because it's guaranteed to still be working 5 years from now even if you guys do nothing.

In order to pass the "5 year test", you'd need to make the project run completely client side. Then, you would have zero maintenance requirements in the future. No matter what happens, the game will still work. I'm guessing a Unix terminal written in javascript already exists, and using that will make your project easier for future you. I think this would be a really cool project.

@mikeizbicki
Copy link
Owner

I just want to make clear that I think this is an awesome idea, I'm just
worried the planned implementation has a lot of hidden complexity.

On Wed, Jun 22, 2016 at 6:41 PM, Henry Garcia [email protected]
wrote:

That sounds neat Juan, but I have to agree with Mike. There are a lot of
problems with having it reliant on the server.

What access does any person have? Can I do anything other than playing
the game? (create files, edit files, delete files, etc.)

Making sure everyone has their own start. Every person should have
their own version. I shouldn't see changes from other people.

can i open up multiple games on my own machine? (if so, then thousands
of people, opening up thousands of connections will load the server up
quickly)

It would be a nice feature. However, i'm not sure if it is worth the
effort @ChannelJuanNews https://github.com/ChannelJuanNews .


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#1774 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/ABAP1kVCM2aLBAXZwf_t7AwlV-G6hpYDks5qOeRLgaJpZM4E-681
.

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

4 participants