Category Archives: Progress

Essential Planning for 2017

It often seems like we don’t have the time to pause and lay out a plan. But I have found this to be super valuable. It is time well spent and actually reduces the time it takes to get to your goals.

A 12 Week Plan

One of books that I read/listened to last year was called the 12 week year and described a method to essentially get a year’s worth of work done in 12 weeks.

I don’t know if this is entirely possible, but I did find that having a set of goals for the whole year was not ideal. Also, writing a post to review them every month was probably not a best use of writing time. Twelve weeks seems like a pretty good number for a set of goals and then reviewing them afterwards.

Major Goals

Part of the 12 week year planning process is setting a larger goal that is to be reached in about 3 years. This is the vision of what you want your life to be like in 3 years.

You then set smaller goals to be accomplished in the next 12 weeks that will move you closer to the 3 year vision. These goals should be a little bit of a stretch for you. They should not be impossible, but also not super easy.

Finally you breakdown the actions you are going to take each week to accomplish your 12 week goal.

Applying the Process

I have decided to give this planning method a try in the first quarter of 2017 to see how I like it. The vision part is a mix of personal and business goals so I will not be sharing that here, but I will be tracking my 12 week goals.

Goals for the 12 Weeks

You should probably have no more than 3 major goals for each 12 week stretch. Otherwise you will not be focused and probably won’t come close to any of them.

My goals for the next 12 weeks are:

  1. Finish the Making Your First Game with Monkey-X tutorial series and turn it into a short E-book: Although the Monkey community is not all that large, it is a great little framework and perfect for beginners. I am still learning a lot writing this tutorial although I have decided to switch target frameworks as a specialty.
  2. Clean up and release Prism Ship to Android with 2 versions, 1 paid with no ads and 1 free with ads. This will be hooked up to Google’s service that tracks high score: I really liked getting a game out to Android last year and I want one that could start a small revenue stream. Not looking to make tons of money with this, but I already have the code and want more practice with releasing things to Android.
  3. Begin specializing in Xamarin: one of the key concepts I learned last year was the importance of specialization. It is tough. There are so many cool things to learn. But if I want to actually achieve success, I will need to start by focusing on a niche. One of the reasons I like Monkey is because it allows cross platform deploys. Xamarin does the same thing for cross platform mobile app development. The overall focus will be on doing cross platform development and deployments. I will still be making games, just not writing about it as much in the first quarter. Additionally if I don’t like Xamarin at all after 3 months, I will pick something different.

So lots of changes coming up, but ultimately a clearer focus. Looking forward to an awesome 2017.

October 2016 Goal Review

Just realized that I did not write a review of my goal progression for October last month so here is a quick breakdown.

