The Best Walls Are No Walls!

Video Game Development Log Entry Number 9

(Apparently wordpress changed how posts are written. I hate it because I’m old and change is bad and get off my lawn)

This perspective thing is still a struggle. Specifically the walls. I’m fairly confident I can put together a single room and have it look all right but multiple rooms on the screen at once is where it all breaks down. I don’t want a black screen to load into a new room every 10 seconds but I also want the game to look nice. Having walls disappear and reappear or go transparent just doesn’t look right in this perspective. I experimented with a Pokemon Center.

The original from the game.
My weird version.

It almost worked, right? Sorta? It was a semi successful experiment because the little character can walk around the room (in theory, it’s just photoshop) and mostly look in scale anywhere. I made the desk too short which makes him look huge behind the counter. The stairs are broken because none of the collisions are at the angle my game operates at (although that may change… more experiments coming).

No overlap in walking paths. Success.
The perspectives really collide at the top middle there. Fail. The further you walk upstairs the smaller the room would get. It’s a normal function but too hard to ignore.

For all the bad points though of the pokemon center it was still proof that I was on the right track. I decided to move onto a more complex room. I stuck with another top-down 2D game because they make perfect blueprints. The Stardew Valley Seed Shop (Pierre’s Store).

A bit of a mid-development look at my process. I model everything in 3D using Sketchup (as described in a previous blog post) and then convert it to my perspective (A side: 0 degree angle and 1 scale. B side: 45 degree angle and 0.35 scale).

The experiments went so badly that I gave up very early. Making the racks of groceries go clear was passable. But making the entire shop go clear as the character moved into the back room was the worst. I should have saved the experiment images but they wouldn’t make sense to anyone but me.

Last night, though, I had a Eureka moment. No more walls! I took a page from the Earthbound way of doing it. Buildings are mostly laid out from left to right so there’s never a back room but there’s the option of large layouts in a single level. And I expanded it a little. Using skinny walking areas I can make hallways and then open them up again for multiple rooms.

And even better I figured out a way to make more space up and down (front to back)! Stairs! I’ll have to be very specific with the way I design interior spaces and my game will have an unusual amount of balcony flooring but at least I have options.

I know it’s hard to look at.

It doesn’t look like much but this image is a big deal. I have 2 options for stairs and both work with the collision system I created. Keep in mind that the game will be much closer to the character (black bar there).

I know that so far everything has been flat and bland and abstract but I needed to learn what works and what doesn’t work before I could program this into the game.

It’s likely I haven’t thought of everything yet (or even close to everything) but I’m going to move forward. I, at least, want to develop a concept art that looks closer to a screenshot of the finished game. Not only to show people what I’m talking about but to make sure what I picture in my head looks as good as I think.


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


The Summer Of Fan Art

(Obligatory sentence about needing to update this more)

I’m doing two posts tonight! It’s technically still night because it’s 11:56pm. Semantics.

First is a quick post (this one) to let you know what I’ve been up to all summer. Nothing ‘too’ exciting but there’s some new art and the like. The last post talked about my VR painting in Elite Dangerous. Well I did it again in Job Simulator because… just because.

That’s just too much fun. I have/had lofty goals of doing this in a bunch of VR games but I’ve been so busy the last few months it hasn’t worked out. Here’s the finished masterpiece.

Yeah I’m great. I’ve actually ‘mostly’ only done fan-art this last little while. I’ll explain why in a second but here’s the 5 latest pieces:

Star Wars Porg Fan Art

hammond wrecking ball fanart

Anthem Interceptor Javelin Fan Art

Anthem Storm Javelin Fan Art

I’m really enjoying doing fan-art. The main reason I started was actually just to develop my painting skills faster. If I only paint original characters I end up spending hours in the planning and sketching stage which isn’t the part I wanted to work on. By doing characters that are already designed I can skip right to rendering. I think it’s paying off. These aren’t necessarily the sharpest paintings but the longest one probably only took 5 hours (the Overwatch Hammond Wrecking Ball up there) which is light speed compared to the start of 2018.

