Posts

How to Setup a Multi-Scene Unity Project for Startup

Image
Scene loading played an important role in this, and I believe my approach is pretty sound and proven highly useful. Let me know what you think, and what ideas you tend to apply for handling this. When developing in a multi scene project in Unity, one of the most annoying things I've worked with in the past, is the need to boot into the right place. I've worked with and developed dozens of different approaches, most of which falling into custom menu options, or resetting the default loading scene. I want to share a solution I had that is simple, small, and has worked great. General Overview Codavore is broken into several scenes BootStrap, Ui and Level/Scene/Room. Boot Strap guarantees the order of several things like my service locator and a few others. Next there is the Ui, which contains the menus and such. And finally, we have the scene with the content for the game I'm on. There is a fourth, "DontDestroyOnLoad" where Unity puts all its don't destroy object

Debug Log

Image
  I spent a while working on the debug log, getting the visuals just right, only to decide that the concept really didn't work. Dialogue and Debug don't mix well. 😞 This article will be based more around design decisions than any code.  One thing was that it was hard to discern which message was important, or if a new one popped up. If I added some slide animations, and ingress/egress animations, it would have been easier to follow, but I was also taking up a lot of real estate for something that wasn't needed. I.e. in most cases, we don't care what was said, just what is being  said. Instead, I'll keep dialogue in the present. I'm planning to recreate the dialogue system, retaining much of the old code for it, but with only one or two messages open at a time. I.e. When you have options in front of you, I believe I'll keep the previous message, such as the ducky asking a question, visible on the screen, as a memory aid. Back to work!  

Build for Necessity, not Architecture

Image
(source:  Pixabay.com ) Build for Necessity, not Architecture, ... does not describe the current Codavore code base. In fact, I'm about to throw out my last 6 weeks of work, not because its broken, but because this beautifully crafted solution turns out to add a great deal of pain it was designed to avoid. And when coming to terms with this, the same solution kept popping up in my notes: "Build for necessity, not architecture." This is about what I did wrong, and how I plan not do it again. If a class doesn't talk to any other class, then it can be written any way it feels like.  Its bugs will be isolated, and so can be fixed without risk in the future. When multiple points in code need to talk to the same resource, or understand multiple classes, then an architecture needs to be applied to standardize their connection. Always question if a new architecture could/should be solved by an existing one. Sometimes you need to shift the problem. Thos

Dialogue ?= Debug Log

Image
I've been taking a serious look at dialogue. I've built dialogue systems before, and I had an idea as to how to approach it. But I also knew a problem I would face was trying to manage the shear amount of content. And while I felt good about the architecture in general, I had not come up with a visual concept I was happy with. So I did what has worked out well in the past. I asked questions, and ended with a great concept that is very fitting. Source:  https://pixabay.com/illustrations/question-mark-pile-questions-symbol-2492009/ So I started asking questions. In my meetup group, RE: Game Dev, I asked to hear about other people's experience. I also searched for existing articles and tutorials, and came across a great one from the GDC, "Dialogue Systems in Double Fine Games".  This proved excellent, as I kept pausing and rethinking my decisions. But still ended up really close to my original intentions. That video was great, but it also referenced

I'm not dead. And I'm taking my code with me.

Image
Its been a few weeks since my last post, so I just wanted to make sure anyone following is aware I haven't died, and neither has Codavore. But, I have had way too much going on. I'll get into that and what I've been silently completing (Unit test coverage). Source:  https://pixabay.com/photos/despaired-businessman-business-2261021/ I started a contract with Microsoft, so have 40 hours a week there. I'm interviewing for FT positions in Microsoft, Seattle and in several other countries including Spain, Canada, Denmark, France and Germany, which is easily adding about 20 more hours and calls at Midnight then 5 AM. And on top of that, my game dev group, REGameDev (Redmond Eastside Game Developers) is partnering with DigiPen to run a Game Jam. And then my locator class sprung a leak... So amidst all that, I am still working on the project, but it has hit a spot with no visible activities. The Locator Service is an integral part of the architecture, and specifically h

Animations & More Light

Image
I put animations in again and tweaked the lighting more. Here is a screenshot, at the bottom is a video clip showing the player with no light and personal lighting. The animation is quite simple. First I'm using Simple Citizens pack, as shown here below, and using the default animation pack that comes with it. You are welcome to get it yourself, its not pricey. Simple Citizens - Unity Asset Store Then I added a NavMesh to the background to define where my character could walk, and added a NavAgent to the character, so they could traverse the area. On top of that, I added this simple script: using UnityEngine ; using UnityEngine.AI ; public class CharacterAnimator : MonoBehaviour { private Animator _Animator; private NavMeshAgent _Agent; public string SpeedVariableName = "Speed_f" ; void Start () { _Animator = GetComponent<Animator>(); _Agent = GetComponent<NavMeshAgent>(); } void Update

A Momentary Lapse of Passion

Image
There have been so many projects that I have lost passion for while developing, that a few years ago, I challenged myself to start paying close attention to this. To start researching the psychology of what drives me to and from a goal. In that time, I found that Game Design is actually a key value in life's success. And Codavore will survive because of this. :D I'll tell you a short story of why I lost my passion for Codavore and then how I revived it. In hopes that when you hit this runners wall, you might be able to get past it as well. source:  https://pixabay.com/photos/light-bulb-idea-creativity-socket-3104355/ 2 weeks ago, I wanted to start working on the dialogue system, as that would be a common need in this game. I had seen the start of an instructional video on how another person had created this really nice looking Dialogue Graph, and kept looking for opportunities to apply it (or similar) in my code. So my first steps into the dialogue pushed me into worki