Category Archives: Progress

February 2016 End of Month Goal Review

It is March already and that means it is time to review how I did on my goals last month.

Goals

  1. Write 3 Blog Posts Per Week And Publish 2 – Again publishing has been mostly on schedule. A couple of posts were a day late, but I have a queue of 1 ahead of schedule right now so, progress. Yeah!
  2. 1 Game Designed, Created, and Released Per Quarter – Much better idea of how it is going than I did a month ago. Game design, though poor, is done. Game creation got a lot of work done on it. I have been reading tutorials, watching tutorials, and searching error strings on Typescript and Angular 2. It is an experimental technology, but it is an experimental release. A good learning experience overall. Figuring out how to release it to the Google Play store is going to be interesting. Much more programming went on in February than January and still more will need to go on in March. It is surprisingly complicated for a simple game.
  3. 1 Book Read Every 2 Months On Game Design – Very slow going this month. As I ramped up working on my own game, reading about design and such fell off. Also, I spent a fair amount of my reading/learning time on personal development instead of game design as I attempt to become more consistent on getting things done.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – You can read about most of it in this post that I wrote summarizing what I found and this post about Game Balance. It was not 1 a week. It was more like batched for the month in the first week or 2. I did get at least 1 per week done however. Now I just need to find some articles for March.
  5. Get 100 People Reading Evolving Developer Per Month – Absolutely nothing done with regards to this goal this month besides keeping the blog updated. This is an area that I need to study. I may even write a post about it this month and try an experiment or 2.

What Went Right

I was able to make a lot of progress on the code for Game #1 of 2016. Learned a lot about the new technologies of Typescript and Angular 2 and how they work. Learned a lot about game design. Got 2 post published every week and am 1 ahead of schedule even with a traveling weekend. Most importantly, I discovered some philosophical and mental ideas for how to be even more consistent and productive.

What Is Not Perfect Yet

At this point I should be play testing my game, not still building it. I still do not have a strategy or plan of any kind for getting people to read the blog.

Corrective Measures

Create a SMART (Specific Measurable Actionable Realistic Timebound) goal list for the creation and release of Game #1 of 2016. Study how to attract a community of readers and how to create value for them. Perhaps even find a course.

March Marketing Madness Begins!

Your Best Year Ever – Part 2

This is a continuation of the last post of my notes on this talk by Jim Rohn.

Personal Development – Continued

The 5 Abilities

#1 Absorb – be like a sponge, don’t miss anything

Learn to get from the day, not through the day.
Wherever you are, be there. Let your heart, mind and soul take “pictures”.

Pay attention.

#2 Respond – let life touch you

Don’t let it kill you, but let it touch you.
Give in to emotion.

Your emotion needs to be as educated as your intellect.
Need to know how to respond to life, to people.

#3 Reflect – go back over, study it again, remember

Go back over books, notes, your day.

Good times to reflect:

  1. At the end of the day for 1 hour
  2. At the end of the week for a few hours
  3. At the end of the month for half a day
  4. At the end of the year take a weekend

Solitude when you reflect is important. You can reflect with your spouse, your family, or your colleagues, but it is important to spend some time to reflect with yourself.

Reflection makes the past more valuable for the future. Gather up the past and invest it in the next day, the next week, the next year.

Self development earns respect, makes you better for others.

#4 Act – take action, don’t be hasty, but don’t waste much time

Act when the idea is hot and the emotion is strong. Otherwise you fall prey to the Law of Diminishing intent.

All disciplines affect each other.

Everything affects everything else

Every let down in discipline affects the rest of your performance.
Every new discipline affects the rest of your performance. That is why action is so important.

Greatest value of discipline: Self Worth or Self Esteem. Lack of discipline erodes the psyche, affects your philosophy. One neglect leads to another. Just start the smallest of disciplines and watch how it grows into another and another.

Walk away from the 97% who won’t do what they can. Don’t talk like they talk, don’t read what they read, don’t watch what they watch, don’t use their excuses and their blame list.

Affirmation without discipline is the beginning of delusion.

Labor well, learn well, discipline yourself well. Take charge of your own retirement, life, day, family, possibilities. Join the 3% of people who are doers.

Do what you can. Do the Best you can. And Rest very little.

Make rest a necessity not an objective. The objective of life is to act

#5 Share – pass along to someone else

If you share with 10 people, they get to hear the idea once and you get to hear it 10 times. You will get more out of it.

Everybody wins when somebody shares.

Sharing helps you, helps the person you share with. Sharing makes you bigger than you are. Increases your capacity. So you can hold more of the next experience.

Some people can’t be happy and can’t be wealthy because they aren’t big enough.

Setting Goals

Goals are your vision of the future.

You can either face the future with apprehension or with anticipation. Most face it with apprehension.

If you don’t make plans of your own, you will fall into someone else’s plan.

Need to make a “Not Much” list. If economy improves, if taxes get a little smaller, if you get a small raise at your job, if your negative relatives become positive, if the “right” political party got in power, etc, it would not do much for you. And too many people are counting on this list.

Count on your ability to design the future. If the promise of the future is clear and powerful, the price is easy to pay. The price is a few small disciplines practiced every day.

Get a handle on the future, set your own goals.

It is this simple: Decide what you want and write it down. Thats it.
It is your own private list so write whatever you want on it, no matter how small or silly.
Keep your list year after year so you can go back and look at it.
Get together with your spouse, your kids, your colleagues and come up with some goals.

Put “Become a Millionaire” on your list, for what it will make of you to achieve it.

The greatest value in life is not what you get, it is what you become.

Major question to ask on the job is not “What am I getting here?”. The major question to ask is “What am I becoming here?”.

When you have become a millionaire, what is important is not the money, you can give that away. What is important is the kind of person you have become.

Set the kind of goals that will make something of you to achieve them.

Don’t set goals to low. Don’t join the easy crowd. Go where demand to grow is high, where expectations of excellence are strong.
Don’t compromise. Don’t sell out. Count the cost.
Judas got the money, success? NO.

Greatest source of unhappiness is self unhappiness. Starts with being a little less than you can be. Beware of this.

Financial Independence

What should a child (or an adult) do with a dollar?

Don’t spend more than $0.70 of every dollar.

If your outgo exceeds your income, your upkeep will be your downfall.

What to do with the other $0.30?

  • $0.10 – Charity: Helping people who can’t help themselves. Nothing teaches character better than generosity. Best to start with small amounts. Easier to give $0.10 out of a $1 than to give $100,000 out of a million.
  • $0.10 – Active Capital: Try to make a profit yourself. Profits are better than wages.

    Wages will make you a living. Profits will make you a fortune.

    There are many ways to show a profit. Leave things better than you found them. Become a person who leaves a profit. Profit has potential to make a fortune.

  • #0.10 – Passive Capital: Interest bearing investment. Loan it out (stocks, bonds, etc.). “The borrower is servant to the lender.” Be the lender.

This is an ideal. Set it up and work towards it. It’s not the amount that counts, it is the plan. You can start with 97/1/1/1. The numbers will change. It is just a good sample philosophy.

Keep strict accounts. Now where your money is going. Don’t let it “just get away from you.”

Get a new attitude.
“Hate to pay my taxes,” get past this. Taxes help pay for democracy, liberty, and freedom that is the goose that lays the golden eggs.
“Hate to pay my bills,” get beyond this. Bills reduce your liability and increase your assets.
Everybody must pay, even if its only pennies.

Spend, invest, show a profit, help others.

Communication

Effective communication is how to affect people with words.

Words can work miracles. They are powerful and can have dramatic effects.

Have Something Good to Say, Be Prepared

Interest

Show interest in the subject.
Then go beyond that and show fascination. Turn frustration into fascination if you can.

Sensitivity

Understand other people. You have to be touched and moved by the drama in other peoples lives so you connect with them where they are. This involves emotion.

Knowledge

Take notes. Gather knowledge. Don’t be lazy in learning.

Say It Well

  • Sincerity
  • Repetition – Mother of Skill
  • Brevity – sometimes you don’t need many words
  • Vocabulary – There is a relationship between vocabulary and behavior. Words are a way of seeing and expressing. Stretch your vocabulary

Read Your Audience

  • What your see – body language
  • What you hear – kids will tell you
  • What you feel – emotional signals (women naturally better at this than men)

Intensity

Your words need to be mixed with emotion. It has an incredible effect. Put more of you into what you say.

Don’t be casual in communication.
Emotions must be measured. “Don’t shoot a cannon at a rabbit.”

You need well chosen words mixed with measured emotion. The more you care, the stronger you can be.

The Negative and the Positive

Negative

There is a time to laugh and a time to cry. Life is not all positive.

Negative is normal, it is a normal part of life. It should not be ignored because it needs to be mastered.

Need the ant philosophy. Never quit and think winter all summer.

Positive

The day that turns your life around.

Things that turn your life around:

  1. Disgust – normally associated as negative, but can be positive. It is when you say, “I’ve had it. No more. Enough is enough.” If you can add an act to it, that helps.
  2. Decision – you can make a decision that turns your life around.
  3. Desire – wanting to bad enough. Sometimes desire waits for a trigger (like meeting someone, or not being able to do something that you want). Welcome all experiences because you never know which one will turn everything on.
  4. Resolve – saying “I will.” Do or Die. Promising yourself you will never give up. “Until,” do it until you succeed.

Final Thoughts

Learn to help people with their lives. Touch people with a book, with words. Help them with their goals and dreams.

If you work on your gifts, they will make room for you.

Conclusion

Great advice. Take charge of your own future. Make plans, set goals, and act on them.

If you will change, everything will change for you

Game 1 February 2016 Progress Update

Honestly, I am no where near where I thought I would be with game 1 at this point in the year. But that is why these kinds of post are important and why I scheduled them into my writing schedule.

Time seems to be flying by so fast these days, it is already over half way through February. I do not have a play testable version of my game yet. I have not yet made an MVP.

Part of the exercise with this first game is building and releasing an Android app. With that in mind I am trying to build it using MeteorJS (which cross compiles to Android) and at the same time using Meteor’s integration with AngularJS.

What Is Done

I have been working on a Meteor-Angular tutorial and have gotten through a good bit of it and learned a lot. Usually with things like this, I take a tutorial and kind of massage it into the app that I actually want to make. So right now I have a basic tutorial app that just needs some massaging.

I also have the basic set of choices and end goals for the game set down. I actually had to stop myself working on that so that I could begin making the minimum version of the game in order to test whether or not it will be fun.

What Needs to Be Done by End of March

Basically, I need to write a choice engine in Meteor-Angular and then fill in the story and the choices. Once that is done, building the actual Android app is as simple as running:
meteor add-platform android
and
meteor run android

I also need to setup a Digital Ocean server to host the game. Although technically it could be hosted for free at meteor.com, it would be really slow and take some time to load up.

Additionally, I need to play test the crap out of it to make sure it works and has at least some element of fun to it.

What Is Not Perfect Yet

I think I am making the mistake I made end of last year by switching languages/frameworks a little and trying to learn one and stick to a schedule. This remains to be seen.

Also I was planning on doing some sketches to bring some visualization into the game, but these might not get done in the interest of keeping a schedule. They might be added later. Or I might see about learning to utilize a service like Fiverr.

Time to Write Code

I have been focused on game design, writing, and psychology improvement lately but now it is time to take some action. It is time to make this game.

Get out there and make what you designed.

January 2016 Goal Tracking

Life and jet lag have made getting this written difficult, and I even ended up writing the first draft of this on my phone.

