First Two Weeks: An introduction (Shishkabob)


It has been an exceedingly long time since I've posted anything on this platform. Today, I'm starting to share my journey of making the first full game I've worked on in six years!

An Introduction

I have always loved video games as a medium to connect with friends, express my creativity, or to blow off steam. I've played every kind of game that exists by now: RPG, MMORPG, Fighter, Beat-em-Up, Shooter, Platformer, etc... There is one genre, however, that I loved to play way more than any other, and that was Sandbox/UGC. I grew up on Little Big Planet, tried my hand at Roblox, made a Minecraft texture pack or two, and spent more time than I would now consider acceptable on an open ended virtual brick game called Blockland, making maps and experiences for other people to enjoy. I have always found making games for other people to play (AND enjoy) much more fulfilling than playing them.

The first game I ever built from start to finish and released is still on my profile, mostly as a keepsake. I made it in about a month or two during the first year I was learning about game development. It was my first year learning C#, Unity, Audacity, whatever music and sound effect programs I used, and game design in general. I had done a bunch of private personal prototypes and game system designs by this time (and I sure thought I was a professional at that), but never a whole entire game. (Especially not one I would let other people see, eek!)

And so, based on my lifetime of experience (I had just gotten my drivers license) as a game developer at this point , I  was determined to make the next most innovative indie-of-the-year title, in a quick month or two!

Just kidding, I wasn't that inflated lol. But I still thought it was going to be good.

When I released it, I was less than impressed with myself. Almost every feature I tried implementing was leagues more complicated than I thought it was going to be, the game play was shallow, level design pointless, and overall about as polished as sandpaper. To say that I was scarred by the experience and the inevitable outcome would be an understatement!

That was back in 2017. I was still in high school.

Contrary to the outcome of my initial public project, however, my love for game development never faltered.

Since then, I have graduated high school (yay!), worked my fair share of completely-irrelevant-to-my-career-path jobs, started university, tried to work in more relevant positions, and eventually got one working for my university developing software in Unity (an absolute godsend of student work experience) - all the while still working on (private) game development / design related projects.

It is now the brink of 2023, and I'm going to be graduating with a degree in Computer Science this summer. And this game, is my graduation project.


Shishkabob


Shishkabob is going to be a local-multiplayer competitive sword fighting game in the style of classic stick fight flash animations, where you can use your momentum to gain an upper hand, and a combination of simple attacks, counters, and fake outs to keep everyone on their toes!

(This is the current working title, might change depending on a combination of being misleading, irrelevant or too cheesy.)

I decided to go with this genre and description because I feel like it has enough elements of things that I have successfully finished in personal projects before. I've already made input systems about a hundred times, I've made more player controllers than I can (or care to) remember. The graphics will be extremely straightforward, animations and character model could easily be busted out in a couple days. Rock Paper Scissors styled combat follows the "easy to learn, hard to master" ideology that I strive for- and if I make a game I can play with friends, all the better!


I've been working on this project for about two weeks so far.  A lot of it was spent designing, laying out, contemplating features, re-designing, presentation to my professor and classmates, and diagramming. (And re-diagramming)

In that time, I've laid out all the groundwork that I need to build an enjoyable game on top of as well. If there is anything I've learned from having 18 "Untitled Project"'s in my Unity Hub, it's that you need to give a game bones before you flesh it out.

I initially tried making my own dynamic input system in preparation for this project about 2 months ago. Luckily, I found out about Unity's very own, brand new, EXTREMELY FUNCTIONAL AND USEFUL (Emphasis on how easy it is to use) Input system. It took some getting used to, but after a couple test runs I was able to hit the ground running with the new input system, and be in awe of how incredibly straightforward it was to use. This new input rig alone probably saved me about two weeks of manual input translation headaches.


The beauty, the simplicity...

My next step after building my action map was to interface. This is something that I am possibly too excited about doing, but any functionality I introduce into a game, I make sure there are a couple layers of abstraction between interactive pieces, and that each piece only does one specific type of thing, so that I don't throw the project away when I want to change core functionality. So I've got my Input Action Events firing, a player input interface script to digest those and spit out the useful information to a player controller, and then the player controller just lets everybody else know what the player is trying to do, and then the state machine, attack interface, player mover, and collision resolver components all do the real work. 

Currently, all you can do is tell this player input management MACHINE what you want to do, and it will do the right thing based on current player state. It does it quite well actually, I spend a lot of time in awe of how applicable some of the theoretical computation models I learned about in school apply so directly to game development.

The only problem is, it isn't very interesting to look at.

All you can visually see is that the player moves, jumps, and generates hit boxes based on input. The state change is not visually apparent (Except through my debug logs), and there is no real fighting going on.

That's okay though, because that was the idea from the get go: (a lot of emphasis on jumping I am now noticing)

This is all the stuff I needed to get done to lay the groundwork for all the other features I have planned:

Keep in mind, most of the stuff in the stage lists are extremely vague notes I took when discussing gameplay details with a friend. One of those cards turned into the entire To Do list. One! It's a good thing I gave myself a realistic timeline to get this game to a done / close-to-done-just-needs-polishing state: Mid April!

So yeah, that's the deadline. So far, I have been able to keep up with my goals, and I'm actually ahead of schedule. I've got about 10 more weeks until I present the final project, and even though I can only work on it part time, the amount of experience I have at this point makes it a reasonable expectation that I can finish in just under 3 months. On top of that, I have this devlog to keep me accountable, as well as my pride and my professor who will be grading me on my progress.

I plan to make these weekly, probably none of them nearly as long as this, but more like quick status updates, and videos when it gets a little more interesting to look at. So, cya next week!

Get Shishkabob

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.