Starting My Game Over (Not Really)

Devblog #8

All right! Second post tonight! (It’s 1am now. What even is sleep??)

I haven’t worked on my game much since Devblog #7. I even somehow convinced myself that I wrote that blog post a year ago. It’s only been 4 months! That’s just weird. The reason I stopped developing the game was because of my work schedule. We had a huge auction at the end of April that resulted in a pile of work that I was not expecting. I did 302 hours in 32 days which is nearly double a full time job. Bless Becky for putting up with that.

I have a new manager in charge of whipping me when I slack too. And by that I mean Kelly at Edmonton Nerd List asks me regularly for updates and doesn’t take no guff. If you’re local and haven’t heard of Edmonton Nerd List you HAVE to check out the website. if you’re looking for comics or video games or D&D or pretty much any like-minded people around the city then his website is the place to start.

Honestly I could write a whole post on just the positive impact that Nerd List and Kelly has had on my ability to network around the city. BUT I WON’T! (I’ll do it another day).

Right. Ok. Game stuff.

I’m. Starting. Over.

I know I know. Groans all around. I’m not ‘really’ starting over. See most of the game has only ever been on paper. Not just notes and brainstorms either. Spreadsheets and object classes and real technical stuff. It’s always fun when making a game to immediately make a level and show your character jumping around but it’s not the most efficient at all. Figure out the foundation of your game with ugly placeholder art first and fix everything while it’s still easy to fix! Well that’s what I did. You saw the million posts about perspective where I finally decided on this:

Isometric Oblique Wall TestOblique with 100% scaled front side and 35% scaled right side. Seeing the whole scene out like this doesn’t really show what the game looks like but zoomed in it’s more like this:

Oblique Wall TestWhich is… fine. I guess. But I hated that you can never really see a room properly. You will always have invisible walls to the right and see that black of space as you walk towards the bed. But I couldn’t do a one-point perspective because of all the reasons I said in the earlier posts.

But then I wondered “What if I combined two opposite perspective projections in one room?!”

Nope. Not yet. I reversed the left side and added it to the right to hopefully make a cafeteria. But I ended up with a huge empty triangle of floor there in the middle even though all these tables are ‘supposed’ to be lined up in rows.

So then I made a table in the middle that was both projections in one and zoomed in to show close to what it would look like in game:

Hey! That ‘almost’ works. It’s not perfect by a long shot but it’s already better. So I tried it in a different room with less uniform furniture. A kitchen:

I maybe don’t hate that. Everything on the left points at 45% to the right and vise-versa on the other side. The door is the only item in the room that has both perspectives at once. Here’s a living room test:

I’ve done even more experimenting and using a few rules when I design interiors I’m confident I can make this work. Unfortunately the experiments use even uglier art than these pictures I’m showing (hard to imagine, I know) so I won’t bother showing them here.

However! This raised a new issue. Remember in devblog #4 when I explained how I programmed the collisions. Well it doesn’t work anymore. I coded it very specifically so that the player collided with a box facing to the right.

So if I put a box facing to the left on that same “ground plane” there it all breaks. Ugh. And the way I programmed it it’s not an easy fix. Since I effectively have to start over I’m doing it totally different. Instead I’ll set up the room with just sprites and no collisions. Then I’ll make 5 invisible objects that’ll handle all my collisions. I’ll just layer them overtop of the sprites and they’ll stop me from walking into walls. Done! Here’s the concept:

The whole game will be made up of sprites laid out on a square grid using tilemaps. Originally I wasn’t going to use tilemaps but, at least for collisions like these, I appreciate their usefulness. In the actual version those squares will be identical sizes and line up with pixel perfect precision instead of all wobbly like they are there. The red areas are where the character cannot walk.

So when I say I’m starting over I really just mean I’m starting the collisions over. But since that’s literally the only thing programmed into the game so far… well you get it.

I also just had the benefit of this blog realized to me again. When I originally started to think that I’d need to make these special collision boxes I figured I needed 3. But when I was creating this image which served no purpose other than to explain this blog post better it became obvious that I wasn’t thinking about the triangles properly and I needed 5. And actually there are a few other variations like half blue – half red that I could see being useful but I’m not sure yet if it’s necessary. I’m going to photoshop up a room using actual pixel perfect scale objects AND collisions and see how well it works.

