In the wake of the final month, I’ve been so busy with managing things on the corporate end that I’d almost forgotten to post an update here. Ottercopter Studios, LLC is an official company now, with its own bank account and federal tax ID. As such, we were verified on Steam, which allows us to access their depot build system, so we can run our game through the Steam client for more accurate testing.
As such, we’re beginning to abandon support for the standalone player, which will make one last public appearance in Full Sail’s archives, before being abandoned for depot building. With that, Data Thief now appears on Steam, but currently for developers only. We hope to open up to Beta testers, alongside a store page, soon.
Another implemented feature of the game was the ghost, which wasn’t the most fun thing to implement. It had its share of problems, including not working for 3 weeks, working for a day, and then not working once again. Turns out, there are quite a few cameras within Steam’s camera system, but there’s an important note that they never really mention. The ‘Camera(head)’ and the ‘Camera(eyes)’ switch places when build in a standalone player. Thus, when the ghost went to gather information, it couldn’t find a valid camera, because it was looking for the head rather than the eyes. With that bug ironed out, the ghost is finally a working feature. The inspiration for its design came from Titnalfall 2’s own ghost, from that gauntlet. I didn’t replicate it very well, mostly because the implementation and genre are vastly different (and because I honestly spent more time throwing my controller at a wall than I did looking at the ghost).
Next month comes a lot of hard polish work, level design, and hopefully the launch of our full product on Steam (or at least a demo) by #OrlandoiX17.
This week we kicked off with one of our best builds yet, followed by our worst. When testing our Thursday build, we found that a number of systems failed to work, particularly in our level 2. The fixes were simple, but their simplistic nature meant that we spent a lot more time debugging than we should have, as the issue was one of the last things we checked.
Also as of this week, Steam Integration has begun. Because we plan to release on Steam, we’re implementing a list of features that would be expected of Steam games, notably achievements and leaderboards. As of right now, though, the integration doesn’t look all that impressive.
Due to the fact that Steam Direct has not yet launched, we don’t have access to the Steam Partner portal, and thus cannot register information with Steam. Still, though, once access to Partner is available, I’m confident the integration will link up almost perfectly.
It’s never good enough, is it? This weeks implementation comes with the ability to switch between different colors of lasers, which was a core mechanic. Originally, the effect was two-parts, where the color would bloom out for the active color, and then pull in for the now-inactive color. Due to a limited understanding of the render order and stenciling in Unity, this was the best effect available. But it’s not good enough? A few hours of work later, a new effect was born. This effect nullifies other colors while inside the mask of one color. It’s a bit more complicated than that shader-wise, but not by much. In total, about 28 shaders were born to create the following suite of effects.
Week 3 was mostly bug fixes and polish in preparation for our demonstrative expo. Most of my work has be inclusion of features to further polish the game. I implemented my lava lamp shader in a lamp on the menu, corrected bloom profiling issues (which caused issues with players seeing objects) and performed some material color collection. In addition, I refined some features (namely, increasing alarm countdown time when inside a laser) and added in a scoring system in preparation for Steamworks integration.
Data Thief (Public Alpha 0.1.14) can be downloaded at this link.
I feel like we got a lot more done this week, but I guess it’s because we nailed down functionality and managed to work more on design (alongside level 2’s development). We managed to down our long-standing issue of rotating objects with the controller with better vector math. The original design only took the two points, without regards to the direction of those points from the objects origin. Now everything rotates smoothly.
Last week I got a new toy, Amplify. I’d mentioned it alongside a little side project I’d been working on. Now it’s become more useful, as I made a new shader to process an effect in our game.
The effect fades the object in as a wireframe-like version of itself, and then ‘dissolves’ into the full object, as though it’s being created from a computer. This effect should have many uses in our project. The USB-looking objects are our level transitions, which slot into the podium in order to process a transition. Coming up this week there should be a smoother transitions between scenes.
Week one in our second month of development has been… Less than admirable. Not due to the performance of our developers, but because of the performance of our engine. Whether it be our collaboration server going down or the engine locking up when compiling, then crashing, the issues have been numerous. Fortunately, that hasn’t come too much in the way of continuing our development cycle.
I removed some objects from level one that were causing issues, and added colliders where there weren’t any. I also added in regions to prevent the player from teleporting up to walls and sticking their head through them, thus being able to teleport into areas they shouldn’t have access to. I began working the tooltip system over, but passed that off to a teammate in order to focus on radial menus. I think they look good so far!
Oh yeah, I got a new toy. It’s called Amplify.
Amplify is a node-based shader editor, that functions much like compositing tools in 3D rendering software. Following a handy little tutorial, I created this lava lamp shader, which I hope to add to the menu at some point as a novelty. I’ll continue to play with Amplify in my spare time.
That’s really it for week one, month two. Until next time!
Month one of this project has been crazy.
It started out pretty rocky, as I would imagine most projects do when build from the ground up. A lot of our first week was spent finding a working location, and trying to figure out whose idea would go where and why. While we deviated from our original pitch, and spent far too long on some of our decisions, I feel as though we have a solid foundation for what I hope to be a great game.
On the project, I was tasked with a few things, notably our movement system. Getting a solid parabolic prediction was a lengthy process, but it turned out to be beneficial in the end. A smooth door animation, and an efficient rotation system were two other important tasks. I like to think I succeeded on the former, while the latter needs a bit more polishing (read: a LOT more).
As I’ve had limited time to work with VR, the challenges ahead could prove to be tremendous, but I look forward to tackling them in order to deliver a quality product.