Profile cover photo
Profile photo
Ivan K
Ivan's interests
View all
Ivan's posts

Post has attachment
I am absolutely terrible at planning how long things will take me to do. Part of the journey, I suppose, having never done any of this stuff before.

Currently, I am building out the Demo level. Here's a sneak peek at the (Assassin's Creed inspired) tower as well as some other models. Leaning the workflow for this stuff was fun but further reiterated that, man, I am not an art guy.

It's really starting to come together, now let's see if I can drop the demo before February...

Post has attachment
V-Arena End of the Year Update: Balance, Patience, and Hustle

Happy New Year!! May your dreams become reality in 2017!

For me, it has been a tough few months, for sure - some of you may have noticed the lack of a November update. This is mainly due to the burnout that I experienced after the Steam Dev Days conference. And though I have many thoughts on the subject, I'm not sure I have the best perspective on it yet so I will share just the main takeaway and it is that of Balance. It is most critical to have healthy and sustainable habits when it comes to diet, exercise, and social if one hopes to succeed in an endeavor like solo game development. I'm sure this is painfully obvious to some - as it is now painfully obvious to me - but it bears repeating that this is a long term process that is often filled with frustrating and time-consuming obstructions meaning that a strong support network is absolutely necessary if one is looking to succeed. I am deeply grateful to the friends and family that have been there to help guide me back in the right direction. Thank you.

The time was not all lost: I have re-implemented the climbing mechanic (it's smooth, functional, and so fun!) as well as fixed some long-standing bugs with the movement system. The refactored code is far more logically-sound, consistent, and performant. I've also simplified some weapon interactions and introduced a wall-running/jumping mechanic. Finally, I also implemented a rudimentary lean ability. This mechanic is particularly interesting to me because as far as I'm aware, no one has done anything like it in VR yet. It had me chuckling after I leaned too far out of a window and fell out - I didn't code with that result in mind but of course that's what should happen! Overall, I am very happy with the state of the movement system now and can't wait to share it with the world.

To get to that point, there is still more work that has to be done but after everything that I've been through and all the problems I have overcome, I am feeling cautiously-optimistic and confident that I will be able to pull it off. The key now is consistency, efficiency, and perseverance. Can't give up now, I got this :)

Finally, in some truly awesome news, I may be less than a month away from working at Unity Technologies, the company that created the game engine that I am using for V-Arena. I would be working on VR and QA/test... it's the perfect combination of my passions, interests, and expertise. They seemed to really like me and I did well on the coding/logic exam but they deferred until mid-January, so we'll see!

Here's to a phenomenal 2017. Look for another update (with video!) in a matter of days, cheers, and thanks for reading!

Post has attachment
October Update!
What a month it's been. Lots to cover, let's start with the game itself:

I finally finished the initial implementation of weapon interactions and ammo system. What started off as what I thought would be a relatively simple reload mechanic, turned into a fairly maths-involved (and hopefully modular code-wise) system. For example, I had to use vector math and trig to calculate how far back to slide the bolt carrier based on the player's current controller position relative to the starting position. In the end, dumping a mag, rocking in a new one, and racking the round feels great! The funny thing is that I didn't mean to imitate real life reload actions when I started planning it, but I guess that's VR dev for ya.

Here's a video showcasing the new interactions, jumping, and "sneaking":

A few weeks back, I attended Valve's Steam Dev Days, a two day conference here in Seattle. It was an absolute blast meeting and chatting with Valve employees and all the devs, especially ones working in VR. I even got to demo my game to a Valve employee but, alas, he was not a fan of the movement system. I did notice some unintended game and player behaviors, though, so valuable feedback was attained. Highlight for me was - by complete accident - meeting the dev who coded Hover Junkers and hanging out with him and a group after the conference ended on day 2. Got HIM to try my game, and he loved the jumping, so there's that, haha!

