March 4th 2019

Untitled

February 26th 2019

The Antithesis of Game Development

My entire life, since I was aware video games were something that existed in the world, I’ve wanted to enter game development. Regardless of the level of where I enter, I’ve always wanted to make games. The first few games I had been exposed to as a child were Frogger and Spyro, both on the original PlayStation. As a kid I didn’t necessarily know I wanted to enter gamedev, but what I did know is that I wanted to be able to play levels outside the realm of what the game allowed me to do, and in turn create my own or have some sense of doing something the game wasn’t supposed to be doing. As I got older, I remember spending nights on my parents’ dial-up internet connection looking up cheat codes for my PS1 collection. I had discovered Gameshark, and I knew I wanted to be able to manipulate my game. So I nagged my parents to drag me to the local game shop, and I don’t remember much from that day besides the guy behind the counter telling me to avoid manipulating games that already exist, and rather, get into the world of creating my own. Albeit, I was probably nine years old at the time and I didn’t have many resources available to me to do so, but I went home and trudged through our dial-up internet connection and discovered Game Maker 6.0. A few days later, I urged my mom to buy the program for me, as the lite version lacked several features which I wanted access to.

Ever since then, Game Maker was the first program I learned, and the last language behind Java that I’ve mastered. I made a blog post about this a while ago, but I pushed Game Maker to its absolute limits whenever possible. It was only when I started writing actual “programs” in the software that I figured maybe it’s time I bite the bullet and learn a language that isn’t so restricted.

HellFire vs. the Officeman, 2013-2014

I’ve written a million things in Game Maker. I used Game Maker from 6.0 all the way until they released Studio 2, then I stopped paying for updates because I found it to be a waste. That being said, though, undoubtedly I’m the best at writing games using it. But there’s something that Game Maker taught me that I’ll never shake off now, and it’s something that really discourages me a lot: it gave me the illusion that programming is easy. Want to render something on the screen? Just create an object, place it in a room, it will automatically have X and Y coordinates, and you can adjust them by giving the object a script that says x=24 and y=62. Want it to move? Step event every frame, x++. Nothing more, just x++. It knows what x is, it doesn’t need to be defined prior, and it will act exactly like you’d think it will act. You don’t even need a semicolon on the end of the line.

Shenanigans, 2016

So me, being a freshie Java (and barely C) student, I’m faced with the concept of “Okay, so what if I want to make a game, but I don’t want to use Game Maker?” Then several options open up.

Sure, I can use Unity. But that’s lazy. The game engine is already made for me. Same with Unreal. Too fancy. I want to make basic 2D things like Game Maker let me do. But I don’t want to use Game Maker. So what next? Find some lackluster 2D graphics library some random dude made that will do nothing but hinder me more than Game Maker would? I want to create the engine myself. Surely rendering a few objects on a screen can’t be that difficult right? So I dive into checking out LWJGL, look into the different options it has available, and I’m told I’m gonna have a hard time if I don’t understand OpenGL calls prior. So what am I supposed to do – learn how OpenGL works? Why not just learn C++ and straight-up use OpenGL or even DirectX or Vulkan at that rate? Why limit myself to Java?

Then I remember that I’m almost out of community college, starting my last two years of my BS this fall and there is little to no room for me to take a course on C++ right now, and I’d teach myself if I weren’t trying to juggle five other classes. So then I become discouraged, and then I make no progress. So then my mind’s jumping to “if you want to make a side project, hobby game, just go back to Game Maker” and that absolutely kills me because that’s not the progressive mindset I’d like to be working with, it’s jumping back to my crutch, my easy way out of solving my problem by using something that’s no different from what I was doing at the age of nine.

Super Crunk Bros., a gag game – 2014-2015

So what’s a guy to do? The advice I’d give someone else in my scenario is just “go for it, try whatever and see how it turns out” but from my perspective, I’m having a difficult time even finding where I should begin. Is there shame in using a game engine like Unity? Why is it so frightening to write games in Java? Why do I have such a hard time comprehending the ideas of graphics and vectors and even at times, pointers? As a programmer, am I failing to do my job if I haven’t learned these things yet? When will I learn? Why am I so repulsed by the idea of learning? Why do I want to lift 300 pounds when I can’t even lift 30? What advice would you give me in this situation?

February 20th 2019

Video Games

As somebody who wants to potentially go into gamedev someday, I seriously don’t play a lot of video games. A lot of games this generation haven’t interested me much, and I really hate to say that because there’s so many good games out there.

