0 Twitter Votes

Black Kite

Project Name: SwiftCODE

Project URL: http://swiftcode-blackkite.rhcloud.com/

SwiftCODE

SwiftCODE is a multiplayer, interactive, realtime typing speed game for coders. It is designed as a full webapp using some of the newest and most interesting pieces of HTML5.

How to play

The app is built around 3 main pages.

  • Upon navigating to the project URL, the user will be presented with a greeting page where they can log in or sign up (all that is needed is a username and password; no email).

  • After logging in, the user is redirected to the lobby, where the currently active games are shown. From here, they can choose to join a game or create their own from a set of preconfigured languages (unfortunately, JavaScript is the only language that works in this version of SwiftCODE. In fact, clicking any other language will CRASH the server, so please only choose JavaScript).

  • Once the user has created or joined a game, they are redirected to the game screen where the sample code loads. There they wait until another user joins their game, after which the countdown is supposed to begin (sadly, that's all that was completed this time).

Vision

As programmers, we rely on many tools while coding. A keyboard is usually the most basic and most important of all such tools. And although there are more important skills that a developer must have than typing speed, it's still great fun to hear the keys clicking away as you furiously write out some code. In fact, it's so fun, why not make it into a game? And a multiplayer one at that!

In the past, I've enjoyed typing games, but there is a large difference between typing natural language, and typing code (even the programming language can make a difference!). I had found Typing.io a while back, which is great fun - but unfortunately doesn't support any kind of multiplayer.

The goal of this project was to fill that gap - to create a multiplayer, interactive, typing game for developers! I envisioned multiple players simultaneously receiving a piece of code, getting ready, and then racing each other to type out the code, all while streaming the progress of each player to his opponents, and animating their progress via multiple cursors on the player's screen.

What I finished

  • Full user system, with log in/sign up interface, and error handling (spent too much time on this)
  • Lobby, with realtime updates to state of currently active games, and ability to join games or create new ones (again, spent too much time)
  • Game room, with streaming, loading, and display of code

What I didn't finish, but really wanted to

  • The actual typing part (epic fail...? I do want to finish this)
  • Seeing the progress of your opponents
  • Ending the game when the player finishes

What I didn't finish, but would have been nice

  • More languages! (this is actually easy to add, but I saved it until the end, and then ran out of time)
  • A better in-game dashboard (perhaps showing your opponents' names, and colors)
  • Metrics like typing speed, timing, mistakes, etc.
  • A user screen where the player can view his own statistics (perhaps per-language) and modify his info.
  • An improved lobby, perhaps with user-definable names for the game rooms
  • Anti-cheat? Perhaps just a simple hard-limit on a typing speed (i.e. don't allow hundreds of keystrokes per second)

Open Source

Without open source technologies and libraries, this project would not be possible. A great thanks goes to all of their creators. Listed in no particular order:

  • Node.js
  • Express
  • Socket.IO
  • MongoDB and Mongoose
  • Bootstrap
  • jQuery
  • Knockout.js
  • Highlight.js
  • Lo-dash
  • Moment.js
  • Jade
  • Passport
  • And of course, HTML5 itself!

About me

This was my first hackathon of any kind, and what great fun it was! I got exposure to half a dozen new technologies, and got to build something pretty cool is just 48 hours. I also learned what not to do (like spend the first 36 hours on a lobby system), so hopefully I can be more efficient next time around. I'd like to thank the Pandacodium organizers for putting together such a fun event.

As for me, I'm just a web developer with much interest in all things programming, and a great appreciation for open source.

voithos

Real Name: Zaven Muradyan

Location:

Bio:

MikeDalziel

Real Name: Mike Dalziel

Location: Canada

Bio:


Comments

Fun idea and it has a very nice lobby. Hopefully I can check it out again when it is more complete.

dfmcphee

Real Name: Dominic McPhee

Location: Ottawa, ON

Bio: Pandacodium Co-Founder - Web & Mobile Developer


Comments

I liked the look and feel of this game as soon as I saw it. I feel like it could be quite fun and useful to a developer at the same time. I just wish I could actually play it. I hope you continue to develop it, I would definitely give it another try.

maxmackie

Real Name: Max Mackie

Location: Ottawa, Canada

Bio: Pandacodium Co-Founder, entrepreneur and board game addict


Comments

I like that you've positively identified a void in online gaming/programming and decided to try and fill it. It's a shame you didn't get a chance to finish, however it's nice to see that you realized you didn't divvy up your time correctly. I have to admit, the great description you gave really helped you get a higher score (at least from me).

First off, the design is great. I love the simple pastel colours and the overall flow of the elements. The lobby was awesome.

I created a game and at least I was able to see the random bit of code the server presented me with. It was cool to see it was actually randomized. You were so close to added the actual typing support!

Of course, you lost some points for completeness and fun. Had I been able to play it, I'm sure they would have been higher.

Overall, a very nice project idea and not a bad first hackathon attempt. Keep going with this project and keep participating in hackathons!

Panel Judge

doomhz

Real Name: Dumitru Glavan

Location: Kapellen, Belgium

Bio: http://be.linkedin.com/in/dumitruglavan


Comments

It lacks the core part of the app but it's a promising start.

I can see that the main focus was on the design and UX part. The registration process went ok and the joining of the lobby went smooth. To bad that it was only that... I was really curious to see what was the game about.

Good luck next time!

jmanion

Real Name:

Location:

Bio:


Comments

Cool concept, server was down when I attempted to judge.

akand074

Real Name: Andrew Kandalaft

Location:

Bio:


Comments

Not too much for me to say here. I love the idea of the application, user interface is very nice; you definitely did a good job there. The problem is the main core of the application is missing which was very underwhelming as I was excited to give it a try.

I'm sure this hackathon was great experience for you. The best thing to take out of it is time management. I would have spent most of the time on the core first, then put a nice UI for it, then worry about error handling and stuff like that. For the judging I would have just taken a use case that wouldn't cause any errors.

All in all, I think this is an awesome app idea, I think if you had at least enough of the core done to have one test game at least you'd be a real competitor for first place prize in your section. I'd really like you to keep going with this and get it done, I'd like to give it a try then and I think others would like it.

lancelafon

Real Name: Lance Lafontaine

Location:

Bio:


Comments

Very simple login, nice and clean UI. Loved the concept/idea too. To be honest, I love pretty much everything you've done, but wished the meat and potatoes were present. I can definitely imagine time being an issue, but I just felt like I didn't really get to know your project and to try it out.

m-hall

Real Name: Michael Hall

Location: The Sol System

Bio: Pandacodium guy. Also Web Developer and things.


Comments

Since this project was incomplete, I took a look at Typing.io, so that I could understand what you were going for. I think this project is a wonderful idea, and when you've completed it I would love to try it out.

Everything I tried that you finished worked very well, and all the stuff that didn't work, you already know about.

Panel Judge

turcotte

Real Name: Marcel Turcotte

Location: Ottawa, ON, Canada

Bio: Associate Computer Science professor at the University of Ottawa.


Comments

Unfortunately, the application was down when I was ready to evaluate it. But, I found the concept quite interesting.

gregorterrill

Real Name: Gregor Terrill

Location: Canada

Bio: Web developer at N-VisionIT Interactive.


Comments

Really like the design and layout, but the main attraction is missing so it's difficult to justify a high rating. What you do have is a solid lobby system that works well across all the browsers I tested in (Chrome, Firefox, IE) and a good starting point to continue this project, which I hope you do.