Monday, January 8, 2018

New Projects for 2018

2018 - the year of new beginnings!

I was listening to Jim Rohn earlier today and I heard him say, "Learn how to separate the majors and the minors. A lot of people don't do well simply because they major in minor things."  Wow!  That's an amazing quote.

This particular talk was on time management and focusing on one thing.  If you're like me, ADD kicks in after 5 minutes of anything and focus and concentration are hard to come by.

I've started quite a few projects and many of them are still going strong today.  I think what I've learned through both the successes and failures is that you have to know quickly what's working and what's not.  Cut through all the noise and remove the things that don't work for you.

2018 is the year where I'm cutting out all the noise and focusing only on a few projects.

So, here's the roadmap for 2018...

1. Memorizing Proverbs - I discussed this in a previous post, but there's so much wisdom in the Bible, especially in Proverbs that I'm memorizing a couple of verses a day and planned to memorize the entire book within a few months.  This has become more challenging as I've progressed, so I'm extending my timeline out to 6-9 months.  No matter how long it takes and how small the steps are that I need to take to get there, I'm confident that even learning one verse a day will get me to my goal eventually.  It isn't easy, but if I never start, I'll never get there.  I'm 8 days into the new year and have the first 31 verses of chapter 1 memorized.

I can't even list out all the ways this practice has enriched my life already.  I highly encourage folks to practice memorizing scripture.  This is the simple technique I use to memorize verses.  Start with a small book of the bible, a single chapter or even a single verse.  Getting started makes all the difference.

2. Chatbot Automation - This is a new one for me.  I've spent most of 2017 on AI, machine learning, and neural nets.  While these technologies are exciting and cutting edge, the application of most are reserved for the elite and firms that have enough money, resource, infrastructure, talent and data to do it right.  But this doesn't have to be the case.

With chat bots, particularly integrated with FB Messenger, we're seeing businesses big and small being able to employ AI technology and robotics to engage with customers better.  This year, I'm focusing on developing a team to work with small and medium size businesses in the development of chat bots to provide customer support and engagement.  More than ever, this type of automation technology is available, but many don't know how to implement or utilize it.  I believe that my organization can help businesses through this type of technology.

3. ??? - I'm not sure what my third project this year will be, but I've got a couple of candidate projects.  We'll see what this turns out to be. 

--
I've discussed in the past that my purpose is to be a speaker, teacher and coach who empowers others to serve and support the kingdom of God through entrepreneurship.  Each of these activities align with my calling and I believe will help businesses grow and me as a by product.

I'm learning how true Zig Ziglar's quote is - "You can get everything in life you want if you will just help enough other people get what they want."

If you place your attention on the needs of others, you'll be fed as a by product.  If you have purpose, passion and happiness will follow.

Don't focus on the minor things.  Figure out what will move the needle for you in 2018 and pursue it relentlessly.

To new beginnings and continued success.  Have a great 2018!

-Alex

Thursday, January 4, 2018

EvoWars v0.03 is NOW LIVE!!!

You can check out the latest release of EvoWars - version 0.03 on Kongregate.


This release was just published earlier today and I'm really excited about what I was able to build in the last month. 

While the release was delayed because of the holidays, I think it will be well worth the wait.

For a full list of updates/changes, see the EvoWars page.

The big update is that multiple units are now available.  You can upgrade three different beetles and deploy them on the battle field in game. 

You'll also notice that the upgrade screen has a few changes as well.  I've changed the upgrade system to be based on the cumulative number of upgrades a unit has.  This means as you upgrade one unit, it's upgrade cost will get more and more expensive.  As you start off the game, you may one to invest your upgrades into a single unit to get started and then as you progress start developing specialized units to help you in later stages.  I'll let you explore all the strategies this unlocks.

Balance changes - the big comment I kept receiving was that speed and reload were broken.  And so to fix that, I... 1) changed the upgrade increments for both; and 2) created a cap for each stat. 

All the upgrades have been rebalanced along with the enemy difficulty to make the game more challenging. 

What's missing? - I wasn't able to dive into the Kongregate API and incorporate the High Score and Highest Level stats.  I think it would be a huge win for the game if these were added in, but I just wasn't able to get around to it.  Yes, this cripples the game on the Kongregate side of adding an objective and achievements for players, but sometimes you just have to ship. 

I really wish I was able to include this feature in this release, but that's the way things go. I'm glad to have a playable game shipped out the door.

Since this is my last update for EvoWars for a while.  I hope you all enjoy it!

Cheers!
Alex

PS. If there are any new developments with EvoWars, you'll find out about it here on the iAutomated blog.  You can subscribe to updates for my blog by filling out your email in the 'Follow by email' box to the right of the screen.


Monday, December 18, 2017

EvoWars - Release 3 - Coming Soon!

For all the EvoWars fans out there, I'm going to be publishing the 3rd release of the game come the end of this month.

It's been an interesting development expanding the play style from a single unit to multiple units being deployed.  With the addition of more units, I've encountered a few bugs that need to be fixed.

I've also anticipated some challenges with getting players to use multiple units and therefore, tweaked the upgrade mechanism to be incremented based on all upgrades for a single unit.  That means a single unit can become really powerful, but it will cost a whole lot to make it stronger and a different unit might be better to upgrade.  Not sure how this will play out in the game play, but I'm excited to find out.

