Skip to main content

My Divergence Of Lost Purpose In PC Gaming

Being a computer gaming enthusiast for over three decades, I love my free time.  I would rather have free time than I would a wife, kids, wealth, fame, and other bothersome things that severely bottleneck a man's free time.  I am an evolutionary dead end of loving my free time... it's a shame I don't seem to know how to use it.

The problem, as I see it, is this: I'm primarily a gamer, and most games suck.  Of course, this is subjective, but when you have been gaming for as long as I have, you will have burned out from nearly every kind of popular genre there is.  For this reason, when I buy discount games off of Steam wish lists, it's usually a waste of money: most of them will go unplayed, particularly the clone genres whose core gameplay fundamentals I played to death long ago.  Ergo, I seem to not know how to spend my free time.

The main genre I can still enjoy is gloriously elaborate escapism simulators, whether they be massively multiplayer role-playing games or open-ended environments like Minecraft or Dwarf Fortress (but not so much DayZ because I am a total carebear).  Perhaps procedurally generated games along the lines of FTL and Dungeon Of The Endless qualify, because I enjoy those games too, but they have to be done right: procedural generation is not implicitly a good game in itself.

If you ask me, this is where the bar of PC gaming has risen, take a look at the kinds of games played on the Yogscast channel, this is why.  Tastes will vary; maybe you like MOBAs or Counter-Strike clones, but wide-eyed gaming nerds such as myself want better escapism simulators.
Point of proof: Starbound earned over 1 million Kickstarter dollars and twice that in sales, even if it never played as good as it looked.
Unfortunately, I am bored of the best games in that genre that I know of.  Mostly it is because I have exhausted everything worthwhile to do in the ones I have played.  This is to say nothing for where my personal taste may have varied from the developers'.  Yet, even if a game completely matches my tastes, there is no way for it to be an everlasting jawbreaker.

What's a perpetually unsatisfied gamer to do?  Take up a new hobby?  Man up and face reality?!  Of course not!  I am not a computer game geek for nothing!

