Skip to main content

Learning BYOND, Day 1: Little Digital Souls

Contrary to my previous entry, I’m not finding BYOND to be the mind-reading device I was hoping it was. Instead, I’m wrapping my head around how to code my creation. This is not just that dinky script modification stuff I was doing in Neverwinter Nights 2 or Elder Scrolls IV: Oblivion, but rather defining a completely event-driven game already running within the generous framework provided.

Pouring over manuals and tutorials reveals that reading about it is one thing, actually doing it requires more than a skim. Several dendrites have died needlessly, however, progress has been made. I don’t have much to say about today’s progress, so this will be a short entry. However, I will leave this hard-earned gem:

I thought I knew was Object Oriented programming was, having dabbled with Java a bit in the past. However, I was mistaken, and at least part of my mind was still mired in the procedural past. Unlike Java (a completely object oriented language), BYOND offers no point in which the program starts; there’s no main() starting function. Instead, the starting point is the BYOND game interpreter itself, and what the would-be BYOND designer is given is an entirely event-driven model.

Nothing in BYOND happens unless an event sets it in motion: the server reboots, a player logs in, a tree falls in the forest (and the server was there to hear it). The event triggers a whole newly spawned process, running on its own independent thread, until it is completed. Behind the scenes, only one thing may be happening at a time due to the limitations of the hardware. However, to perception of the players and the BYOND programmer, there’s several things running at once at all times.

It makes sense. After all, BYOND was made to simulate virtual worlds. Each active PC and NPC needs no less than their own little digital soul or else the virtual reality fails to acknowledge them when the time is right. Trees won’t fall in the forest if the universe is too busy doing something else to enact gravity, so they need their own slice of time (preferably immediately after the axe has finished its work). And so on.

Suffice to say, it’s been a mind-expanding experience. I’ve never worked on software that worked quite this way before, and it’s taking some adjustment. However, like learning music, mathematics, or (most appropriately) a foreign language, anything worth learning can be learned in persistence. (Unless you die trying, of course. Pacing is important!)

Comments

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…