Two videos for you today. First up is my game’s progress. The major parts of the engine are functional, but nowhere near polished yet. I’m a self-taught programmer, I’ve never actually taken a programming class or anything so I don’t really know what the best method of approaching a large project is. I’m going by what feels right and I’ve ended up basically applying my workflow for art to programming. For a drawing, an artist will usually start out with rough thumbnail sketches that barely look like anything, then when they find one that works they rough it out in pencils, then they clean it up and ink it, then they add the colors. The concept is taking something rough/vague and going through stages refining it down and adding details until you have the final result. Same thing with animation, you rough out the flow of the animation and then slowly refine it from there. So I’m basically dumping a bunch of duct taped sloppily coded ideas down to get someting that’s doing the jist of what I want, and then going back and refactoring that code 2 or 3 times until I have something decent.
No idea if this is a slower process than other programmers use, but I like it because I get to see some rough progress right away which helps motivate me because it feels like I’m accomplishing something (nothing is worse to me than those days where you stare at code all day hunting down a bug or refactoring or working on structural code that does a bunch of work behind the scenes, and at the end of the day the game looks exactly the same as it did before). And I end up with decent enough code in the end. I think with programming you can always do something better and it’s tempting to want to re-write things a dozen times to make them cleaner and prettier, but at some point you have to say “okay this works, it’s time to move on or I’ll never finish this project”. I’m taking the approach of “is this part of the code something I’m going to have to come back to a bunch? If not, then as long as it works that’s fine.” which has been working so far. I’m sure I’ll have to do some optimization down the road and clean some of those parts up, but I’ll deal with that shit when I get to it lol
Everything is still super temporary art (I think that sky background is from some anime) but the engine is my main focus right now. The music notes were just to test particle emitting though I’m debating making her ear things headphones like she cranks up some beats when she fights alien intruders because she gives no fucks and knows she can handle them. The enemies all have AI and Finite State Machines to react to the Player…they’re able to have different behaviors depending on their health and which state the Player is in. When you’re in the Default State you can’t attack, and when you collect enough of the Power Cubes you enter the Powered State and deflect everything back at the enemies to attack them, so in the Default State they can be more offensive and attack more while in the Powered State they’d do more dodging.
Level transitioning works and I have a lot of the boring outer-framework stuff done (although it’s ugly at best right now), so you transition from the Title Screen to a Main Menu, Stage Select, and the game will unlock levels as you complete them and save your progress for you etc. Also everything has customizable speed to it, in the video above the first level you see has the Tracks all moving at the same speed but the second level it shows has two fast Tracks and one super slow Track. So I can control the speed (and spawning frequency) of the Tracks, the Power Cubes, the saw blade Hazards, bullets, etc. which I talked about in terms of gameplay here. This should let me do a lot of cool shit, like having enemies/bosses that can manipulate the speeds of those things on the fly.
I’ve been fleshing out ideas for enemies and bosses and I’ve got them generally figured out. I decided to record some of my process to show how I use FreeMind to do a lot of my planning (not just for gameDev but for writing projects in general). It’s about 45 minutes long, but give it a look if you’re someone who does creative work and is always looking for new planning and organizational techniques:
There are a lot of Hotkeys built in for moving Nodes around and Expanding/Collapsing them etc. to skip around and edit quickly. I don’t even use all the icons spread around the interface, just the basics to get ideas down as fast as possible. You can also see that I’m using the same workflow I use for art and coding: dump down a rough brain-fart version, then go back and refine it in stages adding detail to get the final result. Give it a go and see what you think.
I fleshed out gameplay ideas for all the enemy/boss designs so from here I’ll be implementing them with temporary art. As an artist it’s REALLY hard to put off focusing on the art, but I know the art stage should come last because the gameplay is what’s going to make the game fun to play…if an idea I have doesn’t work in code, I don’t want to be in a position where I’m trying to shoe-horn in art that I’ve already drawn because I don’t want to waste it, or toss art away and have wasted that development time. So I’ve just come to accept that I’ll be looking at the art you see above for a few solid weeks before I get to finally let loose on the art and put it through a massive overhaul/upgrade. Gotta’ have patience, grasshopper lol
A little while ago I dug out Game Maker: Studio, brushed the dust off my programming skills (or lack thereof) and started messing around coding a little prototype in my spare time. I wanted something that would be relatively simple and realistically do-able on my own…so no MMORPGs or anything lol This is partly to get back into coding, and to teach myself how to go through all the boring stuff in programming (porting to different devices, learning how to set up in-app purchases, getting my game from Game Maker to the Apple store, etc.). I’m pretty good with coding game logic in general but all the technical stuff is way above my head right now and I’m sure my code is sloppy and unorganized compared to a legit programmer but hey, best way to learn is through experience right? If I keep the project smaller in scope then I should be able to learn as I go without too many tears soaking my keyboard lol So here’s a video of terrible “programmer art”:
So to clarify what’s going on: You switch between two Modes (red and blue right now) as the Color lines and Hazard come at you. If you touch a Color line and you’re in the Mode that matches, you’re rewarded with the Charge Meter filling up slightly, and if you’re the wrong Color (or you hit a Hazard) you’re “hit” and the Charge Meter empties. The Charge Meter is constantly draining, so you have to try to match in quick succession to max it out. Once you max it, you automatically enter a third Mode where everything speeds up and instead of dodging the Hazards you now want to hit as many of them as you can because they deflect back across the screen to the side the enemies are on and damage them. Eventually your Charge Meter empties out and you return to the normal gameplay to begin building your Charge up again.
Here’s a flowchart of the main game loop (made with Lucidchart, which is free and easy to create these with):
I have no idea how to make a proper flowchart...am I even using the diamond ones right?? lol
Since I started working on my own game, in my spare time I’ve been consuming all sorts of game design talks, articles, videos, books (if you’re a gameDev, you need to buy The Art of Game Design…this is a MUST read). Extra Credits is one of my favorite series and I’ll be linking a handful of their videos as I go because I’m actively trying to apply the principles they talk about in my design and I want to talk about how I’m tweaking the design around these ideas to try to make something engaging.
This video on Depth VS Complexity was a big influence because I want to keep the game small in scope so I don’t have a ton of programming to do, but I want the mechanic to have a lot of flexibility so I can keep the player engaged and on their toes and thinking of “how can I use these mechanics I’m familiar with to solve this new twist?”. I also like the idea of teaching the game through the design instead of with a tutorial, so you feel like you’re learning/improving right from the start so I’m planning to try that as well.
Here’s the video on Depth VS Complexity, it’s a great concise explanation:
Another key video I’m trying to guide my design by is this one on Choice and Conflict. Their breakdown of Mario’s mushroom is a great eye-opener and the concept of forcing the player into situations where their long-term goals and short-term goals are in opposition and the player has to make a choice in the moment:
So for actual application of these concepts: My game’s mechanics are really pretty simple. You’re just switching Modes and moving between 3 pre-determined locations. You avoid Hazards until you match enough Colors to power-up and then you chase those same Hazards until the power-up wears off. I realized after I was working on this that this is the same thing Pac Man does…you avoid the ghosts until you find a Power Pellet, then suddenly the tables turn and now you chase the things you used to run from, until it wears off and you have to avoid them again. There’s a little bit of satisfying “aha, I’ve turned the tables on you!” revenge feeling in that moment that I’m trying to give the player.
Now the depth and choice/conflict parts come in how I’m playing with that simple mechanic to create different challenges for the player. Some examples:
1) the Charge Meter drains faster the more full it is. So your first few matches will be easy to get, you can take plenty of time between them with no real consequence. But as your Charge Meter reaches 50% the speed it constantly empties starts increasing. So at 20% full your meter drops, say, 1 block a second, but at 95% full your meter drops more like a block every 10th of a second. This adds a nice bit of pressure because the closer you get to your goal (filling the Charge Meter), the faster you have to play to achieve that, but the faster you have to play the more challenging it is to not hit a Hazard or be in the wrong Color Mode and lose your entire Charge Meter. If the Charge Meter dropped at a constant rate there would be no difference in emotion between collecting your first match and your final match. This should give the player a constant up and down emotional ride between almost succeeding and epic failure, and it makes the pay-off (when you finally max the Charge Meter out and enter Mode 3) all the sweeter. In the end I’m getting a whole bunch of sweet gameplay tension added to that one mechanic, just by simply decreasing a timer.
2) I tried out having no Mode switching, so you would just have one type of thing to touch making the game just “dodge this object and collect this object”, but it didn’t feel complex enough. It was a little too simple and mundane because it reduced a lot of the possible chance for error on the player’s side. Extra Credits mentions that “Depth is bought with Complexity, but complexity also restricts Depth” So I look at this like I didn’t have enough complexity to allow much depth. By adding a bit of complexity, by forcing the player to switch Modes, now they have to stay engaged in what’s going on. At the same time I tried adding multiple Modes, like 3 or 4 different Colors to collect, but that became too cumbersome and frustrating. When the player dies because your game feels too complicated, they blame the game and it feels unfair…when the player dies because they messed up what felt like a simple mechanic, they blame themselves and feel like they wouldn’t have failed if they hadn’t made that miscalculation and they feel like they can do better the next time.
3) With that same core mechanic of “match your Color Mode to the next Color line you touch”, I can increase/decrease the challenge the obvious way of simply changing how frequently Color lines appear and how fast the row itself moves, but because I added the Mode switching I can also increase/decrease it by changing the variety of Colors appearing. So 10 blocks in a row of one Color with wide gaps between them would be extremely easy to deal with. 10 blocks of predictably alternating Colors (blue-red-blue-red-blue) with the same spacing would be slightly more difficult. 10 blocks of unpredictably alternating colors (blue-red-red-blue-red) would be more difficult. 10 blocks of randomly alternating Colors with little spacing between them would be even more difficult. And I can vary things up, so on the 3 rows maybe one row is travelling slower or less frequent than the other 2 rows, but is spawning more complex sequences of Colors, so you have to decide “do I want to risk the trickier sequence to fill my meter quicker (which I may HAVE to if it’s near full and draining faster as discussed in point number 1 above), or do I want to stick to the easier rows and deal with enemies being alive (and risking my life if they’re in an attack mode)?”
I could also create enemies that alter those Color lines, so one enemy blocks off a row entirely with, say, fire that will kill you, so you have to stick to just 2 rows which will add tension until that row is free again because now you can’t bail out to a safe empty space as easily because you don’t have that third row. Or some kind of helper or powerup item could change all the Colors to the same Color so for a few seconds you can match the Colors easily. By combining point number 1 up above and this, I could have a level where no Color lines are spawned, but there’s an enemy or boss who spits out complicated random sequences of 5 blocks at a time…because your Charge Meter drains, the only way you would be able to max it out to attack the boss would be to successfully complete two of those complicated sequences in a row. And when you get him down to almost no health, he may just spit out random complicated sequences of 10 blocks at a time, at a fast speed, so that the only way you can max out to finish him off is to pull off a tricky fast sequence.
So I’m getting a ton of potential depth out of just that one “match your Color Mode to the next Color line you touch” mechanic combined with point number 1 above. The player is only using the same skillset they learned at the very start of the game, but now they’re forced to ask “how can I use these mechanics I’m familiar with to solve this new twist?” which is what I want. Maximum depth with minimum complexity.
4) In the video above, you can see that the big boss monster is constantly moving away from you, but every time you match a Color, he’s pulled back toward you. I’m thinking of having some enemies be affected by your matching Colors like this. So in this scenario, if you don’t keep matching Colors, the boss will get away and you lose. But when you match Colors he’s pulled back toward you and covers up the visuals, so if you pull him in too close to you the game actually becomes more difficult because you have less reaction time to see what Colors or Hazards are coming at you. So as the player you would figure out “okay there’s a sweet spot here, I want to try to keep him toward the edge of the screen but not quite off of it” and have to strategize when you match Colors and when you AVOID matching them. At the same time the player should start piecing together that the best strategy would be to not haphazardly match Colors because the boss will end up too “in your face”, but should instead be to go for maxing out the meter every time (so there’s no wasted pulling-in of the boss before the player enters Mode 3 where he can attack) and letting the boss back off slightly if they aren’t successful at maxing their meter.
Other ideas playing with this “matching Colors affects enemy behavior” mechanic would be the opposite type of boss, one that is constantly coming toward you but matching Colors pushes him away to give you breathing space. Or a boss that “short circuits” and can’t attack for a few seconds if you match enough Colors in quick succession.
5) When you’re in Mode 3, it’s almost like a second game because now you’re able to dole out damage and you have to now chase down the Hazards you were previously avoiding so there’s an opportunity to add depth there too. What if there’s an enemy who acts like the classic RPG enemies that go into a defensive shell mode for a minute and not only can’t be damaged but if you attack them your attack comes back at you twice as strong/fast? So if they enter that defensive mode while you’re in Mode 3 you end up having to alternate between collecting Hazards and dodging them based on the enemies’ state. Or you may see the enemy go into his shell mode and choose NOT to attempt to Max out your Charge Meter until the enemy is about to come out of his shell mode and THEN you want to quickly match enough colors to Max out your Charge Meter so that you’re entering Mode 3 right as the enemy is coming out of his shell maximizing the amount of time you’re in your attacking mode and he’s susceptible to attacks.
I’ve got a bunch more ideas, but the thing I wanted to point out in all of this is that even with all these points written above the core game mechanic is still that simple just “avoid Hazards while you match Colors till you max your Charge Meter then chase Hazards” minor complexity I started with but I’m milking it for a ton of depth and in terms of actual programming I’m not adding a lot to the code itself aside from enemy AI design because I’m not adding more mechanics I’m just tweaking how they interact with enemies.
Still reading? Here are concepts for a space girl and an evil goat for making it this far lol:
I have no idea what I'm doing with sci-fi design but I think this'd be a fun project to practice it on.
Why goats? I have no idea lol I was doodling monsters and aliens and a goat just came out.
So I feel like there’s something in this that would make a fun game. The prototype itself doesn’t have much to it but the idea is there and playing it DOES tap into that feeling I’m trying to create so I think I’m on the right track.
I’ve already been working on revamping this prototype into a cleaner version which I’ll show next time, but I’ve missed writing about game design and gameDev in general so I wanted to start from the very beginning. I’m trying to approach this from a very methodical standpoint where when I’m studying all this game design stuff I’m thinking “okay, how would I apply this to my game? Is there a place for it? Is there something I should be tweaking to align closer to a core principle of game design? Is there stuff that adds complexity for no reason or does everything have a purpose?” I’ll be talking more about this kind of thing in the future as I narrow the design down in detail.
Hope you enjoyed the long read! Check in for more next week, and go watch all the Extra Credits videos while you wait for Santa to bring your copy of The Art of Game Design lol
Time for my annual update lol A few changes in my life since the last time I wrote: Last winter I hopped a flight to Ottawa to visit a friend for a few days and fell in love with the city. The amazing scenery, the unbelievably friendly people, the “big small town” vibe, the seemingly weekly fireworks shows, the beautiful French girls…I was instantly hooked. As I sat on my friend’s couch getting ready to pack for my flight back to Calgary, I day-dreamt about how someday it would be nice to live here in our nation’s capital. Then I glanced around and realized hey, I’ve got a backpack full of clean underwear and my laptop with me, what else do I really need? So I cancelled my flight home, spent a few weeks sleeping on my friend’s couch while I looked for an apartment, and had my few meager personal belongings shipped across Canada to me. As a single guy who has no kids, no responsibilities, and makes his living off a laptop, I figure it’s alright to make a drastic impulse decision toward new adventures now and then.
The incredibly beautiful city of Ottawa. Now that I live here I totally understand why this is our capital.
The other big change is a bit more personal, but hey I’m sure no one is actually reading this anyway lol The past few years I’ve been struggling with having low energy. It was difficult to even get out of bed, and I’d sleep through most of the day. It got so bad that I couldn’t stay awake for more than a 4-6 hours at a time before my eyes would get too drowsy to stay open and my head would get foggy and feel like I had been up for days…then I’d sleep for like 10 hours, wake up for another few hours, and then pass out again. It made it unbelievably hard to get anything done. I would basically be able to keep myself awake long enough to get my work done, but I would have to break it up throughout the day and it was a struggle. If I managed to get anything besides work done, like grocery shopping or doing laundry, I was completely wiped out.
I chalked this up to just being lazy and not having solid self-discipline. I’d read all these inspirational stories of indie devs who are working 3 jobs at a time and coding till 4am to bring their dream to life, and watch all these motivational videos on YouTube with guys shouting about how you have to forget to eat because you’re so busy working and you have to work while the other guys are sleeping and you have to be willing to stay awake for 3 days straight to become successful, and I’d just think “how are these guys DOING this?? I can’t even stay awake and focused for a full 8 hours in a row! If I was working a day job for 8 hours, I would come home and instantly collapse till the next morning. Why am I so lazy compared to everyone else?” I had all these good intentions of developing my games and getting them out there but just kept hitting this wall.
It was pretty frustrating…looking back it seems obvious that there was a problem but this all crept up on me slowly over a few years and I was just barely managing to work around it enough to get by and somehow managing to pay my rent, so I just kind of accepted that I was getting old or something and tried to adapt.
It wasn’t depression, because I was happy with my life all this time. I’m a pretty upbeat optimistic guy day-to-day and I don’t have much to complain about, so when I was awake I was psyched and ready to be productive and take on the world…but a few hours later I’d be curled up on my bed passing out.
Our cold dark snowy winter has just begun and a friend texted me to tell me to remember to take some Vitamin D because we won’t be getting as much sunlight. He had his Vitamin D levels tested and they were extremely low so his doctor had him load up on it. I didn’t really know anything about vitamins and was going to brush his advice off until I started Googling what Vitamin D does. I kept reading all these stories from people who were describing the same kind of problems I was having and how it turned out they were Vitamin D deficient and when they started taking Vitamin D they suddenly had a new zest for life.
Here's a giant mutant turtle for you for making it this far. This was from a game that didn't pan out...the dude hiring me vanished a couple weeks in without paying me. :'( But at least this guy was fun to draw lol
I was skeptical, but kept reading and realized that because I live in Canada and I’m cooped up in my apartment with sun-blocking shades pulled over my windows all day, and most of the time I work at night when the sun is down (I’m naturally a night person) and grab food at convenience stores in the middle of the night, and if I go out to a bar it’s at night, etc. I really don’t ever see the sun and don’t get any Vitamin D…and if my friend who works a day job, goes for walks in the sun now and then, doesn’t have any energy problems etc., is extremely deficient, then I must be even worse off than him.
So I grabbed a bottle of Vitamin D3 to try, and holy CRAP. I can’t even fully explain what a life-changer it is!
I’ve only been taking it for a couple weeks but even in the first couple days I noticed an immediate difference. I’m typing this blog post at the tail end of being wide awake and clear-headed for 16 hours straight which is something I haven’t been able to do in literally 3 or 4 YEARS. Like even the notion that I’ve been awake for that long today blows my mind. It was so bad that I have all these weird habits built up where like, after a few hours I instinctively FEEL like it’s time to go over to my bed to lay down and sleep except then I realize “oh wait, I’m not tired at all…wtf do I do now? I guess…I’ll…uhhh keep working? Is this how normal people live?? No wonder everyone seems so much more productive than me!” and then I just keep doing productive things instead of sleeping lol I went from consistently only being awake for a groggy 4-8 hours a day (with naps separating those hours) to consistently being awake for a sharp focused 14-18 hours a day with no need for napping. I feel like Bradley Cooper in Limitless where he’s suddenly tapping into his full brain-power. From my perspective it’s like time has slowed down, or days have extended in length because I’m now getting 3 or 4 times the day I was getting before.
This is basically me right now, except I'm obviously way more handsome.
If you’re reading this blog about gameDev, then you’re probably a nerd like me. And if you’re a nerd like me, then you probably don’t go run around in the sunshine all day like normal people apparently do. If that’s the case, hit your doctor up sometime and get your Vitamin D levels checked, especially if you feel like you don’t have much energy or if you get really lethargic and demotivated in the winter (which you might just have chalked up to Seasonal Affective Disorder and assumed you have to live with it). With the abundance of indoor cubicle jobs and the popularity of working from home these days, a huge portion of the population is said to be Vitamin D deficient and a bottle of Vitamin D3 is super cheap. Give it a try and see if it helps…the difference between my days now and just a few weeks ago is a complete 180.
It’s hard not to sound like a fanatic but man, if I had figured this out a few years ago I would probably have a respectable library of my own personally designed and developed games floating around out there. Can’t change the past so no point dwelling on that, but now that I’m firing on all cylinders I think 2015 is going to be an awesome year for me and my adventures in gameDev.
I’ve got some plans coming up for this winter, so stay tuned! ;)
BAM! I’m back! I actually forgot how to log into my blog, it’s been so long…how embarrassing lol Alright, so here’s a super-brief summary of what’s been going on: the Zombocalypse Kickstarter unfortunately didn’t pan out (though since then Ironzilla found funding and they and Juicy Beast have teamed up to develop Zombocalypse 2, so keep an eye out for that!) and I started working with Ravenous Games again, on the next installment in the LOE series: League of Evil 3, launching on the App store today:
One drawback to keeping a devBlog when you’re an indie dev working on other people’s games is that with Non-Disclosure Agreements you can’t really talk about what you’re working on. Also the deadlines tend to be stricter because you’re working for someone else who’s determining schedules based on various priorities on their end, so taking time out to do quality blog updates with pics and such, and chatting on Twitter can start putting you behind on your work over time. I tend to be the type that likes to just stick his head down and plow through working without distractions because I get side-tracked easily, so that’s why I haven’t been updating much.
That said, I’m finishing up a little extra work left for LOE3 and I have a bit of completely non-game-related freelance work to do up, but then I’ll be starting on my own game. I picked up Game Maker: Studio a while back but haven’t had a chance to do more than mess around and learn the ropes and do some rough prototyping/tests. It’s a great program, and a lot more powerful than I expected. Vlambeer used it on Super Crate Box (which my good buddies over at Halfbot ported to iOS), Hitbox Team used it on Dustforce, Liam Barden used it on Ninjammin Beat-Jitsu and most recently Tom Francis used it on Gunpoint. You can make pretty much anything you want in it, and you can port it to other platforms pretty easily. All in all it’s really impressive gameDev software to an artist who’s overwhelmed by stuff like Unity and X-Code lol
I’ve got a game idea in mind, but I have to flesh it out some more and narrow down the details and all that. I’m hoping it’ll be a short little summer project, I’m doing it mainly to learn the full workflow of development to distribution via Game Maker, and I’ll post some behind the scenes stuff as I go. I won’t be doing daily updates like I did with Elusive Ninja because that was insane lol but I’ll do weekly updates.
That’s it for now! Time to go dust the cobwebs off my Twitter account and see what I’ve missed on there lol
I’m writing a bigger “What’s happening and what’s coming up for Bulletproof Outlaws?” post, but I just wanted to update quick to say that I’ve made Elusive Ninja: The Shadowy Thief 100% Free forever on the App Store! Granted, if you’re a reader of this devBlog then you’ve probably already bought the game to help keep me from having to sift through dumpsters for food, for which you have my eternal appreciation and I apologize for pulling the rug out from under you by now making it Free, please don’t hate me forever haha If you’re a reader and you didn’t buy it, why do you hate me so much? You monster! How will I afford to send my kids to college?? I mean, I don’t HAVE kids, but if I did I’m sure they would be devastated.