Inspiration

Inspired by the TV show Pointless, and the Topic feature of the Majestic API - as it uses Majestic and Pointless but there is no easy way to combine these names I called it M'pointless.

What it does

It's a multiplayer browser-based game where you play a (funky type of) Pointless game, but rather than generic concepts as in the TV show, it uses web topics and domain names.

Out of many players in the game, one is chosen as a contestant, the rest are the audience. Everyone is given a specific topic (eg. Video Games) and the audience must all submit one or more websites which they think are related to the given topic. After the round ends (after 30 seconds), the contestant must then choose a website themselves, and the aim is to pick the website which was chosen least by the audience (such as by picking a very obscure website) while still being related to the topic.

M'pointless uses the Majestic API to judge whether a given website is related to the topic,

How I built it

I started off not sure what to build, so I wrote an events system which allows the JS frontend to talk to the Bottle back-end through Ajax calls. After I wrote this, I needed to decide what to actually make that was multiplayer and web-based, so I brainstormed various game ideas until I came to TV shows, and realised that Pointless works well as it has a large audience.

Challenges I ran into

The JSON payload of each Ajax call is quite a lot if it's being sent to >100 people at once so I needed to find a way to condense all of the information in each event into as little space as possible.

As I didn't spend a lot of time structuring the project at the start, all of the client-side logic is one ugly JavaScript file, so maintaining it toward the end of the project wasn't easy!

Finally the Majestic API was very information-dense and returned a lot of numbers so I wrote my own Python wrapper around Majestic's Python wrapper around their own web API, to allow the server code to at least be a little bit maintainable

Accomplishments that I'm proud of

Literally the only frameworks I've used are Bottle on the backend and jQuery/Bootstrap on the front-end - everything else is done from scratch!

What I learned

Basically had to learn Ajax from scratch as I've never used it before, and also got to know some of the more detailed intricacies of routing in the Bottle framework

What's next for M'pointless

Make the website look nicer! :D

Try it out!

Try it out at http://tomgalvin.uk/

Share this project:
×

Updates