Additionally, the same day that the conference started, I posted the video above to reddit and got a pretty amazing response including 100 upvotes and over 2k views. This, coming from a no-name and for a pretty rough-cut video and glitchy-ish gameplay, is superb and it seems that there is definitely interest out there for a game such as this. It's humorous to see comments such as "Please use Onward's movement system!!" when the movement system was written before Onward came out. But yay, a response and a positive one at that!

Going forward:
Here's where things get exciting again. First, as can be seen in the image attached, I've decided on a simpler, almost toon-like low-poly art direction and managed to find some assets that fit the bill and don't require me to break the (non-existent) bank by hiring an artist, at least for now. Simpler graphics mean better performance, cleaner lines, and cheaper art assets. Bright simple lines work especially well in VR due to lower resolution and lensing artifacts. Additionally, this style lowers the realism which will mean more players willing to play the game if it doesn't involve the implication of hyper realistic guns shooting people. VR makes this especially questionable and I'm not sure I want to poke that Pandora's box just yet.

Finally, I'm pivoting slightly in terms of the movement system. I think there is value in creating a "walking trainer" for VR as a majority of folks either can't or think they can't handle "artificial" motion. I believe it is a way of thinking that can be trained for a lot of (but not all) people, even if they don't agree. As such, I'm focusing on building a movement tutorial to add to the demo build. It will have layers of comfort features that peel away as the user becomes more assured that they can handle sliding around. Ideally, they'd eventually become comfortable with no assists. As a bonus, I can add these assists to the multiplayer game as well, hopefully expanding/keeping the player base. Could probably even leverage game analytics and finally get some real data on VR motion sickness.

As one can imagine, that's a massive amount of work and sets me back quite a bit but I think the benefit of potentially growing the number of confident VR players far outweighs that. Could be a great PR boost for the eventual sales too, we'll see!

In the meantime, back on the job hunt I go... Fingers crossed!

Post has attachment
V-Arena Dev Blog: 4 Month Landmark

4 months ago, I came up with the idea for V-Arena, a game I thought I wanted in VR that no one else seemed to be making. Yesterday, my friend and I carried out a successful weapons multiplayer test, which you can watch in the video below. If you haven't experienced VR yet, it's very difficult to convey in simple words exactly how intense bullet impacts all around you are. This game is definitely becoming exactly what I want to experience in VR and with further development it will only get better. Couldn't be more proud of the progress.

The next few weeks will focus on fleshing out the game to be early-release ready, which means creating menus, scoreboards, as well as polishing sounds, animations, graphics, and the game-loop.

Post has attachment
V-Arena quick update: One step forward after two steps back.

I've rewritten the movement system yet again, this time incorporating a robust character controller I came across on github. What that means is accurate ground detection and physics simulation (without using Unity's physics engine) which leads to smooth movement and finally! not falling through the floor after a fall. Still need to iron out some kinks and add jumping/climbing back in, but looks like I'm on the right path.

In other news, development should dramatically accelerate after this weekend.. Alpha build may be right around the corner. Hopefully by early October.

Post has attachment
V-Arena Dev Blog: Big News

Today I emailed Valve requesting access to put my game on their Steam Store... and 20 minutes later they accepted! They also mentioned to give them a shout when I upload a build to Steam for them to try out. Looks like the hard work and the never-ending sleepless nights are actually paying off, hahaaa _;;

Here is the latest update: New hands are in, and they wiggle! Animations bring the game to life. As does sound, so I added a number of audio effects, and rewrote parts of related systems yet again. Still a number of crippling bugs, but at least I can show you the video I sent to Valve. Even in this early unpolished stage, this kind of movement/gameplay is quite satisfying. Watching my artist/modeler friend climb up the tower was like seeing my vision come to life before my very eyes; very surreal and unbelievably motivating. With the kind of mechanics I have planned, I can't wait to see what kind of crazy stunts people will pull off.

Now that I've been accepted to Steam, I need to sit down and figure out a plan for the next three months. Also, do some housekeeping: clean up my code, organize myself better using Git and Trello, and reach out to some industry people to see how they may be able to help. Then do a light polish pass, fix a few movement bugs - like why is jumping not working? It worked before D: - and announce the game on twitter, reddit, facebook, etc.

