ID:121311
 
Keywords: motivation
Well, Skyrim was fun. But, after 145 hours of it (according to Steam), I largely stopped caring. Bethesda is great at making worlds, but not so great at game balance, and when my level 61 character was doing over 400 damage bow attacks (over 1200 damage when a sneak attack) the game was largely in ludicrous territory. Something about the idea that I'm doing several hundred times more damage with the same pointy stick really killed the sense of immersion, and immersion is pretty much the whole appeal of Bethesda RPGs. Maybe after I give it a rest a bit I'll feel differently and be able to play it some more.

Soon afterward, I found myself in a strange void of game dissatisfaction. I'm not entirely sure what brings this mental state on. Perhaps it's boredom with all existing games I have, but I need only look at my list of available games to know that surely there's something worth playing in that mess. Arkham City, for example: there's very little wrong with that game at all. No, the issue is internal to me: for some reason, gaming strikes me as the wrong thing to do.

In this case, I've found creative expression can help. So I'm sitting down again to BYOND and wondering WTF I plan to make. I've this vague idea of an open-ended sci-fi multiplayer Dwarf Fortress / Minecraft fusion in BYOND? Sounds wonderful, but anyone who has attempted it would be quick to inform you that the devil is in the details. It is wrestling these details, time and time again, that have tired me out and prevented me from seeing my projects through to fruition.


ASCII Sector is something that could be done in BYOND, but I'm not one for flat out imitation.

Still, this is the first time I attempted game development on zoloft. Perhaps there will be something interesting to show for it this time.
First thing done when I came back:

mob

verb/TestObjLimit()

set background=1

var/iterationsRun=0

while (1)

new/obj(locate(rand(1,world.maxx),rand(1,world.maxy),rand(1,world.maxz)))

iterationsRun++

if (world.cpu > 90)

usr << "[iterationsRun] objects created."

sleep(5)

if (iterationsRun > 65535)

usr << "> 65535 objects!"

sleep(10)

Yes, in fact, if you go over 65535 objects, Dream Seeker crashes.
An important consideration for universe-sized games.

But I had no problem creating over a million datums. Though it was pretty laggy by the 2 millionth datum:

mob
step_size = 8

verb/TestObjLimit()

set background=1

var/iterationsRun=0

var/list/testdatum/testDatumList = new()

while (1)

testDatumList.Add(new/testdatum())

iterationsRun++

if (world.cpu > 90)

usr << "[iterationsRun] datums created."

sleep(5)

if (iterationsRun > 65535 && (testDatumList.len % 10000 == 0))

var/testdatum/testDatumToRetrieve = testDatumList[1]
var/testDatumData = testDatumToRetrieve.name

usr << "[iterationsRun] datums in existence,[testDatumData]!"

sleep(1)

testdatum
var/name = "Fred"


So I guess all the effort I invested into moving my universe from nested obj into datums was worthwhile, even though it makes it a lot harder to work with.
Geldonyetich wrote:
First thing done when I came back:

>
> mob
>
> verb/TestObjLimit()
>
> set background=1
>
> var/iterationsRun=0
>
> while (1)
>
> new/obj(locate(rand(1,world.maxx),rand(1,world.maxy),rand(1,world.maxz)))
>
> iterationsRun++
>
> if (world.cpu > 90)
>
> usr << "[iterationsRun] objects created."
>
> sleep(5)
>
> if (iterationsRun > 65535)
>
> usr << "> 65535 objects!"
>
> sleep(10)
>

Yes, in fact, if you go over 65535 objects, Dream Seeker crashes.
An important consideration for universe-sized games.

But I had no problem creating over a million datums. Though it was pretty laggy by the 2 millionth datum:

mob
> step_size = 8
>
> verb/TestObjLimit()
>
> set background=1
>
> var/iterationsRun=0
>
> var/list/testdatum/testDatumList = new()
>
> while (1)
>
> testDatumList.Add(new/testdatum())
>
> iterationsRun++
>
> if (world.cpu > 90)
>
> usr << "[iterationsRun] datums created."
>
> sleep(5)
>
> if (iterationsRun > 65535 && (testDatumList.len % 10000 == 0))
>
> var/testdatum/testDatumToRetrieve = testDatumList[1]
> var/testDatumData = testDatumToRetrieve.name
>
> usr << "[iterationsRun] datums in existence,[testDatumData]!"
>
> sleep(1)
>
> testdatum
> var/name = "Fred"
>
>

So I guess all the effort I invested into moving my universe from nested obj into datums was worthwhile, even though it makes it a lot harder to work with.

65535 is the highest port you can host on in Dream Daemon weird >_>