Game Engines And Gamy Indies

Following my discovery that the YoYo Compiler (YYC) is not a reliable magic bullet for game performance, I stand by what I said earlier during my original game engine benchmark:
...many people (myself included) would be willing to humor a tougher learning curve [on GameMaker Studio] if it means getting performance power severalfold that of the alternatives
Well, that did not happen, so I am abandoning GameMaker once again.  Actually, GameMaker Studio's overall performance power is not bad, and I have no doubt it has the flexibility for me to figure out a way to realize my projects on it.  What causes my muse to abandon the studio, citing a refusal to work under these conditions, is that its GUI keeps getting in the way.  The way it presents events and room editing just feels so awkward!  I really don't feel like humoring that without the added incentive of severalfold power.
As I wanted power without having a fancy GUIs getting in the way, I considered going without a full game development environment, investigating MonkeyX and Cocos2D.  I eventually decided that is more than I want to commit to right now because, while I am not a rank novice at coding, I just do not want to have to code so many basic game behaviors because it is so time consuming!  Besides, their forums are quite slow, and this could be a major liability if I get stuck.

Since I have already disqualified Unity3D as having too much technical and professional overhead (though it is otherwise unmatched in the field) I am now down to two choices for 2D game engine:
  1. Construct 2 - Extremely easy to use, with many behaviors and plugins to choose from as well the ability to program even more if you are so inclined, and there is a large community repository of extensions.

    It only really has one downside, but it's a fair doozy: all its export targets run on a heart of JavaScript, making it very well optimized for a HTML5 target, but quite a bit slower than a native code on other targets.  In my earlier test, I put it at about 30% the speed of GameMaker on Windows 7. 
  2. Clickteam Fusion 2.5 - As its estranged grandpappy, game building methodology here is very similar to Construct 2.  However, the GUI is less intuitive and there are less stock behaviors and plugins than Construct 2

    I would say this engine is less flexible but, like Construct 2, you can code your own extensions, it is just a bit more complicated this time because you will be working with platform-specific code.  Consequently, there is less community extensions available and they are platform-specific, so the conservation of its flexibility comes at a price.

    Speaking of a price, Clickteam Fusion 2.5 has a less generous export target policy than Construct 2.  It is still far less expensive than Unity3D, but you are looking at about $100 per platform, give or take, and the "personal" version has some features capped off.  It is a very similar model to GameMakerConstruct 2 gives you everything in the personal version that the professional version has for about $120 down, including all the export targets, but asks that you spend another $300 to upgrade to the professional version if you make over $5000 on it, which is a pretty reasonable request if you really made that much.

    With all those downsides compared to Construct 2, why is it still a contender?  Because, with the exception of embarrassingly slow HTML5 performance (15% the speed of Construct 2), the games Clickteam Fusion builds have much better performance.  In my Windows 7 platform test, Clickteam Fusion was 150% faster than GameMaker, this is the inverse of the same "doozy" as Construct 2!
So it comes down to this: how important is performance to a 2D game?

Well, it depends on the type of game you intend to make.  If it is a puzzle game, the computer is probably going to sit idle most of the time anyway, so you do not need that much processor power brought to bear.  If it is an arcade game, a low performance will limit the number of objects you can have active at a time.  Often, it will come down to whether or not the frame per second rate is that important to your game design.

You can see the difference in the game libraries of the two platforms.   Construct 2's library has games with considerably less moving parts, whereas the Clickteam library has more fast arcade games.  Freedom Planet would not have been possible on Construct 2 due to the power differential involved.

Honestly, I can go either way at this point.  I think performance is important, but I also think having a wide degree of available behaviors is important.  Besides, if I decide I want to make HTML5 games, the one major advantage that Clickteam Fusion has goes away.  It may well come down to a matter of which engine goes on sale first.

What you all came here for...
This girl's encounter with constricting, clothes-dissolving slime that nevertheless protects her modesty is a pretty
apt description of Sakura Spirit in general: just a bunch of infeasible lewd encounters signifying nothing.
So, Steam was running a sale on Sakura Spirit for 66% off, and since I enjoyed the Ace Attorney series and Hatoful Boyfriend, I thought I would give another visual novel a spin... my review is as follows:
I am a gamer, but I can enjoy a visual novel if I feel involved enough. Along those lines, Sakura Spirit turns out to be utterly pathetic. You want to know how many branching paths you have in this entire game? ZERO. You get one choice, and apparently it results in little more than a few scenes with different flavor text, same ending. There are no "routes" or "flags" to worry about, just sit back, read the text, and look at the pictures. Hilariously, you have sixty-four slots to save your game, but you will only ever need one!

As for the erotic content, it's largely just a bunch of skin and cleavage, with neither nipple nor genitalia to be seen, just evocative poses and anime girls put in compromising situations. Textually, the most evocative content I have seen is frequent mentions of missing panties and flirting. Overall, it's no more intense than your average evocative boy's manga, our hero does not get laid, the racy bits only serve to build sexual tension without catharsis. Suffice to say, the average review score has been bolstered by an awful lot of hormones and glib exaggeration.