I used mostly the default photoshop brushes mostly out of laziness and so they aren’t as sharp as I’d like. The stuff I painted last year was way more crisp so I need to find a happy medium between the two that doesn’t take quite so long. I’ll get there.

I made animated gifs of the development for all of these but this post is already picture-heavy so I won’t put them here. You can find them on my facebook, twitter and instagram if you are so inclined.

Last year I started learning 3D modeling in ZBrush. I stopped after a while for various reasons but decided it was important I started up again. This time I started with Maya though because I don’t just want to sculpt. I want to learn the whole gambit including retypology, UVs, bump maps, etc. I followed a bunch of slick tutorials on the youtube and ended up making this (click the below picture if it’s not changing):

I left this one as a gif. I’m hecka proud of myself for rendering this scene in 3D but ultimately the final piece is not ‘that’ exciting. Seeing various steps and frames makes it slightly more interesting even if ultimately it’s very rudimentary. Mostly basic shapes like rectangles and spheres. I really like how the bump map on the earth made the mountains and textures stick out even though it’s just a smooth ball. Technology is so cool.

BUT ultimately I will be taking another break from 3D for a bit but I’ll get into that in another post.

Nearly done. I first wanted to show off the crazy thing that happened on twitter. I posted an old-ish drawing I did for fun of D.Vas mech from Overwatch and it blew up. Easily my most popular drawing to date.

It really boosted my follower count. AND MY EGO! I know it’ll be a while before anything blows up like that again but that’s ok. It was fun while it lasted. And now finally I’ll just end this post with an art-dump of a bunch of stuff I made recently that doesn’t deserve it’s own post. It ranges from doodles to cartoons to photoedits and whatever. Mostly nonsense. You’re welcome.

And there’s tons of other sketches and doodles and photos but they are even dumber than these. You really should follow me on the twitters to see everything. That place is my jam.

Love Michael


Painting in Elite Dangerous VR

Hi Diary,

I’m way behind in updating some of the neat stuff I’ve been working on. I actually have a PAYING concept art gig! But the deadline for those images is in 7 days so I gotta get back to it. And an NDA stops me from talking about it anyway.

But check this out. My latest obsession is the video game Elite Dangerous. It’s a really great space flight simulator and it works in Virtual Reality! With my joystick/throttle and VR headset it actually feels like I’m in a space ship. Becky says I’m not allowed to quit my job to play this game all day but I totally would if I could. Space, in Elite Dangerous, is stunning. Nebulas and blue stars and colourful planets all surrounded by sparkling stars. I mean, I was space obsessed BEFORE I played this game – now I’m just unbearable to be around.

Unable to leave well-enough alone I had to do something silly and ended up creating my new favourite hobby. Painting in virtual reality from my space ship! Yup! Here’s the video:

I recorded all the paintings. Unfortunately the last one (two stars) didn’t work. I didn’t realize the screen minimized while I painted so all I got was 40 minutes of a still shot of my desktop. Whoops! And I tried to record myself talking here and there but it recorded the mic from across the room. Growing pains. The 2 stars shot is just me putting on the headset again when I realized it was minimized to exit the game. Got like 2 seconds of usable footage which is what you saw.

I used a program called Ovrdrop to bring the photoshop window into the game and I used my wacom tablet to actually draw. It actually wasn’t a big deal that I couldn’t see my hand. After only a few minutes I was just as comfortable drawing in VR as without. The video doesn’t show the resolution the way I saw it but it was actually decently clear (for VR). Everything was slightly brighter in VR but the final images looked cool either way I thought. I had to record the footage from the Windows Mixed Reality Portal to show both the game and photoshop overlay but at a lower resolution than the headset and game client. If I only record the game you don’t see photoshop. Just me staring at my legs for a few hours.

Here are the finished paintings:

I would be in there right now painting some more if I didn’t have that aforementioned job I need to finish. I finally saved up enough money in-game for my first ship (Dolphin!) and I upgraded the heck out of it. I can jump 30ly now. Gonna paint me a nebula! And a neutron star. And a black hole! And one of those space stations with all the trees inside! My to-draw list grows every day.