Goals

  1. Write 3 Blog Posts Per Week and Publish 2 – Wrote 6 so average is up. Less focused on monthly totals at the end of the year as I have a series I am trying to write as a tutorial on making your first game using Monkey-X.
  2. 1 Game Designed, Created, and Released Per Quarter – Drone Tournament (Game #2 of 2016) was progressed even more. The multiplayer server was basically finalized and released to Heroku as a first step to releasing the game.
  3. 1 Book Read Every 2 Months on Game Design – Finished the book on PhaserJS. Started reading through the online version of Game Programming Patterns. Great stuff, you should check it out.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – I was planning on keeping a list of what I read or watched on game design and creation but I did not and cannot remember what I read. I did watch some videos from Extra Credits on Youtube. I have mentioned their videos before because they are really valuable. Check them out.
  5. Get 100 People Reading Evolving Developer Per Month – Got around 30 – 50 people’s eyes on the blog in October. Was not a focus this month as my primary focus in on wrapping up Drone Tournament and writing the tutorial series.

What Went Right

Still making progress. Got the multiplayer server into a stable build and pushed out to Heroku and starting to focus on making the interface better. Got the first couple parts of the tutorial series I want to turn into a book written. More people than the first 75% of the year were looking at something that I wrote.

What Is Not Perfect Yet

Although I am clarifying what I want to write about, the volume is still not there. Also did not do as much study on game design and creation that I wanted to.

Corrective Measures

Sleep schedule. It has been changing with the Sun going down earlier and coming up later and with the horrid daylight savings time changes. I need to get my sleep schedule back on track so I can put the time in where I want it.

Late review so I forgot some stuff. Now need to review November.

July 2016 End of Month Goal Review

It’s August already. Where has this year gone? Lets take a look at how I did in on my goals in July.

Goals

  1. Write 3 Blog Posts Per Week and Publish 2 – I wrote and published exactly 5 posts in July. The writing goal was 12 and the publishing goals was 8. This is why it is important to check the numbers every so often. I am clearly not hitting my writing goals.
  2. 1 Game Designed, Created, and Released Per Quarter – The rough draft of a card game was made (Design) but no further work has been done on it. I have been steadily working to finish multiplayer for Drone Tournament (Game #2 of 2016) instead, and I have been making good progress. Some of the server side code could be cleaner but it is almost an MVP for play testing.
  3. 1 Book Read Every 2 Months on Game Design – Still making my way through Clean Code, in fact I just read a few pages before writing this. On page 340 out of about 460 pages so 75% done. Making good progress actually and the principles in it have been invaluable in improving my code for my games and also for my day job.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – I don’t actually remember July that well as far as this subject goes. I do remember listening to some podcast episodes on a new podcast I found, but other than that not much.
  5. Get 100 People Reading Evolving Developer Per Month – I have noticed a couple people have followed links from a forum post I did linking to a tutorial on how to handle a certain camera interaction. Maybe more of these kinds of tutorial posts that teach something useful and actionable and that deal with specific problems are what I need to be doing.

What Went Right

Drone Tournament multiplayer is coming along steadily and is almost done. My code is getting cleaner and I am on track to finish reading book #2 of 2016 on the schedule I set for myself. I am getting a tiny, tiny bit of traffic to a certain article that solves a specific problem. Bonus thing that went right is that Monkey-X full version dropped its price to about $40 instead of $100. I was already thinking about getting it and this makes it an even easier decision.

What Is Not Perfect Yet

My writing volume was at less than half of my stated goal per week for July and my publishing of that writing was only slightly better than half. Game #2 was not released on time and is not yet finished. I did not keep track of the articles and videos I watched on games and game design so I don’t remember if I hit my goal or not. And still don’t have even 1 daily visitor to my blog.

Corrective Measures

In order to keep writing volume up, instead of starting every day with coding on the current game for the quarter, I will start everyday with at least 15 minutes of writing. In order to get Game #2 finished, the writing will be followed by at least an hour of designing and coding the finishing touches on the game. I start keeping a list of every article that I read and video that I watch on game design in Evernote to refer back to later to see how I am doing. And finally, I will begin writing more tutorial type posts and sharing them in the Monkey-X forums for people to use.

More Progress Mixed With Difficulty

Game 3 of 2016 Design Notes

It is now well into July and the 3rd quarter of the year. Game 2, “Drone Tournament” is not finished yet as the multiplayer still needs more work, but I have a schedule to keep.

Since the beginning of the year, I knew I wanted to make a simple card type game this year. I really enjoy many card based games like MTG, Poker, Munchkin, Duelyst, and Cards and Castles and want to begin coming up with ideas in this area.

The Game

The design right now is based around some of the core mechanics from MTG with some of my own flavor and rules tossed in. Additionally even though I have not played Hearthstone directly, I may borrow some of it’s mechanics as well.

Goal

The goal is to reduce your opponents character life total to 0. Pretty straightforward. This will be accomplished through attacking with your various creatures and abilities.

Rules

For this game, the rules need to be spelled out pretty clearly since it can ostensibly be played 100% on paper and no computer is needed. The following rules may change.

Each player chooses a character to represent them in play (those familiar with MTG Commander or EDH this would be like a commander but also like a Planeswalker). This character can be attacked by opponents creatures and targeted by their abilities.

Each player takes a turn that sequences as follows.

  1. Renew Resources – resources that have been used are untapped then you draw a card
  2. Status Effects Happen – any status effects that are on creatures or players apply during this phase
  3. Main Planning – players play new creatures, increase their resources, use abilities, play equipment, and modify creatures during this phase
  4. Combat – players attack with creatures and or their character during this phase
  5. Secondary Planning – same as Main planning
  6. Turn Ends

Again these rules may change a ton.

Interaction

Players can do all sorts of interaction with their opponent by attacking, blocking, and using abilities to disrupt their opponents plan.

Catch Up

The game is not over until it is over. Their will be abilities that can bring a losing player back into the game and some that can help stabilize a losing situation.

Inertia

The steady increase of available resources will unlock the player’s ability to use more powerful creatures and abilities which will bring the game to and end sooner. Considering implementing the Cards and Castles rule that when a deck runs out of cards, the player’s life starts decreasing slowly.

Surprise

Hidden information games always contains surprise. In games like this there are 2 main areas for surprise. First your own deck. You do not know what you will draw each turn and in what order. Second your opponents hand and deck. You do not know what he has planned for you.

Strategy

With deck building, strategy comes into giving yourself a good percentage to draw a sequence of cards that can be used to win the game. This skill can improve over time. With play involving hidden information like this, the strategy becomes making the play that gives you the highest chance to win with the resources that you have available and might become available later.

Fun

I am borrowing the fun from several other games so I expect this game to be fun as well. If the art of game design is to be believed, fun is just problem solving with a playful attitude and a little surprise mixed in certainly helps. This game is all about that.

Flavor

The flavor is sort of going to be borrowed from one of my favorite RPG’s called Geneforge. I plan on asking the creator of the game if I can use the flavor directly but if I can’t I will still use the ideas, just flavor them slightly differently.

A Hook

This one is actually gonna be kinda tough. There are so many TCG’s (Trading Card Games) out there that occasionally I see one and think to myself, “not another one.” But I am also hopeful about some. Regardless, I think the hook will have to be something along the lines of strategy, deck building, and defeating your enemies with your awesome monsters.

Final Thoughts

While I don’t necessarily think this game will be a huge hit, I am excited to try to make a card game with a pile of mechanics that I think might be cool. It’s not a bunch of new stuff, but it is a different mix.

If you can’t think of new things to make, try mixing old things.

June 2016 End of Month Goal Review

June was actually pretty good.

Goals

  1. Write 3 Blog Posts Per Week and Publish 2 – After getting a list of post ideas written down, it was much easier to get post written ahead of time. Additionally I started the habit of writing down ideas as I get them to keep building the list. Still not up to 3 per week but 2 has gotten much more consistent.
  2. 1 Game Designed, Created, and Released Per Quarter – Game #2 for 2016, which is tentatively titled Drone Tournament, is nearing a working multiplayer state. A basic single player version is done (needs polish) and the gameplay seems kinda fun. I am going to finish the coding for the multiplayer version as I work on the design for game #3.
  3. 1 Book Read Every 2 Months on Game Design – Selected Clean Code as the next book. It has already been useful in laying out the code for the current game. Making good progress in reading it and should finish it by the end of July.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – June article reading and video watching was primarily focused on generic programming improvement. I don’t remember actually watching any videos focused on game creation and design but I did watch some games that were new to me be played on Twitch and got some ideas from the design of the games.
  5. Get 100 People Reading Evolving Developer Per Month – Well at least 20 other people have now heard about Evolving Developer. Consistently getting traffic is still not happening (that I know of) but I did hear some interesting advice that it might take 2 years of blogging consistently to gain traction.

What Went Right

  1. Writing was more consistent and had some good ideas for posts.
  2. Picked up some good programming habits to keep my code clean and make my games better.
  3. Found Book #2 for the year.
  4. Game #2 is fun and multiplayer is coming along.
  5. I got my blog in front of several people.
  6. I started some good disciplines to help me be successful.
  7. Got an idea for a new game.

What Is Not Perfect Yet

  1. Multiplayer for Game #2 is not done and the game is not as polished as it should be.
  2. Writing volume is still well below what I would like it to be.
  3. Need to find an game artist and sound artist or find somewhere to purchase these assets.

Corrective Measures

Get a little more consistent with my daily habits for writing and programming. Find game development forums and such where artists and sound engineers might frequent and listen in. Find some asset stores where I can get graphics and sound inexpensively for my games.

Question to ask yourself

“How much value do you create for others?”

April 2016 End Of Month Goal Review

Time to review how we did on our goals in April. Spoiler alert, it’s not pretty.

Goals

  1. Write 3 Blog Posts Per Week and Publish 2 – Completely fell on my face on this one for the month of April. Part of this is just not making it a priority and part of it is I spent 4 weekends each doing a 14+ hour drive. A couple of those hours are the ones I usually spend doing my writing. This is not something I will be doing the rest of the year and is something I was hoping to cover by having a buffer of posts built up. So the real let down is the lack of buffer to cover for times like this.
  2. 1 Game Designed, Created, and Released Per Quarter – Much more fun to talk about this particular area. I did get the first game of 2016 deployed to a server on Digital Ocean, but did not keep it out there as the game itself is not really fun and needs more work. I also began work on game #2 and have been having fun working on movement basics and thinking of ideas. More on this later.
  3. 1 Book Read Every 2 Months on Game Design – Not much reading has been going on recently. I did get a few more chapters through the Art of Game Design and am will finish it this month. Only 70 pages left at the time of this writing.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – I spent some time on Lost Garden reading some blog posts but have not taken any notes. I may discuss some of my thoughts on one of the post regarding multiplayer since I hope to make successful multiplayer games in the not too distant future.
  5. Get 100 People Reading Evolving Developer Per Month – Well I did not tell anyone about Evolving Developer in April, but I plan on telling at least 20 people at OSCON in a couple weeks (maybe more than 20, who knows). Not the best audience but last year I attended a couple sessions on games and game design so I know there are at least a few like minded people attending.

What Went Right

I made a successful deployment to Digital Ocean of game #1. This went much smoother than I expected thanks largely to an awesome tool for doing MeteorJS deploys. Game #2 has started with development already going at a much faster pace than game #1. This is partly due to a higher level of excitement about the overall game design and partly the decision to switch back to Monkey-X which is designed to be used to create games and surprisingly easy to be productive in.

What Is Not Perfect Yet

Too much travel which could not be avoided. So really, no buffer of writing built up for times when I can’t write because of other important life things happen. This was mostly avoidable and could be prevented by a little more effort. Additionally, still no progress after 4 months of getting a readership for this blog. Frankly it is scary to even write these things in a public space where people might stumble across it, let alone point them to it.

Corrective Measures

Better planning. I realized when I had a long list of blog topics I wrote more consistently. The list has shrunk since it only covered W1 (from January to the end of March). I need to make a new list for Q2. Also I need to follow the advice I read and start showing of my writing and games as publicly as possible and have a little tough skin to take any criticism constructively.

More Fail, But I Won’t Stop

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

The Bleeding Edge Hurts a Bit

So today’s post was going to be about how I built a MeteorJS/Angular 2 app to Android and released it on the play store. Instead I write a reminder/warning to all who like to develop in experimental technologies.

What Happened to My App?

The day started brightly. I was working away, being more productive than I had in a while. Getting things done. Cleaned up some code, got some things working that had not been and decided to try building my app for an Android device.

I plugged in an old android phone to my computer and ran:

meteor add-platform android
meteor run android-device

No errors showed up in the compile but the only thing showing on the phone was a blank white screen.

Investigating

Googling the issue brought me to this post. I am not the first to run into this issue. After reading through the thread, it seemed as if the issue might be fixed in a newer version of some of the packages that I was using.

So I ran meteor update and saw that indeed there were new versions of some of the core Angular 2 packages that I was using. Some of them I could only update by removing them first and then reinstalling them by the specific version.

Alas, this did not fix my problem.

In the course of research, I found another issue posting that is only 19 days old and is still open (as of this writing).

There are a few more experimental things to try but if they don’t work, looks like a few more days of work rewriting this to something more stable and tested.

Moral of the Story

If you are planning on releasing something to the wild, you should probably not use a technology that is in beta unless you are the one developing it and can fix your own issues.

Since the main purpose of this particular game was to learn a bit about releasing an app to the Android/Google Play Store, I will probably rewrite it into either basic javascript using Meteor or figure out how to write it into Angular 1 with Meteor.

Make games, have fun, and try not to cut yourself on the bleeding edge.

Update

I finally got the game to build to Android properly (around 1:00 A.M. after undoing all the other experiments I had tried then removing the login packages that were being used. Technically it can be played without logging in currently, but there is some additional functionality that tracks some statistics and scoring based on the user meaning I still need to figure out how to handle users. But it builds. Huzzah!