Skip navigation

Category Archives: Game Ideas

I’ve been getting back into my game engine again.  Shawn Kendall, one of the owners of ZG, has been kind enough to provide me with some tips and pointers for engine design.  Shawn is an incredibly learned man in this subject and used to teach game engine design at Full Sail U here in Florida.  Naturally, this has been an amazing opportunity which I plan to continue to leverage as much as possible.  In any case, the basics of the engine are pretty much planned out by now and I will probably be uploading the images of that sometime soon.  It’s been a lot of work and slow going, but it will be pretty awesome to have an engine of my own to dork around with and gain experience from.

On to the title of this post: the people at the ZG office **LOVE** Magic: The Gathering.  They play pretty much every Friday night, sparsely during the week, and sometimes even during breaks.  They are constantly talking about the new sets that are coming out, the recent deck they built to best so-and-so, and how broken certain cards are.  Me?  I like Magic, but I probably won’t ever get to the level of devotion that these guys have.

However, I have found that MTG is a very solid, well built, and fascinating game.  Since my time this summer has been almost exclusively *coding* games, I figure flexing my design and balancing skills is just as important.  I think Magic is a great place to start with that, so I have come up with a few card concepts that I would love to have feedback about.  I will hopefully be churning out more card concepts over the summer, but we’ll start with these:

Spiteful Visions:  2 Black                                      – Common

Sorcery

Target player discards 2 cards and draws a card.

Conspire

“Forgetting is as much of a blessing as a curse.” -Iithes

Slash and Burn:  3 Red, 2 Colorless                   – Uncommon

Sorcery

Destroy target green permanent or target basic land unless it’s controller pays 3 Life.

“Take a life to save a life?  Sounds like a fair trade.”

Thriving Sapsire:  5 Green                                    – Rare

Creature – Saproling Ancient

3/3

Put a -1/-1 counter on Thriving Sapsire: put two 1/1 Saproling tokens onto the battlefield.

When Thriving Sapsire is placed in a graveyard, put two 1/1 Saproling token onto the battlefield.

Creatures of the forest never die, they simply get smaller.

Inspired Flight:  2 Blue, 2 White                        – Common

Enchantment

Enchant Creature

Enchanted Creature gains +2/+3 and has flying.  Place a -1/-1 counter on enchanted creature.  When enchanted creature is put into a graveyard it’s controller gains Life equal to the number of -1/-1 counters on enchanted creature.

“The best things in life might just kill you.” -Tarr’agun

Advertisements

I don’t own the rights to The Matrix, so I can’t sell this.  However, I can put it in my portfolio and show it off to potential employers.  So take a gander and let me know what you think.  Alex, eat your heart out!

The Matrix Role Playing System

The last playtest went quite well.  The characters went against an agent and actually survived.  I let them run away in the end, but if they had stayed to fight they probably would have all died.  Which is good.  It shows that Agents are sufficiently nasty.

The playtest showed that this system is actually surprisingly balanced, interesting, and playable.  I’m REALLY pleased with how this worked out.  The only thing that really needs to change is some AP exchange rates.  And that’s it really.  I think experience points, AP, weapon damage, locations, movement, all that works pretty well at this stage.

All of the players have been begging me to continue using the system and actually set something up for it.  This is very encouraging and it’s probably the most powerful driving reward that I seek in game design: people loving your game and letting you know.

As far as setting something up to do more, I’m not sure what I can do.  I’m swamped with classes, I’m already in charge of 3 different clubs on campus, I’m going to FL for an internship over the summer.  I really WANT to continue using the system, but I’m not sure how much farther I can stretch myself.

I will be posting PDFs of all of the resources in the next post after I do some clean up.  Thanks to Tim, Malec, Jo, Mike, and Tyler for playtesting!

The playtest for the Matrix RPG went *very* well.  It’s reception was quite good, the players weren’t very serious about it, but they said that they really liked the system and the possibilities it presents.  One thing I’ve noticed is it’s decently complex, but that didn’t seem to matter to the players.  The reference material needs to be available for all of the players, and some values and other miscellaneous rules need to be ironed out.  In general though, I think the playtest went very well and I plan to continue playesting on Wednesday.

Also, I plan to pit the players against an Agent.  That’s right, a ridiculously overpowered nearly invincible dauntless death machine.  The recommended level for an Agent encounter?  10: the highest level possible.  The playtester’s  character’s level? 4.  Should be fun :).

Well, poo.  This project has taken a lot more effort than I had originally imagined.  Object rotation took over a week to get working and it’s still not fool proof.  SAT will take even longer, and I don’t have that kind of time.  I’m dropping the Maze project until this summer.