In an attempt to maintain momentum on my yearly goals and to keep them fresh in my mind, I will be doing monthly reviews of my progress. I have not settled on a format so next months may be a little (or a lot) different. Also, originally I had thought that I would do it as the last post for the month, but since I am trying to write ahead somewhat, it will be the first post of the month sort of how the first post of the year is a previous year review and a new goal setting post.

This is the review for January.

Goals

  1. Write 3 Blog Posts Per Week And Publish 2 – The publishing has been mostly on schedule even though the writing hasn’t quite been. A couple posts short, and I did not quite have the buffer I wanted for the year’s first disruptive event but still going strong.
  2. 1 Game Designed, Created, and Released Per Quarter – Not sure how this is going yet. I have not finished the first paper prototype yet because it is a lot of writing. I feel like it should be a little further along so it may need to get a higher priority on time. I am however constantly getting good ideas from the book I am reading on game design.
  3. 1 Book Read Every 2 Months On Game Design – I could not have picked a better book nor a worse book. It is so rich with great ideas and suggestions but also so long it may count for 2 books all on its own. On page 120 something of 520 or so pages and already 5 days into month 2.
  4. 1 Article Read Or 1 Video Watched About Game Design/Creation Per Week – Mostly overlooked this month among all the other goals and things in my personal life, although I did at least watch 1 good video and read 1 good post. This definitely needs more attention and I should probably schedule it into my week better.
  5. Get 100 People Reading Evolving Developer – No known progress other than creating more content for this future audience to read which is important. I did sort of identify gamasutra as potential audience center so possibly getting some articles posted there or commenting on articles that are posted there may enable some audience build up.

What Went Right

All posts where published on time (except this one). Learned a lot about game design from reading and watching a talk and was able to apply it immediately on the game I am currently working on.

What Is Not Perfect Yet

I did not get as much reading done in the book on game design as I would like. There is 0 posts in the buffer at this moment. Did not finish the paper prototype of the game. Did not watch a video/ read an article every week.

Corrective Measures

In order to get to where I would like, I am going to set aside a specific time each day for writing, for reading, and for working on the game. Even if this means getting up earlier every morning so that I can stick to my goals for the year.

February 2016 Here I Come!

Game 1 of 2016 January Progress Report

So far I have done absolutely 0 programming on Game 1, and that is ok. This will definitely need to increase but it is impossible to actually start programming a game until it has been designed.

There is a design and I decided to start by working on the paper prototype.

Game 1 Paper Prototype

Given the text adventure style of the game, it is actually fairly easy to do a paper prototype since it is fairly similar to a “choose your own adventure” book. Play testing will be interesting to figure out since I plan on having some resources like ammunition for a weapon be part of the decision making process.

As I was making the notecards, I thought of a neat little idea I could use in the story where instead of just reading text, the player can sometimes be faced with some sort of interface with button and switches and levers that utilizes the phones natural tap and swipe interaction to make the game more fun and interesting.

I used a notebook to draw a little flowchart that includes the major decision points and then develop out the interactions that occur at these decision points and what the story will be like on 3×5 notecards since they are similar in size to a phone screen (which is the target platform). The goal is to get to a minimal story and start building on it.

I have been doing a little tangential programming, working through a tutorial on AngularJS and MeteorJS which is the current target technology for creating the game. If it looks like this will be too unwieldy then I may go back to vanilla MeteorJS. This is sort of an excuse to teach myself Angular to see what all the fuss is about.

We are coming up on the end of the first month of 2016 already so if you haven’t already started …

Go make games.

It’s Just Basic Geometry

This time the math was not as complicated, but still not the sort of thing the average person has to use on a daily basis.

For Infinite Zip, my current game project, I needed to figure out if the player is on the zip line or not. Currently, the game randomly generates a bunch of points and ties them together with lines.

I am working on putting “holes” in the line to give the player something they have to jump over but for now we are only concerned with keeping the player on the basic line.

What We Know

So we have a few bits of information that we know from the start.

We know where the player is.

From that we can figure out which two points on the randomly generated line that the player is between. This gives us a start and end points.

We also know the players velocity.

Using these few pieces of information, we can calculate if they are or are not currently above the zip line.

