I have one month to make an MMO: Day 1

Yuan Gao (Meseta)
Meseta’s MMO experiment
5 min readAug 19, 2019

It’s been a busy 1st day, here’s my work breakdown: where “social” includes writing these blog posts, which took a lot more time than originally planned due to writing the introductory pieces.

New domain

Normally it would be premature to secure a domain at this point, but it’s actually easier if I have it since I can connect up the servers and API endpoints sooner and not worry about having to change placeholder IPs or addresses later. I’m now the proud owner of fcf.zone

I’ll create a new Firebase website. I pick Firebase for web hosting because it has a very very generous free tier, meaning I pay nothing until the site gets popular; and everything is just very very quick to set up and get going. This project at this stage is all about the speed. The less time wasted fiddling around with things, the better.

To connect the new domain to Firebase is a simple case of setting some DNS records.

New repositories

Before any code can be written, the absolute most important task is to set up some source control.

The importance of source control cannot be understated, if you’re not using source control, and you’re a programmer, you need to start; whatever it is you’re doing right now, drop it, close this tab (bookmark it first) and head over to GitHub or another git host, sign up for a free account and learn about source control. Only when you’re done, come back here and finish reading.

New website

With the source control done, I need a new website. I’m using Vue.js, a javascript framework for building web pages. Gone are the days when a web designer would spend days putting together websites in a text editor, using raw HTML/CSS. Today we use frameworks, because the vast majority of tasks we need to do with websites are the same — most websites need to do the same kinds of things: have pages, links, a template, etc. and frameworks take care of this for you. I prefer Vue.js for its cleanliness, and ease of use, but others exist like React and Angular.

Vue has a nice set of command line tools to make setting up new projects very easy, you just give it some basic details about the project, and hit go. It spits out a boilerplate project ready for you to build on.

Vue.js boilerplate

From there, I throw in the handful of Vue modules I’ll be using, vuex for shared state storage, vue-router for routing, and vuetify for frontend design. Together these form the farmework of the website.

Vuetify is the frontend framework, While Vue.js deals with page rendering and components, Vuetify is the module that deals with the actual appearance of the webpage. It provides a set of abstructions for buttons, cards, icons, grid layouts, and more. Vuetify is just one of the many frontend frameworks out there, I use it because it integrates well with Vue, and material design isn’t the worst looking of designs.

Some people consider frontend frameworks to be boring, and to produce uninspiring websites. This is probably true, but it’s perhaps my past as a web designer that has left me extremely jaded about spending the time building my own designs. I’ve put my raw HTML/CSS days behind me, happy with the knowledge that I’ll never again have to spend hours moving a div around pixel by pixel. For now, I’m happy enough to produce some plain and standard-looking pages in as little time as possible, and perhaps later enlist the help of better designers if it comes to it.

With the help of Vue.js and Vuetify, a few hours of work goes from boilerplate to this this very basic layout; but importantly with the various pages and elements split into different views and components to be re-used. It may not look like much, but under the hood, the menus are fully functional, as are a set of success/error “snackbars” that drop in from the top whenever there’s an interaction like logins.

Not bad for a few hours. And now I can focus on adding functionality.

Day 1 Task summary

Looking over the sprint, 2 points were completed, and with 1 point = 1/2 day, it seems like estimates are on-track so far.

Tomorrow I’ll get to user registrations, and users being able to log in from the game client.

Thank you!

A really big thank you to those who commented on my earlier Twitter post with words of encouragement:

YoYo Games doesn’t seem convinced…

And YellowAfterlife, who sent me his best wishes in the form of his slide to networking:

See you tomorrow!

--

--

Yuan Gao (Meseta)
Meseta’s MMO experiment

🤖 Build robots, code in python. Former Electrical Engineer 👨‍💻 Programmer, Chief Technology Officer 🏆 Forbes 30 Under 30 in Enterprise Technology