Man, I love a good Cat Meme. In case you didn’t figure it out, I’m going to be talking a lot about code this time! Specifically, code reviews, which took up a lot of my time this week!
I’m writing my weekly blog a little early this week, mainly because I finished early tonight and didn’t want to get into another big task that keeps me up until 1AM. When you start your day at 6, that gets old VERY quickly!
There’s a nice tip for you aspiring GameDevs – Time Management and goal setting. Maybe I’ll jump on that one in a blog some time.
What am I working on this week??
3 main things (along with the usual refine some artwork task):
1 – I just finished what I call a “Code Review.”
There’s a saying in the programming world:
“Looking at code you wrote 6 months ago is like looking at code someone else wrote.”
I’m paraphrasing, of course…but the adage is true. Last summer, I hid in my studio for the entire summer and wrote Core. If you’ve read any of my other blogs, you know that Core is basically a custom framework that operates within Unity that handles EVERYTHING in our Farm Game (and really any other game). It was my way of ensuring that I’d never have to rely on 3rd party middleware in a game ever again. It’s fast, solid, and highly optimized code…
It’s also a complex piece of software. With Core written and the school year starting, I moved to creating art assets, crafting characters and stories, and working on design elements. Fast forward to today (7 months later), and Core looks like a foreign language.
I took a few hours each day to dig back into the code I’d written and “learn” how to use the software again. I also squished a few bugs and simplified a few systems using new techniques I’ve learned.
2 – Once I understood my own system, I set about putting the world together.
I changed our loading system from the typical DontDestroyOnLoad pattern to a much more elegant Asynchronous Additive loading system. I’m a huge fan of “Preload” scenes – scenes that contain your core code, managers, and static components that run your game. It’s a really easy way to keep data, background music, and multiplayer connections alive and running during scene changes. Moving us to Additive loading (a multi-scene workflow) allows me to take advantage of Unity’s Multi-Scene editing features. It also gave me a choice…I could literally set the game world up so that there are no loading screens!
Immersive mechanic, right? Tried it – didn’t like it…for this game, at least. I found I was wasting a lot of graphics power rendering repeating tree and mountain tiles, and forcing the player to walk down long, pointless paths to get from one scene to the next.
For additive loading to work, the player has to walk far enough into the next scene to allow you to REMOVE the previous one. Finding that point in our game meant making bigger and bigger maps – tons of open space between interesting places. The mechanic also requires a very realistic map. I’d rather focus on making awesome locations for the player to explore, not ensuring that everything fits geographically.
3 – Further refinements in scale and layout.
The town is now fully walkable, and I can walk down the road to the Ranch, visit my farm, even wander up to the abandoned warehouse North of town. The lake is in place, and walking along its shores makes me feel like I’m finally making progress toward creating a real world. We’re still dealing with prototype buildings and a lot of placeholder art, so the payoff at the end of my walk is kinda lame…but progress, right?
Camera bounds are set, Zoning and level loading are in place and FAST. Next, I’ll start rigging the interior scenes to their respective buildings.
I decided to move around several of the buildings to improve quality of life for the player. The Bus Station, whilch will serve as the multiplayer hub of the game, is now on the side of town closest to the player’s Farm, and can be reached with about a 15 second run. I also added some streets to make this building look more practical.
I prototyped a cool looking circa 1950’s Auto Service Station to add to the town as well. I think it will be neat to add a “Grease Monkey” type of character into the game.
One thing that’s starting to bother me…I’m designing and rendering all of these cool looking vintage American buildings…soon, I’ll have to ruin them to make them “fall into disrepair.” One of the core elements of any good farming RPG is building up the town. Each of our buildings has an NPC / Marriage Candidate and a story. As we befriend the associated character and help them realize their dreams, these buildings are restored and their functions get added to the game! My favorites so far are the Movie Theater, Diner, Service Station, and a few of the boutique shops. The plan is to have unique shops in each playthrough / town you visit. Getting a little off topic…
Screenshots
I still owe you a Town Walkthrough, but that’s not ready yet. Here are some partially rendered prototypes for the Service Station and Theater. I still have Logos to draw, and a lot of the texturing and shading still isn’t done.