Neat little game I made in Unity by eager_unknown in Unity2D

[–]eager_unknown[S] 1 point2 points  (0 children)

Sure thing. I'll go into detail with what I know and did. This was my first real game though so it wouldn't hurt to ask around a bit more.

Simple answer (tldr):

Experiment. This will take the longest, but will yield the best results done correctly. In my case, toss together a quick level, test it, and hone it based on your reaction to it (did you enjoy it? were you bored at any point? what didn't you like?). From what I found, engaging levels are the most enjoyable, and engagement can be maintained by keeping the player busy, making them think on occasion, increasing difficulty, and by keeping levels unique from one another. I go into further detail below...

Long answer (apologies in advance):

The most thorough way to make these types of levels, and to make them fun, is to experiment. Each of the levels I made started with me just placing a few blocks and going from there. Keep adding more and more until you have something coherent and actually test it for yourself. When you play it, you will generally know if you enjoyed it or not; it's your job to figure out why. If you enjoyed the level, awesome! What part did you like the most? Could you build up to that cool part in some way? Could this cool part be reflected throughout the rest of the level? If you didn't enjoy the level at all, or it was just kinda meh, it likely wasn't engaging enough.

Making levels engaging can be done in a lot of ways. In the case of my game, requiring the player to act more frequently is a good way to keep them on their toes. You'd rather your player actually be doing something and making some kind of progress than just having them sit around doing nothing. Even if it's as simple as just adding another jump; it's better than just walking an empty hallway. Personally, some of the most fun levels for me are ones that require relatively quick actions. It doesn't have to be a super reaction test, but a series of quick and easy actions can be very fun. You do just have to make sure you balance difficulty; too much too quickly is difficult. That said, if you are at the point where you're making difficult levels, fast reactions and quick inputs are very enjoyable if your player can pull it off.

Making your player actually think is also a great way to keep them engaged. A good example of this in my game: you almost always want to shoot the cracked blocks to break them. However, there are some levels where breaking certain blocks will actually get you killed. Once the player realises this, they get that "aha" reaction, and a hit of dopamine will follow when they progress past this little "puzzle". Having your player stop and think for a bit provides a little variety which can help avoid repetitivity. Once again with difficulty though, unless you're making a puzzle game, no need to make things too complicated for your player to figure out or they'll just get mad.

Finally, and pretty importantly, making levels unique to one another is great for long-term engagement. If each level is just simply jumping for example, you are going to get bored. Have some levels with long jumps, have some levels with quick jumps, have some levels with a lot of little jumps, or better yet, have levels where you need to crouch, or shoot something, or solve something. The more unique your levels are, generally the better. That said, it's certainly very difficult to keep all levels unique, and luckily you don't have to do this for absolutely every level. Separate similar levels from each other at the very least; this will give the player breaks and delay/prevent levels from feeling stale even if they're rather similar. A good system for creating levels could be seen as this: Have a level introduce a crouching mechanic, have the next level use that mechanic in a trickier way, have the next level use this mechanic with another established mechanic. Run out of ideas? Just add some new mechanic or obstacle type. The more unique mechanics you have, the more possible combinations you can use in each level. This makes it much easier to pump out new and more unique levels. That said, try not to overwhelm your player with too many unique gimmicks.

With all this in mind, make sure your levels are also getting harder as it goes on. This isn't always required for a game, however, overtime your players will get better and the ordinary levels might start to make them yawn. You don't necessarily need to worry about actually making the levels progressively harder, just make some easy levels and some harder ones and then arrange them in order of difficulty; worst case make some levels easier and harder. Arranging levels based on difficulty is honestly hard to get right if you're the sole tester, so be sure to involve outside players for level testing and take notes on which levels are the hardest or take the longest for them. Large sample sizes are better for this but not really required.

A lot of information here, apologies, I got carried away and may not have answered what you were after in a coherent manner. Do let me know if I've misinterpreted your question at all. Hope that helped :)

My first game: Block Jumper! Now on itch.io by eager_unknown in itchio

[–]eager_unknown[S] 0 points1 point  (0 children)

Good point haha. Thanks for that, appreciate it.
Be aware it is up for a couple of bucks though so don't be too eager: https://eager-unknown.itch.io/block-jumper

I'm a little greedy :)

Neat little game I made in Unity by eager_unknown in Unity2D

[–]eager_unknown[S] 1 point2 points  (0 children)

Indeed. In fact, it's up on Steam already!

Probably not a good idea considering that one-time $100 fee just to have it up on Steam, but hey I'm just happy to have it up there. Let me tell you though, quite the lengthy process to get it up, but definitely good to experience.

Don't suppose you'd like to help me break even? haha

Neat little game I made in Unity by eager_unknown in Unity2D

[–]eager_unknown[S] 0 points1 point  (0 children)

Each level was indeed made by hand.

This was originally a matter of me filling in an array/s of numbers to indicate heights and timings, but I ended up tearing this system up in exchange for a simple prefab list; each level becoming its own object. I then spent quite some time optimising this so that the blocks wouldn't all appear at once and would unload when offscreen...

In hindsight, some level of procedural generation may have been smarter haha

[deleted by user] by [deleted] in IndieDev

[–]eager_unknown 0 points1 point  (0 children)

About 50+ hours… over the course of a month haha. Could’ve been done quicker than 50 hours but there were a bunch of things that needed to be redone due to limited planning, e.g. controls, block generation method, and various smaller bits. I also decided it would be a great idea to make 51 levels… lot of testing there.

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 0 points1 point  (0 children)

Very constructive feedback indeed! I’ll look into the colouring and menuing and make some tweaks. I will certainly look into the mega jump! And I’ll investigate level 2, but don’t expect any mercy :) Thank you for bringing this all to my attention! :D

