Entrepreneur Central
Moderators: Bob the Hamster, marionline, SDHawk
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Just a quick update on things, followed by a long (partitioned) post about an upcoming plan that I would appreciate feedback on, along with any ideas about elements I may have overlooked.
This post will come in three parts to simplify reading. If you want to wait until I post Part 3 to respond, that's cool, but it's also fine if you want to chime in earlier. Be aware that all three parts are related to the same work.
Part 1:
First of all, before I address either the update or the plan, I just want to say a quick thanks to all of the people who have played any installment of Entrepreneur: The Beginning since its 2009 8-bit Contest days (versions 1.0 and 1.1), and especially to those who have commented on what they've played. I've gotten great feedback from the people who have given feedback. I know this game isn't everyone's cup of coffee (instead of tea, because I think this game should be everyone's cup of tea, even if it's impossible to make a game for everybody). For the people who aren't into business adventures, I can understand you avoiding commentary or overlooking this thread (even though I am, essentially, trying to make this game Harvest Moon for business tycoons--if Rockstar were making it, and doing so in glorious quasi-8-bit 2D!--so even if you haven't given it a look yet for fear it isn't your style, you should now or soon or eventually). For those who have played and enjoyed previous versions of the game (up to the most recent 1.2.1 version), however, once again I say thank you for playing, and I hope you're still with me on this journey, even as I near its tenth anniversary of development (in seven months!), and that you'll continue to give me feedback on upcoming versions. Your advice, encouragement, and support are always useful, especially when it comes with notes or video playthroughs or recipes.
Now, about the updates, I'm still learning C# and Unity, and doing so slowly, so I have no new updates on that front. In fact, I don't expect to do any work on the Unity version any time soon, as I don't want to begin until I understand the engine and C# programming well enough to develop a fair transition plan. I may even wait until v1.3 is finished before beginning migration work to the Unity version. By then I should have a clear understanding of what Unity can and can't do for the game, and a clearer picture on whether it will even be worth it to migrate (as of now, I still think it will be). But for now, there's no actual progress on that front. I'm still getting an education, and doing so at a leisurely pace (meaning the video course I've subscribed to is taking a while to update its lessons, so I'm on a slight pause there). I expect to pick up on that again soon.
Version 1.2.2 is coming along nicely. I've recently had a second look at the new item creation system and decided I could do better, so I started a slightly more parts-dependent system than the currently in-development version, but an ultimately better and faster design, which essentially groups items by type and establishes certain parameters on-the-fly based on type, so that I can spend less time actually passing the script item information based on every defining quality, including those shared by many, and more time getting to the point. The goal is to simplify items enough that the only new information I have to pass is the information unique to that item only. It may not be so simple for a few rare cases, but it should at least be that simple for copycat items like coffee beans, garnishes, and so on. Again, item creation is the central hold-up for 1.2.2, and ultimately new content, so once that's finished, the game will be in good shape again.
That doesn't mean new content isn't in the works, however. Along with new items, categories, and so on, I'm invariably reshaping previous designs and implementing new features (or gimmicks?) as a consequence to the way I'm implementing scripting updates. Yep, that's right: unplanned features are making their way into the game as a result of the changes I'm making to items and the way they're scripted. Funny how that works.
Let me mansplain...I mean explain:
A few days ago, I reached a section in the items creation rewrite (in the apply-to-all-items portion) that referenced the amount of persuasion needed to shoplift an item. At first I set an equation that requires persuasion to match half of the items' collective cost, which has been the default requirement for stealing items since the original release. But then I remembered that some heavier items require an 80% persuasion-to-cost value, as well as those in shops that have a security guard, so I decided that a single equation for all items simply won't work.
As a result, I rewrote the persuasion formula to look for "shoplifting likelihood," or the amount of persuasion needed to lift an item based on its "security rating."
But, "What security rating?" you may ask. Well, security ratings didn't exist previously, but I decided I needed them. That's when I wrote persuasion formulas for items based on these persuasion categories:
Low
-For the most unsecured items in the poorest shops--more on that in Part 2--requiring a persuasion score of at least 50% of the item's cost (the current requirement for most items) to steal.
Average
-For most items in most shops (the characteristic applied to most items in the current version, currently at 50%), now requiring a persuasion score of 100% of the item's cost to steal.
High
-For general items in upper level shops, or larger items in poor shops, or regular items in secured shops (with security guards), now requiring a persuasion score of 150% (currently 80%) of the item's cost to steal.
Elite
-The highest default level, for larger items in upper level or secured shops, requiring a persuasion score of 200% of the item's cost to steal.
Perfection
-For items behind security barriers such as guards, cameras, or theft detectors (the latter two still need development), which the shop would have to pay for, requiring a persuasion score of 250% of the item's cost to steal (at max level, something of which I'll explain more of in Part 2).
Impossible
-For installation items like refrigerators and ovens, which are too large to move by the player and are therefore impossible to steal no matter the persuasion score. Good luck trying, though.
Inevitable
-For small, insignificant items, like individual sugar packets, that can be easily hidden in any pocket, and require no persuasion points to steal, and probably wouldn't cost anything to take anyway. Note: Sugar packets aren't in the game as of this writing, but they may find their way in soon enough.
I may adjust this system again slightly, especially now that I've recently considered "medium level items" (more on that in Part 3) as part of the classification system, and I may want to tweak these categories a bit more as a result. Not sure yet. But, as you can see, rewriting the item creation system has presented me with new ideas for stronger challenges to gameplay, and ideas like defining items by size play a hand in determining how the development process goes.
These new formulas have already been written and the categories set. But again, by writing the formulas, I've run into a new issue with accuracy (a problem I think is relevant in the current versions), especially when accounting for low-priced items like sodas, which cost a dollar each, and that problem is with accurately splitting costs in a 50%-divisible persuasion formula when the OHR can't handle decimals (or floats, as I now recognize them, thanks to C# education). So, part of the formula now stores the float values in a new variable, which can then be added to the final whole number representing the persuasion necessary to steal the whole shopping cart. The final value, including the float values, will still be rounded up or down to the nearest whole number, but at least now it's as accurate as I can get it. Improvement!
The next step in this section that I still need to address is stored persuasion. As of now, all character values cap at 300 points, which would make some thefts impossible. Although I don't want players exploiting the ability to steal items from shops, I still acknowledge it as a gameplay tactic, enough so that I've created end game statistics recognizing it and am in the process of implementing a new game feature that affects the environment the more the player shoplifts (more on that in Part 2), so I'll probably need to develop a "persuasion bank" similar to what I've done for popularity, which is to store persuasion values above the maximum in a reserve tank when special persuasive tactics are achieved. What that may look like, I don't yet know. The popularity bank is nothing more than an overflow. I don't think it needs special tactics to fill. Maybe it should. The persuasion bank (and maybe the popularity bank, too) needs more thought.
So, that's what I worked on last week (the night before I suffered a health crisis that I won't talk about here but ultimately shut me down for a few days).
In Part 2, I'll talk more about the shop class system and (da-da-ta-dah!) the upcoming crime system. More on that in the coming day.
This post will come in three parts to simplify reading. If you want to wait until I post Part 3 to respond, that's cool, but it's also fine if you want to chime in earlier. Be aware that all three parts are related to the same work.
Part 1:
First of all, before I address either the update or the plan, I just want to say a quick thanks to all of the people who have played any installment of Entrepreneur: The Beginning since its 2009 8-bit Contest days (versions 1.0 and 1.1), and especially to those who have commented on what they've played. I've gotten great feedback from the people who have given feedback. I know this game isn't everyone's cup of coffee (instead of tea, because I think this game should be everyone's cup of tea, even if it's impossible to make a game for everybody). For the people who aren't into business adventures, I can understand you avoiding commentary or overlooking this thread (even though I am, essentially, trying to make this game Harvest Moon for business tycoons--if Rockstar were making it, and doing so in glorious quasi-8-bit 2D!--so even if you haven't given it a look yet for fear it isn't your style, you should now or soon or eventually). For those who have played and enjoyed previous versions of the game (up to the most recent 1.2.1 version), however, once again I say thank you for playing, and I hope you're still with me on this journey, even as I near its tenth anniversary of development (in seven months!), and that you'll continue to give me feedback on upcoming versions. Your advice, encouragement, and support are always useful, especially when it comes with notes or video playthroughs or recipes.
Now, about the updates, I'm still learning C# and Unity, and doing so slowly, so I have no new updates on that front. In fact, I don't expect to do any work on the Unity version any time soon, as I don't want to begin until I understand the engine and C# programming well enough to develop a fair transition plan. I may even wait until v1.3 is finished before beginning migration work to the Unity version. By then I should have a clear understanding of what Unity can and can't do for the game, and a clearer picture on whether it will even be worth it to migrate (as of now, I still think it will be). But for now, there's no actual progress on that front. I'm still getting an education, and doing so at a leisurely pace (meaning the video course I've subscribed to is taking a while to update its lessons, so I'm on a slight pause there). I expect to pick up on that again soon.
Version 1.2.2 is coming along nicely. I've recently had a second look at the new item creation system and decided I could do better, so I started a slightly more parts-dependent system than the currently in-development version, but an ultimately better and faster design, which essentially groups items by type and establishes certain parameters on-the-fly based on type, so that I can spend less time actually passing the script item information based on every defining quality, including those shared by many, and more time getting to the point. The goal is to simplify items enough that the only new information I have to pass is the information unique to that item only. It may not be so simple for a few rare cases, but it should at least be that simple for copycat items like coffee beans, garnishes, and so on. Again, item creation is the central hold-up for 1.2.2, and ultimately new content, so once that's finished, the game will be in good shape again.
That doesn't mean new content isn't in the works, however. Along with new items, categories, and so on, I'm invariably reshaping previous designs and implementing new features (or gimmicks?) as a consequence to the way I'm implementing scripting updates. Yep, that's right: unplanned features are making their way into the game as a result of the changes I'm making to items and the way they're scripted. Funny how that works.
Let me mansplain...I mean explain:
A few days ago, I reached a section in the items creation rewrite (in the apply-to-all-items portion) that referenced the amount of persuasion needed to shoplift an item. At first I set an equation that requires persuasion to match half of the items' collective cost, which has been the default requirement for stealing items since the original release. But then I remembered that some heavier items require an 80% persuasion-to-cost value, as well as those in shops that have a security guard, so I decided that a single equation for all items simply won't work.
As a result, I rewrote the persuasion formula to look for "shoplifting likelihood," or the amount of persuasion needed to lift an item based on its "security rating."
But, "What security rating?" you may ask. Well, security ratings didn't exist previously, but I decided I needed them. That's when I wrote persuasion formulas for items based on these persuasion categories:
Low
-For the most unsecured items in the poorest shops--more on that in Part 2--requiring a persuasion score of at least 50% of the item's cost (the current requirement for most items) to steal.
Average
-For most items in most shops (the characteristic applied to most items in the current version, currently at 50%), now requiring a persuasion score of 100% of the item's cost to steal.
High
-For general items in upper level shops, or larger items in poor shops, or regular items in secured shops (with security guards), now requiring a persuasion score of 150% (currently 80%) of the item's cost to steal.
Elite
-The highest default level, for larger items in upper level or secured shops, requiring a persuasion score of 200% of the item's cost to steal.
Perfection
-For items behind security barriers such as guards, cameras, or theft detectors (the latter two still need development), which the shop would have to pay for, requiring a persuasion score of 250% of the item's cost to steal (at max level, something of which I'll explain more of in Part 2).
Impossible
-For installation items like refrigerators and ovens, which are too large to move by the player and are therefore impossible to steal no matter the persuasion score. Good luck trying, though.
Inevitable
-For small, insignificant items, like individual sugar packets, that can be easily hidden in any pocket, and require no persuasion points to steal, and probably wouldn't cost anything to take anyway. Note: Sugar packets aren't in the game as of this writing, but they may find their way in soon enough.
I may adjust this system again slightly, especially now that I've recently considered "medium level items" (more on that in Part 3) as part of the classification system, and I may want to tweak these categories a bit more as a result. Not sure yet. But, as you can see, rewriting the item creation system has presented me with new ideas for stronger challenges to gameplay, and ideas like defining items by size play a hand in determining how the development process goes.
These new formulas have already been written and the categories set. But again, by writing the formulas, I've run into a new issue with accuracy (a problem I think is relevant in the current versions), especially when accounting for low-priced items like sodas, which cost a dollar each, and that problem is with accurately splitting costs in a 50%-divisible persuasion formula when the OHR can't handle decimals (or floats, as I now recognize them, thanks to C# education). So, part of the formula now stores the float values in a new variable, which can then be added to the final whole number representing the persuasion necessary to steal the whole shopping cart. The final value, including the float values, will still be rounded up or down to the nearest whole number, but at least now it's as accurate as I can get it. Improvement!
The next step in this section that I still need to address is stored persuasion. As of now, all character values cap at 300 points, which would make some thefts impossible. Although I don't want players exploiting the ability to steal items from shops, I still acknowledge it as a gameplay tactic, enough so that I've created end game statistics recognizing it and am in the process of implementing a new game feature that affects the environment the more the player shoplifts (more on that in Part 2), so I'll probably need to develop a "persuasion bank" similar to what I've done for popularity, which is to store persuasion values above the maximum in a reserve tank when special persuasive tactics are achieved. What that may look like, I don't yet know. The popularity bank is nothing more than an overflow. I don't think it needs special tactics to fill. Maybe it should. The persuasion bank (and maybe the popularity bank, too) needs more thought.
So, that's what I worked on last week (the night before I suffered a health crisis that I won't talk about here but ultimately shut me down for a few days).
In Part 2, I'll talk more about the shop class system and (da-da-ta-dah!) the upcoming crime system. More on that in the coming day.
Place Obligatory Signature Here
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Part 2:
So, updating the persuasion system has introduced me to a new issue: What do I consider a "poor shop"? That question got me thinking about how actual towns and cities are laid out, with some neighborhoods being richer than others. Now, it's not exactly a new thought, as the presence of a pawnshop in Hybrid City has often hinted to me that some areas should be designated at a lower class than others. But, that distinction has been aesthetic at best, with the presence of trash in the alleys and cracks in the building walls suggesting "low class living," but even then the distinction has existed primarily in my head. It never really played a legit role in the development of the game.
Thanks to the persuasion mechanic upgrade, however, I've decided it's time to set up a legit distinction. So, I've set aside five zones per town map relative to class levels: poor, lower class, middle class, upper class, and rich.
As of now, only two buildings in the game are classified as "poor," and the rest are divvied among the lower and middle classes. Class zones are also, for now, restricted to commercial areas, as those are the areas that determine the exchange of money and the growth or depletion of the town's economy. Because I haven't designed any affluent areas yet, I don't have any businesses designated to the upper class or rich categories. That will more than likely change when I move to the social update in 1.5, where a new area friendly to night life and various social standings will be built.
In plotscript, these zones check for shop entrance locations, and any shop entrance that matches coordinates within that zone will be given a class designation reflective of that zone. In other words, if "front door x" and "front door y" are found within Zone 1001 (map doesn't matter, as all town maps have the same zone designations), then that shop will be labeled "lower class." This, in turn, will decide how susceptible the shop is to crime and how costly it might be for the shop to secure its inventory. It will also play a role in how much rent the shop pays per week, which I'll talk more about in Part 3.
So, yes, crime.
Earlier this year, I rewrote customer statistics to include a number of factors related to spending habits, budgeting habits, job holdings, savings accounts, and a bunch of other elements related to character habit and behavior. Of those stats, one references a customer's "crime stat," or his ability to influence Hybrid City's crime level. If any of you have ever read Malcolm Gladwell's excellent book The Tipping Point (and if you haven't, you should), you'll begin to understand what I'm going for with this statistic. In short, a rash of petty crimes could stack up in the bad townies' collective minds and potentially drive society to engage in larger criminal behaviors as a response to the perceived ramping up of "acceptable crime." Customers with bad legal habits, therefore, might encourage a "tipping point" toward a criminal epidemic in Hybrid City. This would invariably lead to shops having to prioritize security costs over other costs to keep from getting robbed.
Subsequently, the player's dipping into crime would have a similar effect on the city's "crime aura," with a rash of shop thefts causing a panic among shopkeepers. Would they suddenly beef up security to brace for the next wave? Would they shrug off paid security and take matters into their own hands? Would the thieves be so charming that the shopkeepers can't wait to get robbed? Entrepreneur: The Beginning's upcoming crime system may address these questions (along with others that I might think of in due time). For all we know, the town's shopkeepers may turn vigilante. Who knows???
But, this is a taste of what's in the works. As of now, the game will recognize eleven crime states, each of which has its own global effect on the town, though the line of demarcation between reasonable and chaotic is pretty clearly drawn at about the sixth level of crime. More than likely I'll also have individual sections of town that have their own crime auras (kind of like how most cities have that one neighborhood that nobody wants to go down, even though it's peace on earth about three blocks away). As of this writing, that has not yet been determined, but it is in my mind as something to address.
For the curious, these eleven crime states are: peaceful, minimal, low, simmering, moderate, rising, hot, high, feverish, boiling, and dangerous. The point where security becomes priority in shops will likely be reached at the "rising" level. Below that, and the shops may weigh the cost of security against their total budgets.
Now, the game does have the statistic for "crime aura" defined, but I may not do much with it until greater acts of criminal activity are defined, and I'm not likely to approach that scenario before the sabotage update. But, I'll probably allow for some fluctuation to the crime aura whenever the player elects to shoplift or conversely decides to play it straight and just buy the stuff he wants (which would lower the crime aura). A greater simulation will come in time, but the tracks will be laid in 1.2.2, and the required persuasion value to swipe an item may change according to the city's crime aura. As of now, that's the principle point for having the crime aura. Eventually, however, I'd like to change the game's landscape to reflect the aura, as well as change character behaviors in response to the crime aura. Most of that work will be a part of the social and sabotage update (1.5). Hopefully the engine will support larger tilesets by then.
Finally, you may have noticed me talking about a shop's "choice" to address its security concerns rather than simply give in to a mandatory security purchase. I'll talk more about that in Part 3 tomorrow. Stay tuned.
So, updating the persuasion system has introduced me to a new issue: What do I consider a "poor shop"? That question got me thinking about how actual towns and cities are laid out, with some neighborhoods being richer than others. Now, it's not exactly a new thought, as the presence of a pawnshop in Hybrid City has often hinted to me that some areas should be designated at a lower class than others. But, that distinction has been aesthetic at best, with the presence of trash in the alleys and cracks in the building walls suggesting "low class living," but even then the distinction has existed primarily in my head. It never really played a legit role in the development of the game.
Thanks to the persuasion mechanic upgrade, however, I've decided it's time to set up a legit distinction. So, I've set aside five zones per town map relative to class levels: poor, lower class, middle class, upper class, and rich.
As of now, only two buildings in the game are classified as "poor," and the rest are divvied among the lower and middle classes. Class zones are also, for now, restricted to commercial areas, as those are the areas that determine the exchange of money and the growth or depletion of the town's economy. Because I haven't designed any affluent areas yet, I don't have any businesses designated to the upper class or rich categories. That will more than likely change when I move to the social update in 1.5, where a new area friendly to night life and various social standings will be built.
In plotscript, these zones check for shop entrance locations, and any shop entrance that matches coordinates within that zone will be given a class designation reflective of that zone. In other words, if "front door x" and "front door y" are found within Zone 1001 (map doesn't matter, as all town maps have the same zone designations), then that shop will be labeled "lower class." This, in turn, will decide how susceptible the shop is to crime and how costly it might be for the shop to secure its inventory. It will also play a role in how much rent the shop pays per week, which I'll talk more about in Part 3.
So, yes, crime.
Earlier this year, I rewrote customer statistics to include a number of factors related to spending habits, budgeting habits, job holdings, savings accounts, and a bunch of other elements related to character habit and behavior. Of those stats, one references a customer's "crime stat," or his ability to influence Hybrid City's crime level. If any of you have ever read Malcolm Gladwell's excellent book The Tipping Point (and if you haven't, you should), you'll begin to understand what I'm going for with this statistic. In short, a rash of petty crimes could stack up in the bad townies' collective minds and potentially drive society to engage in larger criminal behaviors as a response to the perceived ramping up of "acceptable crime." Customers with bad legal habits, therefore, might encourage a "tipping point" toward a criminal epidemic in Hybrid City. This would invariably lead to shops having to prioritize security costs over other costs to keep from getting robbed.
Subsequently, the player's dipping into crime would have a similar effect on the city's "crime aura," with a rash of shop thefts causing a panic among shopkeepers. Would they suddenly beef up security to brace for the next wave? Would they shrug off paid security and take matters into their own hands? Would the thieves be so charming that the shopkeepers can't wait to get robbed? Entrepreneur: The Beginning's upcoming crime system may address these questions (along with others that I might think of in due time). For all we know, the town's shopkeepers may turn vigilante. Who knows???
But, this is a taste of what's in the works. As of now, the game will recognize eleven crime states, each of which has its own global effect on the town, though the line of demarcation between reasonable and chaotic is pretty clearly drawn at about the sixth level of crime. More than likely I'll also have individual sections of town that have their own crime auras (kind of like how most cities have that one neighborhood that nobody wants to go down, even though it's peace on earth about three blocks away). As of this writing, that has not yet been determined, but it is in my mind as something to address.
For the curious, these eleven crime states are: peaceful, minimal, low, simmering, moderate, rising, hot, high, feverish, boiling, and dangerous. The point where security becomes priority in shops will likely be reached at the "rising" level. Below that, and the shops may weigh the cost of security against their total budgets.
Now, the game does have the statistic for "crime aura" defined, but I may not do much with it until greater acts of criminal activity are defined, and I'm not likely to approach that scenario before the sabotage update. But, I'll probably allow for some fluctuation to the crime aura whenever the player elects to shoplift or conversely decides to play it straight and just buy the stuff he wants (which would lower the crime aura). A greater simulation will come in time, but the tracks will be laid in 1.2.2, and the required persuasion value to swipe an item may change according to the city's crime aura. As of now, that's the principle point for having the crime aura. Eventually, however, I'd like to change the game's landscape to reflect the aura, as well as change character behaviors in response to the crime aura. Most of that work will be a part of the social and sabotage update (1.5). Hopefully the engine will support larger tilesets by then.
Finally, you may have noticed me talking about a shop's "choice" to address its security concerns rather than simply give in to a mandatory security purchase. I'll talk more about that in Part 3 tomorrow. Stay tuned.
Place Obligatory Signature Here
- Nathan Karr
- Liquid Metal Slime
- Posts: 1215
- Joined: Fri Jan 25, 2008 3:51 am
- Contact:
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Part 3:
So, two nights ago we looked at the changes made to Entrepreneur's persuasion system, and last night we briefly previewed its neighborhood class and crime systems. Tonight we'll take a look at its new WIP security system and the overhaul that shops will undergo to their decision-making dynamics.
Now, shops in Entrepreneur are already a notch above traditional game shops when it comes to dynamic behavior. Most shops in most games, in fact, are predesigned to contain a set amount of items and charge a set amount for those items, and never change those values regardless of when or for how long the player may play. Alternatively, trading games, or games that have trading elements as a component to gameplay, tend to inject some diversity in what's available in a shop when referencing quantity and price, but even then the player may find that a shop consistently skews toward having a certain amount of certain items at certain prices frequently. And they should because players want to have an idea which shops are good for which products. Generally, a shop's AI will be limited to those three categories of decision-making, and for games that demand a certain goal or style, that's perfectly fine.
Entrepreneur: The Beginning could easily go that route. As of now, prices for items are generally fixed. Quantities aren't always secured, as dynamic shoppers can purchase up to five quantities of a single item in some cases, and the daily limit, as of now, is 100 per item before the shelf empties. Shops will pretty much always have at least 1 of every item it supplies on the shelf at the start of each day (depending on how much the shop can afford to restock). Players could usually guarantee the purchase they want if they get to the shop in the first two or three hours of the day. The only price variances they may experience would come in the form of discounts, which would be applied only to the most popular items in the city. The persuasion cost for swiping an item would be dependent on whether a security guard is in the room (50% for unsecured items; 80% for guarded items). It's all quite...fairish.
But, I've been a little disappointed with shops' current state of dynamics lately, and I couldn't figure out why until a few days ago.
Here's the thing. Shops cost capital to run in Hybrid City as much as they cost capital to run in any real city. They have leasing fees, restocking fees, utility fees, staffing fees, etc. I've had a system in place for a while that forces shops to pay "the powers that be" a certain lump sum of their earnings each day to keep the shop running, plus a system to determine how many items they need to purchase to fully restock their shelves to 100 for small items and 10 for large items (with a handful of set variances for specific items), to which the shop will spend this amount or as close to it as it can to acquire as much inventory it can at markup value. The end result is that poor-performing shops go into reconstruction mode (two- to five-day closure) more often.
I don't care for this behavior, either.
Now, I wanted to implement a dose of reality into the game's simulation, with real economic needs and effects affecting the shops in expected manners akin to shops in real life. In other words, I want shops susceptible to business failures and possible reconstructions or even forced closures. BUT, this doesn't mean that I want shops to automatically lean toward failure because why would that be fun? Failure of a shop should be more dependent on the game's economy and shopper behavior than on the shop's bad luck or default spending habits (buy everything or die!). That behavior has always bugged me, and thanks to my taking a hard look at how shop security budgets are planned, I've decided it's time to rewrite shop dynamics again to address its new system of expenditures and its choices for how it stays alive in a finicky consumer market.
Here's what I've come up with so far.
In the current implementation, shop expenditures are calculated by a formula that accounts for their assets (which are visible on the map), shopkeeper experience, lease and utility costs (usually a set percentage of the shop's floor space or asset value), and amount needed to replace their shelf stock. These sums are then taken from the shop's bank, whatever that may be. Depending on whether that value pushes them below zero, they'll survive and supply that day. But it generally leads to a decline in profitability, and reconstructions, unfortunately for some, are inevitable. To even consider adding new expenditures like a security budget is madness. How much more can they really afford?
The new dynamics plan will put more decision power in shops' hands to decide what they can afford and cut what they can't from the payment structure. This will be done through a hierarchy of needs, which include the essential items at the top and the nonessential items at the bottom. The following figure assumes a successful week where all departments can receive adequate funding, but we shouldn't assume this will work out every week. Some weeks may turn red. Here's a sample:
Shop Down the Street
Last Week’s Income: $25,000
This Week’s Shopkeeper Salary: $1,967
This Week’s Savings: $2,500 (10% or total income)
This Week’s Savings after Salary: $533 (savings minus salary)
This Week’s Budget: $22,500 (90%)
Allowed Daily Spending: $3,214 (for seven days) – minus daily rent ($27)
Daily Utility Spending: $956 (30% of allowed daily spending minus rent)
Daily Inventory Spending: $1,275 (40% of allowed daily spending minus rent)
Daily Staff Spending: $478 (15% of allowed daily spending minus rent)
Daily Security Spending: $159 (5% of allowed daily spending minus rent)
Emergency Fund: $159 (5% of allowed daily spending minus rent)
Marketing Fund: $159 (5% of allowed daily spending minus rent)
Note that shops will set their own budgeting percentages at the start of the game. The above chart is merely a sample of what could happen in a given week.
In the event that shops go red, they may elect to cut the marketing budget. If they're still red after that cut, they may choose to dip into the emergency fund to pay for its other needs. If that's not enough, then they may cut security costs if crime is below "rising" or staff spending (send the extras home for the day!) if crime is high. Neighborhood values may also determine which of the lowest tiers get cut first. A bad neighborhood with low clientele may ditch employees first.
Keep in mind that the budget doesn't reflect actual cost. If the actual cost of marketing or security is still within the shop's means to pay for it, even if the budget based on percentage is too high in the projection, the shop may still elect to keep the service. The budget is about maximum ability to spend, not required spending.
Now, in weeks where the shop spends less than the budget allows, any leftover money will go into a rollover account. That rollover can be summoned in times of crisis, so if the shop performs particularly badly one week, but only after having three or four highly successful weeks, then it may still have enough in the rollover accounts to cover the costs of nonessential services, and it may therefore decide to buy the services anyway. That will keep shops from running into the ground every time the wind blows west.
Once we get into the inventory category, we begin to touch on essential elements. But, even with inventory, I plan to change shop behavior to work and react more authentically. In other words, if the shop is doing particularly badly, then it can adjust to a system that would help it function better. In short, it doesn't have to max out its shelf space every day. It can buy half quantity or three-quarters quantity if that's what it takes to stay alive while still serving the customer. The rule for inventory is that a shop must be able to supply at least 20% of its stock each day to stay open. Once its funds no longer allow that, it will have to close for restructuring, in which it may decide take out a loan. I'm not going to bog this post down with loan details, but let's just say that shops will have backup services to help with tough times, though these services are ultimately exhaustive, and shops could feasibly shut down if they're in really bad waters. My goal is to keep that from happening, but I still want the potential for it to happen present in the game. Elements like high crime could push a shop to closure faster, as could bad economy, so whether a shop stays open can still fall loosely in the player's hands. If I ever give the player political power, then his or her decisions could really impact how well a shop can function, but that's not currently on the menu. Maybe someday.
Bearing that in mind, it's worth noting that the way shops carry inventory will also change. Instead of maxing out the store shelf every morning, the shop will buy items based on budget at the start of each week and store most items in its storeroom (which will have a storage max). Every hour, the shopkeeper will pull items from the back to stock the shelf to a new max (maybe 20), which means items that run out at 3:30 may be back in stock by 4:00. Hopefully this will limit or even prevent shortages of items, but it will also make the "buy all" strategy for sabotage (a feature that's coming officially soon, even though the practice is possible now) a bit less reliable than the previous behavior of buying and hoarding all items at the start of the day, preventing rivals from getting their stocks. But, in this case, stocks are still finite, so the end of the week may pose problems for those who don't plan ahead. Fortunately, shopkeepers can buy stocks overnight to account for shortages, but this will potentially eat up their inventory budgets. No plan should ever have guaranteed success. The only plan should be to plan for trouble.
Finally, as we move to the top, we reach elements like rent and utilities. These are mandatory, and if the shop can't pay these bills, it will close. Plain and simple.
Now, assuming the shop can cover all of its costs, it will decide whether it needs a security plan. Conditions affecting the plan include neighborhood value, city or neighborhood crime, and whether the shop already has a security guard on staff. Note that private security does not come from the same budget as general security. It comes from the staff budget. For shops that choose not to retain their own guards, they may order security level packages to compensate. These packages come in four levels: one, two, three, and elite. The first tier will install a security camera at the shop. The second will hire a company security guard (a contract guard) to watch the floor. The third will install a theft-detection device at the front door. Elite level will call a specialist in to patrol the store (this could be anything at the moment). Guards and specialists can go away if the shop can't afford a specific security package during times of economic crisis, but the cameras and theft detectors will remain. However, depending on the levels, these items will either service the shop or not. In other words, if the shop can't pay the level one security fee, then that camera will get turned off. For players who want to move down the criminal path, this will be worth noting and looking for. Remember, each security level raises the amount of persuasion needed to swipe an item. Shops that have elite status may be next to impossible to steal from, unless the player has really high persuasion, or some criminal perk that I haven't designed or conceptualized yet. Once again, a shop that can afford elite security status won't necessarily buy elite status. If the city is at peace and the shop sells basically worthless things or sits in a poor or lower class neighborhood (and sells low-value items), it may not see the point in buying that kind of security, so it won't. It's all about decision-making.
So, that's the new shop dynamics plan in a nutshell. With these changes I'll be reconsidering the town's "hidden" population and the types of shoppers that may contribute to a shop's (and the town's) economy. The good news is that this type of work tends to go quickly, so I could have a working prototype in a matter of days. I just have to sit down and do it.
And there you have it. Any thoughts about these topics from the last three parts? Ideas? Questions? Concerns? Present your feedback now! Thanks.
So, two nights ago we looked at the changes made to Entrepreneur's persuasion system, and last night we briefly previewed its neighborhood class and crime systems. Tonight we'll take a look at its new WIP security system and the overhaul that shops will undergo to their decision-making dynamics.
Now, shops in Entrepreneur are already a notch above traditional game shops when it comes to dynamic behavior. Most shops in most games, in fact, are predesigned to contain a set amount of items and charge a set amount for those items, and never change those values regardless of when or for how long the player may play. Alternatively, trading games, or games that have trading elements as a component to gameplay, tend to inject some diversity in what's available in a shop when referencing quantity and price, but even then the player may find that a shop consistently skews toward having a certain amount of certain items at certain prices frequently. And they should because players want to have an idea which shops are good for which products. Generally, a shop's AI will be limited to those three categories of decision-making, and for games that demand a certain goal or style, that's perfectly fine.
Entrepreneur: The Beginning could easily go that route. As of now, prices for items are generally fixed. Quantities aren't always secured, as dynamic shoppers can purchase up to five quantities of a single item in some cases, and the daily limit, as of now, is 100 per item before the shelf empties. Shops will pretty much always have at least 1 of every item it supplies on the shelf at the start of each day (depending on how much the shop can afford to restock). Players could usually guarantee the purchase they want if they get to the shop in the first two or three hours of the day. The only price variances they may experience would come in the form of discounts, which would be applied only to the most popular items in the city. The persuasion cost for swiping an item would be dependent on whether a security guard is in the room (50% for unsecured items; 80% for guarded items). It's all quite...fairish.
But, I've been a little disappointed with shops' current state of dynamics lately, and I couldn't figure out why until a few days ago.
Here's the thing. Shops cost capital to run in Hybrid City as much as they cost capital to run in any real city. They have leasing fees, restocking fees, utility fees, staffing fees, etc. I've had a system in place for a while that forces shops to pay "the powers that be" a certain lump sum of their earnings each day to keep the shop running, plus a system to determine how many items they need to purchase to fully restock their shelves to 100 for small items and 10 for large items (with a handful of set variances for specific items), to which the shop will spend this amount or as close to it as it can to acquire as much inventory it can at markup value. The end result is that poor-performing shops go into reconstruction mode (two- to five-day closure) more often.
I don't care for this behavior, either.
Now, I wanted to implement a dose of reality into the game's simulation, with real economic needs and effects affecting the shops in expected manners akin to shops in real life. In other words, I want shops susceptible to business failures and possible reconstructions or even forced closures. BUT, this doesn't mean that I want shops to automatically lean toward failure because why would that be fun? Failure of a shop should be more dependent on the game's economy and shopper behavior than on the shop's bad luck or default spending habits (buy everything or die!). That behavior has always bugged me, and thanks to my taking a hard look at how shop security budgets are planned, I've decided it's time to rewrite shop dynamics again to address its new system of expenditures and its choices for how it stays alive in a finicky consumer market.
Here's what I've come up with so far.
In the current implementation, shop expenditures are calculated by a formula that accounts for their assets (which are visible on the map), shopkeeper experience, lease and utility costs (usually a set percentage of the shop's floor space or asset value), and amount needed to replace their shelf stock. These sums are then taken from the shop's bank, whatever that may be. Depending on whether that value pushes them below zero, they'll survive and supply that day. But it generally leads to a decline in profitability, and reconstructions, unfortunately for some, are inevitable. To even consider adding new expenditures like a security budget is madness. How much more can they really afford?
The new dynamics plan will put more decision power in shops' hands to decide what they can afford and cut what they can't from the payment structure. This will be done through a hierarchy of needs, which include the essential items at the top and the nonessential items at the bottom. The following figure assumes a successful week where all departments can receive adequate funding, but we shouldn't assume this will work out every week. Some weeks may turn red. Here's a sample:
Shop Down the Street
Last Week’s Income: $25,000
This Week’s Shopkeeper Salary: $1,967
This Week’s Savings: $2,500 (10% or total income)
This Week’s Savings after Salary: $533 (savings minus salary)
This Week’s Budget: $22,500 (90%)
Allowed Daily Spending: $3,214 (for seven days) – minus daily rent ($27)
Daily Utility Spending: $956 (30% of allowed daily spending minus rent)
Daily Inventory Spending: $1,275 (40% of allowed daily spending minus rent)
Daily Staff Spending: $478 (15% of allowed daily spending minus rent)
Daily Security Spending: $159 (5% of allowed daily spending minus rent)
Emergency Fund: $159 (5% of allowed daily spending minus rent)
Marketing Fund: $159 (5% of allowed daily spending minus rent)
Note that shops will set their own budgeting percentages at the start of the game. The above chart is merely a sample of what could happen in a given week.
In the event that shops go red, they may elect to cut the marketing budget. If they're still red after that cut, they may choose to dip into the emergency fund to pay for its other needs. If that's not enough, then they may cut security costs if crime is below "rising" or staff spending (send the extras home for the day!) if crime is high. Neighborhood values may also determine which of the lowest tiers get cut first. A bad neighborhood with low clientele may ditch employees first.
Keep in mind that the budget doesn't reflect actual cost. If the actual cost of marketing or security is still within the shop's means to pay for it, even if the budget based on percentage is too high in the projection, the shop may still elect to keep the service. The budget is about maximum ability to spend, not required spending.
Now, in weeks where the shop spends less than the budget allows, any leftover money will go into a rollover account. That rollover can be summoned in times of crisis, so if the shop performs particularly badly one week, but only after having three or four highly successful weeks, then it may still have enough in the rollover accounts to cover the costs of nonessential services, and it may therefore decide to buy the services anyway. That will keep shops from running into the ground every time the wind blows west.
Once we get into the inventory category, we begin to touch on essential elements. But, even with inventory, I plan to change shop behavior to work and react more authentically. In other words, if the shop is doing particularly badly, then it can adjust to a system that would help it function better. In short, it doesn't have to max out its shelf space every day. It can buy half quantity or three-quarters quantity if that's what it takes to stay alive while still serving the customer. The rule for inventory is that a shop must be able to supply at least 20% of its stock each day to stay open. Once its funds no longer allow that, it will have to close for restructuring, in which it may decide take out a loan. I'm not going to bog this post down with loan details, but let's just say that shops will have backup services to help with tough times, though these services are ultimately exhaustive, and shops could feasibly shut down if they're in really bad waters. My goal is to keep that from happening, but I still want the potential for it to happen present in the game. Elements like high crime could push a shop to closure faster, as could bad economy, so whether a shop stays open can still fall loosely in the player's hands. If I ever give the player political power, then his or her decisions could really impact how well a shop can function, but that's not currently on the menu. Maybe someday.
Bearing that in mind, it's worth noting that the way shops carry inventory will also change. Instead of maxing out the store shelf every morning, the shop will buy items based on budget at the start of each week and store most items in its storeroom (which will have a storage max). Every hour, the shopkeeper will pull items from the back to stock the shelf to a new max (maybe 20), which means items that run out at 3:30 may be back in stock by 4:00. Hopefully this will limit or even prevent shortages of items, but it will also make the "buy all" strategy for sabotage (a feature that's coming officially soon, even though the practice is possible now) a bit less reliable than the previous behavior of buying and hoarding all items at the start of the day, preventing rivals from getting their stocks. But, in this case, stocks are still finite, so the end of the week may pose problems for those who don't plan ahead. Fortunately, shopkeepers can buy stocks overnight to account for shortages, but this will potentially eat up their inventory budgets. No plan should ever have guaranteed success. The only plan should be to plan for trouble.
Finally, as we move to the top, we reach elements like rent and utilities. These are mandatory, and if the shop can't pay these bills, it will close. Plain and simple.
Now, assuming the shop can cover all of its costs, it will decide whether it needs a security plan. Conditions affecting the plan include neighborhood value, city or neighborhood crime, and whether the shop already has a security guard on staff. Note that private security does not come from the same budget as general security. It comes from the staff budget. For shops that choose not to retain their own guards, they may order security level packages to compensate. These packages come in four levels: one, two, three, and elite. The first tier will install a security camera at the shop. The second will hire a company security guard (a contract guard) to watch the floor. The third will install a theft-detection device at the front door. Elite level will call a specialist in to patrol the store (this could be anything at the moment). Guards and specialists can go away if the shop can't afford a specific security package during times of economic crisis, but the cameras and theft detectors will remain. However, depending on the levels, these items will either service the shop or not. In other words, if the shop can't pay the level one security fee, then that camera will get turned off. For players who want to move down the criminal path, this will be worth noting and looking for. Remember, each security level raises the amount of persuasion needed to swipe an item. Shops that have elite status may be next to impossible to steal from, unless the player has really high persuasion, or some criminal perk that I haven't designed or conceptualized yet. Once again, a shop that can afford elite security status won't necessarily buy elite status. If the city is at peace and the shop sells basically worthless things or sits in a poor or lower class neighborhood (and sells low-value items), it may not see the point in buying that kind of security, so it won't. It's all about decision-making.
So, that's the new shop dynamics plan in a nutshell. With these changes I'll be reconsidering the town's "hidden" population and the types of shoppers that may contribute to a shop's (and the town's) economy. The good news is that this type of work tends to go quickly, so I could have a working prototype in a matter of days. I just have to sit down and do it.
And there you have it. Any thoughts about these topics from the last three parts? Ideas? Questions? Concerns? Present your feedback now! Thanks.
Place Obligatory Signature Here
This all sounds very in depth, I love games that have emergent properties. How are these details and "behind the scenes" stuff going to be presented in the game itself? Eg, would we see the shopkeeper npc physically moving around restocking, or the store detective patrolling around, or will it be abstracted?
I'd love to be able to " tail" a store detective, figure out their routine to better plan my crimes. Perhaps hit up a store regularly and then change my routine up to throw off the scent. Does that sound possible in the context of what you have planned?
I'd love to be able to " tail" a store detective, figure out their routine to better plan my crimes. Perhaps hit up a store regularly and then change my routine up to throw off the scent. Does that sound possible in the context of what you have planned?
vvight.wordpress.com
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
In the 1.2.2 update, it will all be abstracted. In a future update (possibly 1.2.3, as that's my planned UI and visual update), you'll more than likely see NPCs doing their jobs. By then, I may have shops hiring stock clerks specifically to keep inventories up (if they can afford it). I prefer seeing that kind of thing, too, and it would drive me crazy not to include it at some point. The main obstacle to simulating actual movement is the notion that all movements would have to be mathematical until the player actually enters the shop map. As of the latest shop dynamics plan, I'm reserving about 115 global variables per shop to store specific data (I think I have over 20 shops in the game at the moment). Mathematical movement would require a few more, and at some point I have to wonder if that's too much data and formulae to track. But, you'll more than likely get to see shops come to life soon. Included in that would be the customers themselves. It is on the planner that random people will appear in each shop to buy things. Same principle applies.guo wrote:This all sounds very in depth, I love games that have emergent properties. How are these details and "behind the scenes" stuff going to be presented in the game itself? Eg, would we see the shopkeeper npc physically moving around restocking, or the store detective patrolling around, or will it be abstracted?
I wasn't planning on that, but now I am!!!guo wrote:I'd love to be able to " tail" a store detective, figure out their routine to better plan my crimes. Perhaps hit up a store regularly and then change my routine up to throw off the scent. Does that sound possible in the context of what you have planned?
You may have to remind me, though. I've got so many ideas in mind for this game that I'm sure to forget a few, even if I write them down. Entrepreneur: The Beginning is the textbook example of why you should never give in to feature creep.
Place Obligatory Signature Here
wew Pepsi, I think this is well past feature creep. That ship has sailed long ago. This is Entrepreneur: The Beginning and The End of All Things. Who knew you'd start out with a humble coffee shop but end up coding a fully simulated reality? This will make a great story to tell at parties.
My thoughts are more or less Guo's. Broadly, how do you plan to give feedback to the player, ie convey the behind the scenes interest? Just something to keep in mind while play testing, I suppose. It still sounds pretty exciting.
My thoughts are more or less Guo's. Broadly, how do you plan to give feedback to the player, ie convey the behind the scenes interest? Just something to keep in mind while play testing, I suppose. It still sounds pretty exciting.
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Well, in regards to Guo's request, I'd simply have the NPCs doing whatever they're designed to do when the player enters the map and position them according to wherever they would likely be at that time of entry. Whether I map this out through mathematics on a constant scale and set the NPC to match or simply put the math together on entry is something I'll have to figure out when the time comes. Much of this game is designed as needed rather than as planned. I still have big picture plans, but most of that big picture is constructed at small increments.
The line I'm trying to straddle in this game is the one between simulating reality and allowing the player to have fun with this reality. So, a lot of what I script in the game will probably be hidden, known really only to me, but may still have some effect on the "background story." In other words, many of the things that happen in the game may be noticeable to really astute players, but probably not to the casual ones. It would be a bit like acknowledging that your neighbor has a life, but you probably don't know much about it, and it's unlikely it would affect your day to know, but if you were to go find out, it maybe could affect your day, especially if you decide to become a part of it. From a business point of view, this might mean stocking your inventory a certain way because you know that one of your shop regulars is vegan and will only take soy milk in his coffee (whereas the alternative might be that you simply don't put anything in his coffee for fear of upsetting him). Or, you may assume to know he's a vegan because he never orders anything with dairy (even though the reality might be that he simply doesn't realize you should put cream in coffee because he's a coffee newbie). At the city level, this would mean figuring out the city's pulse and determining how active people are, or how sheltered, or how sensitive to extreme weather, and so on, and deciding if your business can have any effect on how to shape it. Again, this background story may likely never appear to the player with a flashing of light, but players who are paying attention may notice and may even adjust their play style to accommodate any trend he or she may notice. I doubt any background story would interfere with the main story so much that it could actually cause the player to lose the game, but those who are paying attention might have a better win if they can figure out how to "read the city."
To Guo's point, this might mean learning how to sneak past a specific shopkeeper with a big ticket item and not get caught.
At some point, I'm going to put a cap on the plentitude of ideas I have. I've already decided to scale back my plans for allowing the player to set custom city stats until I can devote time to fleshing out the custom game system. Trying to implement everything I want at once is essentially creating a mental block that's forcing me to not do anything at the moment. So, how I end up doing all of this will be determined at a time when it becomes necessary. Right now, I just want to get my script functions finished so I can move on to new gameplay items. I'm so close to the end, yet the finish line seems to keep moving.
The line I'm trying to straddle in this game is the one between simulating reality and allowing the player to have fun with this reality. So, a lot of what I script in the game will probably be hidden, known really only to me, but may still have some effect on the "background story." In other words, many of the things that happen in the game may be noticeable to really astute players, but probably not to the casual ones. It would be a bit like acknowledging that your neighbor has a life, but you probably don't know much about it, and it's unlikely it would affect your day to know, but if you were to go find out, it maybe could affect your day, especially if you decide to become a part of it. From a business point of view, this might mean stocking your inventory a certain way because you know that one of your shop regulars is vegan and will only take soy milk in his coffee (whereas the alternative might be that you simply don't put anything in his coffee for fear of upsetting him). Or, you may assume to know he's a vegan because he never orders anything with dairy (even though the reality might be that he simply doesn't realize you should put cream in coffee because he's a coffee newbie). At the city level, this would mean figuring out the city's pulse and determining how active people are, or how sheltered, or how sensitive to extreme weather, and so on, and deciding if your business can have any effect on how to shape it. Again, this background story may likely never appear to the player with a flashing of light, but players who are paying attention may notice and may even adjust their play style to accommodate any trend he or she may notice. I doubt any background story would interfere with the main story so much that it could actually cause the player to lose the game, but those who are paying attention might have a better win if they can figure out how to "read the city."
To Guo's point, this might mean learning how to sneak past a specific shopkeeper with a big ticket item and not get caught.
At some point, I'm going to put a cap on the plentitude of ideas I have. I've already decided to scale back my plans for allowing the player to set custom city stats until I can devote time to fleshing out the custom game system. Trying to implement everything I want at once is essentially creating a mental block that's forcing me to not do anything at the moment. So, how I end up doing all of this will be determined at a time when it becomes necessary. Right now, I just want to get my script functions finished so I can move on to new gameplay items. I'm so close to the end, yet the finish line seems to keep moving.
Place Obligatory Signature Here
Wish you the best, you're among a handful of game makers I know who are tackling a crazy complex and large design. I think some of them have given up, will have to check.
It brings to mind what I've read about SimCity. Story goes, nobody knows the exact math of how the simulation works. It's been lost and people have had trouble reverse engineering it. It seems simple, maybe it is. But there's kind of a mystery to most players and a strange battle of expectations against what actually happens.
This also relates into how to cap ideas, as it's all about stating expectations to the player and delivering on them. Why the one sentence summary works so well for large novels. If the player is never told or has no idea, what interest do they have? Why hide the true nature and scope like it's some kind of plot twist? I wonder when did this get so off the rails, or if that was the indulgence all along. Kind of envious if so.
It brings to mind what I've read about SimCity. Story goes, nobody knows the exact math of how the simulation works. It's been lost and people have had trouble reverse engineering it. It seems simple, maybe it is. But there's kind of a mystery to most players and a strange battle of expectations against what actually happens.
This also relates into how to cap ideas, as it's all about stating expectations to the player and delivering on them. Why the one sentence summary works so well for large novels. If the player is never told or has no idea, what interest do they have? Why hide the true nature and scope like it's some kind of plot twist? I wonder when did this get so off the rails, or if that was the indulgence all along. Kind of envious if so.
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Happy New Year and all of that. We are officially starting Entrepreneur: The Beginning's 10th year in production with content that shows almost a year's worth of production. Yay, programming ignorance!
I'm getting better.
So, quick progress report:
I'm in the heart of shopkeeper AI restructuring, giving shopkeepers backstories that include the exact day they open shop, their financial histories, and their credit ratings to name some things. The purpose of this exercise is to 1.) prepare for the possibility that I can export everyone's backstory to a text file for those players who want to know the ins and outs of the game world they're participating in (assuming we get a scripting command that allows us to write to a specific text file instead of just g_debug.txt), but also to 2.) minimize if not eliminate the chances of a shop going bankrupt during the player's gameplay experience. Currently, shops can close after a really bad day, and they usually will for several days. I don't actually want that to happen unless the shop is doing an awful job staying relevant (in other words, I still want it possible that a shop can close due to restructuring, even though the chances of that happening in any one gameplay session should be highly unlikely, even in hard mode). The secondary purpose of the backstory is to give the shop strong legs and establish it as an entity likely to last the entire game season. It does mean that there's a possibility that a shop may close on Day 1, or very early in the game, and I'll probably need some conditional to prevent that (maybe every shop gets a $2000 bonus from the Chamber of Commerce on that day, for example), but again, this scenario should be unlikely no matter the day or the difficulty.
Why does that even matter to the gamer, especially if the shops stay open during normal business hours? Well, I'm basing part of the city's economy on how well each shop does, so a shop that may be going under may benefit from a boost in business, which would, in turn, benefit the city, as the city collects taxes, and I may allow the player to assist there, if he wants. But, most players will probably ignore those details and just play the game as a straightforward adventure. Where a player might care is if the business going under is one that he uses frequently, so he may want to help keep it afloat by investing in it, if it's doing badly, which, according to the new formulas, shouldn't happen unless the shopkeeper is an idiot.
As of today, I'm working on the shop's loan structure, and I'm trying to decide the best strategy a shop might use to decide when to take a loan and how to pay it back. I'm writing it so that a shop takes a loan on its first day, which would equal roughly double its starting capital (also decided by formula that considers shop size, location, and type). What I don't know yet is if I want to limit the number of loans a shop can take, and whether these loans should be assigned to their own sets of variables or stack onto the existing loans (in effect extending the first loan). With credit, I would simply add to the credit debt (unless I allow shops to have multiple cards, which I haven't made any decisions about that yet), but with loans I'm thinking I may just want to allow each loan to have its own value and limit, but restrict each shop to three outstanding loans at a time. As I script this part of the backstory, trying to prevent myself from repeating code, I find that stacking the loan is ultimately crazy, and it may be worth sacrificing a couple hundred global variables to the multiple loan structure to keep things sane. So, I may ultimately simplify the process that way.
What do you think? Do you have any financial advice for the shopkeepers (and me, as I script them)? One of these days, I may post the structure to show you what's happening behind the scenes. We'll see.
In other news, I found out today that Stranger Things: Season 3 will take place on July 4, 1985 (and will be released on July 4th of this year, so that's what I'll be doing on that day). That date falls on Day 25 of Entrepreneur: The Beginning. Even though I'm trying to move away from using pop culture references within the game (specifically IPs I don't own, like Mr. Miyagi), I am tempted to refer to "strange things" happening in a mall in Indiana on that day as a bit of a nod to the show. But, more importantly, the plot none of us knows about (that I'm pretty sure involves the town's mall, what they're calling "Starcourt") reminds me that Hybrid City (the town in Entrepreneur: The Beginning) doesn't yet have a mall, and probably should have one, as malls in the eighties are very eighties. I'm even thinking about allowing Buck to set up shop in a future Hybrid Mall if his money is good enough.
What do you guys think? Should I open a mall in Hybrid City?
Finally, one of my plans for 1.3 is to allow Buck to subscribe to a mail-in shoppers' club (similar to Columbia House, if any of you are old enough to remember that), where he can bypass Hybrid City shops and have the ingredients he wants mailed right to his front door (three days later) for a small club fee. However, a couple of weeks ago, a book I'd ordered on Black Friday that was backordered, finally arrived in the mail, with the right packing slip and receipt, but the wrong book. I'm still waiting for the correct book to arrive (I expect it tomorrow, actually), five weeks after ordering it, but the experience gave me an idea. As a joke, I think Buck's packages could feasibly, albeit rarely, arrive with the wrong contents, especially if I write the additional chapters and allow the game to continue into the holiday season. It would add an element of risk to adopting the easy method for purchasing supplies. Not sure how annoying that would be, but I'd find it pretty funny.
So, that's the latest. Still no timeframe on 1.2.2, but I expect to have it ready as soon as I complete my scripting rewrites. I could've finished a long time ago, but my rewrites have included new frameworks, like the shopkeeper AI listed above, so I'm doing more than just updating code with this upcoming experimental version; I'm improving the game's dynamics from top to bottom. That takes a while.
@Charbile
Sorry to take so long to respond....
Even in the version that's currently online, you can find success through doing people's chores (lawn mowing, pool cleaning, house painting, etc.), finding and fixing broken equipment and selling it, investing in other shops and coasting to success on their coattails, and even selling items you steal from shops (if you want to go down that path). But, I've got other plans in mind that include trading, construction, and, of course, smoothie and sandwich production (and baked goods and actual meals) to name some things. In the end, the game is not about making and selling coffee, but about making more money than your rival before the deadline arrives. Even if I make the other five chapters, where each chapter presents a different rival for a different occasion and story point, the goal will be the same. Make more money than your rival in 60 days by any means possible.
The game was, is, and will always be about that. I've never detracted from that goal, and I've never hidden its intention. Whether or not people pay attention to what I say is another story. The game is heavy with feature creep, but most of it is confined in the background, in those areas where the player would have no control in the first place, like in how NPCs conduct their business. I want the player to have a unique experience with each play. Not enough OHR games try to accomplish that.
I think this game will be highly replayable whenever I finish it. I just wish I had learned better scripting etiquette in the beginning. I'd probably be finished by now if I had.
I'm getting better.
So, quick progress report:
I'm in the heart of shopkeeper AI restructuring, giving shopkeepers backstories that include the exact day they open shop, their financial histories, and their credit ratings to name some things. The purpose of this exercise is to 1.) prepare for the possibility that I can export everyone's backstory to a text file for those players who want to know the ins and outs of the game world they're participating in (assuming we get a scripting command that allows us to write to a specific text file instead of just g_debug.txt), but also to 2.) minimize if not eliminate the chances of a shop going bankrupt during the player's gameplay experience. Currently, shops can close after a really bad day, and they usually will for several days. I don't actually want that to happen unless the shop is doing an awful job staying relevant (in other words, I still want it possible that a shop can close due to restructuring, even though the chances of that happening in any one gameplay session should be highly unlikely, even in hard mode). The secondary purpose of the backstory is to give the shop strong legs and establish it as an entity likely to last the entire game season. It does mean that there's a possibility that a shop may close on Day 1, or very early in the game, and I'll probably need some conditional to prevent that (maybe every shop gets a $2000 bonus from the Chamber of Commerce on that day, for example), but again, this scenario should be unlikely no matter the day or the difficulty.
Why does that even matter to the gamer, especially if the shops stay open during normal business hours? Well, I'm basing part of the city's economy on how well each shop does, so a shop that may be going under may benefit from a boost in business, which would, in turn, benefit the city, as the city collects taxes, and I may allow the player to assist there, if he wants. But, most players will probably ignore those details and just play the game as a straightforward adventure. Where a player might care is if the business going under is one that he uses frequently, so he may want to help keep it afloat by investing in it, if it's doing badly, which, according to the new formulas, shouldn't happen unless the shopkeeper is an idiot.
As of today, I'm working on the shop's loan structure, and I'm trying to decide the best strategy a shop might use to decide when to take a loan and how to pay it back. I'm writing it so that a shop takes a loan on its first day, which would equal roughly double its starting capital (also decided by formula that considers shop size, location, and type). What I don't know yet is if I want to limit the number of loans a shop can take, and whether these loans should be assigned to their own sets of variables or stack onto the existing loans (in effect extending the first loan). With credit, I would simply add to the credit debt (unless I allow shops to have multiple cards, which I haven't made any decisions about that yet), but with loans I'm thinking I may just want to allow each loan to have its own value and limit, but restrict each shop to three outstanding loans at a time. As I script this part of the backstory, trying to prevent myself from repeating code, I find that stacking the loan is ultimately crazy, and it may be worth sacrificing a couple hundred global variables to the multiple loan structure to keep things sane. So, I may ultimately simplify the process that way.
What do you think? Do you have any financial advice for the shopkeepers (and me, as I script them)? One of these days, I may post the structure to show you what's happening behind the scenes. We'll see.
In other news, I found out today that Stranger Things: Season 3 will take place on July 4, 1985 (and will be released on July 4th of this year, so that's what I'll be doing on that day). That date falls on Day 25 of Entrepreneur: The Beginning. Even though I'm trying to move away from using pop culture references within the game (specifically IPs I don't own, like Mr. Miyagi), I am tempted to refer to "strange things" happening in a mall in Indiana on that day as a bit of a nod to the show. But, more importantly, the plot none of us knows about (that I'm pretty sure involves the town's mall, what they're calling "Starcourt") reminds me that Hybrid City (the town in Entrepreneur: The Beginning) doesn't yet have a mall, and probably should have one, as malls in the eighties are very eighties. I'm even thinking about allowing Buck to set up shop in a future Hybrid Mall if his money is good enough.
What do you guys think? Should I open a mall in Hybrid City?
Finally, one of my plans for 1.3 is to allow Buck to subscribe to a mail-in shoppers' club (similar to Columbia House, if any of you are old enough to remember that), where he can bypass Hybrid City shops and have the ingredients he wants mailed right to his front door (three days later) for a small club fee. However, a couple of weeks ago, a book I'd ordered on Black Friday that was backordered, finally arrived in the mail, with the right packing slip and receipt, but the wrong book. I'm still waiting for the correct book to arrive (I expect it tomorrow, actually), five weeks after ordering it, but the experience gave me an idea. As a joke, I think Buck's packages could feasibly, albeit rarely, arrive with the wrong contents, especially if I write the additional chapters and allow the game to continue into the holiday season. It would add an element of risk to adopting the easy method for purchasing supplies. Not sure how annoying that would be, but I'd find it pretty funny.
So, that's the latest. Still no timeframe on 1.2.2, but I expect to have it ready as soon as I complete my scripting rewrites. I could've finished a long time ago, but my rewrites have included new frameworks, like the shopkeeper AI listed above, so I'm doing more than just updating code with this upcoming experimental version; I'm improving the game's dynamics from top to bottom. That takes a while.
@Charbile
Sorry to take so long to respond....
Thanks, yeah, I never set out to make something so ambitious. Feature creep got the best of me, and unlike most designers, I said screw it and I went with those wildly growing ideas. This was supposed to be a simple coffee business simulation in the beginning. I decided at some point that that wasn't enough, so now it's becoming Harvest Moon for capitalists, with a strong emphasis on the coffee industry.Wish you the best, you're among a handful of game makers I know who are tackling a crazy complex and large design. I think some of them have given up, will have to check.
Do you mean the original SimCity or the newer one from 2013? I know the newer one uses a system called "the Glass Box," which is rooted in actual supply-chain economics, I believe. Basically, every action leads to a reaction, which is not unlike what I'm trying to do here with the backstory and internal dynamics. I remember watching a video about how the new one works and finding it impressive and worth emulating. The old one: no idea. I'm sure cause and effect have a big part to play in that one, too.It brings to mind what I've read about SimCity. Story goes, nobody knows the exact math of how the simulation works. It's been lost and people have had trouble reverse engineering it. It seems simple, maybe it is. But there's kind of a mystery to most players and a strange battle of expectations against what actually happens.
I don't know that it ever went off the rails. The story is the same today as it was on the first day: Buck Star vows to humiliate the jock who stole his girlfriend through the awesome power of business. Where the game has evolved is that the background systems have become overly dynamic (as in the real world) and the possibilities for making money in the game go well beyond the coffee shop. Eventually, there will also be a social mechanic where Buck can find new love to replace the one he lost, as well as establish allies in business and solidify rivalries, but these conventions all remain within that one-sentence story. Most of this isn't obvious yet because I'm still making the game. :p Conceptually, I think people believe it's just a coffee simulator because, right now, that's essentially true. But I've made it clear many years ago, in 2011 when I finished the chores system, that this game is ultimately a business adventure that will allow the player many paths to victory that aren't limited to making and selling coffee. Even TMC once said his ultimate plan is to play the game in such a way that he never has to open the coffee shop. I want to make that path possible, because, well, it's Harvest Moon for capitalists, not Coffee Tycoon. I think most people forget how often I affirm that the game's goal is to become a strong sandbox business adventure with elements of simulation, and not merely a straight-up simulation about the coffee industry.This also relates into how to cap ideas, as it's all about stating expectations to the player and delivering on them. Why the one sentence summary works so well for large novels. If the player is never told or has no idea, what interest do they have? Why hide the true nature and scope like it's some kind of plot twist? I wonder when did this get so off the rails, or if that was the indulgence all along. Kind of envious if so.
Even in the version that's currently online, you can find success through doing people's chores (lawn mowing, pool cleaning, house painting, etc.), finding and fixing broken equipment and selling it, investing in other shops and coasting to success on their coattails, and even selling items you steal from shops (if you want to go down that path). But, I've got other plans in mind that include trading, construction, and, of course, smoothie and sandwich production (and baked goods and actual meals) to name some things. In the end, the game is not about making and selling coffee, but about making more money than your rival before the deadline arrives. Even if I make the other five chapters, where each chapter presents a different rival for a different occasion and story point, the goal will be the same. Make more money than your rival in 60 days by any means possible.
The game was, is, and will always be about that. I've never detracted from that goal, and I've never hidden its intention. Whether or not people pay attention to what I say is another story. The game is heavy with feature creep, but most of it is confined in the background, in those areas where the player would have no control in the first place, like in how NPCs conduct their business. I want the player to have a unique experience with each play. Not enough OHR games try to accomplish that.
I think this game will be highly replayable whenever I finish it. I just wish I had learned better scripting etiquette in the beginning. I'd probably be finished by now if I had.
Place Obligatory Signature Here
- SwordPlay
- Chemical Slime
- Posts: 966
- Joined: Sun Jan 22, 2017 9:32 am
- Location: London, England
- Contact:
y tho? how does it add up to gameplay? what is the impact on the player or audience?
i find myself impressed, but also reminded of countless similar vanity projects that died of meticulous detailing and simulation when a rough approximation would have been easier to manage, faster to implement, simpler for players and ultimately more fun and appropriate for a game.
this is something becoming ingrained in me through feedback (and reflection) on my own projects.
the simplest implementation is better than the most complicated conceptualisation.
simplicity is often better, even if its not as accurate, until the time when only accuracy will do. and also vice-versa (?...maybe?))
Ask yourself: is the need for accuracy this great to warrant so much effort? or could it be done trivially but in rough?
as a way of learning game design and coding, its excellent, but as a game i find myself bored to tears and endlessly frustrated by its countless minor flaws and annoyances... to the point of quitting because i couldnt get through the tutorial :p (and I love Dwarf Fortress!)
i find myself impressed, but also reminded of countless similar vanity projects that died of meticulous detailing and simulation when a rough approximation would have been easier to manage, faster to implement, simpler for players and ultimately more fun and appropriate for a game.
this is something becoming ingrained in me through feedback (and reflection) on my own projects.
the simplest implementation is better than the most complicated conceptualisation.
simplicity is often better, even if its not as accurate, until the time when only accuracy will do. and also vice-versa (?...maybe?))
Ask yourself: is the need for accuracy this great to warrant so much effort? or could it be done trivially but in rough?
as a way of learning game design and coding, its excellent, but as a game i find myself bored to tears and endlessly frustrated by its countless minor flaws and annoyances... to the point of quitting because i couldnt get through the tutorial :p (and I love Dwarf Fortress!)
Last edited by SwordPlay on Wed Jan 02, 2019 10:00 am, edited 2 times in total.
"Imagination. Life is your creation."
- Pepsi Ranger
- Liquid Metal Slime
- Posts: 1460
- Joined: Thu Nov 22, 2007 6:25 am
- Location: South Florida
Same reason we went to the moon.y tho?
Again, it's background, and probably won't affect gameplay much...unless the player's choices cause enough of a chain reaction to send a ripple effect through the town's economy and change its inner structure. If your choices force a shop owner to go broke and close his store forever (making him and his family go hungry), then it might impact you somewhat. Depends on how much you care about that shopkeeper's well-being. (I don't actually know if I'll take the simulation that far. But I also don't know that I won't.)how does it add up to gameplay? what is the impact on the player or audience?
But this specific thing I'm working on is backstory, and it's good for those who want to know "everything" about the city's 30-year history. It shouldn't affect gameplay at all, but it should tell a different story with each new game. Players who like statistics should like this feature (if I can properly export the data to a file other than g_debug.txt).
It's been an approximation up to this point, and I don't like it. It's too prone to error. Doesn't fit any real logic. Never mind realism: it still has to work. Creating a realistic structure is actually easier because I only have to think of the structure and the starting values, not the nuanced values that make up every ingredient, and let the rest filter through. Once I'm finished with the formulas, it will save me time making future updates by a lot. Part of the reason I haven't made much progress in several years is precisely because I've been using "the simplest implementation." The simplest implementation is to set up arbitrary numbers ad nauseum that could feasibly knock a part of gameplay out of alignment (this is why the game still feels broken in places) rather than to use a series of formulas to allow for consistency and logical cases of cause and effect.i find myself impressed, but also reminded of countless similar vanity projects that died of meticulous detailing and simulation when a rough approximation would have been easier to manage, faster to implement, simpler for players and ultimately more fun and appropriate for a game.
this is something becoming ingrained in me through feedback (and reflection) on my own projects.
the simplest implementation is better than the most complicated conceptualisation.
simplicity is often better, even if its not as accurate, until the time when only accuracy will do. and also vice-versa (?...maybe?))
Ask yourself: is the need for accuracy this great to warrant so much effort? or could it be done trivially but in rough?
I guess you could say what I'm doing now is the actual simplest implementation. It only seems crazy because I'm building a business adventure game on an engine designed for RPGs. It's pretty tame compared to what actual business simulators do. Ever play Capitalism 2? Crikey! And that game came out in the 90s.
Yes, the tutorial is a problem and needs to be updated. It's on my list. I believe 1.2.1 has a fixed version from 1.2, but it's not the final version. I'll be redoing it at some point.as a way of learning game design and coding, its excellent, but as a game i find myself bored to tears and endlessly frustrated by its countless minor flaws and annoyances... to the point of quitting because i couldnt get through the tutorial :p (and I love Dwarf Fortress!)
Thank you?Your devotion to excessive simulation continues to terrify me.
Place Obligatory Signature Here