I guess the art is reasonably good and the story is... well, it's a serviceable mishmash of usual anime tropes, basically the typical Shinto tale of forest spirits at odds with humanity. Except this time the spirits are pretty much six ditzy girls and an immortal who can't get involved, while our primary representatives from humanity are two more ditzy girls from a medieval Japanese village. Take one guess why they would choose those kinds of characters to tell this story. Our protagonist is technically on neither side, as he is plucked out of his own world at the start of the story.

If that sounds worth the money to you, go for it. Otherwise, you can find better, as virtually everything this visual novel does has been done better elsewhere. Personally, I think completing the related Steam badge is probably more interesting than the game itself, but your mileage may vary.
TL;DR: Sakura Spirit is not a game I would recommend, mostly because I like to have choices in games and this one has none, but also because the story is a generally a bland example of typical anime tropes.  At least the art is alright.

If you want to see an example of something good that uses the Japanese word for cherry blossoms, go watch Cardcaptor Sakura on Crunchyroll.  It might be a kids monster-of-the-week magical girl show, but CLAMP has some genuine creative vision, it shows up in nearly every scene and prop, and this is probably why this anime ranks within the top 15% on the Anime News Network scale.

Walking The Dog With The YoYo Compiler

So, I finally got a chance to play with the YoYo Compiler (YYC) now that it is officially bundled as a part of the GameMaker Studio engine.  If I understand it correctly, the primary goal of the compiler is to circumvent the need for just in time compiling by compiling things ahead of time, resulting in applications that are significantly faster because they are that much closer to running native to that platform.   However, having run some tests on my Windows 7 platform, the results are somewhat mystifying in their inconsistency.
A 16000x16000 size room of 32x32 tiles is 250,000 tiles to generate, quite the queued workload.  Yet, if you are looking to simulate
a world of significant size, this is not overly unreasonable: it is a mere 500 steps from end to end.
  • My benchmark showed no noticeable improvement whether or not I was using the compiler.  This benchmark simply generates projectiles and makes them bounce if they come in contact with the edge of the screen or each other (which increases the workload exponentially as more and more collisions need to be calculated).  Maybe the reason why the YYC did so little for this benchmark is because collision operations were already fully optimized by the running executable, and there is so little bytecode involved?
  • The YoYo RPG framework demo also showed virtually no improvement, but I suspect this is probably because the code is already so well optimized that it is sitting idle (merely animating a few things on the screen) most of the time.  That's good coding practice, whereas my benchmark deliberately stressing the engine is the opposite of what a good programmer really ought to be doing.
  • I used the "depth ordered starfield" demo that comes with GameMaker, and I could see a significant difference between using the YYC (70-71 fps) versus not (8-9 fps).  Looking at the code involved, it is merely three scripts on the create, step, and draw event of a single object.  Most of the work involves running through an array of starfield objects and updating them.  Why such a big improvement with the compiler?  Possibly because of all the variable manipulation work involved with that loop.  Maybe because so much occurs in a draw event, and the compiler puts emphasis on those?  I have no idea if that's true.
  • For my fourth data point, I used a roguelike engine I have been working on.  I modified the world generator object's code so that it builds the map bit by bit every time the step event triggers, assembling the world from a queue of building instructions.  

    Because step events run at a rate of room speed per second, if I did the same number of tile generation iterations every step it would understandably be just as fast with or without something that accelerated the code, and I was testing to see if the YYC would speed up procedural generation.   To resolve this, I based the number of tiles per steps generated fluctuate based on the current real frames per second measure of the room: the more frames available, the faster the generation. 

    The result?  There was no overall performance improvement in my map generation speed regardless of if I used the YYC, it would have half the room (125,000 tiles) generated in a little under a minute and a half.  I could make the room generate in about 30 seconds if I upped the room speed, but there was again no difference with or without the YYC.
  • I tried the "high polygon 3D demo" that comes with GameMaker and this time there was no overall performance improvement, I ended up with about 700 FPS regardless of if I was using the compiler or not.
Overall, I am underwhelmed.  I was hoping for a magical piece of software that would multiply performance of any GameMaker application, up to 100 times over, just as advertised.  It seems life has no such miracles, I managed about nine times the speed in one application, and virtually indeterminable performance gains in all the others.
Given that one of those applications did show gains, I am willing to shoulder some responsibility here.  Perhaps there is a very specific kind of operation that the YoYo compiler optimizes.  Perhaps there is a unique trick to harnessing the compiler that I do not particularly understand.  In the meanwhile, I suppose the compiler does have the advantage in that it makes it slightly harder to decompile GameMaker projects, since the bytecode is theoretically removed.

