One Week Later…

About a week ago, I said that I wasn’t going to continue work on my Unity project anymore, due to the idea being tired and worn out, and my creative juices just weren’t flowing very much.  Of course after saying that, I have discovered that ideas are suddenly flowing into my head that would definitely make it stand out, and better yet, be fun to develop!

Just for a quick test, I decided to open Unity back up and play around with one of my ideas.  Not only did I have my idea working within five minutes, I realized that part of my problem with the last project was caused by a simple error of my doing – so I killed that thing, too, and now I think I can start work on it again!
The code name of the project will be “Gravity Ball”, and the main object of the game won’t be to collect Gems to open up a warp gate, but rather to solve puzzles in a certain amount of time, and as the name suggests, gravity will be a huge key element to the game.
Now, it will be a while before I post any sort of demo – it will be a while before I can even get everything set up properly! – but I will begin work on the project this coming week, and be sure to post some sort of screenshot by next Saturday.  Right now I’m working on the game design documents so I can keep track of everything in a clear way and have some sort of outline for the project.
Planned platforms for release are…
  •     Windows
  •     Mac OS X
  •     Linux!
  •     OUYA (eventually!)
So there you have it.  I can’t wait to get started.  It will be so much fun!

Canceling Roll-A-Ball

I’m sorry to say I will no longer be developing “Roll-A-Ball”, for 3 major reasons…

  1. I’m still learning a lot about Unity, and Unity’s physics engine, so starting a physics-based game probably wasn’t the best idea
  2. There’s some weird issues that may be bugs with Unity (or just resulting from my lack of knowledge) that I can’t quite figure out and it’s too frustrating to try
  3. The game concept has been done too many times, and I can’t come up with many major ideas to throw in to make it different enough from the others

So, I will begin watching a lot more tutorials on Unity, and trying to learn as much as I can about it before I really start a project of my own.  Right now, I’m continuing the lessons on GameInstitute.com, as well as using tutorials from Unity Cookie and whatever else I can find.

I’m also going to study JavaScript a bit more because it seems a good 95-97% of all Unity tutorials are taught in that language, rather than C# – it’s only the pay-for tutorials (or Unity’s own tutorials) that seem to focus on C#.  A bit odd, isn’t it?

Anyway, Roll-A-Ball was fun, but definitely not a great game to start out with when one is still learning Unity…

New Beginnings?

I have encountered some serious, serious issues with my current game, and how things are handled inside of it.

First, I’ve had some issues with the physics engine, and have done some research which shows the way I’m controlling the player isn’t exactly the best.  While this would be a small change to make, changing it would mean basically re-writing almost 200 lines of code, because of the way I’m storing the player’s information and stats.  I’m just using regular old public(!)* variables that I can set in the Inspector, but what I should do is separate that information from the control input script entirely, and store all of player info (score, lives, hp, mp, whatever else I may need) in what’s called a GameState Manager.

A GameState Manager is a very handy script, written in a Singleton pattern (meaning there’s only ever ONE instance of the object) in which I can do things like set the current game session’s information through a loaded save file,  save the current game state to a save file, set the current level, update the player’s lives, health, and whatever else I may need.  They’re pretty awesome things, and should be talked about more, because I’ve only learned of them through a couple of references people have posted on the TGC forums, and a reference in a lesson on GameInstitute.com.

They’re a way to centrally control specific parts of the game, and accessing parts of it through other scripts would be as easy as this:

if(enemyStrikesPlayer)
{    
    // Update Player's health
    GameManager.Instance.SetHP(-enemy.hitForce);
}

 

The GameManager is the GameObject created by the script at run time, Instance is the instance of that object, and SetHP() is a public function that one could use to then update the player’s health.  And that could be accessed through any script, on any object, just like that.  Cool, eh?

Sadly, I can’t really re-start my project just yet.  This week, I’m going to New Orleans, Louisiana with some friends from Wednesday until early Saturday morning – meaning that I’ll have to wait a few days to start, since I don’t have a laptop to program on.  I wouldn’t want to anyway, except maybe in the car.  This also then affects my deadline for NaGaCreMo, but that’s ok – the project is still alive, and as long as I can complete something for it by the end of January, then all will be well!

*This, as we all know, is very very bad practice, although in some cases this is the only way to do things in Unity (when you want to set variables from the Inspector, for example).

updatedBanner

