Monthly Archives: April 2016

Releasing a Meteor-Angular App To Digital Ocean

I am not going to go super in depth on this but I do want to talk about what I learned by going through the steps of setting up a Digital Ocean server and building the text adventure game to release to it.

What You Need

  1. A computer with an internet connection and an ssh client
  2. A MeteorJS app you want to put online
  3. An account at Digital Ocean
  4. $5 or you can use my referral link to get $10 in free credit at Digital Ocean

First Step – Set up a Server

There are quite a few guides out there about setting up a server on Digital Ocean. They even have there own documentation section that is actually really good. Basically all you need to do is click “Create Droplet” from the Digital Ocean home page and select the options you want. You can get by with the $5 minimum size droplet, especially for testing purposes. I used a basic Ubuntu 14.04 install for this test.

I tried doing the meteor install manually initially and ran into a snafu. The base $5 droplet only has 500MB of RAM. This is not really enough for Mongo and NodeJS to run and do install things for Meteor. You may need to manually create a SWAP partition. I used this guide from Digital Ocean’s docs and created a 2GB SWAP space. This is basically just telling the server to use some of the hard drive space like RAM. This is not recommended for production scenarios but works just fine for testing.

Step Two – Use Meteor Up

While you can install Meteor and Mongo and NodeJS or Nginx all manually, I would recommend using Meteor Up. It has clear instructions and handles all of the yak shaving for you. All you need is to install it using npm.


npm install -g mupx

then do:


cd to_your_meteor_app_directory
mupx init

Then you fill out a nice configuration file and run:


mupx setup
mupx deploy

and you are done!

Additional Steps

If own a domain and want to point it at your server, get the name servers from the site you bought your domain from and go into Digital Ocean’s Networking page, select Domains from the menu on the side and add a domain to your server.

Disclaimer

This is not necessarily the right way nor the best way to deploy a MeteorAngularJS app. It is however a very simple and quick way of getting it deployed to testing environment.

Another way of getting an easy deploy on inexpensive hosting setup is to use Galaxy which is designed for Meteor apps specifically. This is now recommend in the Meteor tutorial as Meteor.com no longer supports free hosting for Meteor apps. I have not used this yet personally but it is another easy option.

Put some code out in the wild and don’t forget your Free $10 credit on Digital Ocean.

Game 2 of 2016 Design Notes

Its time to start on game #2. After the last few games experimenting with MeteorJS and writing games in Javascript, I figured it was time to get back to a dedicated game platform. As of yet I have not decided which but am thinking of going back to Monkey-X or diving into PhaserJS. Additionally, I have changed one of my goals for the year. I will not be releasing games to mobile. They will however still try to be mobile friendly designs but just released for the browser.

But enough of that, into the design.

The Game

For game #2 I am planning on using a mechanic that I have seen in several games, the most well known probably being Steam Birds although an almost identical mechanic was used in a game from the 90’s called Critical Mass. The player will have a unit (or units) that they give commands to that then move and act in short bursts of “real time.” Like a lot of games it will be combat based where your unit destroys others and tries to not get destroyed itself.

Goal

Destroy the most enemy units over a course of X number of turns. Deathmatch.

Rules

Each unit will have speed and turning radius that limits there movement each turn. They will also have some health or toughness that when it reaches zero, they are destroyed. After a set number of rounds, the player with the most enemies destroyed wins. Ideally this will be multiplayer.

Interaction

Basic interaction is players score by destroying each other. May give units additional abilities or power ups to be able to interact with the opposing units.

Catch Up

This could either be a power up when destroying an enemy with more kills than you, or a bonus on respawn. Have not decided yet. We will play around with these ideas and see which one plays better.

Inertia

Like many good turn based games, this one has a set number of turns. Once they have all been taken the game is over.

Surprise

Random spawn locations and respawn locations. Random power ups perhaps. I was thinking of adding some sort of “cloud cover” where a unit could enter it and hide and nobody could see it and it could not see outside of the cloud. This would allow a player to change direction to get away but possibly make a bad choice and run into an opponent.

Strategy

I think in order to add a necessary strategic layer, the units will need some sort of limited consumable weapon, shield, etc. that players can learn to use more effectively. Possibly manage an energy level for weapons and shields.

Fun

I am taking an idea that I and presumably several others already find fun, 2D dogfighting, and adding some new twists that I believe will prove to be fun as well.

Flavor

With the energy idea, I am thinking space / sic-fi flavor. It fits pretty well and is one of my favorites. Maybe piloting drones in a space based tournament.

Hook

Sort of along the lines of taking something popular and adding other ideas into it. For me the hook is multiplayer version of steam birds. I think that would be pretty cool. Like 8-20 players battling it out, maybe even in teams. The turn based part of it might be a bit rough with that many players with each decision part of the turn needing a timer.

Final Thoughts

Looking forward to making a prototype of this game and start play testing. Learned a good bit the first 3 months working on game 1. Looking to learn even more in the 2 quarter of the year.

Keep growing and learning.

March 2016 End of Month Goal Review

Time for another month end review. This one just happens to be in the middle of the next month.

Goals

  1. Write 3 Blog Posts Per Week and Publish 2 – Publishing for March was mostly on schedule, writing still has not gotten up to 3 per week and the buffer is empty. In fact this post is about a week and a half late with 3 publish days passing with nothing written. All in all a bit of a failure. Still progress over last year though.
  2. 1 Game Designed, Created, and Released Per Quarter – I spent a good bit of my time during the last week and a half rewriting the Meteor-Angular 2 code to Meteor-Angular 1. The app now builds and runs on Android without a blank screen. The other part of the time was spent figuring out how to deploy it to a Digital Ocean server. This has been done successfully as well using mupx which turned a possible headache into a much smoother process. I still need to work on deploying the game to the Play store
  3. 1 Book Read Every 2 Months on Game Design – I might have read 3 or 4 chapters of the The Art of Game Design. It was all excellent reading and the book continues to provide excellent ideas. Looks like this may be 1 of 2 books for the year.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – Absolute fail here. Maybe watched 1 video and read 1 article for the month of March. No notes taken and no real memory of what they were about.
  5. Get 100 People Reading Evolving Developer Per Month – Again, no progress made. However I did spend time researching various methods of marketing and promoting a blog. This was sort of done instead of researching game design for March. Ideally the ideas that are used to market a blog or website will translate into marketing a game.

What Went Right

I have a game, however bad, ready to deploy to the Play store and deployed to a Digital Ocean server. This was the ultimate goal for the first quarter this year. This process has given me material for several blog posts. Also I learned a bit about marketing and promoting a blog. Now all I need to do is put it into effect.

What Is Not Perfect Yet

A lot of the time I plan to use to write, code, and read is on Saturdays and Sundays. In March, 3/5 of those weekends was spent traveling in a way that prevented me from doing any of these things. I need to plan some time during the week for these activities. My new mantra is “Pay Yourself First.” I spent too much of the time I did have trying to figure out a bug in bleeding edge tech when I should have just used a stable framework from the beginning. The final form of the game is not really a game. It really needs better writing.

Corrective Measures

Start every day with at least 30 minutes to an hour devoted to writing, coding on the game of the quarter, or reading. Probably do these in a rotation. Pick a stable technology for game number 2. I may hire somebody to write a story I can drop into the framework for Game 1 to make it more interesting.

Lots of Failure, But Still Progress