Biggest unique feature update yet: Spell casting with mouse! (long post, with goodies inside +video)

Published September 15, 2020
Advertisement

Way-back-when in early 2019, I had this idea of revisiting my childhood origins (of RPGs and tabletop, etc.), as I kept having these ideas to do so; a familiar feeling that pursued me, through my entire life, to tackle projects of my own. For one reason or another, things happened the way they did, and slowly but surely, I ended up here: An emotional and surreal experience this was (and still is), where I got to see the results of my relentless-grind (literally from dawn to dusk), in the form of a spell casting system (with mouse gestures), of which I have been yappin' all-about for such a long time; in this latest prototype of mine . . .

A journey worth telling

Last year it all started with this video (which then later got an upgrade), where I was exploring the idea of making an RPG adventure game. However, due to the limited resources I had at the time, I knew that I was going to face quite the uphill battle–something I have gotten used to over the years. Originally, the idea was to make an ARPG right from the get-go (after all I had the basics), but that dream had to be toned down quickly (due to said limitations), and was contained to producing a video instead. (That production I tell ya, has its own story to tell, as it was no easy feat to do and took months). Which then lead to another journey, where I scoured the web, to find an alternative way to make a game; as the other major issue that had to be overcome (with limited coding skills), had to do with the simple fact that I had no engine to work with. That is how I landed on working with Twine (for my CYOA experiment). [For those who are not familiar with Twine: It's an engine, specifically designed for Interactive Fiction. Think of pure, text based adventure games (gamebooks), with some graphical elements to them in some cases (like graphic novels)] Unfortunately, even though the project was going quite well (like adding tons of content, in the form of narration), the project had to be shut down, due to the simple reason that the editor itself became unbearably slow (partially due to my ambitious attempts), and became impossible to work with. My workstation could not keep up with the load, as Twine doesn't have (to my knowledge) a simple text based interface (like in the form of accessing txt files, or console) to work with.

Interestingly enough, as I was using pixel art for Twelf Kingdoms, I though to look for other ways to make an RPG; and an ARPG this time. That was the time, when I tested out so many “simpler” game engines (ones with visual scripting, or with potentials like Solarus, which uses LUA) that I lost count of. The major turnover came when Blender 2.8 was suddenly introduced, and gave me the ability to craft better assets, with fewer resources. This bears a significant importance, as now I could tinker with the idea of actually making a "normal" (as in 3D) adventure, one that I was initially hoped for–one major reason being is time, as drawing pixel art is heavily taxing on one's time (so I thought of faking it, by turning 3D into 2D).

Then came the flow of ideas, of which I shared a lot, here on gamedev, in the form of countless of blogpost; back then it was more of a concept game, than anything else. And through those posts, I realized one crucial thing that kept bugging me all these years (whenever I saw a modern, top-down ARPG (with classic point-n-click style)): There was a definite lack of action, as weird it may sound. Even Path of Exile could not change my mind on this matter (just made me quit after 20+ hours, sadly; the grind was too much of a penalty). Ultimately, as far as I could tell, most of the core peripherals, or the way you had to use them, were from “prehistoric” times (or haven't seen much attention, or I'm just unaware of it all; not speaking of VR or gamepads, standard PC tools only): Where you mostly used your left mouse click (for primary tasks; or right if you're lefty) and some keyboard shortcuts (for others). This, to me lost its appeal, as staring at a screen, and pressing a single button over and over again lost its touch; despite the fact that I easily put hundreds of hours in games like Diablo 2, which had the same core design principals.

So I was wondering, if there was a way, a better way to put back the Action back into ARPG games, in the sense to evoke a deeper involvement from the player; to make it more feel like you're actually doing the something, rather then just sitting in one place and leaning on that single mouse button. That was the moment when the idea of using mouse gestures came to be (of course I had some inspirations from earlier games, like Black & White, and software/practices). For one, you already used your mouse like a maniac (especially in some rescent ARPG), so why not use that to your advantage. So I sat down, and did my research and thinking of it, on how to implement it, or would it be useful to do so. To be honest, I had no idea how it'll look; but from what I could (and can) already tell: it's going to be something else (perhaps awesome even, fingers crossed). You see, in my mind I had this idea of having some form of “workout or active involvement” (can't find a better way to explain it), where you'd plan the way you attacked with your character, used combo's with your mouse and keyboard, and drew gestures with your mouse in order to perform actions; all in the name to give the player more sense of scale and wonder, and most of all: immersion. And the ability to freely adjust the tools that were given to you, at every moment in the game!

The simple question of materialization

Right. So last time (in my last blog update) I was talking about how, and what features I've implemented. Realistically speaking, I had other plans to tackle (like fixing bugs, and polishing features, before tackling new ones), but as I allured at the end of that post, the question, rather the time has come to think of my mouse gestures once again, as now the prototype was in the state of actually having enough content to go through with it (and was stable enough as well). For that, first I had to find out a way to tackle the issue with mouse tracking, and matching patterns. The latter one turned out to be such a headache that it took me weeks to figure out a somewhat optimal way of coding it. My very-first attempt looked like this:

(https://youtu.be/SvtnRxrSWq0)

Then there was the question of how to project said coordinates to the world. And no, I haven't used the inbuilt tools for this, as I made my own previously; and was quite happy that I did, as now I could use that to my advantage (simply grabbed the code from my pathfinding script)!

(https://youtu.be/XpXQsw0G-kc)

Ultimately, I managed to settle on something that worked most of the time, and was more of a(n actual) feature, rather than a bug; that kept getting in your way. I also managed to slash some more complicated wizardry together, to make it so that the patterns and mouse gestures weren't directional, and thus could be drawn from any angle. Here's the spaghetti code for that, from afar; and the final test after:

(https://youtu.be/pQRUha8aE2k)

Obviously, there were a ton, and I mean a ton of bugs to solve and features to implement, in order to get here; hence it took over a month to do so (last update was 2 months ago)! You can find more in between videos here, in you fancy.

Back in the game

Now . . . the only question that's left was, to implement this to the prototype, and see how it goes from there. So I made some art, and did some over-the-top animations for my simple Passive, Active and Melee demo skills. Have to admit, I think I “wasted” more time on these than I should've; but I was compelled to do so. Even though, these are only (mere) placeholders, much like the base player model.

The idea being here was that you have a skill tab, where you could manipulate how your skills were cast (aka. had to be drawn by the player, if they chose to use mouse gestures in the first place); by arranging the runes that you see above. Note that this tab can be accessed at every time, and can be manipulated whenever!

That being said, shortly after this, I ran into some major (ground breaking) errors, which threw production back by weeks, as Blender and Unreal didn't want to cooperate with each-other (when exporting such massive animations, as seen below). But I pushed on, and even came up with two animations (manually animated), that both broke my PC in half (almost); like I had to render them first, in order to see the final product, before calling it done ?.

The passive skill is supposed to be an army of your fallen enemies, that you acquire throughout the game, and occasionally you'd be able to release their spirit, to grab some health from those around you (if chosen the dark path). The second one, in similar merit, represents a curse, that is spilled over an area, and ultimately weakens and scares your enemies away.

(https://youtu.be/Ckimo7niZKQ)

(https://youtu.be/fwWYSvMiX1U)

The only thing that's left was to incorporate all of this into one coherent whole (first testing of actual skill):

(https://youtu.be/Iaq2tWp9A4A)

Scoring big time

Now, the only question was this: How it all looked when done? Well . . . after some hours of tinkering, I managed to get it look something like this:

(https://youtu.be/B18TtlzgURIs)

Of course this is not the end of the story, as there are plenty more things to do. As to what's next on the table? Not sure, as my IRL situation is also clouded in mysteries (unfortunately). For one, there are some major bugs that are needed to be fixed asap. The thinking is that first polish the game breaking bugs, then continue with the roadmap; which I definitely have to update at some point (on the landing page).

And as always, thank you for reading, and any form of support is welcome! Take care and stay safe. Until next time!

0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement