Categories
Uncategorized

New Tech

This project has been a huge journey of learning. It would be easy to say that we are only using one technology in this project, and while it may seem that way, our project is built upon layers and layers of technologies. We are building our game in Unity and Unity, while one software suite, is a giant intermingling of technologies. For example while we are using Unity which already brings a lot together, we are utilizing other technology packages like Tilemaps, Post Processing Effects, Character Controller and about 20 more. Let’s not forget that we are also utilizing Blender to build and color our assets.

To start I think that Unity had the most difficult learning curve. Unity is a powerful tool that can do a ton, and first opening up the editor can be very intimidating. It takes some time to learn where things are, and what each part does. It takes even longer to learn what can be done with the technology. I really enjoy the technology now that I have learned how to use it.
Lately, I have been focusing on working with Unity’s Tilemaps. A Tilemap is a system that traditionally is used to paint 2D sprites and build those 2D games on. The big deal is we are using this 2D tool within the 3D space. It really doesn’t change a whole lot, you still paint the tiles like is done in normally. The difference is changing the 2D objects to 3D objects. Its quite a powerful tool that features allows the developer to accomplish a lot.
If there was anything I could change, I wish it was easier to use GLSL with Unity. The shaders course at OSU is built entirely around GLSL and Unity has built their own language for handling shaders. They have also built a Visual or Node scripting system for their shaders which has abstracted away much of what I am use to working with. For example, I haven’t figured out a way to effectively reference the normals from my own shader scripts, but I can reference them easily in the Visual Editor. While I may find it frustrating, like most things this is a minor issue that can easily be overcome through research and experimentation.
Categories
Uncategorized

Clean it up

While I have taken the OSU courses on SWE, which both heavily discuss clean code and code smells. I find that some of the good tips and guidelines have been forgotten, or there are some that I haven’t seen before. For example this article from Patrick Karsh discusses the God Object, which is an object that unintentionally takes on too many responsibilities. This hasn’t ever been too much of an issue for me but I can see how someone could do this unintentionally. Though I must say I have a related worry given the programming goals I have and my capstone project I do worry about classes or files becoming too monolithic. Looking at the data structures and classes that are required I worry they might get too heavy. For example the player class has to handle many different tasks and objects from experience to inventory and relationships. I do think this would be a good topic to research, see how other devs have tackled this task, and what best practices exist.

The other side of it, things I would like to correct within myself has to do with my pride and history as a programmer. I don’t any cases besides snake case. I understand that other languages have different conventions, and this is due to me having started with Python but I find snake case to be the easiest to read and cleanest looking naming convention. Furthermore, I also want to get better at my general naming conventions. Being descriptive while eliminating “noise” words. Clean Code Explained describes noise as word like data, list, and info. I find that I will sometimes use these words when I’m running out of ideas for new variables. I’ve definitely used the name “temp_list” more than once. Hopefully, taking another look at these topics as I finish my education will stick with me for a while longer.

Categories
Uncategorized

Short thought on adapting and excitement

The past few weeks have been interesting. After getting the group together and deciding the course for our capstone, I realized that their experience in the various areas of game development far outweigh mine. Each person in my group is a powerhouse of either Blender or Unity experience, and it really started to make me feel small. Not to mention dealing with complications with my chronic illnesses, and had a minor surgery (tests came back with no signs of cancer, so yippy!). With all of this I’ve been really getting down on myself in regards to my ability to contribute at this point in development. I’ve not worked with movement, controller input, or asset design before, and seeing them start these parts of development with such excitement had me worrying. I do have to say my team has really been a huge help through these past few weeks. They’ve been very understanding and supportive of my situation, and I couldn’t ask for a better group to working on this project with.

Adapting

I think the most interesting part of the past few weeks is learning the differences between classes and real world work. I’ve been heavily focusing on building the shaders for the game we are developing and there have been a lot of roadblocks. I’ve taken CS457 – Shaders with Mike Bailey, and I absolutely loved that class. I had no problems with any assignments, and found the work to be fascinating. When starting on working with the shaders in Unity, I felt like I was learning a whole new language. Unity uses an entirely different set up when dealing with shaders, yes there are a lot of similarities and at its core its the same, but how shaders are called and ran are very different. Furthermore, Unity has its own engine variables that the shaders access and allow for custom variables which can increase confusion. At first I found moving over to the new format to be difficult, but after plenty of reading and a few helpful videos from Blender themselves. The layers of difficulty started to fall away and I felt right back at home in building these shaders. That being said I still have a lot of research ahead of me. For starters I still haven’t figured out an efficient way to reference object surface normals in the shader, which is one of the more fundamental tools I’ve learned. Then, while I followed a decent tutorial for building the Sobel edge detection shader, I am not getting the results that I would like and I know it can be done better. I’ve seen other edge detection shaders that not only detect outside edges but also capture inside edges.

Getting this far into the capstone, struggles, self-doubt and all has done nothing but make me more excited for the future of the project and our team. I hope this is the start of something that is exciting and fun for each member of our team. When working with Unity and Blender, I feel like a kid again, full of wonder and excitement. It’s exhilarating to work on something like this and watch it come to life in front of you. I can’t get enough of it. Looks like winter break is going to be filled with shader research and learning more Blender and Unity.

Categories
Uncategorized

Planning the Farm

Well, where to start. The team is great. Everyone has their strengths and is both creative and eager. I’m really excited to get to building of this project. After getting to know them and spending time working and talking with them, I am much more confident in this project. That being said we have a mountain of work ahead of us. That’s not what I want to focus on.

By far the hardest part of this project so far was picking the product, and I want to take some time to reflect on that. In the first two weeks we had to decide what our game was going to be. While the initial proposal listed a potential game I had intentionally left it open to suggestions from other members just in case. While I believe that I had some good ideas I wanted to hear what other people were interested in. So, this is where we started, discussing our different ideas and going through a round of pitches. While there weren’t many ideas to begin with we immediately were excited about two the side-scroller that was initially pitched, and a social sim.

Since we initially couldn’t decide on which project, split basically down the middle, I proposed that we take a couple days to come up with ideas. The idea was to take a couple of days and focus on ideas for a single proposal. So that is what we proceeded to do.

Apocalypse Farm

The social sim was were we decided to focus our energy first. Early on in the proposal phase Jon and I found we had a similar idea of mixing a social sim type farming game (e.g. Harvest Moon, Stardew Valley), with a post apocalyptic setting. From his perspective he wanted to make a game that him and his wife could play together and be excited about each aspect. I just thought the idea of advanced technology, farming, and bringing humanity back from the brink of extinction would make for a great story.

The four of us took two, maybe three, days and put a bunch of effort into the ideas of what would make this game fun. Various functionality, features, and story hooks were all compiled into a document. After those couple of days we met again to discuss and synthesize our ideas.

We took at least two hours to discuss the various ideas that we came up with. The stand outs, besides the farming, were defending the farm against raids, building your own town, and building relationships with NPCs. We discussed various story ideas with branching outcomes, how stats and abilities would work, and art and color styles. I think this is where we really started growing as a team and began to understand who we were working with. I saw my team mates for the creatives that they were and more than just their potential abilities.

The synth wave code ninja

After the first meeting we repeated the process but with the ninja side scroller. I have to say, there are some really cool ideas floating around this game. My original idea was all about pure speed and obstacles that would reflect that, but as we started talking about this concept my whole world for this game flipped over in the best of ways. Brandon proposed a wonderful idea for the game story where you are a ninja fighting against a samurai and both get pulled into retro style video game. This idea expanded into there’s two families fighting over an Artificial Intelligence that has become corrupted. The AI system helped keep humanity prosperous but some unknown force changed that. The two families, a ninja family and a samurai family, were trying to gain control over the AI and eventually learned that they have to access it in a way similar to The Matrix.

From here we expanded the idea from a basic side scroller to something akin to a Metroidvania. Metroidvania is genre of side scrolling games based around exploring a limited region, and as you find items and beat bosses you unlock abilities. These abilities help in combat as well as exploring the world, and that is how the world expands and new areas are introduced.

There were a ton of cool ideas in this session, a vibrant art style based on 80’s synthwave, and cyberpunk themes. Having locations around the map where the player didn’t have to worry about combat. These locations would be like a noodle stand, a calm and tranquil shrine, or even a solitary campfire where the character would heal and save. These locations would feature NPCs that would share stories, and guide the player to the next goal or a hidden treasure. Each would have its own calming vibe, with the goal of allowing the player to relax.

We had a strong understanding of what functionality the game would have, tight controls, smooth physics, wall jumping, and combat. So this was discussed minimally, but we did take plenty of time to discuss how the game should look and feel. I think the ideas around this game could culminate to make something great.

Deciding the farm

Ultimately, we decided on project Apocalypse Farm, the title is undecided, but my favorite contender is “Still Here.” The vote was close to unanimous after all the discussion and brainstorming. There were voiced reservations, mostly due to the size of the project, but in the end we decided on the farm by popular vote. There are a lot of cool ideas floating around this project, some brought in from the ninja game, and a couple of homages to titles that we love.

The goal is just to get through the first chapter, and build the game in a modular manner. I think all of us want to see this project through to completion even if it goes beyond just an assignment. My main focus is writing a story and world that make sense, ensure accessibility is maximized, and to create a game that is enjoyable. It’s a big mountain to climb, but I believe we can get there through teamwork and effective planning. I don’t see us giving up on this, we each have our reasons for choosing our degrees and careers. That and a passion for great stories told through games. While I understand there is a lot of work ahead of us, I am excited to get through it.

Categories
Uncategorized

Hello world!

Introduction

My name is Brandon, I go by Bran.
I live in Oregon with my partner and best friend, Kilee. Together we have a small family of pets. Three cats, three mice, and a ball python. The pets will be mentioned quite a bit more.

I try to be more of an outdoors person, but the truth is, unless its fall or winter I’m really not. Besides being quite pale, I’m pretty sure I have a sun allergy of some kind. With that in mind, I love spending time in the woods, and visiting various gardens. The Hoyt Arboretum and Portland Japanese Garden are two of my favorite places to visit.

When it comes to indoor hobbies, there’s a bit more to talk about. Video games are probably the hobby I spend the most time with, luckily Kilee enjoys gaming with me. I enjoy almost all single player and cooperative games, RPGs and sim games tend to be my most played. Final Fantasy, Dark Souls, Borderlands, and Bioshock tend to be my favorite. I find I enjoy games that have rich stories and deep lore. Over the past year I have been diving into Warhammer, which is it’s own beast. Again, it’s about the story and the beautiful world that is created. That’s what ultimately led me to game programming: story telling and beautiful art. I find that games can be a perfect medium between presenting and creating a story. Furthermore, with modern technology one can create amazing works of art. At the end of it all, I really just don’t want to spend my life doing something I am not passionate about.

Currently, I work for a smaller food manufacturing company as a Continuous Improvement Manufacturing specialist. In essence the job is mostly data collection and analysis, and implementing systems that make other peoples jobs easier. It involves a lot of automation within the Microsoft ecosystem. It can be fun at times, but mostly it just pays the bills.

As for projects, my proposal of launching a game was accepted, but if that wasn’t the case my favorite listed project is the Sim Firefighter. This project seems the most open ended, and there is so much that a developer can do to make this a fun project. One could set up a bunch of different mechanics: player heat, water, systemic weather systems, and so much more. It wouldn’t be difficult to have procedurally generated maps, and have fires pop up both randomly and based on other existing fires. There could also be a system for firefighting preparation like trench digging, clearing brush, and much more that I don’t know about. Of all the project I read that was the one that stuck out the most.

I believe I’ve been typing a bit too long here. Without too much of a topic besides introducing myself, its hard to have a definitive style of ending. Well either way, here’s to recording the developments of the next year and hopefully seeing a game release in June.