Saturday, 25 June 2016

Hello, Town

After a few weeks of trial-ing and error-ing, I've come to an approximate idea of what my first game will be. It all starts off with a town, and this is my town.

Now granted... if you flipped the camera around there is literally nothing but a flat plane of grass heading off into the abyss. I plan to add to the town as I need to, rather than adding extra things in there for the sake of it.

The little dude, he might change. He's just a free asset off the store who already had his animations pre-made for him. (I'm trying to link him, but I can't find him on the asset store, maybe he's not free anymore? Not sure.)

Next up, I want my characters to be able to move around by themselves. Think an "Auto Run" where you can say 'Go to the Tavern' and the guy will run there himself. For this I re-familiarized myself with A* Pathing.

I also made my first GIF! (Weird, Huh)... The white boxes show all the movement nodes I've embedded into the map. From here, the blue lines indicate all possible choices of movement at any given time, the white line shows the shortest route to get where he's going... and as you can see, he moves there.

Next up I want to get his animations moving so he walks and faces the correct direction!

Monday, 20 June 2016

Distractions, Distractions

I now own a HTC Vive, it's amazing... and distracting!

Having spent the last week or so immersing myself in virtual worlds, of course it's got me thinking about whether I could actually build a virtual reality game myself.

A few ideas formed earlier this month while I was working through some tutorials (before the distractions started). Some of them really don't seem to translate well into VR - at least not at first glance - but a couple of them sound like they'd be really fun projects to try and to experience in VR.

I know, all a bit vague right now. I started prototyping a few ideas last night to get a general sense for them. The idea is pretty solid in my head! I hope to have something more to write and show off soon.

Tuesday, 7 June 2016

Unity Tutorial: Scavenger Roguelike Survival

Try it out here.

Next tutorial is a roguelike survival game called Scavenger. Check out the tutorial here.

Concepts Covered:

  • Procedural tile based levels
  • Prefabs and sprites
  • Player turns, enemy turns
  • A scoring and life system
  • Infinite game play getting more difficult as you progress

This feels like the first "real game" I've created. By that I mean, if you'd bought a floppy disk 20 years ago and this was the game, you'd be pretty happy with the purchase. It's fun, I had a few friends try it out... this is not a concept, it's a game.

The levels are randomly generated, the game will be different every time you play - but for what it's worth, my girlfriend currently holds first place of reaching level 16 on her first attempt. I'm not counting subsequent attempts because the AI is too easy to game once you've worked it out :)

Thursday, 2 June 2016

Unity Tutorial: Arcade Space Shooter

Try version 1 here, I later created an improved version 2.

Next tutorial is an Arcade Space Shooter provided by Unity. Check out the tutorial here.

Concepts Covered: 

  • Creating prefabs that can be reused multiple times
  • Creating objects using code, an infinite number of times, at random spawn places
  • Making my player (space ship) shoot projectiles (laser bolts!)
  • Collision detection
  • Letting objects communicate with each other
  • Adding music and audio to the game
  • Restarting a game once it's ended
This was a lot of fun to build! 

Worthy of note would be the objects communicating with each other. An asteroid knows it's been destroyed and can talk with the game controller, updating the game score.  Likewise, when a player is destroyed it tells the game 'Game Over!' and then the game allows you to restart.

It started feeling more like an actual code project with the class instances interacting.

The tutorial has some extended features you can add, as part of a 2 hour live (not live anymore) tutorial. It looks at adding extra asteroids, some enemy ships that shoot back at you, as well as some general game play improvements.

I'll be taking a look at that next!

Update: Version 2

Try version 2 here.

The extended tutorial really made the game come to life. It becomes actually difficult to score full points on each wave.

I find myself getting frustrated with the WebGL player.

On the one hand, it's ridiculously impressive that this entire game runs from javascript.  On the other hand, the performance is nowhere near as good as the old Web Player (which is no longer supported by Chrome, Firefox or Edge - you have to run it in IE or Opera I believe). Anyway...

Concepts Covered in Version 2:

  • Multiple types of asteroids
  • Enemy ships which fire at you and randomly move around
  • "Teams" as in, the enemy ships cannot shoot their own asteroids/ships but can still shoot you
  • Infinite scrolling background
  • Particle effects to create stars, giving perspective and movement

Wednesday, 1 June 2016

Unity Tutorial: Rolling Ball

Try it out here.

As I mentioned in my rough game development strategy, I want to dive into some Unity tutorials to get a grasp of the engine.

The first tutorial I've looked at is the rolling ball tutorial from the Unity website. For such a basic looking game it promised to teach me a lot of different core concepts!

Concepts Covered: 

  • Creating objects
  • Controlling a player (marble) with keyboard inputs
  • Using physics to move the marble around
  • Detecting collisions between the marble & other objects
  • Determining whether collisions count as points or are physical limits (walls)

Sounds fun!

Mid way through the tutorial I can't help but think, these tutorials are designed for idiots. Thank you for telling me that the reason my new material sits within a sub folder, is because I had that sub folder selected when I clicked 'New > Material'.

Truthfully I'm grateful for the slow start. Easing into it gently. Here's a familiar face, code!

I wasn't hindered at all using Visual Studio instead of the Mono Development software used in the tutorials. The only thing worthy of note is that Mono gives you access to the help documentation by highlighting an object and hitting Ctrl + ' (Ctrl Single Quote), you can replicate this in Visual Studio by hitting Ctrl + Alt + M, Ctrl H. (Swish!)

A few hours later and the tutorial is finished. It's kind of remarkable how much can be done in such a short space of time. I like it.

The great thing about Unity is that you can easily publish to different platforms. I'm choosing to publish the tutorials I complete in WebGL so that I can view them in a web browser. Honestly the game looks better running in an .exe, but who's going to download an .exe file from a stranger on the internet.

You can try it out here.