Home Artists Posts Import Register

Content

Hey everyone,


You will be receiving content in one form or another by the end of the month.


Truthfully, a large chunk of my Life Sim Dev time this month has been spent on, well - learning how to program better.  


There were extremely powerful tools, and more effective ways to structure things, that I never knew about.  I have no programming background or formal training - so I've been learning things as I go.  This is a large part of why Life Sim development is so slow.


Here are a couple of examples:


Objects.  Objects are kind of like variables... but they can have variables within them  (to simplify it).  At first I thought this wasn't needed, since you could simply make more variables for everything, but then I considered the following:


In Life Sim 4.0+  there will be all manner of items within the game.   And I'd like them to appear in more contexts overall.  So...  Consider a potion - it could be structured as an object like so  (this is NOT necessarily the code in the game, just an example)


<<set $potion1= {

muscle: 3,

intelligence: 1,

stamina: 0,

willpower: 0,

value: 400,

weight: 1,

rarity: "uncommon"

gUseDescript: "description of girlfriend using it here"

bUseDescript: "description of boyfriend using it here"

purchaseDescript: "description of buying it here"

}>>


In the past, potions were simply a "potion count" variable (every potion with its own variable), and if you used one in the inventory, it would take you to a screen that increased a character's stats via a pre-written description.  This meant that a player /always/ had to be brought to that Use Potion screen, and every additional potion added to a massive wall of text within the Twine editor.  Potion applications were ultimately quite limited.


But this object provides a huge number of opportunities.  


So, first off - by using an object, we can prescribe virtually any effect to the potion we want; and as you can see - we can even have multiple effects (a +muscle and +intelligence effect).  


By putting descriptions in variables, the UsePotion screen can be streamlined hugely.  Instead of it holding dozens of descriptions, it can simply display $potion1.gUseDescript whenever the girlfriend drinks it. In fact, this can be streamlined so much, that UsePotion can become a 'display' passages, which means you can bring it up in other passages.  (In simpler terms:  we could use potions almost anywhere, not just from the Inventory in the Living Room)


Next, with separate Value and BuyDescript variables, we can restructure stores, so there's a single purchase screen.  And this item in particular could show up at multiple stores without needing to repeat text.  Also, with a Value stat, it'll be far easier to implement something like selling items to merchants (as a career path).  And for implementing discounts at stores.


Those of you paying close attention might have noticed that this means a powerful crafting system can be implemented with this.  Since we can modify the attributes of Potion1 at any time, we can add an Alchemy Brewing station that straight up creates a potion (by overwriting the attributes of Potion1).  this could be controlled by only allowing the player to brew in X number of potion slots (Potion1, Potion2, Potion3...).  (For example, think of:  "Create potion in slot 1;  Use potion in slot 1, etc.")



Arrays

This is still quite new to me, and it'll take me a while to really take advantage of them.  But basically, an array is kind of like a collection of variables.  These will help organize things very nicely.  


In the past, in order to denote whether an item was bought or not (like the video game console, or fiction books), I would use multiple variables for each:  $gameconsolebought = "false";  $fictionbooksbought = "true"  etc.


But now, I can simply setup an array like so:

$itemsbought = ["fiction books"; "game console"; "mood lights"]


Then I can setup a statement that simply checks if the item (like "fiction books") exists within the array of purchased items.


Arrays will also be super useful for Perks.  Instead of needing to make variables like  $GirlPerk5 = "yes"  or whatever,  I can simply make a 

$girlPerks = [   ]

Array that contains all of a character's perks.  This will also be nice for things like Transferring perks, as we'll only have to remove a perk from 1 array, and add it to another, instead of setting up myriad <<if>> statements to represent every possibility.


-


The Gym


I'm hoping to put out some form of playable game of The Gym by the end of October.  But if I fail to make something remotely fun, then I'll simply post a huge amount of .txt descriptions that I've written and haven't been implemented in Life Sim.  Whether you read these now, or wait to enjoy them in the game is totally up to you!


The Gym itself will be an ongoing project, and I think some of you will actually enjoy it more than LifeSim proper.  (Those who care way more a bout the muscle stuff than the Life aspects)


90%+ of the content in The Gym will eventually make its way to Life Sim; so none of this is 'wasted time'.  The Gym is actually a nice playground for me to test things without having to navigate the broad, sweeping consequences of changing aspects in Life Sim.


I'm also considering releasing another lengthy outline of development ideas, current state of planned mechanics, and other fun stuff; but only if people are interested in it.

- - -


I hope that the upcoming content, along with these updates, will be thoroughly enjoyable, and considered worthy of continued patronage.


If you feel that development of Interactive Games in general is moving too slowly, or that you aren't receiving enough for your patronage, and need to modify/cancel anything then I understand.  


Thanks again for your continued support everyone, and feel free to leave questions, comments, feedback, and the usual. 


- Magnus


Comments

CJoe

Very interesting post. There's always a kind of frustrating feeling when we discover formerly unknown features that could simplify our work. But at the same time, discovering the possibilities they offer is quite nice too. :D

RocketNowWow

Glad to hear you are restructuring the game for the better. As much as I eagerly want to play the Gym update, I know from personal experience it's much easier to code it the right way the first time than to rush just to meet a deadline. :) If you need any additional programming tips, guides, etc. let me know. :) Also don't forget that you rarely need to reinvent the wheel, it's likely if you are implementing a complex system that there already exists macros, code fragments, that other people have written that you can adapt to your code. :)

plane9

Just out of curiosity, when can we expect something that uses reaction speed besides the video games come into play?

magnuscyoa

I have a few ideas for that: Carnival Games Fighting (martial arts, etc.) Challenges during adventures As for an ETA, no idea, sorry =)

Bob Hogan

are you still planning on release?

Anonymous

Ditto what RocketNow said, I'll gladly be another resource for questions or tips or whatever.