And I will show you how you can too!
I wanted to make something fairly simple, that required strategy and causes a bit of frustration. I came up with Hevel: a game where you are a ball, rolling around, rapidly running out of energy (or becoming smaller), and you need to collide with another ball to make a "soul-swap". The game measures the time you achieved: the longer the better.
I decided to go with Unity because...
- It's the one I know better
- Pricing is alright
I decided to go with C# because...
- UnityJS sucks
- I don't know Boo
- I know C# well
Making the game
Random Ball Generator
I used Unity's
Random.Range to generate 4000(!) X and Z values between 4000 and -4000.
Instantiate to clone the sphere, then I removed the player script from the clones.
The Timer was an easy one: when Update was called, I added
Time.deltaTime to a timer float, then outputted the new value on the Canvas.
The Player Script
The Player Script is mainly messing with
rigidbody.AddForce and making the sphere smaller, but I want to talk about the "soul-swap" here.
So the soul-swap code is basically...
- Check it's not colliding with the floor
- Pass PlayerScript on collided object
- Turn "dead" sphere red.
- Remove PlayerScript from dead sphere.
This was the code that took me the longest time: basically messing with collisions, spheres colliding when they're 500X500Z away, bullshit like that.
The Camera Controller
The Camera Controller took care of following the sphere, and setting view height (keys E and Q).
new Vector3 to locate the camera where the ball is in X and Z, but not move the Y coordinate.
I made my game available for purchase via The Humble Bundle, by...
- Creating Humble Bundle Company
- Setting Payment Info
- Creating Gamepage
- Publishing game
This took me about half an hour (without making gamepage video, etc.), it wasn't hard stuff, you just need to provide some personal info because of legal things, like passport number/government ID/driver license, TIN, etc.
I really want to keep this game alive, fix bugs, add new gamemodes, add multiplayer race, etc., but first I want to see if people want this game or not.
I have published a demo game page with no video or screenshots yet that you can see here, please support the game if you like it, it would help a lot.
Developing a game can be hard: but only if you come up with a complicated idea. Simple ideas are not bad, heck, even more people play simple games than complicated ones. What matters is...
- Is the game fun?
- Is it addictive?
- Is the story good?
...and many more depending on what type of game you are writing.
The only thing that matters is do you enjoy playing the game, AND programming it?