I’m going to bed

Michael

Walls? Why Did It Have To Be Walls?

Devblog #7

Walls. Walls are the problem. Every day I have a new problem and today it’s walls. Because I’ve forced my chosen perspective to have a very low horizon compared to most top-down games my objects obstruct each other more. In a game like Stardew Valley you don’t worry much about walls because you’re looking straight(ish) down and can see all the objects next to the wall. Not for me.

I started to get an inkling that I would have to tackle this issue back when I created the office from The Office (such a dumb sentence). If you see my last post the room only had walls on the top and left sides for that reason. So I went back to the ol’ Sketchup and created a new test room. A single level apartment with a bunch of interior walls.

And I purposely designed it to have rooms a little tighter and smaller than the rooms I intend for my game. That way this functions as a “worst case scenario” of sorts. I converted the entire apartment to my 35% oblique sexiness to see what I was really fighting with:

Yikes. If that doesn’t prove the issue with walls I don’t know what will. I decided at this point to start converting the furniture individually and moving the 2D images into Photoshop. Way easier to start sliding things around and manipulating the Y-dimensional spacing. The X actually doesn’t change much. After a few hours I had this:

I added some light bits of colour to make things easier on my eyes. Each piece of furniture is it’s own layer to mimic the depth sorting I mentioned at the end of Dev Blog #4. It actually proved really effective for testing because instead of programing collisions and movements for my character I simply gave the player it’s own layer in photoshop and slid him around with the mouse.

And finally I experimented with 4 options for how to handle a wall blocking the character:

-Image A also doubles as the default for the game. You walk behind and nothing changes.
-I was personally the biggest fan of option B.
-Option C is similar to The Sims which is a very popular game.
-And option D is very common in high-end games like Shadowrun Returns.

When I put these images on Tweeter, Phasebook and Instantgram I assumed D would win but literally every vote was for B. As of writing this that’s 21 votes so I’m going to call that a win. I was a little worried about the logistics of setting up collisions and triggers for activating the transparency but I think I accidentally dreamed up 3 lines of code that will take care of it so easily. I’ll mention in a future blog if I’m successful.

For a lot of scenes and places in my game I’m going to try not to use interior walls anyway. That would make a lot of this effort completely useless. But at the start of the game when you have smaller spaceships it’ll be nice to know I have the option of making them feel compact without actually hiding away the details.

Also these last 4 images show a closer representation of the scale of the game. All my office and apartment shots are really zoomed out so you see the whole room. The real game will be much closer to the action. The camera will pan as the character moves. This way you can interact with more objects in a smaller area like an oven, microwave, sink and fridge all in the kitchen, for example.

I’m hoping to start updating more often again. I clocked 302 hours in 32 days at work because of an auction but it’s just about wrapped up. Truthfully I haven’t written a line of code in 2 months so I’m completely lost again. I’m going to have to reread everything I’ve done to figure out where I am. Wish me luck.

Michael

Tools, Tutorials, Videos & Seminars

Devblog numba 5:

This won’t be a crazy super long post this time, Diary. Mostly just an update on what I’ve been up to the last while.

I’ve been crazy hard at work on the game but it sure doesn’t feel like I’m making a lot of progress on it. And in truth I’m not. Yes I’ve done a bit of coding here and there and I’ve done some sketches and notes. But mostly my time has been spent doing TUTORIALS. Tons of them. Basically I’m recreating other peoples games. And I’m sooo glad I started doing this. I’m learning tons of tricks and coding techniques that I never would have figured out on my own. Every 2 hour tutorial I finish is probably saving me 2 days (or more) of work that I would have fumbled through.

Here is a screenshot of the Farm RPG tutorial I’m following. You can see I just got the planting system working.

If you are interesting in learning GML I recommend following the tutorials from Shaun Spalding and FriendlyCosmonaut. Their tutorials are totally free on youtube and crazy simple to follow. And they provide the assets. I also paid for a tutorial on Udemy. It’s like $50 or $200 now but it was $13 on sale. I haven’t followed it yet but it’s time is coming.

If you follow me on twitter, instagram or facebook you would have seen this. The first successful test of my collisions! All that trigonometry and junk I was babbling on about before in action. The character is just a placeholder.

Awesome butt, right?

