How I Spent My Summer Vacation

Rhapsodies on games, gaming, and why we play.

Month: September, 2015

Game Dev Log #4: Almost! So close!

by anbrewk

After my last post I had a very excited session of trying to script dialogue trees followed by a spiral of failure. I was and still am very happy with the minimal dialogue tree I was able to get working. The only issue was how minimal it was and how I was forced to rebuild it every time I made the slightest change. And because of my inexperience, I had a hard time efficiently reusing responses and prompts which meant I had these really messy if/else blocks that very quickly got out of hand. It was a mess.

Luckily for me, I had already reconciled myself to looking into dialogue assets to import from the asset store. The one I was eyeing up beforehand even happen to be on sale the day I looked into buying it. Then its been, surprisingly, only the last three days of me figuring out how to implement this new dialogue system in my existing game. Given my game is made up of very little, it’s easy for me to break it down and rebuild it. So I’ve mostly been using prefabs and example projects and then frankensteining them into what I wanted. Then they would inevitably break because of my mad scientist play, forcing me to figure out how to rebuild them. Just today I finally really started figuring out how the parts work and how to use those parts to further implement features I want.

Right now I have an almost complete prototype of ALL of the systems I want to implement in my game. And with the functionality of this dialogue system asset I imported, there are even more systems I could think about introducing.

Though nearing completion of the build reminds me that I still have a lot of content to produce, including the end game condition, I’m just excited to be making progress in an endeavor which is wholly unfamiliar to me. I’m really looking forward to the end of this in the most optimistic way.

Game Dev Log #3: Prototype

by anbrewk

My prototype is almost ready! The main components of the prototype are one main screen and two “rooms.” The main screen acts as a point of reference for the player to return to. It’s meant to represent a hallway in some type of labyrinth with each iteration of the hallway containing two randomly assigned doors from which the player chooses one. I had already made a bunch of pixel-art doors and written up a bunch of text that I am now slotting into the framework I’ve built. The door images are taken in a random order from an array along with their corresponding door descriptions. When the player clicks on a door, they then enter the corresponding room. The player can then return to the labyrinth’s corridor from the that room and then again enter further randomly assigned rooms.

I still have to build the interaction response/prompt system for each room, which I think is going to be difficult. I had originally thought I would make one room template and have all of its text and options populated from arrays but that’s proving to be hard to even get started. So my current plan entails  building every room as a distinct level which I think from an organizational standpoint will be a lot cleaner and easier to edit/change. So it’s probably a win my first idea proved too difficult/not possible.

Before I tackle the response/prompts though, I’m going to make a game over screen and link it to a bool for player health. At the end of each room, the player will either be dead or alive. Alive, go back to the hallway. Dead, go to the end screen and either try again or quit. Then from there, it’s the response/prompts …and an abilities screen with variables tied to choices that will be available conditionally on those abilities being chosen. Which I think after building the response/prompt system should be a relatively straightforward  addition. I think…

Regardless, I’m very excited about the kind of progress I’ve been making given what little experience I have. It’s gratifying how much the final game is coming to look and feel the way I want it.

Game Dev Log #2: Progress

by anbrewk

Computer language is relatively simple in terms of language but I’m discovering that there are some similar pitfalls. Just as with natural languages, you learn words before you learn grammar and only once you’ve truly mastered a language are you able to fluidly produce novel sentences completely of your own design and error free. That last part is the difficulty that mastery evades because the first part, creating novel sentences, is actually not too difficult for a novice. In many ways, you’re almost more likely to say absurdly original things. Of course they aren’t at all intelligible and serve to alienate your audience and yourself. Of course, it’s only through rigorous studying and many many mistakes that one overcomes that difficulty and starts to slowly integrate a language’s grammar into the way in which one both uses and understands the words one has at her disposal.

In the last couple days, I’ve tickled myself with coming up with these neat ways of solving the problems presented to me and then, in my attempts at realizing my solutions, have realized I’m just not using my words right. I create this or that and then discover that that’s not how Unity works (not that I then understand how it does work, just that it becomes clear to me that what I did does not work). Its been a source of some frustration, as one comment I made just earlier today to my partner sums up: “the best thing about having a hobby, is how ANGRY it makes you.”

But I’ve come a little ways since being angry and frustrated a number of times over the last few days. I have taken one of my solutions and refigured it so that it actually works as a code in Unity. I have a small array of strings, a random way of accessing them and they’re tied to a game object which displays the strings just as I want them. That, is some progress!

Game Dev Log #1

by anbrewk

Over September I’m working on a simple text based game with some visual aspects in Unity. My first week and a bit has been spent anticipating design hurtles. I’m building it in an unfamiliar engine and as an almost complete beginner in coding. Given my very little programming experience, any coding whatsoever, like anything at all, is difficult and tiring.

That being said, the actual planning of what/how to implement my ideas in code is kind of exciting — until I have to actually implement them that is… which is what I started to do yesterday. I had ordered another monitor to make my work space more manageable and had been waiting for its arrival before I started. Yesterday it arrived and I began to go through some of the tutorials I had book marked over the last couple weeks.

I had already discounted a few of them prior to anything because as I made a list of features and thought about implementation, it became obvious many of the tutorials were for drastically different things that what I planned to do. Given that, there were only a couple tutorials worth looking at and only because they clarified some of Unity’s features and interface. Entering a new program is somewhat daunting so the hand holding there was actually quite appreciated.

After I felt a bit more comfortable with the interface, it began to become increasingly obvious that Unity can do a lot of things that I do not understand AND a lot of the things I want it to do are not obvious. Given I want to make a text based game in a physics based engine, it shouldn’t surprise me that much of what Unity can do is not what I want it to do.

After giving up on finding a tutorial that would essentially show me how to make my game, I eventually found some success just trying to make a single feature work: a button!

My plan is to essentially make a game menu that leads to other menus using GUI elements because that’s really what the back end of my game consists in: 2D pages with doodads on them that the user can interact with and which, when interacted with, change either the page you’re on or the content of the text on the page. The dialogue part, which I just very poorly described, is actually going to be the most complex, I think, but this morning I did, successfully, create my first button. Which is not a minor thing. It is a major element of my game which I successfully made a very poor version of which actually did a thing I wanted to do. It’s an ugly button and it only does one thing I want it to do (and not to the full extent I want it to do it), but it works. And so I’m pretty happy about that. Day 2 of n00b coding and I have part of one of my games features partially implemented. That, is pretty cool.