I guess if serious computational firepower is my goal, I really ought to get an engine that is capable of harnessing the power of multiple threads, something promised for the next major GameMaker platform release.  Honestly, I am a bit boggled as to why a modern personal computer such as mine is unable to bounce around more than 500-750 self-colliding projectiles (depending on how I code it) before hitting 50 FPS, I would have sworn I have seen ten-year-old bullet hell games pull that off just fine.

Predisposition: Indecision

Though I try to be a good and reliable fellow, it seems I am quite flighty in matters of creative process.  YoYo Games is now five days late in releasing the update that would allow me to freely utilize the enhanced "YoYo compiler" for Windows that will soon be provided with my existing copy of GameMaker Studio Pro, and this has caused me some pause as to whether or not I should really utterly commit my independent development endeavors to that platform.
It could be worse, Isaac.  You could be a stalled game developer!
Yet, when I research my alternatives, I am not so certain there is a better choice.
  • I have already decided I want to start with an already-complete game engine integrated with a development environment, and this narrows down my choices considerably, throwing out otherwise-viable options like LÖVE, MonkeyX, and Cocos2D.  My reason is simple enough: it takes a lot more time coding what those IDE often have not.  For example, a basic tile engine and pathfinding.
  • I am probably going to utilize some degree of procedural generation, and GameMaker Studio having a prominent code-integration feature gives it a certain advantage above the competition... still, it is not impossible to do procedural generation on the alternatives, and technically their event models are a bit like programming.
  • In terms of overall ease of use, Construct 2 is a joy to work with, and it has a surprising amount of pre-programmed behaviors to handle everything from turrets to cost-weighted pathfinding.  Anything it cannot do can be coded with homebrew javascript extensions... well, almost anything: its HTML 5 export restriction puts a severe cap on the overall power its apps are capable of harnessing, and that is going to be a deal breaker for most "large" projects.
  • I balk at Construct 2 because I get the feeling that I am going to need a lot of power for my games.  Even without the benefit of the YoYo compiler, GameMaker Studio is reasonably powerful, the only platform that really seems to outperform it (on the Windows platform) would be Clickteam Multimedia Fusion 2.  
  • There are other alternatives, such as Stencyl and Game Salad, but they have generally less advanced compared to the ones already mentioned.
As is frequently the case when there is no clear-cut best answer, I am at a bit of a loss.  If that "YoYo compiler" was available, and generated impressive enough scores on my benchmark, then there would probably be considerably less overall ambiguity here.   Yet, if I am over-estimating the amount of power required for my creations, then perhaps Construct 2 would get the job done just fine and be a lot easier to use?

I never did get around to benchmarking Unity's 2D performance, it just seems like a common-sense assumption that a 3D engine would be slower.  Besides, it is sophisticated enough that it may add too much technical overhead to my project development.
I sort of miss Cataclysm: Dark Days Ahead.  I should give it another play soon.
What am I actually looking to create?  Probably a survival roguelike like Cataclysm: Dark Days Ahead, except without the zombies.  So I am probably looking for a tile-engine that would allow for fairly good polymorphism of the tiles great handling for the dynamic generation and loading/offloading of additional terrain.  Though I could do some adjustment to my design to suit whatever platform, I guess..?

While I try to make up my mind, I've been playing a few games.
  • I got a chance to play the Civilization: Beyond Earth demo and, wow, did it ever disappoint.  The gameplay may have been slightly improved over its processors, but the GUI was so bland and minimalist that it dragged down the whole game.   Not a $50 purchase, not even the $35 I was willing to pay before, I'll be waiting for this game to hit a $25 price mark before I spring for it.
  • Bought The Binding Of Isaac: Rebirth, recently-released for a decent indie price.  It may only be The Binding Of Isaac with more features on its own engine, but it really did not need to be anything more.  This game is working proof that, the more fleshed out procedural generation content is, the greater the replayability. 
  • Bought and found Phroot's 3089 to be an interesting indie take to the open-world single-character 3D RPG, integrating crafting, FPS combat, and randomized loot.  Unfortunately, the floaty simple graphic engine seems to make me a tad motion sick, and the combat is a little too rudimentary for this picky gamer.
*sigh* I really need to get to work on a game of my own.  But it seems I am unable to commit to a starting point.

Birdshot And Balderdash

I am pretty much over the cold I was suffering last week, but it is surely a sign it was the real thing when I am still experiencing some croupiness even now.  This week, the notable things to happen in the Geldosphere can be summed up under three bullet points:

1. Trion's re-release of ArcheAge continues to disappoint.

