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

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…

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…

Sometimes, The Cat Skins You

The formula for cat girls is simple enough: young girls are cute, cats are cute, so young girls who are also cats are cute times two, right?  ... Cat Planet Cuties (a.k.a Asobi ni Iku yo) does not stop there, it includes girls with guns, nudifying weaponry, and even failed romantic comedy that shows lots of skin.  Cat's out of the bag: Cat Planet Cuties is basically straight up wish fulfillment.

The overall plot is pretty simple.  The Catians are a race so advanced that they have not changed in over 70,000 years.  They discover Earth, a planet whose people have uncanny resemblances, right down to speaking the same language!  Desiring an escape from their cultural stagnation, they rename their own planet from Earth to Catia and dispatch a scout to assess the viability of first contact with this new Earth inhabited by humans.  High jinks ensue.

Other than an excuse to see some fun sci-fi devices, the plot sucks. Let me count the ways:
Kio Kakazu - The male center of our harem, a 1…