Also using the same trick I added my phone to the ships HUD. Haha. So dumb and neat and dumb. I recorded a 3 minute video. It has my stupid voice in it but I added subtitles so you can mute it. I mute it.

Ok that’s it.

Love 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.


More Experiments in Perspective

A very short Devblog # 6:

I’ll keep this one short. The last post was 17 days ago but the last while I’ve been playing with perspective more using that plugin for Sketchup. If you follow me on twitter or instagram or facebook you may have seen it. Long story short I created the office from NBC’s The Office. Well a good chunk of it. I needed to see how my chosen perspective of 45 degrees with 50% scaling looked in a full room. After some experimenting I didn’t love it. So I created a 35% room that I like WAY better. Here they both are:

See the difference? Might be hard to tell seeing one on top of the other. Long story short the A (35%) ones make you look like you’re closer to the ground.

I settled on this perspective a few days ago but this weekend is the longest hardest auction we’ve ever done and I’ve been working 10-14 hour days. In fact it’s midnight:30 right now the day of the viewing. I should have been in bed 3 hours ago since my alarm goes off at 6. Hence the short update. But post auctions are brutal so I know I won’t be able to work on the game for another week.

For fun though I created an animated gif of a cube and a robot friend first changing the scale factor on the right side and then changing the fixed angled it’s projected at. (You might need to click it to see the animationy bits).

Ok I’m going to bed.


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

Trigonometry For Children

Devblog # 4

Dair Deary (spelling?),

The last two weeks have been a real challenge. I had finally moved into actually programming this darn game. Before that it was a lot of notes on paper or sketches/experiments in photoshop. Since I know very little about programming and I’m learning as I go I’m relying a lot on guides and tutorials and a million bookmarks of the engine manual. Unfortunately for me there are not very many tutorials, if any, for creating a 2D oblique perspective game. So I’m combining a lot of tutorials for top-down and isometric games.

Right now I’m racing to a point where I can actually show progress in game. Actual video game stuff. I needed to program how the game runs first. It’s a completely 2D game but it will look 3D(ish). You can walk left and right and away and towards. You can walk in front of objects and behind objects. As a quick visual experiment to make sure my chosen perspective works I drew this:

The rabbit you should recognize from some random comics I’ve drawn. He’s almost certainly not going to be in the game. But you can see my intended goal as far as setting up a scene. In order to make the character walk AROUND the objects but not THROUGH the objects I needed to set up collisions for the ground under the cubes. In order to do that I needed to break down the object and tackle each part separately.

The game engine allows you to create a rectangular “collision mask” for sprites that use very little CPU power. It’s only tracking 4 points in space (the corners of a box). Unfortunately this does not include angles.

I needed to program in a new collision area for every object and I wanted it to be very low cost to the CPU. Fortunately I got lucky because I chose a 45 degree angle for the side perspective. Using the very simple formula for perfect right angle triangles I simply took the side dimension of our collision mask and extended outwards from the top right corner and bottom left corners. This created a new area that I can track.

Now to find out if my character is in fact inside of that area I used the “Point in Triangle” formula. It’s a way of finding out if any given point is inside a triangle by measuring the combined areas it makes. If a point is INSIDE a triangle the area stays the same. If the point is OUTSIDE a triangle the areas get larger. (I’m a math junky and it’s so awesome being able to use these formulas in real life now).

Yes you can use the formula of A = ab / 2 for the first triangle but since you can’t for the other three I didn’t put it in the picture. The silly thing is that I was half way through coding these formulas into the game when I found out that I can use a command literally called “rectangle_in_triangle” which did all the math for me. I just needed to set up the original coordinates of the triangle points and player bounding box. Really saved me a lot of time. Well not really. I had done most of the math already…