How to Calculate What We Need

What we are dealing with here is two right triangles with the same ratios but different lengths. This makes everything pretty easy and turns it into a simple algebra problem.

What we need to know is what point of the line we are comparing to the player’s height. To calculate this we simply multiply the distance from the player to one of the end points by the difference in height of the end points, then divide by the width between the two end points.

It looks something like:

Y1 / X1 = Y2 / X2

Where we know Y1, X1, and X2. So we find Y2 by changing the equation to be:

(X2 * Y1) / X1 = Y2

and that gives us the height of our line at our player’s current X position. So if the player’s Y is greater than the calculated Y, they are below the zip line and should probably be falling.

Wrap Up

Games, especially any type of games with action or real time, often involve physics and that means math.

Sometimes the math is pretty straight forward.

Until next week, keep getting better.

Starting Game #4 (with Video)

This post is a little late but I have actually gotten started on April’s game (the 22nd is not too late).

This is somewhat of a late start and it is not that I did not have an idea, I have several. It is a combination of 2 back to back weekends of travel, and wisdom tooth surgery after the second trip.

I hope to get a playable game done by the 30th.

The Reveal

This month the game is an infinite runner style with a zip line theme. Cleverly titled “Infinite Zip”.

I am actually attempting to video document the creation of this game as self introspection has proven that it is not likely that I will go back and review games that I have already made.

The link will be posted and the video might even be embedded in this post after Youtube uploads it. (who knew a 16 minute video would be almost a Gig?)

After over 45 minutes of upload time it is still processing and it is time for me to go to bed. Got to get up early and write some perl for a living.

When the video is done processing you can find it here.

Evolve or Die — Game #3

Finished game #3, yeah!

There is something uniquely satisfying about finishing something that you started and putting it out for the world to access and use.

I had heaps of fun making this game and learned a ton.

Lessons from game #3

Sometimes you have to cut features

I have started following this process when designing my games but I always add some nice to have features to my design in the (at this point unlikely) event that I finish the game early and can add some pizaz.

A couple of guidelines that I put on myself for this 1 game a month challenge was to try to make each of the games touch friendly and have some multiplayer component.

So far so good for the touch friendly part, but for this game, the multiplayer had to be cut to meet the deadline.

It has probably been done before

To be honest, I wasted a couple days trying to figure the camera thing out by myself without looking up anything on the internet about how it had been done before.

This was a terrible idea.

Most features in games have been done multiple times before and there is a lot of good information about the patterns and pitfalls involved in them. Use these resources to save time and headaches.

You can cheat a little at art

Although I really like to sketch on paper, I haven’t really found a way to draw on a computer that I actually want to sit down and do.

This was one of my hangups for the last year or so with making games, and why I waited till the last day to make the login and instruction pages. Not to mention, I haven’t spent enough time with Monkey-X’s fonts and such and the default one for drawing text to the screen is not really pretty.

But I head faked myself into creating it in a way that I was more comfortable figuring out.

By day I am a web programmer. So I simply took the tools that I already know for making a screen look good (html, css) and applied them to this problem.

Using a screen shot from the game and a little css magic, I made a webpage that looked like a little home screen for the game (complete with start button) and then took a screen shot of it.

Then to make the button work, I drew a rectangle to the screen and over played it on the button to figure out the dimensions and set up a touch/click listening event for that area.

Voila, cheating at art!

To Sum up

  1. Get to the MVP (Minimum Viable Product) first, then add other features.
  2. When you are stuck, don’t bang your head against the wall. Get help.
  3. Use your existing skills to find away around tough or annoying parts of the process (or see if you can get someone else to do them)

Game #3 — Evolve or Die

Evolve or Die

(itch.io seems to be down right now, will update post with link to game as soon as possible)

Camera, Boundaries, and Debugging

After a week of absolutely no productivity to speak of, I have finally been able to sit down and work on game #3 some more. Very excited about this game as I am learning a lot about different aspects of game programming.