This has been a fun adventure and though I was looking a doing 6 months, I'm going to stop at 3 releases over 3 months.  This release will get most of the major features out that I wanted...

  • Multiple Units Deployed
  • API Integration with Kongregate (high score as a goal)
  • Allow players to save progress
I've played around with using caps, but instead, I'm changing the increment on speed & reload for upgrade purchases.  Now speed will increase by either .25 or .50 for each purchase and reload will decrease by 1% per purchase up to 75% (still needed a cap).  This will place more emphasis on the health, attack and defense stats.

One of the main reasons, I'm stopping further develop on EW is due to my desktop PC.  Right now, I'm using a dedicated but dated rig for Unity development.  But after the most recent Windows patches, I've noticed some significant performance issues with Unity on this machine.  And when I compiled this latest build, I could not resolve some of the bugs that kept coming up.  

The challenge of working on a machine that doesn't full support the development platform is one of the reasons I'm putting this on hold.  The other two major reasons are...
  • my daughter will be born in a few months and I won't have time to work on this game with all the different activities and tasks that need to happen between now and then;
  • and after looking doing my year-end review, I've define a new set of goals for 2018 and this game does not fit into it.  
For those reasons, I'm not going to continue to pursue EvoWars in the near future.  I may restart this project at some later time, but for now I'll be focused on three big projects for 2018.  

The first extraordinary goal will be to memorize the book of Proverbs from the Bible.  While this may not seem to be a business goal, I assure you that it is both good for business and my personal life.  I've learned so much from the book of Proverbs over the years, but I've never been good at memorizing scripture.  This study will help me to learn the word of God and cement the teachings of God in my heart.  I've struggled with memorization and this will be a good practice to help me gain confidence in my area of lacking.  

In addition, it is written in Proverbs 3:13-18:
Happy is the man who finds wisdom,
And the man who gains understanding;
14 For her proceeds are better than the profits of silver,
And her gain than fine gold.
15 She is more precious than rubies,
And all the things you may desire cannot compare with her.
16 Length of days is in her right hand,
In her left hand riches and honor.
17 Her ways are ways of pleasantness,
And all her paths are peace.
18 She is a tree of life to those who take hold of her,
And happy are all who retain her.
Wisdom is found through out the Bible, and throughout it, Solomon is described as the wisest man who ever lived.  Why not study and learn from the man who was reputed to be the equivalent of a trillionaire, the man who received wisdom directly from God.  

If I can memorize this one book, how much fuller will my life be?  How much deeper would my relationship with God be?  How much more meaningful would my relationship with my wife be?  How much more successful would I be in business and entrepreneurship?  What would I be able to do in this life equipped with the knowledge of God.  

Therefore, this is the first extraordinary goal that I have set out for 2018.  I have other candidates for the other two goals, but until I accomplish my first goal, there will be no second or third goals.  

This is part of my self-optimization project where I plan to update and improve various areas of my life.  I've decided as part of it that I will pursue 3 extraordinary goals a year and go hard for 8-10 weeks and then take time off to relax and recharge.  I'll be recruiting coaches and trainers to help me of the next months and years to help me accomplish my goals.

I'm excited for 2018 and sharing my progress in life.  

I'm also excited to release EvoWars' third release.  It's been a journey to learn how to build a game from scratch and turn it into a game that is actually playable and fun.  :)

Cheers!
Alex


Thursday, November 23, 2017

EvoWars v0.02 Release is Live!

EvoWars v0.02 is now Live on Kongregate!

You can find all the latest details on this release on the main EvoWars page.

Cheers!  And Happy Thanksgiving!
-Alex

Tuesday, November 21, 2017

EvoWars - November Release COMING SOON!!!

You can find the complete list of updates on the main EvoWars page.

I'm almost ready for the November release for EvoWars!  

This will be the second official release of my EvoWars game making to v0.02.  While I'm still calling this an ALPHA release, it in itself is a full functional game.

The primary game mechanics are there for the battles.  I've auto-incremented levels in the engine to allow you to battle progressively harder enemies.  Most of those mechanics were handled in release v0.01, but I've fixed a few issues in this new release as well as built some brand new mechanics.

In this newest release, I'm introducing a few more stats you can upgrade -
  • Defense - This attribute will affect the amount of damage that can be blocked by your unit.
  • Reload - This is the amount of time it takes before you can deploy your next unit.
That rounds out the primary stats that I have planned.  In the background there are a few other calculations that happen to build the unit's secondary stats.  And this is everything from the actual movement, attack speed, blocking, size and color.

Color - the shade of your beetle is now controlled as a function of your stats.  Certain stats will amp up the red and others the blue.  I'll let you figure out which does what! ;)

Size - the size (scale) of your beetle will now also change a function of your stats.  That means you can have micro beetles zooming across the screen, or massive beetles tanking against enemy units.  You get to decide which way you want to build your unit!

--
What else is new?

I've re-balanced some of the stat upgrades and costs and the enemy spawn settings.

The rotation for units has been capped to 45 degrees in either direction, preventing units from spinning around or getting stuck on the walls.

I've built a brief tutorial which explains the basics of the game to get you started.

Planning on releasing it this weekend... and maybe in time for Thanksgiving. 

Stay tuned! 

Monday, November 20, 2017

Time Tracking - The Best Personal Optimization Tool

Start yesterday, my life changed...

I was conversing with my wife on the upcoming changes in our lives and how I wanted to be better at organizing my time and making use of the time that we had together.  With a child on the way, we knew the both of us would have to re-evaluate how we spent our individual time.