Yesterday (November 4th, 2014), the final continent was released to the players and went catastrophically wrong.  Oh, the servers came up alright... a little late, but they came up.  Then everybody zerged over to the new continent and every single piece of land was instantly claimed with scripts.
Many players were... less than happy about Trion World's inability to keep hackers from souring the game.
As usual, Trion's policy on this is to sit on their hands, but I don't think it's collusion, I think they just know they're helpless against the hackers.  They are using an older version of the game and are relying on XLGames to port them versions that have fixed these hacks.  (Honestly, I am not aware if XLGames ever fixed these bugs, and I have my doubts because the kinds of hacks we have seen would seem to indicate that they have no idea what secure client/server interactions even are.)

If any MMORPG developers are paying attention, I think this would be a good time to draft a new commandment:  Thou Shalt Not Port MMORPGs... at least not unless you can get the most recent versions that have had all the hacks patched out.  Of course, I think the only way this lesson will be good and cemented is if this lead to a serious financial setback for the company, as people in the business of making their livelihood out of games must listen very closely to their wallets.

2. Civilization V is still Civilization V.

With Civilization: Beyond Earth's recent release, I was tempted to give it a spin.  Only two problems.  First, most reviews suggest that it is basically Civilization V, but with less personality, and so why bother getting this game when I already own Civilization V?  Second, it's fifty bucks, a full-priced AAA title.  I might be willing to go $35, just because I like a Sci-Fi setting enough to be interested in playing a Sci-Fi Civilization V, but this is probably paying more than a professionally made total conversion of an existing game is worth.

So, instead, I played Civilization V again, something I last did back in May of 2012.  Since then, I had bought the Gods And Kings expansion pack on a sale, and never really got a chance to give it a serious shakedown.  I have not yet bought the Brave New World expansion pack, and maybe never will... 
http://www.memecenter.com/fun/1965213/damn-gandhi-you-crazy-nuking-basterd
The main problem I have with this game is it takes too long to play, it took me a little over 24 real life hours of playing to get through a single game.  Yes, I set it up for a "large" map, so maybe that was partly my fault, but I played on "standard" game pace on "prince" difficulty.  I was playing Rome, and hoping for a cultural victory, because I had yet to earn the victory achievements for either of those yet, and this would give me a chance to explore the new religious mechanic more.

The good news is that I am still good enough at playing Civilization V that I was not simply steamrolled by the AI players even though the "prince" difficulty gives my empire no advantage or disadvantages versus an AI-run empire.  In fact, I was apparently a pretty brilliant tactician compared to the AI, because I soundly beat them with over 2 to 1 odds against me at times.  I probably have my experiences in Warlord: Master Of The Arcane to thank for that (basically a completely combat-focused version of Civilization V that takes place in a magical world).

The bad news is that I still lost.  Although I bloodied Napoleon's nose by pushing back his attempts at conquest (mostly mumbling to myself about how he should "render unto Caesar" the whole time), both he and Hiawatha were neck and neck towards achieving a space victory which Hiawatha eventually pulled off while I was at 4.2/5 policies.  I might have won had I kept my annexed city count even lower, and perhaps kicked Napoleon off the continent entirely, but I was not that aggressive.

Did I have fun?  Sure, I guess.  But, I still find the pacing to be rather slow for what I get out of it.  I really regret how I spent my time when that happens... the achievements I missed out on by losing might have helped a bit.

3. Hatoful Boyfriend is not completely for the birds.

I mentioned how I enjoyed Phoenix Wright, and when Hatoful Boyfriend was on sale for half-off on Steam, I decided that maybe I would enjoy a visual novel of significantly less sophistication but considerably more lunacy.  Basically, Hatoful Boyfriend is a dating simulator, but more than that, it is a parody of a dating simulator.

Here, you play the only human student of an all bird school.  You did not misread that, nor is "bird" a euphemism, as (in this world) the common bird has received a massive intelligence upgrade and they are now the dominant species.   This visual novel was originally created by a mangaka who just happens to like birds.
So why is a girl going to an all bird school?  Apparently, to get herself a birdy boyfriend.  We've got a good sampling of the usual manga/anime stereotypes here.  One bird is the kind, childhood friend.  Another is the snobby sophisticate.  One appears to be the shy, withdrawn type but is really another trope entirely.  The jock is a real loon - not literally, he's a swallowtail pigeon, but he is a hyperactive primal pigeon obsessed with pudding.  And so on - each session of Hatoful Boyfriend is completable within an hour, and your human protagonist will have herself a birdie sweetheart at the end... or else!

What do I mean by that last bit?  Well, this game is not really a dating simulator at all.  Each time you complete a story of a bird, you learn a bit more about their personality, and encounter some strange clues about something going on underneath the pleasantries.   After you unlock the majority of the main endings, you have the option to "fulfill a promise," in which case Hatoful Boyfriend becomes something entirely different: a significantly longer visual novel where the characters you learned about become embroiled in a mystery of this all-bird academy, where nothing and nobirdie is as they seem.