This shows my idea for the perspective is viable. Truthfully there’s still a bit of an issue when dealing with boxes that are way bigger or smaller than others. I’ve spent hours and hours reading about ways to fix it but it’s just eating up all my time. I’m going to start splitting all assets into same-size boxes to make the depth sorting faster for me. If a long table is actually 2 sprites then so-be-it.

But creating assets is about to get a looot easier. I found a plugin for Sketchup! Sketchup is a marvelous drafting tool for making blueprints and designs for buildings. It’s not “officially” a 3D rendering program but I honestly wish all 3D programs were as easy to use. In about 15 minutes I created a table and chairs to use as a test. The chair legs are totally stupid but since it was a test I opted not to go back to fix them. And then using the Eneroth Axonometric Plugin I was able to convert the table to my Oblique Projection in 30 seconds. I used the settings Left Angle: 0, Left Scale: 1, Right Angle: 45, Right Scale: 0.5 if anyone wants to try it. Here’s how effective it was:

Because the plugin completely destroys the shape of the object to make the perspective work I only get to keep the lineart. No shadows or rendering will work properly. But it’ll still save me a ton of time compared to just doing the entire thing by hand. Especially with round objects. The math to get a cylinder drawn in oblique is tedious. For funsies here’s that same model from another angle after running the plugin.

That’s favourite.

There isn’t a lot else to mention except that two nights ago I went to Press A To Start. It was a networking seminar put on by the Macewan Game Development Club. They had speakers from Bioware, Beamdog, XGen Studios , Infinite Monkeys Entertainment and Serious Labs they answered a ton of questions about breaking into the industry. And more importantly they talked about what the day-to-day life of a gamedev really is. And they were honest. Brutally so. (especially Trent from Beamdog but in a good way).

And after a bunch of indie devs had their games setup to see. It’s surprising the kind of talent that’s in the city around me. I really need to make an effort to go to Game Camp at some point but the timing just really doesn’t work with my schedule. I’ll need to figure something out. Logan, the guy that runs it, was also a speaker there and apparently a teacher as well. it was clear actually. His answers were the most positive and concise.

Of all the games set up the two companies Max Games and Raptagon Studios stood out the most to me. Max Games doesn’t make any games that I would be interested in playing (mobile, moba, strategy, etc) but their art stood out. And Raptagon Studios’s game sounded the most ambitious so I’m definitely keeping an eye on them. Plus they have a tie-in comic and I’m a sucker for comics.

In fact, the other day I was without my sketchbook so I had to doodle a comic on lined paper. Gross.

It’s dumb but got a few retweets so hey whatevs.

This “short” post got really long suddenly so I’mma end this and get back to it.

Michael “How Do I Use A Semicolon” Ward

I’m A GameDev!

Devblog Day 1:

Guess what, Diary.

I’m a gamedev!
Yup. In the sense that I’m making / learning how to make a video game. I have been for quite a few months but I’ve kept it super secret. Well not really. Kind of secret. But now the cats out of the bag for one very simple reason:

I NEED PEOPLE TO YELL AT ME WHEN I DON’T WORK ON IT!

(I don’t know why I never use capslock when I write like that. I always just keep shift held).
I’ve watched hundreds of hours of GDC videos  and read dozens of articles about how to not fail while making an indie game and the number one suggestion is “Don’t Keep It Secret”. Telling people (especially people that give a darn) will keep you motivated. Not only because (hopefully) those people will be excited to see what you’re producing, but also because they’ll remind you when you’re slacking off.

For instance:
I have done ZERO work on my game for three weeks. Also I bought Monster Hunter World three weeks ago. Coincidence? maybe…

(It is so NOT a coincidence. Also, I main Insect Glaive. It’s awesome.)

So I’m going to try to talk lots about this game while I make it. Blog posts, tweets, facebook, instagram, etc. Maybe youtube videos?? If you REALLY care about what I’m up to I recommend Twitter since it’s where I’m the most active. I don’t know if I’ll make a website for the game or my ‘company’ or what. And if so, I don’t know if I’ll move this devblog over there. But for now I’ll only worry about the game and keep everything here on my portfolio website.

OH! Also I will occasionally be making comics about it. Because it’s a nice distraction and stick figures are super quick to draw. Plus comics. I mean come on. Comics.

Love Michael