There was still one small glitch though. As it turns out the “Rectangle” actually doesn’t trigger when it hits the “triangle”. It only does if one of the corners meets the triangle. Effectively it was doing 4 “point in triangle” calculations.  So to compensate for it I use a “point_in_rectangle” using the furthest point of the triangles and the players bounding box. I’d made a graphic for it but I’m tired and can’t be bothered. If anyone out there ever actually does follow what I’m doing they can ask me to clarify if they don’t already get it.

I spent days. Maybe weeks. working on this. I could recreate it now in a matter of minutes but with only a basic grasp of how to program what I’m thinking the smallest mistake can cost me hours while I try to diagnose the problem. In order to really know I had to finish another issue I had. The depth of objects. When objects or characters move around they need to be shown behind or in front of objects depending on the situation.

I followed an awesome guide from Friendly Cosmonaut to create a grid that will load all objects with a lower Y coordinate first and higher numbers after. This puts them in the correct order going down the screen. This works for most RPG type games like Stardew Valley or Final Fantasy because you don’t see any of the sides of the box.

So close. I went searching for a solution but I wasn’t quickly able to find one. People asked similar questions about how to order all the X coordinates before moving to the next Y coordinate and some of the answers they got were complicated and heavy. For mine I just simply added a ZERO to the end of the Y coordinate for each object and added the X coordinate. So now instead of 15 objects having an identical Y coordinate (ex 1). Then they each get their own like 11, 12, 13 -> (all 15 objects) before moving to the next Y coordinate to find new boxes.

Long story short it worked like a dream. For a few minutes before I found ANOTHER problem. This works great for objects that have the same size footprint. And with a very small modification I made it work for longer items. But items that reach forward and back completely break it. Here’s a grid I created in photoshop with a bunch of different sized and shaped 45 degree parallelograms (the shape my boxes make in the end).

I have dozens of pictures like this from experimenting. It’s ridiculous. If all the objects loaded in the way I needed it to this grid would create a scene like this:

But the largest boxes that extend backwards and forwards the most mess it all up. I haven’t yet come up with a formula that will correct that for me. I’ve had a few experiments come close but nothing perfect. For now I’ll have to just cut up large sprites into multiple objects or tiles so I can continue on with my game. My google searches have just about convinced me that a one-line formula is not likely to fix this. A solution in javascript I found was 200 lines of code and I have no idea how to start using it. I’ll have to come back to it.

But now I’m excited because I can finally start producing assets and show off what this game actually is. I’M SO CLOSE!

Love Michael

A Matter Of Perspective


Soooo Diary,

Remember a long time ago (literally the last post… 5 days ago) when I said there are two games I wanted to make but I’ll make the one I’m least excited about because reasons? Ignore all that. I had a lot of people (nearly 4) message me after I posted it and they made me realize that I’m thinking to much. Who cares if the game is harder and will take longer? Life is too short not to be excited about what you’re working on.

Immediately after I decided to change games I had a new problem. What PERSPECTIVE do I make the game? Here’s some important points about the game:

  • The game is 2D.
  • You can explore large areas.
  • You can arrange items/furniture/objects on the ground.
  • I dislike Top-Down video games (with some exceptions).

Most people understand a little bit about perspective. Especially artists. But what a lot of people don’t realize is that Perspective Projection can make the same object look very, yet barely perceptively, different in specific situations. And each has it’s use. Let’s get more specific. I’ve drawn 3 sides of a super modern and sexy TV.

So lets put our TV together.

What happened? There’s 3 of them already? Yup. The same TV (cube) drawn in 1, 2 and 3 point perspective.

For the people that don’t know it’s related to where the vanishing points are:

Technically the way we see in real life is 3 point perspective. But 1 and 2 point perspective are used more often in art. I’m partial to 2 point, myself. So if I like 2 point so much why don’t I just make my game using that? The issue is because objects appear smaller the closer they get to the vanishing point.

That’s fine for all the level assets but not for the character sprite. Here’s a screenshot from Minecraft by artist Kerian-Halcyon that is in nearly perfect 1 point perspective. I put a 2D sprite of Sonic the Hedgehog to show you how he would look standing at the front. Everything seems to be ok.