Despite its zany premise, Hatoful Boyfriend runs the full gamut of emotional impact, and I do not feel that I have wasted my time playing it.  However, as I have indicated before, visual novels are a bit of a cheat: they are not really great games, they are stories.  If it is gaming fulfillment I am looking for here, I will find little, as most visual novels are really closer to a book with accompanying pictures.  Given our propensity towards an oral history, a love of stories is implicit to human nature, it takes a real misanthrope to hate the idea of stories, and Hatoful Boyfriend's story is quite the stimulating yarn.

Germinating Gamination

Pardon the late entry, as this bizarro weekend I have primarily been enjoying having a cold.  It has been so long since I have been meaningfully sick that I had started to associate lesser bugs as significant illnesses, "Oh no, I'm feeling a bit tired today, I wonder if I have a bug?"  My current ailment would have none of that, it sat me right down and physically put me through most of the symptoms on webmd like it wanted to teach me what a real cold is.  The second day was spent almost entirely in bed, and since then I've been busy dripping or expectorating.

Sadly, this has somewhat derailed my earnest attempts to develop a game of my own in my free time.  I have determined that the platform I am developing on does not mean a whole lot if I cannot even decide what I want to make.  I have a few interesting ideas but, as anyone who has given game development more than a cursory glance can tell you, having ideas is the easy part, the devil is in the details.

Thus, my current game development endeavors seem to be doing like this:
  • Develop a basic design document interesting enough that it is something I am genuinely interested in developing.
  • Jump into Game Maker and take a few fledgling steps towards realizing that game idea.
  • Get so derailed in the process of navigating the integrated development environment that I forgot why I was excited about my game design.
  • Realize it's time to stop getting so entangled in the IDE and shift my brain back to the drawing board again.
  • Repeat until game completion (a hypothetical state).
In a way, it's writer's block; here is a creative endeavor in which motivation is difficult because I am so inherently self-defeatist.  I may not be the pickiest computer gamer in the world, but after some 30 years of computer game experience it's pretty dang hard to find games that excite me.

Honestly, I find motivation easier if I simply tell myself that this is good mental exercise... and it is; using the computer productively in creative endeavors, and programming, is much better mental exercise than the day-to-day normally provides.  At least this motivational focus provides that immediate reward.

In any case, having a cold has been all the excuse I have needed to stop ramming my head against the grindstone of worthwhile endeavor, and instead procrastinate mightily with some pretty decent games.

TOME - Short for Tales of Maj'Eyal, is a "true" roguelike in that it embraces randomly generated maps, a single-character focus, turn-based mechanics, and dying in game means your character is permanently dead.  Except TOME is actually pretty forgiving, as far as roguelikes go.  The equipment has been streamlined to a few easy equipment picks, you get a number of "runes" and "infusions" that are potent enough to restore your character's health completely every few turns, and (on the default "adventure" mode) you actually get extra lives!
TOME has a number of good features.  Full graphical tiles.  A storyline that seems custom-fitted to every class/race combination.  Unique classes that play quite well with a novel skill set mix.  My first character, an "Alchemist," turned out to be a fellow who summons a golem (which can be outfitted with armor/weapons I find), throws alchemical bombs that can be charged with elements, and channels energies through his staff - a very wide variety of gameplay experience for a single character, albeit one of the most advanced in the game.  It is clear that TOME has received a ton of development time, much of it open-source community-based.

Yet, being a picky gamer, it only took me about ten hours to find bits of TOME I would have done differently.  The balance is too loose; I could not help but think I found my experiences in Dungeons of Dredmor to feel a bit more "hardcore," as far as roguelikes go, with a tighter overall balance and feeling of overcoming consistently stacked odds.  Perhaps the bit where it sticks the most in TOME is that it scales: you enter a new dungeon and the mobs are automatically leveled to whatever your character level is when you entered, within reasonable limits, and this does not jive well with my feeling of progress in a roguelike game.  Well, if I am going to be that picky, I should really make my own damn game!
Dungeon Of The Endless is officially out, no longer in "early access," and I am officially putting it on my highest pedestal for solid indy games, shared only with FTL.   Many people encounter this game and are thoroughly confused because they are so used to clones.  To describe this game in terms I used earlier:
To try to describe this game in conventional terms might just confuse you. Yes, it has aspects of roguelike games, real time strategy games, role playing games, tower defense games, and board games. Personally, I think of it as mostly a board game with each "turn" divided into a time before you open another door, which will reveal treasure, a merchant, waves of enemies, blueprints, or something else - you never know! Then it's a mad scramble reminiscent of a real time strategy/tower defensive hybrid to keep everything upright until the next turn. When deciding who to level up or equip with gear, that's where the RPG aspect enters the picture.

This board-game like mechanic can be a good thing because it introduces a lot of interesting choices. If I assign my hero here, will they be able to make it back to where they need to be if enemies appear there? Do I spend my industry points on producing more industry points, producing things I need, or do I try to scimp on points now so I have more available to use on the next map? Do I invest my dust in that great piece of equipment, or is it more important that I power rooms? These choices are clever in that many of them are just compromises; there's often not a "right" choice, just a good guess at what might work out in the long run.