Thrilling times, indeed. Let's see how far this can go.

Post has attachment
V-Arena Dev Blog: Three month mark!

The first G+ post I made about this project was on May 29th, exactly three months ago. What a roller coaster it's been, in a way it feels like an eternity passed, but at the same time it's only been three months. I'm still shocked at the progress, especially when comparing the gif I posted then to the sneak peek gif below...

This weekend was crunch time: I fixed the critical spawn bug (which cascaded into more bugs as I rewrote the spawn logic, that was fun), added a new player class, added climbing, and added rifle and knife scripts along with hit detection for them.

Now, just need to optimize performance, add better player hands, and record a demo video. I'd be more hyped but I am so very, very tired.

More coming later today/tomorrow!

Post has attachment
Sneak peek at the first alpha level ;)

Post has attachment
V-Arena Dev Blog: Making up for lost time (alternative tagline: I can sleep when I'm dead)

Weapon Switching
During the refactor, I came up with a cool design for weapon switching and wrote out the events for it. Last night, I implemented the rest of the system and you can see the results in the video below!

How it works:
- Each player has a Head, Chest, Belt, and a Hip slot.
- Under the ClassWeapons game object, I have 5 child objects in the same order as the slots, 0 for Hand, 1 for Head, 2 for Chest, etc.
- When a player puts their weapon controller inside the hitbox for a specific slot and presses a button, the active weapon is disabled, and the respective child object is enabled via GetChild(weaponSlotIndex).SetActive(true);
- If the active slot and the new slot are the same, the player "equips" an empty hand (0 for Hand). This way a player can "holster" their weapons, if they so choose.

The thing that excites me about this system is that creating a new class is as trivial as changing the child objects. For example, the Ninja class could have a sword object instead of a AK-47 object for the head slot, shurikens instead of knife for the chest slot, etc.

Additionally, if I want to go down this route, I can let players decide their class loadouts and it'd be a matter of replacing the weapon objects with the player chosen ones. For example, instead of AK, it could be a shotgun, instead of frag grenades, a flashbang.

Finally, I can add more slots, it's very extensible.

Sidenote: A surprising amount of time was spent not coding, actually. I spent a good hour lining up the weapon models to the controller. In VR, even a tiny difference in rotation or position of the models from your IRL hand position on the IRL controller will feel wrong due to the brain's proprioception. Similar issue with the weapon slot hitboxes. Tweaking and polishing this system so that it's reliable and smooth to cause 0 friction with a player's UX will be the hardest challenge yet, I think.

Post has attachment
V-Arena Dev Blog - Week 11,12:

Well, the bad news is that most of that code that I was slowly building up over the past 2.5 months had to be rewritten due to me running into a show-stopper bug, as well as my code slowly spaghetti-fying and becoming a mess... This news filled me with quite a bit of self-doubt (can I really do this, I have no idea what I'm doing, someone more skilled than I would have done this in a day, etc) and I think a younger Ivan would have probably abandoned the project at this stage. 2-3 months in, difficulty ramps up, mood and motivation fall off... yep, sounds like classic Ivan.

The GOOD news is that I managed to rally and spent this past weekend refactoring all base systems to be a much more extensible, maintainable, and readable event-driven architecture. After rewiring all the different systems together, I was able to fix all compile and runtime errors and much to my shock it actually worked, as can be seen in the link below!!

There's a critical bug that my frazzled brain couldn't get to last night and a few more that I'm sure are lurking under the surface as well as a few minor things still left to connect, but for the most part, I am super pleased with the refactor. Going forward, things should be much easier to develop.

Up next: Weapon switching logic (mostly in place), Weapon animations (need to record and plug them in), and Weapon reloads. For reloads, with the ammo system already in place (I actually run out of ammo in the video), I just need to come up with a reload system that is fluid, works, and - most importantly - one that is fun.

Just gotta keep moving. One step at a time.
Vivin' Ivan
Wait while more posts are being loaded