Continuing work on my game

Work is pretty steady on my Unity game.  I’m really not sure what I’m going to call it anymore.  For now, it’s still being called Project “Roll-A-Ball”, but it will be renamed later on.

I’ve done a lot over the past couple of days:

  • Changed the gems to actual 3D models of a Gem, although they need an actual texture to see the effect
  • Changed the tutorial message zones to what will eventually be signposts – when the player approaches the signpost, a message saying “Press “Enter” to read me!” will appear.  When the player does that, that message goes away and is replaced by the sign’s contents, which will use Unity’s dialog boxes, once I figure them out.
  • Added skyboxes.  Helps IMMENSELY!
  • Added scoring system and second stage to game
  • Added “Warp Gate” which unlocks after gathering all of the gems, and is how the player travels to new stages

Although there isn’t a new demo today, I will have one either tomorrow night or Sunday.  In the meantime, here’s a screenshot!

Screen Shot 2014-01-10 at 11.27.55 AM

What it looks like editing the game in Unity

Here’s a quick little video of what it looks like editing the game in Unity.

I have managed to implement a LOT since that video was shot last night.  I’ve worked out some more camera stuff, added different directions the camera can face, updated the scripts for the player and camera (though the player script still needs a LOT of improvement!), and basically I’ve done a lot except actually build a more playable game.  But work *is* going on!

Things I want to add:

  • Checkpoints
  • Traps and enemies
  • When the player collects all of the gems, a “Warp Gate” will appear, which is what will make the player physically go to the next level

I only work for four hours tomorrow, so we’ll see how much I actually get done!

rollaballheader

Work on “Roll-A-Ball”

Over the last few days, I’ve been working on the “Roll-A-Ball” tutorial series from Unity’s website.  I’ve decided to create a new game based off of the example project the tutorial has you make.

Although I’ve kept the title “Roll-A-Ball” for now, it will be changed later.  I feel I’ve already changed the game in so many ways and have made it my own!

The plans for the game include something of the following…

  • The player must collect all of the gems in order to progress in the game
  • Some kind of enemies and traps will be introduced
  • There will be levels full of puzzles the player must solve in order to get some gems
  • Power-ups
  • Possibly a shooting element (keyword POSSIBLY; not sure how it would fit into the game to be honest, but it’s an idea nevertheless!)

Those are the plans so far.  I have implemented a lives system, and an automated camera system.  When the player goes around corners, the camera will rotate and position itself accordingly, in an effort to make it clear to the player that yes, that is the direction you need to go!

Here’s some screenshots showing some progress:


Although this version is outdated, you can experience some of the controls of the game for yourself on my new website at yodamanjer.com/games

Bringing in the new year

It’s now 2014.  Indeed, the earth has had another successful iteration of spacial rotation, in which some crazy things happened.

A lot happened to me in 2013.  The year started out pretty good, but nothing of note really happened in Spring.  In June, two of my dearest friends got married to each other.  My then-girlfriend and I took a day trip to the Museum of Science and Industry in Chicago to celebrate our 3-year anniversary in the second week of July.  Then the year took a darker turn for me; three short weeks later, she decided to end our relationship.  I was pretty distraught at the time, but looking back it may have been the best thing to happen to me in a while.  I got back to working with video and photography (but not before winter descended upon us, which it did fast and brutally this year, thus ensuring I have to wait until Spring to do the outdoor videos that I want).  I signed up for online game programming classes, specifically learning about Unity and C# programming.  I started hanging out with my friends more because I had all sorts of free time.  In November, I started working a second job, which already wants to promote me to a higher position.  I feel more confident, because now I don’t have to worry about meeting the standards she had (non-verbally) imposed on me.

2014 is shaping up to be an interesting year already, and it’s barely started.  The second job I’m working, as I said, wants to promote me, and the promotion they want to give me could lead to another promotion in the future, in the lines of managerial work.  I have some really good benefits from this job, including a pension, the ability to start a 401k, insurance and all sorts of other things.  All that from a grocery store, I might add!

And the classes I’m taking online will help me become a decently competent game programmer, and I’ll finally be able to make all of my projects come to life.  At some point, I would love to go back to Bristol (the renaissance faire in Kenosha, WI), but I’m not sure that can happen this year.  Too many variables to work out first!

All in all, 2014 could end up being a big year for me.  Let’s hope so!