I like a game that makes me think. Yet, Endless Dungeon is rarely ever overwhelming, just rich with important choices to make and requiring you pay attention when your heroes are fighting so they don't get slain needlessly. 
I think that is as apt a description as you are likely to find on the game mechanics.  Cosmetically, Dungeon of the Endless is festooned with gorgeous PC sci-fi pixel art.  Perhaps beauty is in the eye of the bolder, but I absolutely adore this game's style, not only in how it looks, but also the music and sound effects.  The only reason I am not playing it this very minute is because I am supposed to be trying to do something productive with my computer.
Then Transistor hit that magical "50% off" mark that automatically activates my "buy game off of Steam wishlist" reflex, and I had to play that, too.  Bastion was fantastic, this is made by the same people, and Transistor is similar in that it is an isometric-perspective in a fantastically wrought environment whose narrative is galvanized by constant quips of a baritone narrator.  Both games are frequently referenced as masterpieces.

Transitor does not require as much twitch skills as Bastion because you do your best work in the paused strategic planning mode, Turn(), that has you just plotting out what you will do to perfection, then execute it and see it done. Given that kind of power, Transistor is not too hard, but you can activate "Limiters" that boost xp rewards in exchange for raising the difficulty. Things are kept interesting by a clever mixing of various "functions" that each can be slotted as one of your four active skills, a buff to a slotted active skill, or a passive benefit.

Clocking in at about 7 1/2 hours to complete, Transistor is one game whose content does not outlast the appeal of its robust game mechanics. However, there is a "recursion" mode which is basically "New Game+" (start over, with minor differences from the first run, retain everything you gathered during your first run, even gather doubles of the same "functions.") Though, even with recursion mode, you'll eventually run out of challenges and level upgrades, and then there's not a whole lot of point to keep playing. This is not necessarily a bad thing, Transistor keeps things short and sweet.

The music.  Oh, God, the music.  At least as gorgeous as the game itself, especially if you like modernized female vocal jazz.  But the more I say about Transistor, the more I spoil, so lets leave it at that.

Overall, I suppose I managed to play 7-13 hours into each of three games this weekend, watch some videos, browse some boards, and burn through 10,000 labor points in ArcheAge.  Honestly, much of the the last five days have gone by in a cold-addled haze, and I feel just a tad cheated about that.  Better luck next weekend, me.

Faith Lost; Rebuilding

ArcheAge is turning out to be a rather poor use of $162: the game is being undermined by catastrophic security flaws, with no less than ten kinds of hacks running rampant at this time.  While hacks are not uncommon in online games, to have this magnitude of security flaws is downright criminally negligent, especially in what is implied to be a secure persistent-state universe game.  If there is a class action lawsuit brought against Trion Worlds and XLGames, my name would probably be amongst the plaintiffs: I want my $162 back.
Technically speaking, I suppose that is what you get for porting over an earlier version: all the hacks that were patched out of the South Korean version are getting a second airing over here, except without any impediment of the time that was needed to create them in the first place.  Either that, or Jake Song's company absolutely sucks at security, and they never got around to plugging those holes... if that is the case, I am never buying into a game developed by him or his company again.

As a relative gaming zealot, I find cheating in online games abominable.  When you cheat in a single player game, that is fine, you are defining you preferred game experience, you are cheating no one but yourself.  When you cheat in a multiplayer game, you are physically forcing other players to be the foils of your preferred game experience, and that is truly vile.  Say what you will about the problems of the world overshadowing anything to happen in a game, I would reply that virtual wrong-doing has the potential to be just as malicious as the real.

To me, cheating in an online game is pretty much wearing a big sign around your neck reading, "I am an ignorant misanthrope who thinks nothing of cheating others, I might not get to do that as much as I would like in real life, but I can certainly do that as much as I want here."  Some would say they are should be allowed to misbehave so they can let off steam and not commit these crimes in real life.  In the imaginary realm my own megalomaniacal fantasies, I have more permanent solutions in mind.
I suppose it does not matter much: my involvement in ArcheAge has pretty much fallen to logging in once every 1-3 days, spending my labor points, maybe making a trade run or two, and logging off.  I have not done battle in weeks, not against players, not against mobs, and I feel as though I hardly even know how the moves in my hotbar work anymore.

I am attempting to shift more priority into my game development endeavors because, as I have noted many times before, I have been a gamer so long that very little of what game developers come up with can really surprise or entertain anymore.  If my recent finishing of Ace Attorney: Dual Destinies is of any indication, I can certainly enjoy a good visual novel, but the appeal was probably more about a story than gameplay.

My target game remains the same as it has been for quite some time: Minecraft, with Civilization on top.  Or so I said.  Actually, it seems what I want is a survival game where the goal is not just to survive, but rather to build something of lasting purpose.

