Friday, January 31, 2014

New Sheep Game Asset and Environment Effects

Lately I've been dabbling with Farmageddon more than getting anything major accomplished. Most noticeably, I've been adding some environment effects and details in the hopes of making the game a bit more immersive. A yellow-tinted fog has been added to the entire play area, casting a dull glow on the farm. I've added a particle system that simulates rain, as well as a light that simulates lightening every few seconds. Aside from the environment work, I also finished work on the third farm animal: the sheep. This model is basically the pig game model with a smaller nose, and certain areas of it's body extruded to simulate the wool.


The newly finished sheep model

The final farm animal, the chicken, is slated to be done in the next week. I'm still debating on whether it should be a chicken or some other animal, since the chicken would be the odd man out with only two legs and very different topology when compared to the other three.

After several hours of reworking my code for optimization, the game is running at very nice frame rates on Droid and Windows tablets, even with the added effects. Within the next two weeks I will be tying the login GUI in with the rest of the game, as well as adding UI elements to better show the score at game end, as well as what previous high scores were, a play again button, etc. After that I'll be adding the global leaderboards, and will probably do some test work with other gametypes (ie. classic vs. arcade, etc.) as well.

For now, the following video shows the game as it exists while writing this (minus the lightening). I plan to get right back to work on it when finished this news post, and hope to have more to show in the coming days. Until then, here's the latest gameplay video for Farmageddon:

Monday, January 27, 2014

Saturday, January 25, 2014

Pigs, Cows, and Pens! Oh My!

After fairly good results with the barn, I decided to take a bit of a break from programming and focus on modeling some more game assets. I am still pretty new to modeling, but the little experience I have had with 3DS Max during my career as a freelancer has made Blenders learning curve a bit easier on me.


Having never created my own models for use in-game, I did a ton of research on the subject beforehand.  Considering my lack of experience, low-poly assets were definitely in order.  I opted to go with a cartoony, obese shape for the farm animals, keeping the base shape the same throughout and using only features and textures to differentiate between species.  Beginning with the pig, I slowly but surely extruded features from a sphereified cube, and ended up with the following:



From there I quickly seamed out a uv map and a texture based off of materials.  With a lot of adjustments, I had a model that was really starting to look like a pig:



Then I repeated these steps for a cow, working with the pig as the base model and adjusting features to make them more appropriate for the species.  While these are not necessarily my final drafts, they will definitely work as first drafts, which I can bring into the game, allowing me to put the entire concept to the test.  The first draft of the cow:


Repeating the same basic steps as with the pig, I also got some foundation work done on a pen for the farm animals. My goal was for the fence to have a bit of character while keeping the topology simple, so I added some damaged boards to the model. The result is the following:



Each of the animals averaged me about two hours total, textures included. This is my first time producing my own game assets, and while I am happy with the results, I'm anxious to have a final blender > unity3d pipeline in place so that things come together a bit quicker.  I continued work on the textures for the animals, and repeated the steps for the barn and the pen.  The textures are currently flat colors with some ambient occlusion baked on; I have not done any of my brush work in Photoshop as of yet.

With these models nearing completion, I figured I had enough to start working an updated scene in Unity3D.  This will hopefully allow me to hash out any problems that may arise before modeling the rest of my assets.  After about an hours work in Unity3D, this is the result:



The only assets in the above scene that I did not create myself are the barrels and the grass texture.  Considering this is my first time creating my own game assets in Blender, I'm more than happy with the results so far.

The next step will be to apply all these changes to the gameplay, followed by creating the rest of the farm animals and also adding some more props to the world. For now, though, it's back to my full-time job... gotta pay the bills right?

Tuesday, January 21, 2014

What Good is a Farm Without a Barn?

It's been a while since my last post, but I've made some good progress lately. After adding login screens and a registration system for Farmageddon, it was time to start working on some game assets. My modeling program of choice is Blender 3D, and while I'm still far from a professional when it comes to modeling, I am confident that I can produce some great quality game assets for Farmageddon myself.