I’ve always been one to create rather than consume, so the games I’ve always ended up playing the most were the ones in which you have creative control over something. The ability to mod the game is always nice, and it’s even nicer when the devs provide players with an SDK to create content. I think the game I have the most time logged on, easily, is LBP, but I’ve also sunk hundreds of hours into playing various Half-Life maps, and over a decade ago now my youth was comprised of lots of Roblox and utilizing Game Maker 6.0 to make little platformers and edit other people’s Super Mario Bros. 3 clones. Surely there’s something in lots of modern games for me, be it a story or decent gameplay or something that draws me into wanting to try it, but I find myself drawing blanks unfortunately more often than not, because I suppose I always like a sense of feeling productive. UGC games allow me to feel a sense of accomplishment while I’m creating something, whereas advancing in a story mode in some long 6-hour game just feels like I’m working to advance a film. While I totally understand the appeal, it’s just never been for me. As a result I find myself not playing lots of titles.

I picked up Red Dead Redemption 2 yesterday (for $40 on PS+), and I’ll get around to playing through that because I’ve always been meaning to get into Rockstar’s games besides GTA and I’ve heard nothing but good things about this one. Plus, if I don’t end up liking the story much (unlikely?), there’s always an online mode. I’m going into the game pretty much totally blind, so that will be fun.

On the topic of Red Dead Redemption 2, why do developers think it is okay to release a game that’s greater than 75 GB? I don’t think we’re in an era where it’s reasonable to have to delete 1/4 of your console’s hard drive to make space for a single game. In the future when our consoles are starting out with 5 or 10 TB to start with, I’d say a 90 GB download is warranted. But Red Dead, in addition to several other titles (Spyro being one of them, Spiderman being another) are so absolutely massive that I’m starting to think devs are refusing to optimize storage. Perhaps I’m wrong, but there’s been several massive games in terms of content that don’t even break 10 GB. Optimize, people!

In other news, I just discovered that my X230 ThinkPad Tablet is only a dual core machine, not a quad core, and I feel cheated.

May 23rd 2018

Tabula Rasa

I cleaned up the weblog and removed some posts from a darker period of my life. I plan on giving this blog a new theme and updating it more frequently with solid content as opposed to useless ramblings. Stay tuned.

October 8th 2017

Game Maker: Using Training Wheels On An 18-Wheeler (And Making It Work)

Game Maker is (or, was?) a novice IDE with a novice programming language! I’m not going to deny that. It’s aimed at people looking to learn how to make basic games. And while that’s true there’s a lot of stuff people have done with it that really break the boundaries of what the engine was once capable of – look at Undertale, look at Hotline Miami – and because of projects like these, the developers at YoYo Games decided to reform Game Maker into what is now known as Game Maker Studio 2. Me, however? I’m still on Game Maker 8.0 Pro, released 2009, almost 8 years ago now.

“Why? Why use such an old piece of software with such limited capabilities?” You ask me.

I’ll answer as simply as I can: Innovation. Thinking outside the box.

When you’re given a limited set of tools to create something, sometimes you’ll run into road blocks. And when I run into road blocks, rather than say, “oh, shucks, looks like I need to upgrade to the newest software which lets me do this out of the box -” I work with what I’ve got to solve the problem at hand. Game Maker 8.0 is possible of doing literally everything Game Maker Studio 2 is capable of doing, sans being able to export your game to multiple platforms. Functions and the syntax changed but at its core it’s possible to do literally anything with Game Maker 8.0. A lot of this is thanks to two commands: file_bin and file_text.

Some food for thought: Game Maker 8.0 has the ability to open any binary file, understand how it works, and throw something back in the game. It also has the potential to modify these files. Because of this, it’s an extremely powerful command that allows for a lot of flexibility in game design, even stretching to program design. It’s not the fastest command in the world, so I’d use it sparingly – but potentially, someone with a lot of time on their hands could use the file_bin commands to load an archive from a 90’s PC game and create an entire open-source port of said game in Game Maker. There’s nothing stopping anyone from achieving this stuff and it’s one of the big reasons I still use this program.

Currently, I’m writing a parser for my own programming language, aimed at modifying another game, compiling models for the game, maps, textures, and all that fun stuff. It’s certainly possible with GM8.0. And I bet if I loaded the same project into GMS or GMS2, I’d be thrown a lot of errors that would prevent my project from working.

If anything, what I’m trying to say is when you’re given a more limited toolset, greater or more surprising things come out of what you’re given. Sometimes making things easier for one to create things makes for less interesting products.

Next Page »