Now what if Sonic decides to walk to the back of the temple (closer to the vanishing point)? The temple blocks get smaller but Sonic, because he’s a 2-Dimensional sprite, stays the same size. This makes him appear huge!

Those two are the same exact sprite and same 420px tall. For a 3D character in a 3D world we would see him get smaller but for my purposes that just doesn’t work. And yes, technically I could program the game to scale the sprite as he moves backwards but the cons outweigh the pros doing that. At least for my game.

And here is another ‘challenge’. If I make an object like, say, a sexy Ultra High Def TV and I want to put 9 of them in a line using the same sprite here’s how it will look:

That is one fugly lineup (of gorgeous TV’s). Every TV is pointing towards different vanishing points and that’s just not right. See?

This is how it ‘should’ actually look in 1 point perspective:

If I wanted to add this TV to my game I would need to redraw it from every different angle depending on where in the room it’s located. Neither 1, 2 or 3 point perspective will work. Now we need to start getting into Parallel Projection perspectives!

(I can’t believe this post is this long already and I haven’t even started Parallel Projection yet. I thought I’d make like 3 pictures total for this post and I’m already up to (counting 1,2….3……) 9 pictures!)

Since I’m tired of using the Sexiest TV Ever let’s try something a little more normal. Like this car!

No YOU’RE the stupidest drawing you’ve ever seen. Ha. Burned. (I should mention that I’ve done everything so far with just my mouse because my tablet pen is all the way over there). And this is how they look drawn in Orthographic Trimetric, Dimetric and Isometric perspective. Collectively these are called Axonometric projections.

I know I know. They look the same as the first TV picture in 1st, 2nd and 3rd perspective. I told you the changes are subtle. But the impact is hoooooge (at least for what I’m doing). The difference in these pictures is that there are no vanishing points. All lines run parallel:

“If none of the parallel perspectives have vanishing points then what makes them different?”
Excellent question, imaginary student. It’s the angles that the lines are drawn on. Trimetric has 3 different angles, dimetric has 2 and isometric has 1.

Lots of 2D artists (especially pixel artists) will be familiar with Isometric. It’s the most common axonometric because it’s easy to understand just one angle and because it doesn’t favour any particular dimension. This is a screenshot of Shadowrun Returns done really impressively in isometric.

Lots of theory so far. Let’s see why axonometric perspectives are effective. Look what happens when I put them in a line.

SUPER STACKABLE! By choosing one orthographic projection I can make assets in any order and stack them together anywhere in a room and they will look ok. Which one should I choose? My favourite is Dimetric because it favours one side over the others. This would let me put more details where it matters like the front of buildings, etc. So I’m done? It’s settled?

NOPE! I’m not choosing any of these! Let’s dig deeper. (I can hear you all groaning and I don’t care. My devblog my rules. Or lord I’m up to 15 pictures already).

Hey the TV is back. This is a very common perspective used in classic 2D RPG’s. All lines are parallel at 90 degree angles and you don’t see any of the sides. This effect is used to great effect in Stardew Valley.

Stardew Valley is an important game in the Social Simulation and Farming RPG genres which my game will be taking quite a bit of inspiration from. And the 3/4 perspective is effective but it’s just not what I want for my game. I feel like you are looking at the word through a telescope. Being able to survey your entire farm at a glance is nice but the trade off is small details.

Now finally here is the perspective I’ve decided on! (Only took me two days to write this post plus 2 months of thinking about perspectives to narrow it down). Oblique Projection.

Also called Cabinet Perspective because it’s often used in cabinet schematic drawings. Here are the benefits.

  • You see 3 sides (more details)
  • No vanishing point means they can be stacked and moved anywhere.
  • You see 100% of the front side without any distortion. The front of the car and TV is facing us completely as a perfect square.

The whole point of making my own game is really to flex my artistic muscles. Learning programing/design/writing/publishing/PR/etc is just a side effect. I’m all about the art. Upcoming Beat-Em-Up Raging Justice is done in this perspective and just look at these graphics. So many graphics.