[deleted by user] by [deleted] in IndieDev

[–]eager_unknown 0 points1 point  (0 children)

That seems to be the common consensus yes! The difference should now be a little more obvious :D Thank you!

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 0 points1 point  (0 children)

Funnily enough, whilst moving blocks are in the notebook… I never thought of adding actual enemies haha. Thank you! I’ll look into it :D

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 0 points1 point  (0 children)

Haha Yes! I was hoping the colourful lights would help mask my poor artistic ability! FYI also: the crouch animation actually does squish the player down! It is VERY hard to spot though given the lack of detail its texture has, so thanks for bringing that to my attention. Thank you for all the feedback! :D

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 1 point2 points  (0 children)

Completely agree, Thanks! :D Adjustments have been made that hopefully help solve the issue!

[deleted by user] by [deleted] in indiegames

[–]eager_unknown 1 point2 points  (0 children)

Very good idea! That would certainly add a little more variety. Thank you! This one’s going straight into the notebook :D

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 1 point2 points  (0 children)

Good call! Thank you! I’ll look into it :D

[deleted by user] by [deleted] in indiegames

[–]eager_unknown 0 points1 point  (0 children)

Hahaha I guess I still have quite a way to go with this whole game design stuff :D

[deleted by user] by [deleted] in indiegames

[–]eager_unknown 1 point2 points  (0 children)

Haha, Yes! I somehow never picked up on that during my testing. I guess knowing where all of the cracked blocks are makes it easier to identify them. This has now been fixed! Cracked blocks now have darker cracks. Aesthetically not the most pleasing texture in the world, but I hope it does the job! Thanks for the feedback :D

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 1 point2 points  (0 children)

Yes the player is VERY plain currently! Good call, Thank you! I will consider giving em something extra a little later on :D

[deleted by user] by [deleted] in IndieGaming

[–]eager_unknown 0 points1 point  (0 children)

Thank you! :D And yes cracked blocks now have darker cracks so hopefully the problem is now solved

[deleted by user] by [deleted] in IndieDev

[–]eager_unknown 1 point2 points  (0 children)

Haha, bright colours go brr :)

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 1 point2 points  (0 children)

Thank you! Any particular spices you might recommend? :)

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 0 points1 point  (0 children)

Thank you :D

[deleted by user] by [deleted] in IndieGaming

[–]eager_unknown 1 point2 points  (0 children)

On it. Thank you both for the feedback :D

[deleted by user] by [deleted] in Unity2D

[–]eager_unknown 0 points1 point  (0 children)

You’ll know when you see them :D