Programming on Hard Mode: Defining an MVP

Reid Case
3 min readOct 23, 2021

Click to read Part 2 The Challenge

Click to read Part 4 What’s in a Name

I’ve written it already, I am challenging myself to make a game using my iPad Pro 12.9". This is probably a ludicrous challenge, and I don’t have a solid history of completing development projects, so I don’t know how far this will get. I’ve determined that the hardware available is more than sufficient, but the verdict is still out about whether or not the OS and available app ecosystem will stand up.

I covered the most basic need, typing text and saving it to a file. I also determined that what is done with that file is really dependent on the system design and which stack I choose. I know up fron that developing mobile apps on a mobile device is not supported — that just seems backwards to me, but okay. I have not looked into JVM support, and honestly I’m a bit scarred from grad school when it comes to Java. C/C++ may have some support, at least for IDEs. Im not sure if there are available environment emulators to compile in. I dont think I would waste time with C/C++ for this project though. Golang seems to be growing in popularity, I think. I may take some time to look into this as an option. I think my time would be better spent in a language I am more familiar with. There may be others that I haven’t mentioned, but thats not terribly important at this phase.

The language(s) I am planning to use are both Python and JavaScript. I may end up using JavaScript entirely, but that really depends on the structure of the backend. I envision using Phaser, I’ll probably fall back on a non-relational database that uses key:value pair structure like MongoDB or the equivalent hosted instance from one of the cloud providers. I don’t think I’ll have a deluge of eager players, so performance is really not critical. For authentication, I am hoping to select a service that is gaming related. I don’t have much experience in this area so if any of my readers have a suggestion, please let me know in the comments.

Without an MVP I haven’t gotten much farther than the above.

To really be effective, I need to break this thing down into bite sized bits and work my way through each. I guess these would be stories in the agile world… As far as the minimum viable product goes, I will need a webpage that has a pane for the actual game. I need a host that serves up said page as well as managing the most basic of game server processes. High level, I will stick to the tried and true client-server model, and use an authoritative socket server to manage game logic.

For this phase, it is sufficient that the user navigates to the page and is presented with a welcome screen. No authentication, no socket sessions, just a basic http server serving up a basic webpage. I guess I should come up with a working title too.

Short list of things I need or need to set up for the next post:

  • Working title
  • Hosting
  • Basic http server
  • Code for the webpage
  • IDE for developing this stuff
  • Source control

--

--