Purpose is the keyword here, and it is a damn hard one to nail down.  Games are, in a way, a microcosm of life itself.  Just as life has its goals and its rules, so do games.  You can bumble your way through life, accomplishing little, you take little purpose to the grave with you, but you at least have that.  When you design a game, there can be no bumbling about, you are responsible for adding a good purpose to the game.  What is the meaning of the game I mean to make?  Well, if they're microcosms of life, then what is the purpose of life?  Uh oh.
Like most problems in life, I am probably over-thinking it; truth of the matter is, I know the answer, I am just having a hard time deciding.  If you have ever written a story, you may come to realize that good stories communicate purpose.  To add purpose to the game is to add a good story.  The whole Civilization level can be completely supplanted with a story; I have been looking at Civilization as an advanced procedural story generator.  What I am having trouble deciding is what story I really want to communicate, within a framework of being a survival game.

It has occurred to me that both Planet Explorers and The Sims Medieval are actually pretty close to the game I want to make.  Planet Explorers is Minecraft with a story added via quest hubs, but I find I am thoroughly tired of questing.  The Sims Medieval would be excellent... if the world building were not too abstract to feel virtual worldly, and I was allowed to focus on a single hero instead of jumping around from hero to hero... and it was not a The Sims game.  Animal Crossing is actually pretty close, but it stops short with deliberately insignificant subplots and making the junk collection mechanic the primary goal.  The point is that I have enough near misses to ferret out where I want to be... granted, it's still a fairly wide aperture.

In any case, I am showing renewed interest in the GameMaker platform after discovering that YoYo Games is planning on bundling the YoYo Compiler for free soon.  If it really does provide significantly better performance for games made in it, then it seems like a natural choice for my lofty ivory tower game concepts.  Even without the benefit of the compiler, I have tested the A* pathing routines and found them to be remarkably fast, certainly faster than the soft-coded version I made in BYOND.   I could see simulating a whole 2D world as a viable possibility in that engine.
Further, I think perhaps the more code-centric approach to much of what GameMaker does may be better off for me.  Technically, you are writing code in Construct 2 and Clickteam Fusion when you use their event builder, but while this visual approach certainly makes things easier, it can be potentially impeding once you know what you are doing.  When I was looking down the list of games made for the three engines during the benchmark entry, I could not help but notice many of them utilized some degree of procedural generation.  Excellent: procedural generation has great potential, if done right.

I realize that the main thing holding me up is not the platform at all, although power will be an important consideration down the line.  The main holdup is I need a complete design document.  More, I need a complete design document that looks good enough that I am excited to want to produce the game.  If I could do that, much like writing a great story concept, perhaps my muse will be committed enough to make it happen.  It is tricky, though - I am better at programming than I am at making design documents.  I am also a lousy artist, which might cause trouble down the line.  In any case, sitting here blogging about it will not get it done.

A Tale Of Three Benchmarks

Yesterday had me perform an experiment.  Scientifically speaking, it was a lousy experiment, with no real control factor and a thousand and one different ways to interpret the results.  However, I learned something nonetheless.

The goal of the experiment was to confirm whether or not my assumptions about three popular game engines were correct, at least in one important factor: processing speed.  So I set the specifications of a benchmark to create in each that had the following specifications:
  • 1028x800 resolution, windowed.
  • Bullets made up by 2x2 pixel sprites of a single color (black).
  • The bullets would bounce off each other.
  • The bullets would bounce off of the edges of the window.
  • There will be two text displays.  One displaying the frames per second, the other displaying the number of active bullets.
As both Clickteam Fusion 2.5 and Construct 2 attempt to cap themselves at 60 FPS by default, the goal is to see how many projectiles bring the engines down to 50 FPS on the same platform: my Windows 7 OS personal computer.

Experiment 1: Construct 2.
Having just recently finished an introductory tutorial on Construct 2, I was familiar enough with it to easily cobble together a 2x2 "bullet"-type movement object and put it against a black background.   I am using the free version, so the HTML5 default target platform was the most suitable for my Windows 7 target platform... why no standalone .exe, I wonder?   As with the other tests, unrelated settings were left at default.

The HTML 5 target export worked like a charm, but it only took about 170 active bullets to get my frame rate down to 50.   This was in Firefox; it was slightly faster in Chrome, but not by much (about 200 bullets).  This is the limitation of a javascript-centric engine, and I suspect that the frame rate would not improve even if I used their Windows.exe exporter (unfortunately not available in the free version, although there was an Windows 8 Store App exporter).

Experiment 2: Clickteam Fusion.

