Friday, September 23, 2011

Frustration.

I wanted to dive in head-first but my conceptualizations are still far too large. Having little better idea what to do I turned to the search engines.

Gods I hate search engines sometimes.

It took hours to figure out that most the links on Google, DuckDuckGo, etc, are pointing to people saying, "Scratch your own itch." And if you don't even scratch real itches? Further searching and involving university Senior Projects, I made a list of things worth programming to test my knowledge in programming languages as well as keep me practicing.

  • Configuration parser
  • Log analyzer
  • Log rotator
  • Simple file transfer client/server
  • simple file encryption
  • personal planner
  • address/phone book
  • payroll program
  • simple calculator
  • anagram finder
  • Pac Man
  • Animate algorithms
  • Sudoku & Solver
  • Tic-Tac-Toe
  • Chess
  • Quiz game
This list is by no means comprehensive of anything, however from it I was able to decipher a few trends.

  • String manipulation
  • File manipulation
  • Math
  • Input/Output
  • Networking
  • Simple games
  • Data management
  • Algorithms
So, maybe I'll work on these when I don't feel like vomiting.

Wednesday, September 21, 2011

An evening's hard work


Having no other idea why I'm getting confused, I returned to brass tacks and fake pseudolanguages that are built entirely out of plain English ideas, words with definitions, and gratuitious use of spaces and tabs.

Stepping as far back as I could, I was able to determine a large set of interoperating parts that construct a game that can be easily interacted with through many interfaces. I don't know why I'm being so detailed but it was right in front of me. So if I'm biting off far, far more than I can chew in this distillation, then perhaps I am, but until I know that, I'm playing with my toy Concepts.


Round Loop =
    Game presents Market Data
    Game waits for Player Input
    Player submits Player Input
    Game calculates Round

Game =
    Monopoly Training Stages =
        Round Loop with no Competitors
        13 Rounds
        4 Stages
    Non-Monopoly Training Stages =
        Round Loop with 3 Competitors
        13 Rounds
        4 Stages
    Open Online Game =
         Moving Day =
            Player is added to Town
            Player is given Gift for Growth
            Game suggests Sales Week to Player
            Player finishes Quarter against the market without influencing it
        Town Quarter Cycle
            Game generates Week Conditions
            Round Loop for x Players and y AI Players
            13 Weeks
            4 Quarters
            ?? Years?



That's about what the game amounts to from the perspective of a player at this point. It's not much and there's certainly more, taking advantage of certain operators and symbols I don't yet know the full meaning of, but stuff like that is for tomorrow, after I've rested.

And, of course, admitting excuses.

I stalled out. I don't entirely know why but I'm trying to get back into it. I keep reading over the formulas and thinking of you all... I admit I want the game to be able to teach a 13 year old how to manage and observe local retail economics.

It's a tough formula to crack. I certainly didn't set my standards low, this time. And it's not like I can just Wolfram Alpha it. I can prove it though, and that proof is enough to reverse engineer it. There are a couple repeated partial functions or formulas that are used, and they're... screaming at me but I keep missing the picture. In the original Visual Basic for Applications:



It isn't the best paste in the world and it leaves out context, I'm sorry. The general idea here though is this: there is a loop through about 5 control variable sets for a calculation called SumZwi (yet another thing I have no bloody idea about... [but that's for later]), in which this variable is calculated. It's used in two of the four forks of the formula and it's making me wonder if I'm missing something obvious? I probably am. However, I'm still researching on it. (Any idea, or understanding on a better way to ask, is welcome as well.)

I've never felt so terrifed and intensified in my life.

What I've done thus far, though, is distill the ErgHen formula into about... five functions? I need to recount. I'm not sure if I should put those formulas up on the blog or not, however I think the formulas in their non-distilled state are available online anyway, so I think it's okay.



Because I'm not actually positive why they're referred to as Gauss, I'm going to explain that these functions return the integral of the normal distribution over (-Inf, v]. It took me a little bit to figure out that was exactly what was needed here.

And to embarrass myself some more, I'm going to show off the functions to which I have no good names for, the parts of the formula I'm most captivated by at the moment and testing on the most at the moment.



It took me a while to really understand most of what was going on, enough to be dangerous, really. But I think, or perhaps I merely hope, that that's one of the traits you all looked fondly upon, in me.

... But as I was saying. These formulas power the multiplayer, single-product engine that is the training rounds that I have described, and from that is where I find myself now. Maybe I need to work backwards? Start from a mocked up end-result in order to attain all the mechanics beneath, and then replace the mockup with a real frontend. I have a lot of decisions like this to make, which brings me to one final conclusion: I need to write an outline. How? I have no idea. But I'll write it to you soon.

Next, an explanation of what I'm doing.

I seem to be able to explain this to other people far better than I can just say it to myself. This seems so backwards.

However that is, I say it to you, Ingrid, Judith & Lil' Beth. I remember and appreciate the drive that was behind a game you were trying to develop, distill, and construct into a web game. Almost too much. I've gone over the conference submission and the Excel distillations and the e-mails more times than I can count. I think I've memorized the ErgHen formula, and I don't even know what ErgHen means or stands for. But I've written it in three programming languages, now, going on four, because I want to look at it with every flaw and mistake painfully obvious to me.

I've made this thing a goal, and I don't even have a project name for it; I don't feel right using your name for it until it is closer to your incarnations and designs. However, in this modern age of web games, I've made my own extensions to the game; not changes, but implementations of the formula and parts I have extracted from the formulas that have meaning I can't yet explain to create modules of everything, including my ideas.

I suppose I should start from the beginning. This game is an economic distillation algorithm that describes demand from market variables and retail influences -- primarily, retail price and advertising expenses. The basic idea of the game is a six-stage educational process -- in the first stage your advertising expenses are fixed and you only change the retail price of your product, once a week, for an economic quarter (13 weeks, or rounds). The second stage, you have a fixed retail price, and are only manipulating the advertising expenses for this quarter. In the third stage, you are in control of both price and advertising expense. The fourth, fifth and sixth rounds are the same as the first, second and third rounds, except with three competing AIs in the market as well.

This is a powerfully brilliant and simple idea when you get down to it. And like all brilliant and simple ideas, you can do so much more with them than the original artist intended. In my case, breaking down the formulas involved, I was able to decipher a means to show (very simply, possibly oversimply as I am not finished studying the economics) the relationship between advertising of one product and the sale of a different product, and from this came an idea.

I want to create a multiplayer online boardgame of sorts, but one that completely includes the original economic game idea. In the game, after completing the first 6 training stages, or quarters, you are entered into an open market of many online players and some AI, in which many products are being sold and advertised by the same retail outlet. Each player is a retail outlet, and they have the choice of introducing existing products in the market, introducing foreign products to the market, or introducing new products to the market based on unmet demand.

The when the game gets to its online stage, it goes like this; independently and without order, each of the players in the market are provided all the market information in different views and from that are asked to provide retail price and advertising expenses for the week. When all the players have entered their choices, the game performs the analysis on the data provided for each product, and the game advances. If a player doesn't respond for 24hrs (or another pre-decided length of time), the game will advance by playing that store's last prices, with impact on correlation. Every 13 rounds, or fiscal quarter, the game produces reports with graphs of your profits over time.

The idea is to create virtual city markets, and let them evolve with the simplest of influences. Despite its simplicity the game has an allure. A powerful allure.

Thank you. For everything.

First and foremost, an apology.

I know I haven't been the best person, always. I'm completely susceptible to my temper, and have used my ability to understand things best left alone to hurt people. None of you deserved to experience the pain my mistakes have put you through and because of that I'm doing something new.

You all know me better than you will ever realise, and it is because of you I have set these standards for myself; standards of work and production, not life, this time. I am forever in your debt for teaching me what you have, just by existing. And, if this is somewhat cowardly, speaking behind the most thin veil of anonymity, then you have my apology, but you also have my letters, delivered; and if not delivered, then the fodder of the internet, another variable that bothers the search engines. You always have and always will have my love and welcoming arms, but for now I suggest you read as anonymously as I write. Let me finish what I'm starting.

It was like a stroke of miracle that we found the Excel distillations of a specific algorithm presented at ABSEL 2007. I thought I had lost them forever, and the regret consumed me for weeks. And then, when not even looking for them, I stumble across them deep within the directories of my dropbox. And despite every problem I ran into, I kept finding little miracles like that; an old moleskine you left me, for example, in which I had a distilled form of the algorithm I can't even remember you describing to me, or distilling myself, and a bravery when it came to breaking down the economic math.

It is my tribute to you all, that I take this game from one stage of life to another, and document it here. If you want it, it will be here, immortalized on Google's servers. And if you don't, then it is to me still a documentation of attempting something new; an attempt to talk to someone else, if just one way, about what I'm doing.

I'm sorry, as oversaid as it might be.

Just an introduction

I've always had trouble blogging, hell, doing anything without a very highly-compelling reason. However, now, I have a compelling reason, and to them I write.

If I don't write to them every day, perhaps kind passers-by could comment on this strange adventure I will undertake. I don't want to say too much now; there's too much else to set up to keep me doing this. This blog is a series of letters to the three most important young women I have ever known, about my attempts to be more than what a quick background check would tell you about me.

I'm gonna succeed this time, and I'm gonna do it mostly on my own.