I decided to start with the barn, given it's relatively rectangular shape and it's symmetry. I decided the best way to do this would be to work on a single corner of the barn, then apply a mirror mod to it when completed, allowing me to make changes to the entire model while only needing to worry about 1/4 of it. The results are below:



As I said, I'm still relatively new when it comes to modeling, and this barn is my fourth draft, but I'm very happy with the results. Although it took a lot of extra time to get the "cartoon" look and shape done right (without overlapping faces), the extra work was worth it in the end.



As you can see from the screens above, the barn is not quite finished, but I'm getting closer and closer every chance I get to work on it. The last steps are attaching the silo to the side of the barn... doing this while keeping my topology in tact has been a bit of a challenge, but I now have a system that works for me, even if it is incredibly tedious. I'm hoping that with experience will come more and more tricks I can utilize in Blender that will shorten the time required for me to come up with game assets, but for now, I'm just happy to be almost done with my first.

The next step will be texturing the barn, with which I have limited experience as well. When I get the barn textured, I will have finally completed my first 3D object for use in a game, from start to finish. And when I can confidently say that this barn is completed and is in the game, I know that with hard work, patience, and the support of some incredibly online communities, I can create entire worlds in Unity and Blender and bring them to life.

Thursday, January 16, 2014

Hiscores and more!!!

It's been almost a week since my last post, and with good reason. Life got hectic pretty quick around here, and after a misunderstanding between my client and I, things are getting back on track and starting to feel routine again.

Anyway, in-so-far as new features for the game, there are a few. First off, I fixed a few bugs with the player controls, and added a small score label that appears when you complete a chain that shows the score being added. Next, I setup my webserver with scripts for posting user high scores. The system uses a salted hash to post score data to a url on the site, and if the hash checks out, then the high score is added to the database with the users account tied to it (more on this later). The server then sends back data on whether the score is a new high score for that user or not, and the client reacts respectively. This system, with some added work, should allow me to do just about anything I want with the high score system, but what's important for me right now is that the encryption is in place with some very easy-to-use functions I've created.

The video below showcases gameplay as it stands now. I know, I know, the graphics need a lot of work, and that's putting it mildly. They will come in time, but for now the foundation for the game programming needs to be laid, otherwise this game won't have a leg to stand on.



The next that will be added is user registration and logins. The game will allow players to play as a guest account, but they will need to register a username and password with the system in order to post to the high scores table. This provides potential customers with the option to quickly try out the game, and then if they decide they enjoy the game, they can register an account to partake in the high scores. I have plans to do weekly and monthly high scores, and possible even some in-game achievements for making the high scores list. Registrations then become a way for me to monitor whether first-time-players are enjoying the game or not... if I can convert a fair portion of guest users to registered members then I'll be a happy dev. Coming soon: user registrations, logins, and combos!

Friday, January 10, 2014

We're almost playable!

Not a whole lot new to post here today, but a few things are noteworthy. Work has been keeping me pretty busy, but I always find time to work on my own stuff when I can. Farmageddon is very close to being a playable proof-of-concept, and I am hoping to have some actual game-play video within the next week.

I have successfully converted the scripts that controlled my 2D jewel-match game to the 3D interface for Farmageddon. You can now drag to match "animals", and when you do points are added to your total score (the score is added, but not yet shown on screen). Animals are then replaced with other randomly created animals, and the game continues, as depicted in the video below:



The total score is being calculated by the game already, but I still need to work on the GUI in order to display it, which is one of the things I plan to tackle next.

Unfortunately, while playing the game for any extended period of time on my Windows 8.1 Tablet, things get a little dizzying. The solution may be to rotate the game automatically every X seconds, which adds a sense of urgency (since you will lose any animals still left on one side of the screen) as well as keeping the players focus on making chains, rather than having to worry about rotating the board as well.

Wednesday, January 8, 2014

Already Starting To Look & Feel Like A Game

