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! 

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

Thursday, November 2, 2017

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



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