We're both very independent people who have fairly busy lives. 

And that's when she said it... that's when she made the suggestion... "You should track your time to see where you're spending it..."

Ahhhh... I wanted to scream.  I thought I knew how I was spending my time already.  And it's not optimal.  I spend way too many hours on the computer typing away at this blog, or programming my game.  At night, I watch YouTube videos on my phone or play Clash Royale (let's face it, it really is one of the best games out there). 

Anyways, tracking the time spent on my devices would force me to face the facts... I've been spending way too much time on devices lately.  For me to have a healthier balance, I'd need to face reality and see the real numbers.

Enter - Rescue Time.

If you don't know about Rescue Time, check them out.  It's a free service that you can download which tracks the usage of your phone or computer or websites your visit.  It gives you a breakdown of how you're using your time and classifies it into different buckets, from entertainment and social media, to reference and work. 

It's the real deal and captures just about everything you can do on a digital device. 

I bit the bullet and installed it on my desktop, my phone and soon laptop as well. 

Why? 

Because at the end of the day, I do want a more balanced lifestyle and make sure that I'm making the best use of my time.  Maybe I'm distracted when I'm doing my daily programming and I can really focus in on making my programming time last only 20-30 minutes.  Maybe, I should cut back on YouTube time in the evening and having a tracker on my phone makes me more aware of my behaviors.

The idea is that having instant feedback on your behaviors or at the very least the awareness of it being tracked can change you.  And I'm hoping for the better. 

This will definitely help me understand how I spend my time.  But I hope that it will also help me shape my behavior into the person I want to become. 

The moral of the story... my wife was right again.  I need to be more mindful of how I spend the precious little hours in day we have and spend them where it counts.

Cheers!
Alex

Saturday, November 11, 2017

Today's Unity Lessons Learned - Canvas Pop-ups and OnGUI() for Input

As you might already know, I'm working my own indie game, EvoWars.

It's a work in progress and, as of now, I've released my v0.1 Alpha.

Today, I've been working on implementing a couple of new features per suggestion from folks on Kongregate.


So, that's what I worked on today.  And I came up with a nifty trick (maybe others have already discovered it).  If I want to create a new pop-up menu or options screen, I create a new canvas GUI object and build the entire screen as I want it.

Then using the 'enabled' bool variable on the canvas script component of the canvas gameobject, I can turn on and off the canvas.  This allows me to create the menu as part of the scene, rather than building a scene for some options settings.

Again, I'm sure this isn't anything new, but it was a new idea for me.  I've since used it in conjunction with buttons.  The script on the button is set to the canvas game object's canvas component and then I simple check or uncheck the box depending on what I want the button to do.

It was that simple.

OK.  Back to the questions that Pessimissed asked above.  The 'quit' button was an artifact of releasing an .exe version early on.  I just removed it today.

And now I've added an options button that allows you to turn on and off the music or sound.  Music is the background music attached to the sound manager class and sound is the sound effects in game.

The sound effects are a little bit harder to manage because I create a sound source for every unit spawned... that way you could have multiple attack sounds going at once.  To handle this, I'm creating a new global bool variable for sound effects.  And the sounds effects have to pass a logic criteria before being played.

This isn't the most efficient way to do this, but it works.

And when you're an indie game developer, sometimes you just do what works.  I will have releases in the future where I refactor my code and maybe find a better way to handle this type of condition.

But for now, it gets the job done and don't fix what ain't broke.

--
The other idea I had after implementing this little pop-up menu with options is to create a pause menu in game.  I wasn't sure how to handle frame rate independent inputs, so I researched it.

I found an article by Sophie Houlden on handling Super-fast input in Unity and how she used the OnGUI() function to grab inputs.  It seems to make sense and combining that with Time.scale = 0 | 1 I can pause the game action on the scene.

I didn't have enough time this morning to get 'pause menu' built out, but it shouldn't take long in theory.  We'll see what the effort on that will be.

I'll be tackling some of the other comments and feedback I received on Kongregate in the future.  And if you have ideas and suggestion, please let me know.  I'll figure out how to work it into the game if I can and you'll be listed in the game credits as a tester!

Cheers!
Alex

Friday, November 10, 2017

Gaming - For Fun and Exploration

Recently, I completed a life-long goal... to publish my own game.

I did it.  Really!

Now it might not be the best game in the whole-wide-world - I'll attest to that.

But I did it!

I built it myself from the ground up using a tool called Unity and some CC licensed graphics, sounds and music.  So, basically, I did all the development minus building my own creatives.  And I did it all within one month.

That's right in one month, I learned the Unity engine tool, taught myself C#, figured out animations and physics controllers, learned to configure the GUI, and manipulate inputs.  What that means is its not that hard to learn.  Anyone can do it.  It just takes putting in the work to figure it out and starting small... really small.

Before we get too deep into this post, let me provide you an agenda (in case, you want to skip around). <TODO: Add Links to Anchors>

  • How Did I Start - If you want to learn game programming and develop, you can follow the same steps I took and have a game under your belt (1-3 months - mileage may vary).
  • Why Games are Important - My personal ideas and insight on the positive influences games have had on me, both video games and board/table top games.
  • Gaming as a Data Scientist - Why games are the perfect playground for Data Scientists for researching A.I. and Machine Learning technology.
  • Games in Modern Society - My opinion piece on why mobile games are preeminent in modern society (its not all good).