I got some sleep after finishing my work last night, and I've spent my afternoon adding a few things to Farmageddon. Previously, the "cows" were created manually in the Unity Scene window, but I have switched over to a system that creates the game board programmatically at run-time. It's completely dynamic, and allows me to specify the number of rows and columns, allowing me to easily change the size of the board if necessary. I also have four animals created, it's just at the moment they are exactly the same shape and using different versions of the same texture, color being the only change. Animals located on the far side of the tornado (in respect to the camera's position) are now faded out, to keep the playable board clean and free of anything that pulls your eye away from the animals too much.

 
I also added the ability to move around the game board. Rather than rotating the board itself, I opted for rotating the camera around the tornado and the animals, in the hopes that the resulting effect makes the game more immersive. If nothing else, it reminds you from time to time that you are, in a way, playing a relatively familiar 2D game in a 3D world. I've tested a system that moves the entire tornado and game board around the scene, which really brings life to the tornado, but I've reverted back to a static one at the moment... I like it, but I'm not set on it, which means what's done is good enough for now.

Lastly, I added effects to the tornado itself. The game object rotates at a rate that seems consistent with several tornado videos I watched on YouTube. I added a simple cone-shaped particle system at the base of the tornado, and am merely rotating it at a speed that is faster than that of the tornado itself, giving the effect of fast moving debris. I'll need to spend some time on YouTube watching tornado clips to get it just right, but for now, it does what I need it to.



As you can see from the previous screenshots, and the video below, the basic concept and mechanics of the game are becoming apparent. Different animals are suspended in the tornados vortex and you drag to match species (ie. cow, pig, etc.) and save them. I am anxious to begin modeling the animals, but I need to have proof of concept done before too much time is spent on assets. The game may not be practical, or may fail as far as gameplay experience and entertainment value. In short, it might not be a fun game to play. I'm pretty confident it will be, but only time will tell. That's why proof-of-concept is #1 on my list right now... to get a version done that I can play, to ensure that you feel you are getting progressively better at the mechanics as you go, but still being a game that you can never be perfect at. You'll (in theory) always have the opportunity to beat your last high score, which adds replay value.



Next step is to take my 2D game mechanics I have done for a previous game and convert them to work with 3D objects. Once that is completed then a scoring system will be put in a place, and the game will be, for all intents and purposes, playable.

Edit: One final thought, I want to give credit where it is due. The barrels seen in the screens/video were downloaded from Unity3D's Asset Store. You can find them here:
https://www.assetstore.unity3d.com/#/content/3399

Tuesday, January 7, 2014

Unity3D project is setup and ready to roll

So far things are coming together well. One of the first things I do when starting any new project, be it an app, game, or website, is to start with the main font. I find that a font, and the colors used in it, can set the tone for the projects look and feel very early on. Here's what I've come up with for Farmageddon.



It's not much, but it's a start, and right now that is all I need.

I have my project setup in Unity, connecting to my asset & cache server, and I've got my hierarchy setup in way that makes managing this project easy. Using Blender, I've created some very simple objects to stand as place holders.



As you can see from the screens, the cows will be orbiting the vortex of the tornado. The player will then drag across matching animals (currently we have plans for cow, chicken, pig & sheep), and matching three or more will lasso the animals down into a holding pen. The animals rescued add points to the players score, and players will be able to earn combos and bonuses depending on the length of their chain.

I'll be keeping these posts pretty short and to the point, so that's it for now. I'm hoping to have a proof-of-concept video of the gameplay ready in the next few days. For now, I need to get some work done for my client.

Start The Countdown

I have decided to take a break from the VERY large Unity3d + SmartFox Server project I've been working on in order to get some app publishing (and completion) under my belt. My goal is to create a full game, from start to finish, in 30 days time, single-handedly. I will be blogging as I go, and am going to try and dedicate at least 2 hours a day to this project.

The concept I have settled on takes place on a farm. A tornado has hit, and unfortunately your farm animals are all caught in an endless orbit around the funnel. Using your rope, you must tie farms animals of the same species together in order to weight them down enough for gravity to take over and release them from their funnel-shaped prison.

I am hoping to get a user registration and login system built, which will allow me to have detailed and up-to-the-minute leaderboards, as well as open up the game to a lot more options in the future.

Enough talking, time to get to work...