Today, I had a simple goal of adding boundaries to the world. Before the player could just go off in one direction to their hearts content (or until their position was a number too big for the processor I suppose).

Maybe I hadn’t looked at the code in a bit too long, or maybe allergies are affecting my work. Regardless, the first solution I implemented seemed to do absolutely nothing. So I did the only debugging thing that I know to do when nothing else is working.

When in Doubt, Print Debugging Information

My first solution was to turn the players velocity around if their position crossed the boundaries.

This actually did have an effect. When you took your finger off the screen (or lifted it off the mouse button), the character would stop (may add this as default behavior).

The problem was, as long as you kept your finger down the game would just let you go and go still. So I printed the velocity and position to the screen to see what was happening.

Feedback Is Important

The moral of the story is that feedback and information beats guessing every time. It will help you make faster, better corrections.

With the feedback to the screen, I could see what was happening as I made code changes. It helped reason through what the next move should be.

Since changing the velocity was not working, I decided to just set the players position to the edge and their velocity in the X or Y direction to zero (depending on the edge they hit).

This had the wonderful affect of making the camera move without the player when you hit a boundary.

Fortunately, swapping the order the player and camera were updated solved the problem.

Until next time, keep making awesome things.

Repel Boarders – Game #2

Yeah, game 2 out on the web!

I have had a complete blast making this game! It was one of the most challenging and rewarding things I have ever done. You can check it out here.

Repel Boarders Title Screen

Repel Boarders

This game is a huge detour from the first one. While Prism Ship was a Galaga-esq shooter, Repel Boarders is a turn based tactics game. A video game collecting friend tells me its very much like Advanced Wars.

Challenges

Doing a turn based game presented a lot of challenges. First, most tutorials for game engines are trying to show off things like movement, animation, and how great their frame rate is. I actually have yet to stumble across a good turn based tutorial. In other words, it felt like blazing a new trail. If you know any good tutorials on turn based games, I will be all ears. There is a lot more I could learn about them.

Challenge 1 – Input

One of the problems I had initially was the input. I left the frame rate high, thinking I would try to animate the unit movement or attacks. This caused a lot of accidental double clicking.

The solution was two-fold, both time based. First and obvious was drop the frame rate. The screen does not need to be updated 60 times a second if you aren’t doing any animation. Second and similar was to check when the player last clicked or touch the screen and limit how fast to accept inputs.

Challenge 2 – Scope Creep

A second problem I had was wanting to do to much. I had to keep reminding myself that this was supposed to me an MVP of a game. Regardless, some cool extras snuck in.

These were mostly based on annoyances when testing. An information tab, health bars, and deselecting a previously selected unit were all things that probably could have been left out for the game to work, but they sure are nice to have.

Challenge 3 – AI or Network Multiplayer

Another problem, one that I am currently working on, is having an Artificial Intelligence to play against.

The initial concept of course was for it to be pure multiplayer and the combat system was initially just set up for a “hotseat” mode where you and your opponent are at the same computer. Unfortunately, this requires you to have someone else present who wants to play the game if you don’t want to play yourself.

Ideally, I would like to implement network multiplayer (with matchmaking of course), but that is not likely given the time constraint I put on myself. Its time to start on game 3 after all if I want to hit the 11 in 11 goal.

Oddly enough, writing an AI for the game appeared to be easier than writing a multiplayer server and interface. And it seems to be. A simple, random “AI” was actually only a couple hours of work. The AI currently knows nothing about the game state. It takes a list of units, moves, weapons, or attacks and picks one. That’s it. Nothing “intelligent” going on there. But for now its good enough. Maybe I will get to come back to this game and polish it like it deserves.

Lessons Learned

  1. Timers are your friend when dealing with turn based games.
  2. Watch the scope of your game. Build nice to haves only after the core mechanics are done.
  3. Even multiplayer games need a way to be played when everyone else is asleep or doing something else.

I am currently working on breaking down the first couple games into some tutorials. Be looking for them next week.