Welcome back to my game development!
It’s been just less than a month since my prior blog which you can check out here.
Last time I said I was going to make a prototype with the minimal gameplay possible: It would have movement from left to right, it would have jumping and attacking (with collision).
Well, here is the current state:
So, the good news is I managed to make it run left and right and jump. That said I got hung up by the jumping.
“Jumping is easy though! Apply vertical force when up is pressed and woosh!”
Well, actually, not quite. For a start the left/right function relies on a button to be held down, which with speed set will determine how fast you’ll move. Jumping is a single press. This means the same code for one can’t be used for the other. You also need to determine how high you’ll go and how fast you’ll gain height. By tweaking the jump power and gravitational pull (as the Rigidbody 2D thingy acts as a basic physics engine of collisions and gravity), you can decide the height and speed.
With that in play, you then can quickly come across the next major problem: What is to do about jumping to the sky? What is to stop you from slamming the up button until you leave the stratosphere and say goodbye to this cruel land? This took A LOT of research through various tutorials, and one possible fix would limit Clover to never having slopes. Needless to say, this cruelty would not stand. Part of a long journey into increasingly cruel depths, exploring suffering as you try to put to rest victims of horrible experiences, is the gradual descending.
Fortunately, I stumbled upon raycasting. I knew of it a bit, as I had done a lot of Unity tutorials, but wasn’t intimately familiar. A neat summary is imagine a laser pointer on a surface, does it connect with the right surface or not? It’s likely a gross simplification, but it works for what I did. I found a tutorial where the jump function would only work if the ground was below, as detected by a ray casting a light and seeing if it bounces back to the sensor (so, a little like a laser alarm). There’s a little tomfoolery as it is within a range from a point which can be tweaked if needed, and I had to specify it should be facing down (otherwise it’s an area-of-effect deal, and imagine double jumping along the ceiling), but it works brill.
And while crawling on the ceiling is pretty cool, it would probably be less cool and less sneaky if in Mark of the Ninja you had to keep bouncing off the ceiling.
I’m going to have to also admit, part of the reason why I didn’t do attacking is the lack of a model to test with. See, I’m currently using a placeholder model/animation from a Unity tutorial. This is why you see the little robot as a character. The fortunate news is he comes with animations for idle, jumping and running, so I can code some animation up for later. Which I managed to include some code for image flipping when turning around, and even a little animation manager of triggers to determine what animation plays when.
This here lies my current pickle: My jumping code allows for a neat degree of flexibility of how long you jump. Holding up for a long time makes it jump higher than if you simply tap. However, the animation coding is time specific somewhat. I wrestled with the jumping animation trigger code, but sadly the best I managed to achieve was a non-trigger/non-boolian system of when to stop play the animation. It begins to play when the character goes up into the air, then when it hits the floor it plays the last loop of animation. I do have a system where if you hold the jump button, the animation lasts just as long as the character stays in the air, but if you tap it then the jump animation plays as you hover just above the floor. This, needless to say, is no good.
That said, fixing the animation will have to wait.
Another thing I managed to achieve this month is beginning to assemble the team. I managed to find a sound engineer (who is happy to give soundtrack duties a punt), and an artist! While the sound engineer (Zer0t0nin) will likely be on the side lines for the next few years until mid-to-late development, the artist (DinoSir) has been beginning to put together the aesthetic style. This has been mostly focused on the protagonist design, albeit without even knowing what the protagonist looks like!
We experimented a bit with how eyes should maybe look, although these are still a work-in-progress and still early on:
We also played with a few other ideas that may influence style, such as contrast and saturation. The current intention is something that is more drab and dull, without obscuring what is happening and while remembering this is the protagonist you’re following. The tone of the game is dark, and the focus isn’t entirely on the protagonist, but you’re still following them along. I’d be curious to hear people’s thoughts about the aesthetic style preferences (it will be pixelated), with the outline of the game I gave in part 1.
Dino and I also chatted about some cool ideas, but it was all in the context of “what needs to be done”, “what we’d like to happen” and “what outlandish things could we do on an unlimited budget”. I can talk about the latter two categories if people would like, but as they’re potentially going to get cut I’d rather think on what needs to be done. We’ve pinned the core gameplay to be the following factors:
Platforming with 2D combat.
A hub “town”.
3 mini-hubs that connects to levels.
10 bosses, each with their own themed “level”, one of which is the final boss.
Anything more than that would be a bonus for us and would depend on resources. We have the mental plan of 5 years of development, but it would drastically depend on if anyone else joins our ship. As is, we have a single artist/animator who is doing all that work in his spare time, a sound engineer who is going to do the music/sound effects (with the possibility of me reaching out to another musician I know) and me who is doing the programming/design/writing during my spare time (two of the three, programming and design, being things I am grossly unfamiliar with and will likely be done separately). In addition, I have a designer and a few programmers on standby for advice, but they’re on a “rare prod” basis rather than a proper advisory role.
If you’d like me to reveal my “wish list”, I totally can do, but I really don’t want to get into the realms of promising things that wouldn’t come. I believe in transparency (part of the reasons behind this little blog series), but also believe that I shouldn’t be talking about systems that wouldn’t come. That said, with enough forewarning and emphasis on “not final”, I’d be comfortable revealing.
While the thought has crossed my mind, I don't think even the darkest rituals will be able to conjure Winslow Dumaine to help out. Especially on a volunteer basis.
With regards to “well, we want these cool things to happen, how can we?”. Speaking plainly, it is down to resources. We’re not accepting financial backing or publishing (at least yet), as Clover is still in a state of “I really want to happen” rather than a dead certainty. We’re all working voluntarily in our free time, which means if things get a bit heavy (e.g. if Dino ends up swamped with work or if my free time vanishes) then this could be put on the back-burner or cancelled. I also confess if I get absolutely stuck (likely due to my inexperience), then that could also hold things up or slow things down until they’re unstuck (via research, time and consulting people).
However, if people want to help out on the same volunteer basis as everyone else, then I’m totally up for chatting about it. Perhaps the weakest part of the team, and first part I’d fill if I got the rare chance is finding a programmer. A programmer would help things immensely, as then I could focus on design/narrative writing and would mean I’m spending less time fumbling with C# (which I’m still slowly learning in my awkward way). If people want more details, then feel free to ask!
If anyone is growing interested in what’s happening with Project Clover, I’d say one of the best things you can do is show interest. It’s definitely been uplifting to see so much positive support and it’s turned a “man, I wish” idea into something that I feel confident will happen, within a month. I adore the positive buzz, and even in my more dour mood I still feel really optimistic about this. If you don’t like the idea of being part of the team but still got the mad skills, then advice also immensely helps! I’m still learning as I go, and part of me publishing what nonsense I’ve been up to is seeing if anyone can spot where I’m blundering about a little.
The next upcoming month of development is going to see me away from the programming seat and instead resting along the designer/writer sofa. As I’ve stumbled upon an excellent artist, I do need to start designing the protagonist (mostly what they look like) and write up the first two levels (which will appear in level-hub A) which will include beasties, environment design, boss design and the overall narrative of the level (as each level will have its own lore, feeding into how the twisted spirit of the boss came to be). I also need to set up an “inspiration bank” for Dino, me, Zer0 and anyone else on the team to dip into as needed, filled with images, videos and so on.
Thank you for reading, and as always if you have any requests for what you’d like to see in these blogs you only need to say! Until next week (between the 24th and 31st of August), bye!