--
How Did I Start <TODO: Add Anchor>

If you're like me, the idea of building your own game starts off sounding very exciting and then quickly becomes overwhelming... yikes!

So, where do you begin?

I think the first place to start is a tutorial.  Unity already has a handful of basic tutorials which you can follow step by step.  Don't worry if you get it wrong, or don't understand everything you're doing.  It's like sports or playing music, or driving a car, you're developing the muscle memory for good programming habits.

As you follow along different tutorials (and there's dozens, just search on YouTube), you'll begin to have a basic understanding of the mechanics around the scripting language (C# or JavaScript) and how it interacts with the Unity game engine and the various native class structures.

It can be intimidating at first, but you eat an elephant a bite at a time (to borrow a dated metaphor, who eats elephants...).

My initial goal had nothing to do with building my game, it was - go through as many basic tutorials as possible within a week and a half.  

I completed three.  And I felt decently accomplished.  I had a basic understanding of what I could make the engine do at this point and what was not within my understanding, yet.

And this is your game making starting point.  You have to start with what you know.  You have some insights on what is possible and what you're capable of.

Now if you don't have a concept already, I'd suggest taking a tutorial project that you've already completed and really enjoyed and really understood well and tweak it.  What's that one really cool feature you'd like to see in the game?  How could you make it more difficult?  How could you add extra options?  Just keep building on top of your tutorial project and you'll soon have a pretty cool game that you'll be proud to say you made.

But, maybe you already have a game concept in mind, like I did, the next step will be defining the game scope.

If you have your own game concept idea, keep reading...

A wise man once told me, "you can have it all, but not all at once..."

I think that sage life advice applies aptly to game development, too.

You might have an idea for MMORTS mobile game with PvP and PvE player modes and CCG elements... and amazing 3D graphics and interactive story line and cut-scenes, etc... (like me)...

But if it's just you building it, you need to be realistic about what you can do and how fast you can do it.  I'm not saying that your game won't one day have all those elements that you want, you just have to take a step back and do it in small chunks.

So, here are the steps I recommend you take to get your first game shipped -
(I also recommend keeping a notepad to track your progress and ideas)

  1. White board everything under the sun that you'd like to have in your game.  This is Blue Sky planning. Anything and everything goes.  List it, map it, draw it, whatever it takes to get your ideas on paper.  
  2. Then on a clean sheet of paper, make three columns. 
    - In your first column, list all the 'features' that you've come up with.
    - In your second column, evaluate each 'feature' with either an 'X', a check, or '?' by answering the question, do I know how to do this?  If it's a no way today, put an 'X'.  If it's yes, definitely, put a check.  And if you have an idea, but you just don't know the exact syntax or component details, put a question mark.
     - In your third column, finally, score each feature with a 1, 2 or 3.  Where 1='Gotta Have', 2='Nice To Have', and 3='What Was I Thinking?'.  
  3. Now take your list and circle all the items that have check marks and 1's.  That should be your minimal viable product.  
Hopefully, that little exercise takes you down to a handful of features.  It might not look like much of a game, but its just the starting point.  Maybe you have to play around with those features to make it into a playable game - but hey, that's where the fun and creativity come into play with building your own game.  


"Goals are dreams with a deadline."

Now that you have your MVP feature set, it's time to set a timeline.

First, figure out what your commitment to the project looks like.  Can you do an hour a day?  Can you only squeeze in two or three hours a week?

For me, I spend 20-30 minutes each morning 5-6 days a week on my game.  But on average this works out to maybe 3-4 hours a week, where Saturday mornings I put in some extra time.

There's two schools of thought with setting up your timeline / schedule -

  1. Estimate the # of hours each feature in the project will take, multiple it by 1.5.  Then divide that by the hours in a week you plan to spend and now you have your deadline date.
    - OR -
  2. Pick a date that you're going to ship by and complete everything you can by your ship date. 

I like the second approach, because deadlines have a way of motivating people to work harder and faster than ever before.  I know because I've dealt with procrastination...

Ship early, ship often

My ship date is simple.  I've committed to ship at least once a month (by the last day of the month) for the next six months.  That's my schedule / plan.  That simple.

Some months, there may be bigger releases, others smaller.  But what matters is that I'm working on my game consistently and I'm tackling issues small enough that I can handle it in a day or two.  

If your problem is really huge, break it apart.  Find a tutorial that has a feature similar and spend 3-4 days just following the tutorial.  It's okay to take a break from your game to learn something new.

For me, one month is long enough to not feel pressured to deliver constantly, but not too long to get apathetic about working on my game.  You'll have to find your own balance.

The other reason why I think its better to ship smaller chunks and do consistent releases is that you actually finish.  You get to see your completed game each time your build a new release.  And if you stop there and never work on your game again, it's there.  You've done it.  You've built your very own - playable - game.  There's a huge amount of satisfaction in being able to complete something and share it with the world.

Who knows, I might want to take a month off and take a break.  Or I might just really want to work on a different game idea.  At least I've deliver and shipped on the existing game idea I've had and finished what I was working on.

The worst feeling is spend 4 months on a game project, getting frustrated and quitting.  Then you feel like you've wasted the last 4 months on something that amounts to nothing. Avoid all the pain - ship early, ship often.  Don't worry if its not good enough... it is.  Just ship it.

Now go forth and develop your own game!!!

...or keep reading this really long post on other thoughts I have on games. :)

Do leave me a comment if this post inspired or helped you develop a game!

--
Why Games are Important <TODO: Add Anchor>

I remember growing up and being told video games would rot my brain.  I'm pretty sure that was debunked... maybe...

As an adult, I think we don't play enough.  And I'm not just talking about games, I'm talking in life, at home and at work. 

In Charle Hoehn's book, Play It Away, he talks about the importance of play to relieve stress and anxiety.  Our society is more stressed than ever and we need an outlet.  Exercise is great for this.  But why not go one step further and find a sport or game to play? 

We often grow the most while we're at play.  Its a time for exploration and freedom from making mistakes. 

When we play games of sport, we find ourselves learning more about ourselves - how we interact with others and deal with conflict.  We get to push our limits physically and mentally and emotionally.  There a challenges and we have to overcome them.  But when it's a game its fun.  We enjoy ourselves and have a good time doing it.

Video games and computer games are no different.  We can to experience the same types of challenges and the train us to think strategically, tactically, and respond to various scenarios quickly.  We're learning about ourselves and our opponent in a specific framework. 

As we game, whether physically or virtually or some hybrid of the two, we're learning more about ourselves and growing skills.

Take a real-time strategy.  These types of games involve both short-term and long-term planning, pre-game planning and training, organization, resource management, physical acuity and accuracy, fast reaction time, and stamina.  You have to optimize your game play to follow a specific plan, but when your opponent interrupts your plans, you have to figure out how to counter.  You have to scout out your enemy and discern his/her plans.  You have to evaluate the tactics and strategy they're employing in order to create a counter-strategy.  At every step, you have to make sure you're not vulnerable to an all-in type attack.  You have to balance technology and economic growth with military might to defend and counter.  You have to evaluate the terrain and look for the best opportunity to engage your opponent. 

These types of games test your skills in ways beyond games like chess and go ever could. 

And all the while, chess and go are still highly esteemed mind sports which pits the wits of two individuals. 

Each game is a way for us to learn and grow while leaving stress and anxiety behind.  Without games, our world would be a boring place. 

Let's look for opportunities to play more as adults.  Let's keep on gaming!


--
Gaming as a Data Scientist <TODO: Add Anchor>


-
Games in Modern Society <TODO: Add Anchor>


Thursday, November 2, 2017

Quick Update - In Other News

I had to dedicate a post specifically for the EvoWars beta release!  And I'm very excited about that.

In other news...

Financial Scrape Project
My large scrape project with buddies have fallen off track... everyone has been busy and that hasn't progressed.  We have day jobs, so it's to be expected...

Daddy's Diaper Deals
The scrape bot that I was putting together with an offshore resource did well initially, but Amazon scraping is a beast.  They have rotating layouts and overlays that really mess things up sometimes... We had a prototype python code using scrapy, but it wasn't robust enough to do what I wanted.

I'm going to revisit this project during the month of November.  That's going to the priority project (even if that means putting off EvoWars until Dec).  I'm still planning on using Scrapy, but I'm going to try some other features like deploying in their cloud environment.

If you want to learn scraping, check Scrapy out and try out Portia to learn the patterns and syntax.  Really simple framework and great tutorials on their Scraping Hub site.

--
That's is it for today.  Just wanted to provide a brief update on what is upcoming this month.

Cheers!
Alex

EvoWars v0.1 - Alpha Release!

[download via Google Drive] - Click here to download .exe version of the game for Windows.
[link to Kongregate - web hosted game] - Click here to play online via Kongregate.

I've finished my alpha... well, I've reached a point where I need to ship.

There's a few things (ok, maybe a hundred things) I'd like to polish up before it launches, but you've just got to ship.

There will be bugs, there are definitely balancing issues.  The depth of the game is pretty shallow.  It feels more like an arcade game than the RTS / CCG game that I'd like to ultimately build.  I could not finish or figure out all the mechanics like adaptive growth.  Color tinting based on stats is in really close reach, but that'll have to be the low hanging fruit for my next release.

There's a philosophy in coding that you must stay true to.  And that's ship early, ship often.  You'll get a whole lot more done that way and it'll force you to stay regimented.

With that said, EvoWars v0.1 is completed!

I am letting go of control and saying that this is a completed Alpha release.  It's a playable, ship-able game.  *happy dance*

And if you want to try it out, I'll provide a link once when it's uploaded and available on the web. Update: link provide above.

--
A few changes I do plan to make in the next release:

  1. Add a reload timer upgrade (allows players to reduce the reload time between deploying a unit)
  2. Create an instruction scene / tutorial to explain the game.  (I showed to my wife and she's like what the heck does this do or that do?  And said I need instructions... she's right... she's always right.)
  3. Add color tinting and size scaling based on different stats to units
    • Look into adding mass based on size scaling to reduce enemy speed impact
  4. Create a 'Game Over' scene when player loses
  5. Create a 'You Won!' scene when player wins and display stats from that level.  (Have most of the variables for this already available, just haven't implemented... scene building takes more time than the coding.)
I'm sure there are dozens of other changes / bugs that I'm missing right now, but feel free to leave comments on bugs that you've noticed.  I'll be needing plenty of beta testers and keep a list of all the various bugs on this site.

--
Update: 11/4/17
Finally figured out how to get this thing uploaded to Kongregate.  You can try out the game via the link.

There's always challenges when it comes to programming and dealing with software, especially across different platforms.

Anyways.  I've finished uploading the game to the web and have it hosted on Kongregate, a popular web gaming site.  It took forever to figure out how to compile to WebGL and finally I realized that the Facebook SDK was conflicting with the WebGL plugin so I just nixed the FB plugin.

After that, I found out that you can only test the web build via Firefox... that was a bit annoying, but it worked.

Then there were challenges with completing everything necessary to host a game on Kongregate... ugh... paperwork.

But its there!  For all the world to experience in all its glory.

--
##REPORTED BUGS | FIXES##
**** Turn on - Run in background setting during next compile
*** On Kongregate, the window has scroll bars, need to figure out how to change compiling to handle that
** Music starts after game scene loads; add music tracks to preloader to prevent delay and implement bgm manager to handle switching tracks
** Handle units that turn around and just disappear into their own base (it was kind of funny though, looked like it was running away)

** Escape Key Ends game (added for testing, forgot to remove it...)
* Balance Idea: Increment enemy respawn rate speed every 5 levels



Thursday, October 12, 2017

Eureka Moment! - Project Daddy's Diaper Deals

While my focus is still on EvoWars development and publishing my beta come November 1st, I had a bit of an eureka moment today.

As an expectant father, I'll be purchasing plenty of diapers in the coming months (years...).

So, as a simple (relatively simple) exercise, I thought I'd create an scraper against Amazon to find the best diaper deals.  And hence... Project Daddy's Diaper Deals.

Diaper Details

A couple nuances to keep in mind.  There are a dozen or so different diaper brands, so each brand will be its own category that will have to be scraped.  Additionally, there are different sizes of diapers.  (They're not one-size-fits-all...)

I'll start by creating the script for a single brand and a single size.  Once when I have the basic script setup, it should be a matter of adjusting the url inputs to grab the right page.

Then there's the matter of the actual scrapping.  We'll be looking for the diapers with the lowest price per count (per diaper).  Now, we know there's always the different price breaks for volume and with the newborn diapers, I've been told go big.  But with the larger sizes, mileage may vary.

Regardless, to get the best price per count, we'll be finding the largest volume option.  If you want to buy less, you can always change the selection.

That's it.  I'll be building a scraper for the top few brands and start with the newborn size.

Should have an MVP in the next few days and then I'll expand it to more options.

Cheers!
Alex

Monday, October 9, 2017

EvoWars Game Project Steals The Show

I've been a little distracted lately...

Many years ago, I came up with a game concept called EvoWars.  The game takes place in a far off corner of the universe where three factions battle for control over the galaxy using an advanced weapons called AMEBAs.  These units are a made up of a bio-mechanized technology which allows each AMEBA to adapt to both its surroundings and enemies.  As it survives through battles, various terrain and eventually returns to its deployment pod, its adapted code can be stored and permanently 'evolve' the unit.

Each deployment pod can maintain a single code imprint, which allows it to produce copies of the imprinted AMEBA, effectively cloning AMEBAs to deploy on the battlefield.  As new generations of AMEBAs continue to evolve, they become more and more powerful and replication becomes more time consuming.

That is the basic premise of the game concept and since coming up with it, I've created a TCG variant, a few different computer game iterations, and now... I've started to work on a Unity version.

This version is still very rudimentary, but utilizes the 2D engine to create a board where the player can deploy units and attempt to deal damage to the enemy's base, while fending off the enemy's units.

This project has been something I've always wanted to do, so it will be the focus of my programming efforts over the next few weeks.  Within 2 weeks, I've been able to build the battle engine and basic combat framework.

Over the next few weeks, I plan on implementing the following features:

  • Unit Selection User Interface (UI) - create 3 PODs which the player can use to select the unit he wants to deploy.  Setup recharge counter to delay redeployment.
  • 'Imprinting' mechanic - where the player can click on a unit in the battlefield and 'imprint' it back into one of her PODs.  Stores an updated copy of the prefab stats into the POD and destroys the unit on the battlefield.
  • 'Adaptation' mechanic - create game mechanic for units to randomly (random for the time being) gain stat increase after X period of time on battlefield.  Set color tint as indicator of an adaptation.  
  • Add sound effects - create sounds for:
    • Unit Dying
    • Unit Hitting a Base
    • Unit Being Imprinted
    • Unit Being Deployed
  • Basic Start-up Screen & Menu
  • Save/Load Feature - stores a POD that you currently have and the AMEBA stats attached.  Allows you to load an AMEBA. -OR- I might create a save game state where enemy level & difficult increases.
  • Enemy Level System to make each battle progressively harder.  -Decrease spawn time; increase various stats: atk, def, spd, hp.
These are the primary features that I really want to get through and then I'll figure out how to publish this as a game on Kongregate.  

It won't be the most polished game, but I really want to launch this as my first official game and then I can say that I've actually published a game!

In the meantime, I'll provide a few updates on my progress with the game and I hope you'll keep work on your own automation projects.

Cheers!
Alex

Tuesday, September 19, 2017

New Tools and Resources Page!!!

Today I spent some time creating a Tools and Resource page which I thought would be useful if anyone wanted to try and create their own automation projects.  I'll probably eventually get around to an about me page or something like that in the future.

But for today, I think it's more important to share some links to tools that are useful and point folks to the things that got me started.

--
In other news, the Google Freebie project is working, but it looks like qualified apps are slim pickings.  The Apple Freebie project though is killing it.  It seems to publish multiple times a day and makes me almost want to pick up an iPhone to check out some of these free apps.  You can see for yourself over here.

The Amazon Free Ebooks, doesn't seem to work at all.  Not sure which piece of the puzzle failed (probably the RSS feed generator), but I might go back and work on that one one day.

--
Upcoming Automation - I'll be building a simple web scraper which we're using in another project.  Then the upgraded version will include a sitemap crawler UI which will hopefully make it easier to run.  There's definitely already tools out there that do web scraping, but this should be a fun project all the same.

Saturday, September 16, 2017

I Heart Zapier!

This week has been an exhausting one... just got back from a trip to Cali and the timezone difference has me a sleep deprived.  Working on East Coast time and staying up with folks on West Coast time is like burning the candle on both ends.

Anyways, it looks like the Google Freebie project has finally picked up a few apps.  And the Apple Store version is still in full swing.

As I said, this week has been a busy with travel, but I plan to pick back up with a small scraping project and sharing the joy of Zapier!

I <3 Zapier!  

While IFTTT maybe an easy way to get your feet wet into the automation space, Zapier is where its really at.

I've heard of the site for ages, but never really checked it out.  I'm happy to say its everything I expected and more!!

Not only does it allow you to do connections similar to IFTTT, but they've upped the ability to edit inputs and chain different functions and workflows.  This is the playground we've been looking for.

So, I'll be demonstrating a couple projects for scraping using Zapier and AirTables and hopefully it'll be something you all find useful.

That's it for now.

Thanks,
Alex

Friday, September 8, 2017

Our First Mini- Hack-a-thon and Results From Past Projects

Last night, we did our first mini-hackathon.  

Fun stuff.  Seriously.  It was like going back to college and staying up late goofing off and chilling with laptops in the dorm rooms.  This is going to become a monthly tradition if not more frequent than that.

Anyways... our newest project is something more ambitious than the projects I've posted.  And I can't get into all the details until we have our prototype / beta up and running.

But the basic premise is that we're using certain events to predict dips in stock prices.

What are the implications?  Well, there's a lot already done in the algorithmic trading space and even news mining, but we've found a niche that doesn't appear to have been focused on much, yet.  This means that we could potentially short shares of the company or execute more sophisticated trades using option contracts... for profit.

How much profit?  Some of our initial research showed dips of 0.5-2.0% on a given day.  That's HUGE!  If we can successfully predict any stock movement a high percentage of the time and also be confident that the dip will be with a specific range, then we can make money in the markets.

Disclaimer - this doesn't constitute as trading advice.  I don't want any SEC issues sharing our strategy for trading using our system.

So, you might be thinking 0.5%, 2% those aren't big numbers... and by themselves you're absolutely right.  But I'd suggest you check 'Flash Boys' sometime and see how those programmatic traders make money off of lightning fast trades that exploit 1-2 penny opportunities.

While we don't have millions to trade like these guys, it brings us to the first way to make money on small percentages - volume.  Basically, if your trade volume is large enough, you'll make good money.

Say you trade $1,000 worth of Stock A @ $50 (that's 20 shares) and it moves up by 0.5%.  That's $50 x 1.005 = $50.25 per share of Stock A x 20 shares => $1,005.

You've made $5.  No big deal.

Now if you had traded $10,000, you would have made $50 bucks.  Or $100,000 = $500.. etc.  You get the point.  The more money you throw into the trade, the more money you can make (or lose..).

But as I said before, I don't have millions of dollars to throw at these trades to make them worthwhile.  Instead, we'll use the second principal of leverage.  In the trading world, one of the ways to get leverage is to use options contracts.  There's already been plenty written on options and you can find one of my favorite reference guides here.

The trade strategy? Essentially, we're able to exploit the small movements in stock prices using a 2-2-3 strategy of buy 2 puts ATM, sell 2 calls ATM, buy 3 calls OTM.  This is partially a credit spread to offset the cost of the puts, the extra call is optional and done expecting the price drop to be temporary.

Since we're expecting the price to drop this will be a directional play.  Once when there's a dip, we can cover our calls and sell the puts for a profit.  Then the calls remain open normally as free (paid for from profit) contracts that can maximize the upside.

In practice the ratio works better at 8-8-9 to 10-10-11 as the extra contract cost is offset by the other contracts.

--

Anyways...

 I digressed into discussions on trading options (which was a previous life).  Our little project will automate the tracking of such events and also do the calculation of the various trades available and the profit potential.  All trades should be positive Expected Value (EV), meaning if the payout is 100:1, we only need to be right 1/99 times to be profitable.

It's a big project, but we've broken it down into manageable chunks.
  1. Event Tracking - Creates real-time signals for us to monitor
  2. Computation Engine - Performs the calculations on options contracts to determine the EV of various trades.
  3. Learning Engine - Tracks performance of each trade computed overtime and calculates variance of EV vs. actual value if the trade were executed as expected.  Provides recommendations for ideal trade.  Uses both Recurrent NN and Reinforcement Learning.
  4. Trading Algorithm - Performs the trades based on EV and variance.
Our mini-hackathon left us at the half-way through the Event Tracking phase.  A few more scripts should have our monitoring system up and running. =)

Maybe, two weeks and we'll have a vetted MVP.

--

Projects from Days Gone Past

So, during the initial creation of this site, I set out to build a few mini-automation projects with IFTTT and other services.  Looks like 1-in-3 is running as expected.  The Apple Store Freebie is definitely working as I see more posts being created daily.  I've not seen any posts or successful runs from the Google Play Freebie or the Amazon Kindle Free Top eBooks.

I'm going to go back and explore the Google Play Freebie Project and see if one of the other recipes will work.  Otherwise, I'll look at other options for automating that.  Not a big deal either way.

For the Amazon Project, I'll leave this current project running to see if anything will turn up over the next few days.  I planned on revisiting the project anyways to build a new RSS feed using a different tool.  We'll see how that pans out.

All in all, not a terrible result.  We're here to build, test and learn.  If I've learned one thing in programming, its that code rarely runs correctly the first time.  It's a trial and error process of debugging and testing and validating.

Cheers!
Alex

Thursday, September 7, 2017

Project: Amazon Kindle Free Top eBooks

See results for Project: Amazon Kindle Free Top eBooks.

Ok, so this mini-project was much more challenging than the last two - Google Freebie & Apple Freebie.

In this project, we were again trying to use IFTTT to automate the posting to this blogger site.  And we were looking for new Amazon Kindle Free Top eBooks.  (I have to warn you, they were mostly romance novels... ugh...)

The challenge in this exercise was finding the list of Free Kindle Books.  And then finding a way to read from the site via IFTTT.

So there were existing recipes which are a bit dated that use the RSS feed of the Top 100 Free Kindle eBooks.  That feed has since been removed from the site and no longer support by Amazon.

Problem... maybe, maybe not...

We have our technique or framework of getting the info to Blogger -- IFTTT using an RSS Feed to post to Blogger.

The only missing piece was the RSS feed for Amazon.  After a few searches, there wasn't a good solution offered by Amazon, so I decided to search for ways to create our own RSS feed of the Amazon page.

Now, there are ways to script/scrape the data we want from the Amazon page which we may explore in a later project.  But for us getting to the goal of this project quickly, I decided to go with a 3rd Party solution - why reinvent the wheel, right?

Here's a list of the different services I found that allow you to create RSS feeds with their site:

  • FetchRSS - Free Account w/ Limited Features which unlock when you pay for it.  This service was super quick.  Just click on the containers you want and the feed is populated with that info.
  • Feed43 - This site is completely free + no registration; a bit more technical as you have to parse the tags with rules; close to coding it yourself.
  • Feed Creator by FiveFilters - Similar to Feed43, but a little more user friendly, but less customization available.  
I decided just for completing this project, we'd go with FetchRSS.  This means we'll be limited to 5 news items with each feed request and refreshes only every 24 hours and ads...

Even as I type this out, I'm thinking this solution kinda sucks.  But better to ship early then never.

We'll revisit this project at a later date and see about upgrading the RSS feed... either with these other services, or by creating our own web service to build the RSS Feed.

Thanks,
Alex


Wednesday, September 6, 2017

Project: Apple Store Freebie

See results for Project Apple Store Freebie.

Still playing with AppZapp on IFTTT and created the cousin of the Project: Google Play Freebie - Project: Apple Store Freebie.

This time, we're creating blog posts for Apple Store Top Apps that are now "Free".  All of these are stored under the category - "Project: Apple Store Freebie".

Maybe a bit anti-climatic, but these two recipes are proof of concepts that automation can be done fairly simply in the web these days with or without programming know how.

There already exists a recipe for finding Free Kindle books and I may publish that one to the site as well, just to be through.

But the next Automation project after that will be a little more challenging.  I promise... :) We'll be looking at using the RSS feed to identify deals on Amazon.

Eventually, I'd like to expand that looking for deals on Amazon to doing comparison shopping for the same item against eBay (or maybe others sites) to look for arbitrage opportunities.  Maybe it'll work, or maybe not... maybe it would work better the other way around, eBay deals to sell via Amazon.

Well, we'll find out soon enough.

Until next time.
Alex

Project: Google Play Freebie

See the results for Project: Google Play Freebie.

This project is less something we've built and something we wanted to try out as a great feature already developed.

For this project, we used IFTTT to create a recipe that published Top Apps from the Google Play store that have recently gone to 'FREE' status.  Each time there is a Top App that has a price change to 'FREE' the recipe fires and it automatically posts here to this blog.

You can find the posts that are auto-generated by this app under the category of "Project: Google Play Freebie."

This is more of a test of the service and integration with Blogger, but we'll be exploring other recipes like this as they're still valuable for folks who may want to keep tabs on Free Apps.

Consider this getting our feet wet.

The tools used to make this happen is IFTTT which allows you to connect two apps or web services together.  In this case, AppZapp and Blogger.  AppZapp is an app store monitoring service and Blogger is the platform we use for managing this blog/site.

That's all there is to it.  Feel free to use the project to track free apps.  I've already found it handy to have.

Cheers!
Alex

Introduction

Welcome to iAutomated!

This is the very first blog post and it'll be brief.

The purpose of iAutomated is to share the different projects that our team has compiled.  This blog will become the documentation repository of our work and also a place to access all the finished products.

Using various online tools (IFTTT, Zapier, etc.), API's and web services, we've created implementations that automate things that we'd thought would be cool to automate. :)

If you enjoy the different projects on this site, please feel free to leave us a comment and let us know!  We'd love the encouragement.  Also, if you have suggestions for things that you'd like to see automated, leave us a comment.  And if you'd like to follow our work, you can submit your e-mail in the sidebar to be notified of new posts.

Thanks!
Alex