I have come up with a different solution: make my own game.  The appeal of this solution is manyfold: it assures my game matches my tastes, it overcomes the everlasting gobstopper paradigm by ever-building from my creativity, and making a game can be even more fun than playing one once you are in the zone! To these ends, it is something I have been doing on and off for about a decade now.
  • The first engine I tried was BYOND.  I learned a lot about developing in an event-driven engine from it, but ultimately I decided to abandon the platform because a few core reasons:
    • I encountered some critical issues when performing file I/O operations on a particularly ambitious project, and this left me doubting the engine could do what I truly needed it to do. 
    • My yearly subscription (only really needed to host games) lapsed for the second time and they wanted to hike the rate.  I decided to try my luck elsewhere.
    • Barely anyone is willing to install the BYOND software on their computer, so I would have hardly any audience to appreciate my games.
    • A general lack of basic operations, such as projectile routines.  The BYOND community shared a lot code that worked around this, but it is often better to have standardized, optimized solutions built into the engine.
    • The lack of fidelity in floating point operations lead to unpredictable behavior.
  • The second engine I tried was Game Maker.  I regretted abandoning the ease in which I could create multiplayer persistent state environments in BYOND, but I could not deny that Game Maker was extremely flexible and powerful.  Unfortunately, I soon developed reasons I wanted to try my luck elsewhere:
    • The way YoYo Games crammed drag and drop functionality into the development environment is extremely ponderous and annoying to experienced coders.  I have to click three or four buttons just to select an object, open up its event sheet, select the script call, and open the script... I had better hope the code I was looking for was there, because Game Maker expects me to track it down from the event that calls it every time!
    • The room editor is very awkward to use.   Particularly difficult is manipulating multiple objects at once.  The room editor's graphical user interface is quite unorthodox, so your usual habits will just make mistakes.
    • The way most of the code executed is restricted entirely to rooms is awkward to deal with for an escapism simulator.  The bulk of available room functions and the instance functions suffer many omissions that render me unable to do common things I was able to do just fine in BYOND.
    • Tilemaps are wholly decorative; this is not really a tilemap engine, and does not actually have interactive tilemaps unless you fake it.  It is technically doable in Game Maker to have a huge room built out of objects emulating tiles, but this will slow down performance a bit.
  • This week, Clickteam Fusion 2.5 was on sale, and I decided to risk it despite knowing Construct 2 is generally more flexible, because Clickteam Fusion 2.5 is certainly more powerful in terms of end product.  Unfortunately, having dabbled with it since Monday, it looks like Clickteam Fusion 2.5 will probably not work out for me.  Yes, if you know my history on this blog, this is probably not a great surprise to you, but I was surprised at some of the things I did not really notice until I rolled up my sleeves and tried to use it seriously:
    • There is no tile engine object.  Tilemaps are important to 2D escapism games because they allow for a more comprehensive simulation of space.  There are community-made tilemap extensions, but I was unable to locate one sufficiently powerful for my purposes.
    • Unlike Game Maker, I cannot "fake" tiles with instances of objects because, in Clickteam Fusion 2.5, there is a limit of 20,000 active objects per "frame" (frames being essentially what Game Maker calls "rooms").   This would limit me to a room of roughly 141x141 tiles (141 x 141 = 19,881) and that's before adding any active creatures or objects to the room!  The usual proposed solution would be to use cosmetic "backdrops" instead, but that is no good for me because my game concept needs every tile to be potentially interactive and elements off-screen to be actively simulated.
    • The event system in Clickteam Fusion is actually a lot more comparable to proper coding than advertised, which is great for potential flexibility.  However, coding is a bit of a chore.  Users of this software are forced down some very rigid paths of what they need to click on in order to pull functions they need.  More importantly, those functions have very limited accepted arguments, though you can often learn to work around this.  
    I think there is actually a very good reason for much of the limitations in Clickteam Fusion: engine execution efficiency.  In other words, the user is probably restricted in the way the data is entered and how many objects they can use because it lines up nicely with engine optimizations, producing better performance. 

    However, coding in Clickteam Fusion 2.5 is surprisingly hard work; it takes me about four times as long to do most operations in Clickteam Fusion that it does in Construct 2!  (Although probably less with more practice using the engine.)   In a more clear-cut example, there is no such thing as families in Clickteam Fusion, which means if you have several different types of enemies to shoot, you basically have to code projectile interactions for every single type of enemy.  Inheritance, where art thou?!  (In fairness, Construct 2's "families" are not true inheritance either; "families" look to simply streamline coding functions by duplicating the related lines for associated objects.)
Maybe if I did not take over year-long breaks from development here and there, I'd be significantly better at doing significantly better at having completed a game by now!
Honestly, I think I could have figured this out without months of dabbling some ten years ago.
I'm getting old.  Sitting around on my butt all day probably isn't helping the neurons work any better, either.
Anyway, my going through engines like this relates to something I said not too long ago: the engine you choose to develop your game in has a lot to do with the type of game you plan to make.  This entry's important realization is the importance of fully-simulated tilemaps to my game concept.  Along these lines, none of these engines were exactly right:
  • BYOND was closer to the type of game I wanted to make than any of the other engines I have dabbled with because it was, from the start, designed to simulate virtual spaces.  Honestly, I never brought up my file I/O issues on the forum, so it is entirely possible there was a solution or a fix that could have happened.  Consequently, this platform's main problem remains the difficulty of reaching an audience.
  • Game Maker could potentially make the type of game I want to make, a tile-based escapism simulator, but not without the impediments mentioned above.  I already noticed its performance drops significantly with lots of objects-emulating-tiles on the screen, though hundreds of independent entities can be simulated readily enough (and the YoYo compiler may excel at those kinds of operations).
  • Clickteam Fusion 2.5 could only make the type of game I want to make if I were to make some massive concessions in my design, probably abandoning entire rooms of interactive tiles, or else coding my own extension to make it work.
I have determined Construct 2 could definitely make the kind of game I want to make and do it in an unusually hassle-free manner, because it does have a tilemap object, I was able to get it to work with the pathfinding behavior, and I procedurally generated a tilemap in no more time than it took me to do in Game Maker.  However, it is still not ideal because it is not custom-tailored to my game concept, consequently I would need to keep things reasonably small scale, with liberal instancing, because once you get a couple hundred active objects the HTML5 performance starts to tank.

I worked exceptionally hard in my game development dabbling this weekend and now my path is clearer.  If Construct 2 goes on sale soon, I will probably buy it, as I can see this as realizing a serviceable prototype with less work than it would take for me to accomplish the same thing in as Game Maker.   Yet, maybe a serviceable prototype is not good enough for me in the long run, in which case I may want to look into the likes of Cocos2D or Unity3D despite them being considerably harder to use.
Post a Comment

Popular posts from this blog

Resonant Induction Really Grinds My Gears... In A Good Way

From about 2pm yesterday until 8pm today, I've been dabbling with my latest custom mod mix for Minecraft 1.6.4, which is this time very much Universal Electricity focused.
Aside from the usual GUI enhancers and Somnia, the primary contenders in this mix were:
Calclavia Core - Of course: this is the base of the Universal Electricity system.Resonant Induction - This seems to be largely focused on increasingly more advanced methods of refining ores divided across 4 ages of technological progression.  It also includes some really cool things such as assembly lines.  I'll primarily be talking about just a few blocks out of this mod today.Atomic Science - A mod dedicated to generating more of those lovely universal electricity volts via the power of splitting the atom.  Build your own nuclear reactor!  Deal with nuclear meltdowns!  You maniac!ICBM - A mod dedicated to generating more destruction using those lovely universal electricity volts (and more than a little gunpowder), it cer…

Empyrion Vrs Space Engineers: A Different Kind Of Space Race

In my quest for more compelling virtual worlds, I have been watching Empyrion: Galactic Survival a lot this bizarro weekend, mostly via the Angry Joe Show twitch stream.  What I have concluded from my observations is Empyrion is following in Space Engineers' shadow, but it is nevertheless threatening the elder game due to a greater feature set (the modding scene notwithstanding).

Empyrion is made in Unity, whereas Space Engineers is built on a custom engine.  While this does put Empyrion at a disadvantage when it comes to conceptual flexibility, its developers nevertheless have a substantial advantage when it comes to adding features due to a savings of time spent that would have gone into developing their own engine.  Examples include:
Planets.  Empyrion already has planets and space to explore between them, whereas in Space Engineers planets are in the works but still awhile away (so you just have asteroid fields to scavenge).Enemies.  Space Engineers' survival mode boasts onl…

Ancient Warfare - What Is It Good For?

The Ancient Warfare mod for Minecraft threw me for a loop.  I was looking for "villagers" that would perform useful tasks while simultaneously resolving the glut of food with a need to eat, thereby turning Minecraft into a bit of 4X game you can play from the inside.  Millenaire wasn't quite there, partly because recent updates to Forge had broken its compatibility with Minecraft 1.7.10, and Minecolony's development is not quite fast enough to keep up with the state of mods in general (they probably need to make a core API).
In comes Ancient Warfare, which does indeed provide workers and soldiers who need to eat, you can even order around a little army of them to defeat your enemies.  It has working waterwheels and windmills, something I thought was awesome in Resonant Induction.  It has a warehouse with a built-in sorting system, as well as courier NPCs that can move things from building to building, and crafting NPCs that can create things for you automatically - w…