I had completed all of the Clickteam Fusion tutorials a couple weeks ago, but apparently that was not enough for it to move from my short term memory.  I ran into three problems replicating the code I made in Construct 2:

  • How does one spawn an object where the mouse is clicking?  It seems I only had a choice of spawn an object at a fixed coordinate or relative to something already in the screen, and there was no "mouse" object.
  • How does one keep the projectiles on the screen?   "If bullet is outside layout, bounce it (off of itself) back into the layout" was difficult to find, but I eventually recollected it was under the "test position" section.
  • How does one perform a textual display of FPS and entity count (from an incremented global variable)?  Turns out that the "text" objects were bad at this, there seems to be no means to do it, or else Clickteam Fusion's lack of Intellisense made it unable to point it out to me.  The answer is that you use "counter" objects, instead.
It's boggling, really - both Clickteam Fusion and Construct 2 do most things quite similarly, but there's just enough "French logic" in the wording of Clickteam Fusion to make performing the most rudimentary operations require some reinterpretation.

I eventually cobbled together "close enough" code above, and the results were that I could pull 900 moving projectiles before the FPS fell to 50 with my hardware. (Funny enough, this was only in the Windows-engine driven "preview" mode.  The free version of Clickteam Fusion only allowed me to build HTML 5, and their HTML 5 optimization is currently awful: it could only put out about 25 projectiles before the FPS had already fallen to 50!  Way to put your worst foot forward, guys.)

Experiment 3: Game Maker.

Alright, so I haven't dabbled with Game Maker Studio in months.  I tried to put together the benchmark in an identical manner to the other two, but found myself floundering because it has been so long since I used it.  Game Maker is simple compared to coding from scratch, but significantly more complicated compared to either Clickteam Fusion or Construct 2, it is just that much less visual even if they did bend over backwards to add "drag and drop" methods to nearly everything.

Where the latter two go out of their way to differentiate different types of objects, Game Maker treats all objects as the same and has you define how they behave.  I have a certain respect for that, I like an engine that lets you get at the nuts and bolts of things.  (In fact, if you want to get really technical, you can even see the memory addresses of your various elements!  I am guessing certain functions can make use of those addresses, because otherwise there would be no point in revealing them.)
I had forgotten how to do something as rudimentary as display my frames per second and entity count, and I could not figure out how to add watch variables to Game Maker's debugger.  Fortunately, I already created a similar benchmark project in the past.

Oddly enough, I could never get those projectiles to stay on the screen, even when I resorted to trying to wrap them around instead of bounce off the edge.  It's probably possible, I'm just doing a lousy job of coding in Game Maker.

Even if the projectiles were not on screen, the engine was still simulating their movement, so this would work for benchmarking purposes.  Game Maker could pull around 600 projectiles before the FPS fell to 50 on my hardware.  This is without the benefit of the Yoyo Compiler, which is advertised as providing 100x the speed, but I do not yet have access to it.

Conclusions.

It turns out my initial assumptions were correct.  Clickteam Fusion can produce the most optimized products for Windows, Construct 2's javascript dependency made it the slowest, and Game Maker had some optimization but was not quite as fast as Clickteam Fusion (unless you get that Yoyo Compiler, although I cannot verify this firsthand).

I would like to reiterate what was saying earlier: these findings lack sufficient controls to be considered scientifically accurate.  The main problem is that there is probably quite a bit of black box mechanics going on in each engine, and all I did was test one facet of that engine (projectiles) and possibly did not even code them in the most efficient way possible.  It's possible each engine has strengths and witnesses in the performance of different kinds of operations.
Considering the kinds of games that tend to come out of these engines, and I am inclined to believe this frame rate is not really sufficient for truly impressive games.  When I look at something like Freedom Planet, or Noitu Love that is the very best that the engines seem to be doing, two Clickteam engine products that actually look like pretty good games for early 1990s consoles like the Sega Genesis.  All these engines really need a lot more power to produce some truly impressive games, it's really no wonder a lot of serious developers have to resort to developing their own engines.  Power equals brains, and this is what PC games need the most.

It's a pity, because the worst-performing engine, Construct 2, is an absolute joy to develop in.  Coding this benchmark on that IDE went a lot smoother than the others, and this is not completely because I had completed its tutorial so recently.  It just has a radically improved GUI over the product it was initially created to supersede, and the implementation of intellisense auto-completion works well and made a big difference.  Despite not being a very good performer, Construct 2 is a very tempting purchase for its incredibly user-friendly interface and an extremely attractive pricing structure, and it is probably going to be the choice for any 2D product that does not require much in the way of power, especially on the HTML 5 platform where speed really is not much of a possibility anyway.

Coincidentally, I was just poking around Yoyo Games's website and it looks like they're including the Yoyo compiler for free soon, targeting November 6th.  This could radically alter the face of homebrew games, as its advertised performance gains would be adequate to make some really good PC games, and many people (myself included) would be willing to humor a tougher learning curve if it means getting performance power severalfold that of the alternatives.  I look forward to giving it a try with the new compiler and seeing if the advertised performance is as good as they say, even 1.5x would put Game Maker neck and neck with Clickteam Fusion, but 10x-100x would blow everything else away.