As for VA 306, I will be working on a Matrix TTRPG that has been in need of polish and new playtests for quite some time.  I’m hoping that Dr. Monnens will let me switch considering the ridiculous scope of my previously-chosen project.

I decided to go with the maze game for the iPhone/iPod Touch.  It will consist of a target that will either be circular or cuboid that the player must move to the end point using their fingers to guide it.  Touching a wall or object will set the target back to the last checkpoint.  I haven’t decided whether I want to implement lives or a timer.  I will try both and see which one playetesters enjoy more.  I think lives will be best, but that remains to be seen.  Simple game with some decent potential, here’s what I have for the “boring architecture part”:

Graphics

  • Don’t need texture loading (that I can think of)
  • Simple style of colored shapes
  • View scrolling when the target gets to the edge of a defined area.
  • Will have to rebuild Radiance to make sure all of this works well.

User Interface

  • Basic Cocoa UI elements, using Radiance I can overlay what I need.
  • Want to experiment with different kinds of menus and UI displays.
  • Need to make sure view scrolling is adjustable.

Physics

  • Implementing Separating Axis Theorem which requires rebuilding Continuum.
  • Need to detect edge triggers for things like doors and victory conditions.
  • Unit test the crap out of my revamped vector system and rotation implementation.

Game Logic

  • Target resets to last checkpoint after (5) seconds of not being touched.
  • If the target touches an edge or another object, reset.
  • Timer?  Lives?  TBA
  • Later levels will have the target orbit the touch point.
  • Later levels will have multiple targets.
  • Later levels will have multiple targets with independent end points.

Level Builder

  • Grid system to start, build level with “positive” tiles on negative background.
  • Want to implement this in Lua to allow for greatest flexibility.

So, that’s pretty much the gist of it.  I have a lot of work to do.  Already rebuilt the vector class I was using to be a little more friendly.  Looking into SAT implementations.  I understand the concepts, but I’m unsure about implementation.  This is gonna be a lot of work at a difficult time.  Cross your fingers…

A good friend of mine, Alex Haase, visited me this weekend and I told him about my idea for an evolution-based game/simulation to expose the mechanics of the evolutionary process and the complexity of homeostasis within a single organism as well as within an entire species. We collaborated to create a very detailed set of rules, environments, and implementations in order to achieve this end. I’m incredibly proud to present the method we came up with.

GENETICS

A given organism’s genetic code will be represented by an array of strings. This array will be arbitrary [8-80] in length, and the strings will also be arbitrary in length [1-256]. This will bring maximum storage for a single genetics table to (256 bytes * 80 / 1000 bytes/kb) 20.48kb. This is quite reasonable and represents a rather large amount of data. However, data in a real gene is not read from end to end. Different genes are spread out over the chromosome, including sections of inert and unused data. Upon generation of the genetics table, a gene map will also be created to determine where each gene sequence begins and ends. This will be represented by an array of arrays containing gene location objects which will hold table index, gene start, and gene end. In this way, the genetics table can be parsed for information dynamically without the possibility of easy user interpretation. Alex had suggested that patterns be evaluated for certain well-known advantageous traits (such as camouflage, cyst stasis, or territorial marking). I agree with a slight modification: the the pattern checking be based not on a specific, static pattern, but by recognition of stepped character differences (more about this later). These patterns will be stored in a dictionary (hash table) of trait expression objects.

So, the way all of these pieces come together is like so:

The genetic table generator will run, generating a table with random properties and values. Keep in mind, the strings will actually be evaluated on their ASCII values in relation to target values. More on this in a few. A simple genetic table might look something like this:

[0] -> Ysl74.,34,.9/\]2gg5D25][46

[1] -> IIb,berl3/64654=/+saddhrt9rh-9454y

[2] -> ?>wa/a’QR#M KGLcknw83_+++

The gene map will create an array containing information like this:

(Motility) [0] -> [0] -> {index: 2, start: 6, end: 15}

The trait generator will generate a table of traits looking something like this:

[“Hibernation”] -> {34, 123, 65, 19}

[“Poison”] -> {10, 99, 14, 29, 78, 16, 41}

The numbers in the trait expressions represent the difference from one character to the next. So a gene section with the ASCII difference between it’s first and second letters that is 10 would begin to qualify for the trait at index 1. The more of these sequential differences the gene satisfies, the stronger the trait will manifest. This kind of checking may be quite expensive, but we’ll have to see.

Genes will be evaluated against a randomly determined array of arrays of numbers to determine the organisms resulting fitness. Genes will be read using the gene map to concatenate all of the like genes together, and then the system will begin evaluating each gene based on it’s ASCII value. The randomly determined array works as a standard. The deviation from the standard by each character in the string goes towards the gene’s score. Then the length of the gene, the total score, and the number of standard elements are factored in to get the final score for that gene. So, say our Motility gene standard was 34-198-102, and we had a gene that was translated into ASCII with values 56-202-181-89-30-2-102. Well, 56 is closest to 34 and is off by 22, so the first score is 22. 202 is closest to 198 and off by 4 so the total so far is 26. 181 is closest to 198 and is off by 17, so the total score is 43; and so on. Normally I would do all the math, but I don’t feel like it right now. Let’s just assume that the total score is 116. We then calc the gene potency by dividing the maximum string capacity (255 * 7), 1785, by the total score to get 15.3879. We then divide this answer by the number of standard values (4), to get the final value of 3.8. This is a fantastically good gene value. Most values will have values between 1.2 and 2.8, but it will vary greatly.

SPECIES

Our first plan for the implementation focused on microbial life. It’s a great starting point, so that’s what I will present here and will be working with for a while. However, I hope expand to multi-cellular creatures at some point, because I feel this system has a lot of potential no matter what scale you work at. So, here are attributes used to describe an organisms capabilities and presence within the sim/game:

  • Offense: Determines the amount of damage the organism can deal to it’s target food source. Food sources will only relinquish food (or die) after a certain amount of damage has been dealt.
  • Motility: The speed at which the organism can move about. This value will be guaged on percentage of a maximum value.
  • Defense: The amount of physical damage resistance, representing cell wall composition or hide thickness etc.
  • Sensation: The degree to which the organism is aware of it’s surroundings.
  • Blending: The degree to which the organism can blend into it’s environment.
  • Health: Determines the maximum amount of damage the organism can sustain until it dies.
  • Metabolism: The percentage of energy the organism can glean from it’s food source.  A higher value allows for more energy output.
  • Storage: The amount of food the organism stores for later use.  Stored food also increases the organisms weight, requiring more energy to move.
  • pH Resistance: The range of pH values the organism can survive in.  If the organism is in an environment it is not resistant to, it will begin taking damage at a rate of (|resist – environment|).  This gives them time to move into suitable environs.
  • Radiation Resistance: The amount of radiation the organism can withstand without becoming ill.  Double this value will kill the organism outright.  Radiation always has a chance of damaging DNA, so rad resist is simply for living conditions.
  • Ion Resistance: The range of diluted ions that the organism can live in.  This attribute functions similarly to pH resistance.
  • Thermal Resistance: The heat range in which the organism can live.  This attribute functions similarly to pH resistance.
  • Redundancy: The number of copies of genetic code the organism possesses.  When something effects DNA (such as radiation damage or replication), a random copy will be selected.  This aids in radiation resistance and mutation resistance.
  • Regeneration: How quickly physical wounds and health are healed.
  • Sequencing: The speed and accuracy at which replication occurs.  Levels are stepped, providing more accuracy, then more speed, etc.
  • Diet:  This one’s tricky.  This attribute determines which food sources the organism can eat, which ones it cannot eat, and which ones are poisonous (should it eat it), including poisons from attacks and other biological agents.

ORGANISM

In between each generation cycle, each organism will have active stats that will be taken into consideration while advancing state:

  • Health: The current amount of health the organism has.  If this falls to 0, it dies and can be therefore eaten.
  • Motility Modifier: This is directly effected by the organism’s health, decreasing as the organism is injured, allowing predators to  secure their prey more easily.
  • Energy: This is spent to perform different tasks, such as moving, digestion, attacking, regenerating, or reproducing.  Energy is gained through the eating and digestion of food.
  • Food Stored: The amount of food the organism has stored before it needs to feed again.
  • Health Modifier: This stat is directly effected by the organism’s radiation, pH, ion, and heat conditions.  If this modifier changes the organism’s maximum health to 0 or lower, the organism dies.
  • Conditions: This array stores the amount of ongoing radiation, pH, ion, heat, poison, physical, and other conditions that may be affecting the creature.

ENVIRONMENT:

The ‘test’ environment for this sim/game will be a petri dish.  The environment will be filled with many different species of bacteria, and resources will be pretty readily available, just to make sure the system works.  However, as the scope of this project grows, environments will become much more realistic and interesting.

  • pH Balance: The acidity of the surrounds.
  • Ion Balance: The amount of dissolved ions.
  • Background Radiation: The amount of ambient radiation.
  • Ambient Heat: The amount of ambient heat in the environment.
  • Resource Pockets: These pockets of food will be scattered about randomly.

The environment will change, sometimes slowly, sometimes rapidly.  Many different events will occur to change the environment in one way or another to show how selective pressures change species.

So, that’s the idea for now.  I’m still trying to figure out how to make this into a fun and interesting *game* versus a interesting *simulation*.  Will give more details later.

Well, it was only a matter of time.  I’ve created a game that I’m sure will be generating enormous amounts of grief for me.  Still, it’s message is very important and will be presented nonetheless.  Here we go…I present to you, humble viewers of KRGB, the Game of Progress

The Game of Progress

6-10 players, moderate complexity

There are three piles of cards (Science, Faith, and Disasters) around which the players are to be seated.  Each player rolls a d20.  If the roll result is 10 or less, the player is a “True Believer” and will pull cards from the Faith pile.  If the roll is 11 or higher, the player is a “Scientist” and will pull cards from the Science pile.

Once the teams have been determined, each team rolls the d20 to see who goes first.  Whoever gets the higher roll on the d20 goes first.  The team that goes first picks who in their team will start.  A round is completed when play returns to this first person.  At the beginning of the game, flip over the first Disaster card.

Play proceeds clockwise around the circle, each player can play one card per turn on their turn (unless a card they have says otherwise).

Side Specifics:

Scientists draw 3 cards at the beginning of the game.  Scientists keep 3 cards in their hand at all times.  <This signifies the ever-changing and growing world of science and technology that we live in.>  Scientists play cards to build up Progress Points to avert the disasters.  Once a disaster has been averted using Progress Points, the previous True Believer becomes a Scientist, discarding their Faith cards and drawing up 3 Science cards. <This signifies the power of science and reason to solve problems in the real world>

True Believers draw 4 cards at the beginning of the game.  True Believers only draw cards when a card allows them to, or when they are converted.  <This signifies the large of array of unsupported claims that believers use to coerce their followers, which changes very rarely.>  If a True Believer has no cards on their turn, they are forced to skip their turn.  True Believers play cards to increase their Grief Points or to convert Scientists.  At the end of each True Believer’s turn, the player rolls a d20.  On a result of 0f 20, the current Disaster card is discarded, and the previous Scientist is converted.  <This symbolizes the fact that what believers say rarely coincides with reality, and they tout it as a huge success, gaining the attention of the masses.>

Disasters:

Every 5 rounds, a new Disaster card is brought into play, along side any other current disasters.  If a fourth Disaster card is brought into play, the game is over with no winner.  <This represents world-ending disastrous affairs.>

Winning:

If all of the players are converted to Scientists, the game ends with the Scientists as the winning team.  If all of the players are converted to True Believers, they must play for 5 more rounds.  If, at the end of those five rounds, all players are still True Believers and less than four Disaster cards are active, the game ends with the True Believers as the winning team.  <Believers would have nothing to protect them from disasters if there were no science, and scientists would be able to do more faster without the religious right slowing them down.>

Progress Points:

A way of recording Progress Points should be on hand, since the players on each team will shift frequently.  Progress Points are gained by playing Science cards.  Once enough Progress Points have been accumulated for an active disaster, the Disaster card and all of the Science cards played against it are discarded.  Progress Points can be spent for certain effects using cards.  Progress Points can be lost from certain Faith cards.

Grief Points:

A way of recording Grief Points should be on hand, since the players on each team will shift frequently.  One Grief Point per active disaster is given per round.  Grief Points can be gained by playing Faith cards.  Grief Points can be spent for certain effects using cards.  Grief Points cannot be lost by any other means.  <Rarely do people look to science for comfort.  It’s usually to religion and faith that they flock, rarely solving their problems.>

I would like to say that yes, this game is entirely over the top, ridiculous, and rather hypocritical.  But that’s the point.  It’s meant to be abrasive to highlight absurdities.  Other than that, I have no regrets.  Hyenjoy.

This next challenge is designed with the idea that we are supposed to present a theme and message through gameplay, rules, art, etc. using whatever theme and message we choose.  I’m excited about this one!  This is the culmination of the work we have been doing in this class up ’till now.  With that in mind, I’m full of ideas for this one; I almost have too many ideas, but I’ll try to put them all down as best I can.

Here are some of the ideas and messages I would like to convey in this game design.

  • Evolution (how it’s logical) and the idiocy of Intelligent Design/Creationism.
  • The solution for world peace (yeah, that’s right.  I think I have it.)
  • The fall of America and the murder of our fore father’s dreams.
  • Evolution (how it works, not just how it’s logical).
  • The scientific method vs. faith and ignorance (tough one).

I seriously intend on using the Grow A Game Cards for this one at some stage in it’s development.  I think they, at the very least, help to re-examine games in a different way, which can be very helpful in understanding what message was actually communicated vs. what message was intended.  Stay tuned.

I’ve been seriously considering scrapping my current game engine and starting from scratch.  This means that many month’s worth of work will be set aside to start on many more months of work.  However, this also means that I will be able to leverage my experiences a lot better and actually plan the engine out a little better than I did before.  I haven’t come to a decision yet, but it’s something I’ve been mulling over for the last few days.  Decisions, decisions…