It’s a common perspective used in Brawler games and I thought about trying it for my game a few days ago. But I wasn’t completely sure it would be viable. Brawlers let you walk left, right, up and down but you really don’t go that far into the background. But I found a game that actually used oblique projection really well. A really old game. Earthbound!

You don’t even know how excited I was to find out such a beloved game used this perspective so successfully. Just imagine that game with the graphics of Raging Justice. That’s my goal. is it doable? Hahahaha. HAHAHAHA. I don’t know. Maybe?

So there you have it. But before you go let me show you an easy photoshop trick to fake your way into drawing something in 3D using flat 2D pictures and the Transform > Distort tool.

I know this whole post was completely unnecessary for me to say “Hey guys I’m gonna make my game in oblique perspective”. That isn’t even a whole tweet. And I don’t know who I’m trying to teach with all this. But one day I could be an art teacher or do a GDC talk so it’s good practice. Maybe it’ll actually help somebody??

Also there are other perspective projections I didn’t cover. You can read these two articles if you want to know more about game perspectives. Here and Here.

Love Michael

Am I Working On The Right Game?

Devblog #2:

Well Diary,
I’m stumped. I don’t know what video game to make. It’s not that I can’t think of an idea, either. I have TONS of ideas. And I’ve been working on them. Ok let me start over:

A few months ago when I decided to make a video game I had 3 or 4 pretty decent ideas for what it could be. However I had never programmed anything in my life. But the start of any project like this happens on paper anyway so I just wrote all my ideas down. My goal is not just to create one video game. I want a lifetime of video games behind me. So it all went into the notebook.

I sorted all my games from easiest to make to hardest. Keeping in mind that I really didn’t know much about programming so it was really guess work. I started work on the easiest game. It was going to be the game I used to learn programming as well as everything else that goes into making a game company (PR, publishing, testing, etc). And hopefully help bankroll the second game. Let’s call the first one Game Apple (since I’ve no idea what I’m naming it).

(Yes I photoshopped a gameboy apple just for this post. I hate posts that don’t have any pictures and it’s all I could think of. No I’m not making fruit based electronics).

Game Apple is a game that I’m excited to make because of a fairly unique (in my opinion) twist on a common mechanic and for the story/environment. But I worry a little about it being commercially viable. I ‘believe’ there will be an audience for it. But like all creators I hope my creation will be loved by millions. But years of posting art online shows me that an audience is hard to grow.

The hardest game on my list, Game Banana, is large and the story and mechanics seemed complex BUT I believe it will have a larger audience. A MUCH larger audience. Assuming it’s done correctly, that is. The game I have in my head may be too hard for me to make.

But as I worked on Game Apple I started to understand more and more about the programming language as well as conventions like functions and arrays that can really speed up complicated blocks of code. The more I’m learning the more I’m realizing that Game Banana may not be as impossible as it seemed. Yes, it will be harder. And yes I’m very early in my ‘career’ and I may still not know what I’m talking about. But I’m confident that I could ‘start’ Game Banana now.

The more I learn while making Game Apple the more I day dream about what Game Banana could be and I wonder… am I working on the right game? Do I truly need to spend a year working on a game I’m less confident in before starting a game that could start my company?

This is something I’ve been struggling with internally for months. Sometimes I’ll stare at the wall unknowingly just to have Becky (my wife) ask me what’s wrong. We usually laugh when I respond with “oh. video game stuff.” in my saddest voice.

I think I’ve come up with an answer however:

I Need To Work on Game APPLE. Game Apple ‘should’ be much easier to make. Meaning I will be able to spend more time learning how to do all the other things related to making a video game aside from programming and art. I want to make professional quality games and I’m going to make Game Apple the best game it can possibly be.

I always say “I’d rather be on the first rung of a ladder I want to climb than the top of a ladder I don’t want to be on.” This was the analogy my mom and I used when I decided to change careers into Video Game Concept Art after spending my entire adult life doing something else. Maybe I shouldn’t consider Game Apple and Game Banana two different ladders. Maybe I should stop writing and get to work.