Skip to main content

Learning BYOND, Day 8: Is The Game

It’s hot and it’s a Saturday, but I don’t care. I’ve only got another 9 days until the school semester starts. Plus, I’ve developed a relatively good design in my head, now it’s time to see it through. Back to work, slacker.

Today, the Graphical User Interface was on the agenda. A reoccurring theme I picked up many time from “Game Design: Secrets of the Sages” (merely a compilation of developer quotes and pictures, but not without some insights): “The GUI is the game.” The saying means that what the user plays is actually the graphical user interface and therefore literally is the game. No wonder some consider it the hardest part of making a game.

I’ve learned about three powerful elements that I’m looking into right now.
  1. The newly introduced (as of BYOND 4.0) skin creator. This is a really nice suite that lets you set up your GUI configuration however you like. It’s a graphical interface creator not unlike one I’ve already been introduced to when using Visual Basic.

    It seems pretty complicated, but a good tutorial on that can be found here: Making skins in BYOND 4.0: A Lesson

    BYOND’s 4.0 GUI customization is both extensive and remarkably user-friendly, but I’ve still got to figure out how the code interfaces with the GUI elements added. It seems as though all you really need to do is manipulate them via their tags using the “winset” procedure. Could it really be so easy?
  2. Menu Items
    I figured this one out on my own. After opening up the same file where the macros and menus, and windows are defined (the .dmf file), go into the “menu” menu. There, it’s quite easy to add additional commands by recognizing the format is the standard column>>command format that’s likely at the top of your browser as you read it. In the “command” section is simply a verb that’s passed to the parser. So, define that “verb” on your client object just like any other verb and the functionality will go through.
  3. Objects assigned to the client.screen list.In a way, the “screen” variable on the client object is similar to the “image” variable (the same I discussed at length at Day 7) in that it is a list of things that are continually displayed to the user on the client level. (Meaning other users won’t see what this user is seeing.)

    However, it differs considerably in that what’s being displayed are interaction-capable, atom-style objects. This is really cool because you can define all sorts of interactive verbs on objects, while images can’t be clicked at all (though I’m sure an imitator could be jury-rigged).

    Assigning fully manipulatable objects to be used is actually remarkably easy. I recommend this simple tutorial on the BYOND developers section. It’s quite basic and does not cover more complicated tricks, such as adding mouse interaction by defining the MouseDrag() and Click() functions on the objects you’re adding to the screen, but if you’ve been using BYOND for awhile those things are self-evident.
The skin editor is undeniably more powerful, but the client.screen object list is still a valuable tool for adding things such as on-map controls. I’ll be learning them both. As for pull-down menus, it’s hard to say what use I’ll get out of that — it doesn’t seem very immersive for a RPG-like game.

After learning these methods, I can pretty much make any point-and-click windows-based interface I can imagine (at least so long as I don’t mind that the core of the game is a 2d tile-based one… and actually, I think I prefer it). However, just because BYOND makes it easy to create and display half-dozen panes at once doesn’t mean I should.

My years of game-playing experience tells me that a very simple interface is much easier for the user to handle. Perhaps the difference between a good designer and a bad one is just how much complication you can get across in a user-friendly manner.


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…

Greasing The Grind: Adding Lasting Appeal To Virtual World Sandboxes

Game design, being about entertainment, is not as much science as art.  We're coming up with interesting things that the human mind likes to chew on that "taste" good to it.  Different people find different things, "Fun," and a game designer is tasked with coming up with fun, appealing things.  As pertains to virtual world sandboxes, I identified three of them.

Challenge Appeal.

Dwarf Fortress and Fortresscraft Evolved have the same end game appeal preservation mechanic: wealth equals threat.  The more money your Dwarf Fortress is worth, the bigger the baddies who will come for you, including a bunch of snobby useless nobles who do nothing but push dwarves around and eat.  The more energy you make in Fortresscraft Evolved, the more and bigger bugs come to shut down your base.  Rimworld does something a little different based off of which AI Storyteller you choose, but it generally adds time to your wealth accumulation when deciding what kind of threats to throw a…