Sunday, September 11, 2011

Game Design: Puzzle game

The game designs I've written about before on here haven't been very recent ideas, but here's one that's brand new.  Because I'm really interested in trying this game out, it'll almost certainly be created.  I haven't written any code for it yet, but if I get really into coding it, it might be playable in a few days.  Otherwise, I'd guess it'd take a week or two.

I thought all the strategy and the mind games and the skills required to play Puyo Pop at the highest level looked really cool.  Unfortunately, you need to be at a very skilled at the game before you can even implement those high level strategies effectively.  What if, what if I could make a multiplayer puzzle game in which all those strategies could be used effectively, but which had a simpler matching/chaining scheme?  That thought was the driving force behind a game that I'll call for now (for a lack of a better name): Pipelining.

Initial tile design
The general concept behind the game is that you place pipe blocks so that they connect together, and then you can drop something into a pipe to set off a chain.  At first, I thought it seemed really simple, so to make it harder, I would make it where you couldn't rotate pieces.  But then I thought, well, maybe rotating should be allowed, but the chain can only enter from one side of the pipe block.  Now I'm feeling like both of those ideas would make the game really tough; it'd be interesting for single player or a hard mode, but that wasn't the goal of this game.  The normal mode should probably just allow rotating, and allow entry from any side.
The plan now is that there will be the 5 basic blocks (half line, L, full line, T, and cross), along with a garbage block that only goes away when a neighboring block is destroyed, and a destroyer block, which destroys the block it's dropped on.  The ability to trade with a save piece will also be included.  For starting combos, after every 5 (or maybe more) moves, you'll get a "starter drop."  You can store up to 3 of them, and then use them whenever you want.  When you drop it into a pipe it sets off a chain.
I'm expecting to use some kind of scoring method similar to: 25*(1+.5*H+.1*(M-1))*M*C, where C is the chain number (the number of steps in the chain so far: multiple blocks being destroyed at once only counts as 1 step), M is the match size (the number of pieces being destroyed at the current step), and H is the number of half line blocks being destroyed (the one in the bottom right corner of the example).  [I might increase the 25 or the .1, or both.]  The amount of garbage sent will be 1 block per 100 points.

Friday, September 9, 2011

Tomorrow

For a procrastinator like me, the fact that there was a "tomorrow" was enough to lose the motivation to do things "today."  Why do now what you can put off until later?  No matter how hard I tried, I couldn't break that mentality.  That existence of a tomorrow stopped me from accomplishing most of the goals I set for today.

And yet, I always believed I could change.  I could overcome this.
I never did though.  I've surely failed enough times that a reasonable person would consider it pointless to go on trying.  But I don't know, maybe I'm just not very reasonable.
There was one hope: the existence of a tomorrow.  No matter how many times I failed, at least I would have another chance.  Maybe I couldn't do it today, but at least there was always a tomorrow.

Procrastination

[Well, there there were a couple of things I was going to write that I skipped just because I didn't feel like writing them.  Yeah, most of the breaks between posts are for no other reason than, well, procrastination or just not feeling like writing whatever I intended to write next.  By the way, I have some stuff due in like 13 hours that I'm procrastinating on.  I mean, I like procrastination, so I put procrastination in my procrastination so I can procrastinate while I procrastinate.]

~I sat there and watched the time slip away.  Watched my goals slip away.  This wasn't how it was supposed to be.  This wasn't who I was supposed to be!!  Why?  What am I doing?!  Or, more importantly, what am I not doing, and why am I not doing it?!  I silently raged at myself.  I was being a fool.  If I was really a smart person, or not even smart, if I was at least a semi-reasonable person, then why would I bet everything on nothing?!  You didn't have to be a genius to understand how illogical the choice was.  I could do what I needed to do, or I could leave my future to chance.  I could do what I wanted to do, or I could throw away whatever talent I had.  All for no reason at all.  For all the control I had over my mind, the control over my feelings and my emotions and my desires, all of it was thrown into chaos by one thing that I seemed to be unable control.  Procrastination.  Why?!!  Whyyyyyyy-----???!!! I screamed as I fell to my knees...~

Sunday, September 4, 2011

Game Design: A Massive RPG

I used to make my own RPGs on my TI-83 calculator, so when I learned a way to program on the computer, I wanted to make another RPG.  I wanted to make a story that you had a lot of control over, a lot more than the usual "read the story and maybe make an occasional choice" style.  I wanted to make something where you have personality ratings, like an outgoing rating, a politeness rating, etc.  At the beginning of the game, you would respond to some things, and based on those responses, you would get your initial ratings.  For example, the game would say something like "When I see a crowd of people, I-" and you choose from "1) Run and hide," "2) Ignore them," "3) Look for someone I'd talk to," "4) Jump in with the crowd," "5) Do something to make everyone look at me!"  You would also choose a lot of things to say or do throughout the game, and those choices would also affect your personality ratings.  And then your personality would naturally affect what you could say or do.  Maybe in a certain situation, the choices for a really quiet person would be things like "...", "Um...", and "Excuse me, but...", and the choices for a really loud person would be "Hey, get out of the way!", "Would you please move?!", and "Man, what's your problem?!"  It might get kind of ridiculous at the extremes, but as a gamer, I'd enjoy investigating what my character could say if they had the lowest or highest possible rating in different areas.

Then, other main characters would have a friendship rating telling how much they liked (or hated) you, and that would change based on what kind of person you were and what you said.  Then you could progress towards different friendships, different enemies, and, eventually, different endings.  Maybe in one ending you conquer the world as a villain and in another you save the world as a hero.

Chaos and the Logistic Equation

It was in a class last fall in which I first learned a mathematical definition of chaos, and an example that exhibits chaotic behavior.  That example was the logistic equation.  Put simply, to get the next number xn+1 from the last number xn, you use the formula xn+1= r*xn*(xn-1).  That didn't look that crazy to me.  But apparently when r is greater than 3.57, you get chaotic behavior.  Not only that, but they say there's no explicit formula, in other words, if you have some value for r and some starting value x0, if you want the 100th value in the sequence you have to compute all 99 others in between, there's no formula where you plug in your 100 and just get the 100th value.  But it seemed so simple!  I knew I had experience with similar problems, recalling my efforts in finding a formula for the Fibonacci sequence.  So, I had to see what I could do with this problem.

I started off the only way I knew how: simply.  Say xn+1=2*xn.  In that case, xn=x0*2^n.  The extension to xn+1=a*xn, was simple enough, as xn=x0*a^n.  All right, what about xn+1=xn+a?  Easy, xn=a*n+x0.  I worked my way up to a formula for xn+1=a*xn+b (which I don't know off the top of my head and don't have the paper I wrote it down on).   Then I was ready for the next level.
What about xn+1=xn^2?  Well, I could solve that.  It was something like x0^(2^x), and now I had a foothold on this level.  I was looking for a solution to xn+1=a*xn^2 +b*xn+c.  All I had to do was find the correct additions and extensions to the formula and I would solve that problem along with the logistic equation.