Skip to main content

Crossing Paths Again

As far spending stay-cations go, I think I can take a certain yuppie pride in this one.   Every single day for the past 9 days, I got my lazy arse up on a treadmill for about half-hour, mostly to make sure I was adequately woken up to do something productive.  It worked.  Over half the rest of the day was spent honing my game development skills.

I figure you are probably more interested in what I did with the rest of the day; it is just a heck of a lot more interesting talking about completed games than it is talking about me bashing my head against code.  So lets put that best foot forward, and just leave my game development talk to this: I am definitely getting better with practice.

Revisiting: Animal Crossing: New Leaf.

It has been awhile, I actually managed to wean myself off of the New Leaf for over a year now.  However, given how my coding routine has personally mandated half-hour breaks every once in awhile, I can complete the daily grind in this game in about two sessions.

Daily grind is right; every day in Animal Crossing is the same thing:
The adorable bunny girls are
pretty much the only reason to keep
playing Animal Crossing.
  • Shake all the fruit from the trees.  Re-plant perfect fruit trees as necessary.   Trees fruit every few days since the last harvest, so passing up on harvesting them is money down the drain.
  • Bash all the rocks in town with a shovel.  One rock will be the money rock, the quickest way to make money in the game, so brace yourself against something.  Another rock, a "fake," will break apart when struck with your shovel, becoming ore.
  • Dig up anything you see buried.  It will either be a fossil, gyroid, or pitfall seed.
  • Go to the museum.  Identify all fossils, donate any the museum does not have.
  • Sell all the junk you found to the Re-tail. Given that you only have so many inventory slots, you likely will have done so several times in the earlier steps.  If you see a villager wandering around Re-tail, push them into some of the junk you're selling, they'll give up about twice what Re-Tail would give you for the item up to a cap (about 10k bells).
  • Chat up every villager you see.  Sometimes they will just chat you up in return.  Usually, they will ask you to perform a favor, which will make them like you better and probably give you something to sell.  If they are considering moving out, you have the option to talk them out of it. 
  • Go to Timmy and Tommy's store, painstakingly compare everything they are selling to what you have in the catalog machine.  If the random number gods are smiling on you, you find something you have not already put on the catalog, and purchasing it will allow you to use the machine to buy it again later.
  • To do the same with wearable clothes, visit the stores belonging to The Able Sisters and Kicks.  (It's rather awkward having to go back and forth to the catalog machine for this, no wonder the official prima guide allows you to just check things off you have collected.)
  • Take another trip to Re-tail to sell all the junk you bought just so you can buy it again later if you need it.  Alternately, fill out up to four letters and send that junk to your villagers because there is a fair chance they will reciprocate.
  • Put some of the money you made today towards paying off your house loan.  Start a new house extension if that was paid off yesterday.
  • Put some of the money you made today towards paying off the city project.  Start a new city project if that was paid off yesterday.
  • Congratulations, you have completed your daily grind.  You may now save the game and quit.  If you still have not had enough, engage in fishing, bug collecting, diving, or visit Tortimer Island for mostly more of the same with a hefty bell-earning bonus attached.
That is quite the diversity of activities but, given enough days of this, it will nevertheless get boring.   You could say this is partly my fault: if you don't want to do the same thing every day, then don't.  But this is which way the incentives lay, the earning of bells (the name of the game currency) for the only truly persistent things in the game: your house, its contents, and the state of the village.
At the end of the day, I am left lamenting that the company you keep (your fellow villagers) is too basic to care about them.  There are only eight "personalities," and the difference is primarily what dialogue comes out of their random number generators.   They barely have any memory at all, I think the dialogue may reflect if you have done enough favors to earn a positive relationship score with them or not, but that is about it.  They are nevertheless a proven model of how procedurally generated townfolk can be done, and that is relevant to my interests.

Relevant Game Development Tie-In.

At the risk of souring my motivation to develop my game, I am going to tip my hand slightly and say that the Animal Crossing series reflects the kind of game I want to make because I like the idea of procedurally generated microcosms.  The primary reason why I am even developing a game of my own is because I an unsatisfied with current microcosms.  Granted, this is hardly saying anything new: this would seem to be a recurrent goal on this blog.

Alright, then, to be more specific, my current project in GameMaker Studio is to harness the power of abstraction from earlier games (like Ultima V) and see what kind of microcosm I can pull off with present-day hardware.  How is that supposed to work?  Well, when Richard Garriott and company made many of games, he had to work in assembly language on computers with only single digit megahertz processing power.  So, despite any conjecture that GameMaker Studio loses some power to not being a lower-level programming method, if I were to adopt some of these earlier methods of overwhelming efficiency, I should certainly be able to realize some incredible microcosms on computers with gigahertz of processing power going for them, right?

For the sake of morale, I am going to say that completion of the project is not truly my goal, because completion is always tantalizingly out of reach and, if I grasp for it for too long, I am liable to ragequit out of frustration.  No, the real goal needs to be "to refine my craft" because, whether or not I succeed or fail in making progress, I will always succeed in practicing .

Granted, even having practiced a bit in it now, I do have a few points of awkwardness in GameMaker Studio I would like to complain about:
  • The IDE does not track variable names defined in scripts at all, so you only really know if you mistyped a variable name when the runtime error fails to find the variable.  Fortunately, it does remember the names of scripts you've created, and you can even define an intellisence reference for them.
  • The room builder is so awkwardly laid out that I actually feel more comfortable drawing my room with code, whether via the "creation code" portion of the room or via objects you place in the room.  It is pretty bad when the key to using the room builder comfortably is don't use the room builder.
  • GameMaker Studio is only quasi-object oriented.  You have have one kind of predefined object, it has some limited capability to pull off inheritance.  This object has event handlers for a large assortment of predefined game events (including 16 "user" events which can be triggered manually but do not accept arguments and cannot be named).   Instances of objects have the ability to hold variables which you can define in the create event, which is similar to a constructor.

    That is about it.  You do not get the power to do cool things like code custom interfaces directly into the object.  You cannot define objects as variable within other objects or even create custom data structures.  I cannot pull values or run code from objects that have not been instantiated.  I find myself writing a lot of custom scripts to get around this, specialized for performing specialized operations for specific kinds of objects, and I have noticed that the built-in functions are built similarly.

    The result is workable, but it hearkens back to earlier versions of C and is a real downgrade for those of us who have been spoiled by more modern languages.  BYOND has a lot better object oriented programming support than this.  However, BYOND uses an interpreter, and I suspect the reason why GML works the way it does is they try to pre-compile more code in order to achieve greater efficiency, which is not a bad idea when it comes to games.
Honestly, what do I expect?  You use somebody else's engine, you play by their rules, and all my complaints about GameMaker Studio mostly come down to growing pains to get used to their methods; the more I use the software, the more used I get to their methods, and the more I take a shine it.  If I keep practicing, I wager I could put together some impressive programming miracles.

I was sort of hoping to have coherent enough of a game together that I could be excited about playing with my fancy new dynamic content engine by adding lovely pieces for it to mix and match for unlimited adventures.  However, it seems that one eleven-day staycation is not going to be a sufficient amount of time to accomplish this, so I return to work in a couple days knowing that I will need to keep plugging away at it for many weeks to come.
Post a Comment

Popular posts from this blog

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…

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…

Stars Above, Earth Below

Now Playing: Stellaris This week saw me revisiting Stellaris, which just released a major overhaul which primarily made it so you have to path through stars in a certain order, allowing for better fortification.  Aside from that, though, how much has the game played since I last played it?
Honestly, maybe it is the fact that the only major game-changing DLC I have is the Utopia expansion, but I feel Stellaris not changed enough; Stellaris remains an excellent storyteller, but only lackluster 4X game.  Some standout gameplay impacts I noticed:
The new emphasis on starbases, their building and upgrading, is a major game changer.  You now have a whole extra source of food and energy that can be generated by them, and an upgraded starbase with defense platforms is basically a doomstack that thwarts invasion through that chokepoint node.Warp travel is so slow that it takes years for my fleets to get anywhere.  Perhaps, once I unlock the warp gates, things will speed up a bit.  As a result…