Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Tuesday, July 18, 2023

Making a Game from Start to Finish

One of the questions I’m asked a lot is what it takes to make a game. After more than a dozen years as a game developer, I’ve finished a lot of games (and I'm currently working on 2+).

This blog post covers my process of making a game from start to finish, along with thoughts and stumbling blocks along the way! Of course, this isn’t the only way to make games. But it’s the way that works for me!

The Idea

The idea stage is my favorite. Some people struggle to come up with new ideas, but personally I never have - ideas come to me faster than I know what to do with. Because of this, I try to at least keep my ideas organized. I keep all of my ideas in a spreadsheet, with a genre, score (how much I like the idea), description, and link to a game design document if it exists. I also keep notes, mainly things the idea is missing or needs to improve.

When I have a new idea, I add it to the sheet, or perhaps merge with and edit previous ideas. I also update the scores periodically to keep the best ideas at the top (there are currently 64 ideas in the list… the bottom ones will never see the light of day).

This also lets ideas age - when you have a new idea, it always feels special, like the best idea you've ever had. After a few months sitting in the ideas list, the novelty of some of the ideas wears off and it goes down the list, while some stay as interesting and exciting as ever.

When it's time to start a new game project, I have a list of ideas to look through that have had edits, improvements, and have weathered the test of time.

Finally, at the top of the list, I have a reminder for myself:

A good game idea
Is something I'm excited to make
Capable of making
And has a viable market

These may all seem pretty obvious, but it's surprising how many times I come up with an idea that doesn't follow one (or any) of them.

The Prototype

When I’ve settled on an idea, the first thing I do is make a prototype. The goal of the prototype is to see - vaguely - how the game plays and whether it is actually fun. I often share prototypes around with friends, and if there's something missing, I put a note in the ideas document and put that idea on hold until I come up with a potential improvement. While it's sad to put an idea on hold, it's always better to rethink things during the prototype phase - this is when you can change things with the least amount of work. Worst case, it's better to drop a prototype than a half-finished game. A poor idea almost never gets better with additional work and content.

Old prototypes that are dropped... for now...

The Honeymoon

I like to call early development on a game the honeymoon phase - that's because it's the most exciting part. The idea is still new, and a small amount of work can make huge improvements. Everything feels like it's going quickly and smoothly, and motivation is high. A short enough project can live entirely in this phase, although I rarely see that outside of game jams.

The Grind

Eventually, the honeymoon phase ends, and you need to start finding ways to motivate yourself to continue. New ideas beckon, and you see less and less progress for the work you put in. This is a normal part of the development process, and you have to learn how to stay focused and persevere, or you may never release a game. Keeping projects short reduces the grind, but even though I told myself I'd never make a 3+ year project again after Aground, I am currently working on two of them! The most exciting projects tend to take time, and they can be worthwhile, but you do have to find ways to deal with project fatigue.

Other than having self discipline (to motivate yourself and stay focused), there are two things that help me the most with project fatigue. One is to break tasks into meaningful and bite-sized pieces that I can check off and feel accomplished for finishing. The other is alternating between tasks I want to and don’t want to do throughout the project - if you always focus on the tasks you want to do first, you’ll end up with a large stretch of tasks you DON’T want to do. There are three things that cause the most grind for me - content, technical debt, and polish, which I’ll detail below.

Content

For me, the grind is often caused by content. The game is feature complete, the gameplay and aspects that are fun to code are complete and the game feels "done" in my mind, but it still needs a lot of content added. While it varies from project to project, I've found in general 1 hour of gameplay (for the player) takes about 1 month to develop. Without content, players won't know how to interact with all of the interesting mechanics you've added, and there won't be any cohesion to the game.

Mixing content and gameplay tasks makes a lot of sense - especially since new content usually unlocks new gameplay. However, if you're not doing a solo project, you often need to wait for art/content to be created by other team members, so sometimes I frontload all the gameplay tasks anyways. However, in this case, it can still be fun to see the new art and content made by others and integrate it into the game.

Technical Debt

Throughout a project, you will notice things that need to change or have feature suggestions or bug reports. Sometimes you fix these right away, but more often than not, you add it to a TODO list so you don't distract yourself from what you're currently working on. This is called Technical Debt - by putting it off, you have added tasks that you will have to complete later - and this can quickly get overwhelming.

Keep this list organized, be thoughtful before adding things to the list (does it REALLY need to be added), and clear items in it periodically to keep technical debt down.

Polish

There are two main kinds of polish:

  • Juice - Making the game more exciting and actions you take feel more impactful.
  • Oil - Removing stumbling blocks and making the game (and user experience) flow smoother.

You'll need both - as without oil, no matter how fun the game is, players will get frustrated and quit, and without juice, almost any gameplay loop will feel grindy. However, you can't just add "polish" as an item on your TODO list, it requires experimentation, feedback and iteration.

Here's a really good article about oil: https://www.gamedeveloper.com/design/oil-it-or-spoil-it-

Testing

Once you have something you're ready to share, I strongly recommend running a playtest and getting feedback from players - as you can never see your own game with fresh eyes. You'll rarely notice when your game is missing polish, as you're too used to the game and UI to notice a lack of oil, and you're too invested in the game to notice a lack of juice. However, during testing you'll get more feedback, suggestions, and bug reports than you know what to do with. If you're not careful, you could easily end up in an endless loop of technical debt and polish.

The Finish Line

At some point, you have to say the game is done. It will never be 100% - there will always be things you could do to improve the game. There's also a boost to motivation when you are near completion, so setting a firm launch date and choosing what final changes you want to make will often push you through the last bit needed before launch.

There will always be people wanting more (especially now that game as a service is a thing, and players are used to endless updates). So, find a place where you personally feel satisfied to call it done. You can always do a sequel or spinoff, if the right idea strikes you.

Conclusion

This blog post focused on the development side - as that is my forte. There's a whole list of marketing, publishing and post-launch stuff that's necessary too. Making a good game gives you the potential to succeed, but there's never any guarantee - even with a big marketing budget. But, I feel like just making it to the finish line of a large project is a huge achievement to be proud of. 

Monday, March 18, 2019

The Pitfalls of Pokemon, Endings and Progression

Growing up, Pokemon was one of my favorite games, and has continued to inspire many of my own game designs (from Deity Quest, which is very closely inspired, to my latest game, Aground, which is pretty different, but still takes some inspiration from Pokemon). I've tried to put the parts of Pokemon I loved into my game designs - but I never really considered the parts of Pokemon I didn't like. Upon thinking about it, there was one major flaw that stuck out in my mind: the endings. At some point in every Pokemon game, instead of genuinely enjoying the game, I would only continue playing to become champion and feel like I beat it. With all the hype around Pokemon Sword and Shield, I decided to play Pokemon Sun for the first time, but this time I decided to try to figure out why I never really enjoyed the end of the games. Because without considering it at all, I could unintentionally be introducing the same pitfalls into my own game designs.

Keep in mind: I'm not saying Pokemon is bad (I love it) or that it is the only game that has this problem - the majority of games have stronger beginnings than endings. The beginning is the part of the game that is played, tested and polished the most, and first impressions are very important. If, as a designer, you had to choose between a good start or a good end, you would always choose a good start. Once players are hooked, they will often play to the end even if the end isn't as good (as I did with Pokemon). But this doesn't mean the end isn't important - if the beginning is what hooks a player, the end is what players remember long after they beat the game.


The start of Pokemon Sun was really fun like I remembered - full of nostalgia, Pokemon catching, a cat starter (YAY), but it also had updated graphics and gameplay. Gaining experience for catching Pokemon stood out especially, as it's often harder to catch than defeat a Pokemon, so it is nice to gain experience for the effort. Gaining an improved EXP Share early on was also nice - as it meant that I no longer had to worry about keeping my core team levels balanced, they all gained (basically free) experience just for being on my team even if I didn't send them out. However, perhaps because of that extra experience, my Pokemon were higher level than normal and I started noticing issues with the game earlier than normal.

The Problems


The first problem: the One Hit Knockout - when you only get to use one move, there's not a lot of strategy or planning you can do during the battle.


Early in the game, even with a type advantage, it takes several hits to defeat an enemy of a similar level. This makes it possible to consider other moves, like boosting your attack so you can knock out the opponent faster, or other interesting status moves.

Late in the game, with a type advantage, you can consistently knock out enemies of a similar level in one hit. All of a sudden, interesting status moves feel like a waste - nothing can merit using a turn when you could've defeated the enemy that turn.

All of a sudden, attack power, type advantages, and speed become the most important parts of the game - often, the battle is decided before it even begins! Abilities and held items can offset this a little, but again, this is stuff decided before the battle, during the battle you just want to have your Pokemon with a type advantage out, and use your most powerful STAB (same type attack bonus) move.

This makes battles a lot less interesting, and a lot more meta. If the battle is usually decided before it even begins, then you have to be ready for the battle. If you send in the wrong Pokemon to start, you either have to sacrifice that Pokemon so you can switch for free, or switch and let the enemy get a free move, which can often give an overwhelming advantage when it only takes a single hit to get knocked out (even without a type advantage in some cases). This often leads me to bringing up a walkthrough to know exactly what Pokemon each trainer I'm about to fight has. It's easier than reloading or starting with a sacrifice Pokemon, and when this foreknowledge is the difference between and easy win or a crushing loss (sometimes without even a chance to make a move, as the opponents can do one hit knockouts as well), it becomes too tempting not to know.

Interesting final battle against an opponent with many different type Pokemon, or an easy sweep with foreknowledge?

But what this essentially means is that late game Pokemon battles involve me using a walkthrough, preparing for the fight, and then breezing through the battles with one hit knockouts. As you can imagine, this starts to feel less fun, and more of a chore. It was a lot more exciting when I could take a few moves to buff my Pokemon's stats, soften the enemy and switch out to win a tough battle - but in the world of one hit knockouts, this is not really an option.

The problem is that late game battles are too easy (even mindless) if you don’t make mistakes, but too difficult if you do - often being impossible to recover from a bad matchup or bad luck.

The reason for this is simple: defense and attack stats rise at a similar rate as Pokemon level up, but they learn new, more powerful moves - often twice or even three times as powerful. So, what would take 2 or 3 super effective hits with Ember would only take 1 super effective hit with Flamethrower (and it gets even crazier with Z-moves). Even though Pokemon also get more powerful status moves that raise defense more than one stage, it still counts as a move and requires a turn to use, which, as mentioned before, doesn't really help in a one hit knockout scenario. Similarly, items don’t really help either, as they take a turn, and even the best potion doesn’t help when the enemy defeats you in one hit.


One potential solution to this would be to have health increase faster than other stats - so even though attacks deal more damage, it would still take more than one turn to defeat an enemy. However, this runs the risk of feeling like your Pokemon are not getting more powerful - as even though they are dealing more damage, they aren't taking a larger chunk out of the enemy's health bar. With any RPG that uses levels, this is a problem you have to consider - you want the player to feel like they are getting stronger, but you want the battles to get more difficult as the player understands the battle system better, not easier (which can quickly make the player feel like they are getting weaker).

The second problem: no incentive to catch Pokemon late game.


There's one other major problem with late game Pokemon - catching them! I consider catching Pokemon the core of the game, and what makes it fun. But in the late game, I almost never catch Pokemon anymore, and it becomes all about the battles (which as I mentioned, get a lot less interesting).

In the beginning of the game, you start with one Pokemon, and you can have up to 6 on your team. Each Pokemon you catch, even if weak, is a potential asset and worth catching.

Worthless pokemon? Or valuable early help so your starter doesn’t have to fight alone?

Mid game, you have your team of Pokemon, but it's not balanced in terms of types (as not all types are available early on). So, you continue to catch Pokemon to improve your team, replacing the old Pokemon you caught earlier, sending them to the box.

Late game, you have a pretty solid team with balanced types, and while they might not have the highest base stats, there is a bonus for raising Pokemon from low levels as opposed to catching at high levels, so they are plenty powerful, and you are probably attached to your team. Because of this, there’s no real reason to catch and replace a Pokemon on your team anymore aside for a Legendary Pokemon where the stat difference is high enough (and it's cool enough) to be worth it. If I catch a Pokemon late game, it's usually just to send to a box to increase my pokedex percent for some random rewards, and it no longer feels important or valuable.

I hope you enjoy your box… it’s comfy there, right? Pokemon is even self aware of this and the story frequently talks about how Pokemon are used and then sent away when they are of no more use… but other than making you feel guilty, it doesn’t provide an alternative.

The only workaround I can think of for this is to give "boxed" Pokemon some value so they aren't just forgotten and collecting dust, or perhaps ending the game after you're able to assemble your dream team and prove it's worth.

In Conclusion


I'm definitely curious to see what changes Game Freak will make with Pokemon Sword and Shield, and looking closely at why I didn't enjoy Pokemon endings made me consider the endings for my own games. Deity Quest definitely has these problems (it was too heavily inspired by Pokemon), and while they don't have the exact same problems as Pokemon, almost all of my games that aren't super short have a similar issue of the endings not being as interesting as the beginnings. The one exception to this was, surprisingly, I Can't Escape and its sequel - where the excitement/suspense actually builds as you head deeper towards the ending. This was not intentional, but an interesting realization. It probably happened because I focused on ambiance and tension in those games, instead of progression and leveling.

While I doubt I'll go back to my older games and revise their endings at this point, knowing these pitfalls will help with Aground, which has already started to show similar signs of the player growing too powerful. And of course, it will help with future games, and perhaps your games too. Often, you don't realize what would make an ending better until you've made the game and analyzed the ending, at which point it's often too late. By trying to analyze the endings and flaws of similar games, perhaps we can identify the issues that will occur late-game in our own games and fix/balance them before it’s too late.

Monday, March 4, 2013

Pandora's Box Direction


Recently, sandbox games have gained a lot of popularity. Sandbox games allow the player to be creative, and provide many options for playing and solving problems. This freedom is what makes sandbox games so interesting, but it also usually correlates to a lack of direction in the game. In linear games, the player is constantly directed, with the game difficulty slowly increasing to challenge the player and keep them engaged until the end. With sandbox games, the player is usually thrown into a world and gets to do whatever they want. But without any direction, challenge or "end," instead of keeping the player engaged, the intrigue of the game will slowly wear off and they eventually stop playing. While obviously gameplay evolution and direction could keep the player engaged longer, adding strong direction would only ruin the freedom and spirit that makes sandbox games so successful.

A very successful sandbox game that has very little direction is Minecraft. I recently played the game, and enjoyed it a lot. In the beginning, there was a simple goal: survival. There were many ways to be creative to accomplish that goal - building structures, digging trenches, mining resources, crafting equipment, growing food, etc. Eventually, my fortress became impenetrable by the enemies in the game, and direction was lost. Survival was guaranteed, and from that point on, the game was all about exploring, experimenting in the world, and being creative. The multiplayer aspect improved this part of the game, as you could show your inventions to friends and work together on building projects. However, eventually, without challenge or direction, the game started to get dull. This is not to say Minecraft is a bad game, it entertained me for a long time before it got dull. But, I think with more direction, the game could have been even better and lasted even longer. For instance, I did create a netherword portal and explore it a little out of curiosity, but given there wasn't much there of value and it was very dangerous, I stayed out of the netherword for the most part. I feel like if there was direction, a reason to enter the netherworld, that could have added a whole new part of the game where I had to leave my comfort zone and learn to deal with the new challenges and enemies of the netherworld.

A smaller, less well known game by the same developer, is called Minicraft. Minicraft was made in 48 hours, and on it's surface, it looks a lot like a 2D version of Minecraft. However, Minicraft provides direction throughout the entire game without ruining the sandbox feel. The goal of the game is not to survive, but to defeat the Air Wizard. To defeat the Air Wizard, you'll need Gem equipment, and to get Gem equipment, you'll need to go down three levels of caves, each more dangerous than the last. The game suffers from rough edges and poor balancing due to the short development time, but there is direction to the game and the difficulty increases as you progress, without FORCING the player to do anything, keeping the freedom and spirit of sandbox games.

This form of direction I like to call Pandora's Box Direction (or player-initiated direction). Whether due to curiosity or need, the player is compelled to open Pandora's Box. Like in the myth, when opened, Pandora's Box increases the challenge and difficulty of the game, forcing the player to learn how to deal with that challenge by manipulating the sandbox. Quite possibly, in order to deal with the new threat, they feel compelled to open a new Pandora's Box, helping them deal with the first threat but releasing an even bigger threat. This creates a chain of direction, that always keeps the player on their toes and continues to give them reason to build and modify their sandbox. This chain allows the developer to balance the challenges at each box, but ultimately leaves the decision of when to open the box up to the player. This kind of direction can also create a plot, where at each "box" they learn something new, and are lead slowly but surely to some final confrontation. The direction could be completely linear, but because the player is given freedom of when to open the boxes, and freedom of how to deal with the new challenges, the game retains it's creative sandbox feel. It's like recreating that exciting first stage of Minecraft many times, each time with new enemies, challenges, and resources to keep the player engaged. For example, in Minecraft, mining diamonds could unleash a dragon from underground, who is angry you stole its treasure. Because the dragon can fly and burn wooden structures, players would have to completely rethink their defenses. And perhaps the best way to slay a dragon is to use a magic system, which requires resources unique to the netherworld, opening up a whole new pandora's box.

Sandbox games without direction can still be great games, but I personally believe that the challenges should continue evolving, so the difficulty never bottoms out. A player shouldn't quit the game because they end up finding it dull, but because they have reached some climax and ending. The Pandora's Box method is the best way to achieve this while staying within the open style that sandbox games create. I plan to experiment with this method and hope others do too!

Thursday, September 13, 2012

Four Tricks to Improve Game Balance

Balancing a game's difficulty can be tough. Different players will enter the game at different skill levels depending on whether they've played similar games or not. Their learning curves during the game will be varied as well, making it tricky to decide how difficult to make the game without making the game too difficult (frustrating), or too easy (boring).
Above is an approximate graph of balance zones based on the player's skill and the game's difficulty. As player skill increases, the difficulty must also increase to keep a balance. The balance zones are as follows:
  • Frustrating - Too difficult to be fun.
  • Hardcore Fun - Really tough, but some people like that.
  • Challenging Fun - For people who like to overcome challenges.
  • Balanced Fun - The goldilocks zone (not too tough, not too easy).
  • Casual Fun - Nice and easy, never a challenge, but not mindless either.
  • Mindless Fun - They just want to play, they don't want to think.
  • Boring - I could play this in my sleep... in fact, I'd rather sleep.
While it requires testing, balance and player feedback to really balance a game, this article will cover four tips and tricks for designing game difficulty, which I've learned through my game development experiences.

1. Know your audience.

Knowing your audience is important in almost every aspect of game development, and is also important for game balance. Who do you expect to play your game? What games will they have played before yours (and how similar are those games to yours)? Knowing the answer to these two questions will help you guess what skill level the players will start with, and which balance zone they prefer. A casual game should assume that the average player has a low skill level, and doesn't want to be particularly challenged. A niche game should assume that the average player enjoys that niche and has played many similar games before, and so has a high skill level and enjoys a challenge. Having a good read on your target audience gives you a starting point to balance the game, and will make your initial balancing more accurate.

The takeaway point here is that the better you understand your audience, the more you can cater the game to that audience - and that applies to a lot more than just the balance of the game.

2. Underestimate the player's learning curve.

The player's skill will increase throughout the course of the game, and so the difficulty of the game has to increase to compensate. However, overestimating the player's learning curve is worse than underestimating it (and most developers tend to overestimate their players - not everyone is as good as you!). If you overestimate the player's learning curve, players who learn quickly may get a good balance, but the rest of the players will not be able to keep up with the curve and the game will continue to get harder and harder until they can't continue. Whereas if you underestimate the player's learning curve, players who learn quickly will still enjoy the game even if it's not as challenging for them (they will simply feel that they are awesome), while the rest of the players will still be able to keep up with the game difficulty.

You've probably played a game you liked a lot in the beginning, but then it became so difficult that by the end it was no longer fun to play. The final boss was impossibly frustrating, and you probably resorted to walkthroughs or outright gave up. This is a situation you want to avoid at all costs. A player is far less likely to quit because a game is too easy.

The takeaway point here is that it's easier to lose players by making a game too hard than by making a game too easy. So, when in doubt, underestimate the player's learning curve (actually, it's good practice in general to underestimate your players).

3. Don't reward skilled players by making the game easier!

There are a lot of games that reward their players for doing well by giving them more upgrades. But what this is basically doing is making the game easier for players who already found the game easy, while giving nothing to the players who are struggling. A lot of these games try to compensate for these upgrades by increasing the difficulty. While this may balance the game for skilled players, it makes the game even more difficult for the players who were struggling and didn't even get the upgrades. This is a very fast way to lose players. Really, you should "reward" players who do well by making the game more difficult, and "punish" the players who do poorly by making the game easier, in essence dynamically changing the difficulty to suit the player. While this seems like an oxy-moron, there are ways to make higher difficulty feel like a reward, and lower difficulty feel like a punishment. For example, I've seen games that, if you do well enough, reward you by giving you access to a second ending. The gameplay to get the second ending is a lot more difficult than the first ending, but the reward is that you get the second, perhaps better, ending.

You can also hide the fact that the reward is making the game more difficult. For example, you could give the player upgrades if they do well, but increase the difficulty even more than the benefit of the upgrades (and don't change the difficulty for those who didn't get the upgrade). While this seems like cheating the player, most games that give upgrades increase the difficulty to compensate - this is the same idea, simply limiting the increased difficulty to the players who got the upgrades.

The takeaway point here is that while it's important to give rewards to players, making the game easier to a player who is already doing well is not really a reward in the long run.

4. Allow players to change the game's difficulty.

It's impossible to balance a game perfectly for every potential player. So, giving the player a choice on how difficult they want the game can help widen the audience. Players who want casual fun can lower the difficulty, and players who want a challenging experience can raise the difficulty. If the player can adjust the difficulty in the middle of the game, then they can even compensate for their learning curve. Just be certain to never punish a player for lowering the difficulty. It is a choice they are making to improve their gameplay experience. They may already feel bad about having to lower the difficulty, you don't need to rub it in their face with a punishment. If you do anything, reward players who increase the difficulty.


The takeaway point here is that players (sometimes) know themselves best, so letting them choose the difficulty can help balance the game to suit their personal needs.

Closing Thoughts

Testing and tweaking are still the most important methods of balancing a game. No matter how well you balance the game yourself, unless you are the sole audience of the game, you will need to know what it's like for others. Getting friends to play and comment on what they found easy and difficult is a great first step. A beta test that gets comments from the actual target audience of the game is even better. But these four tricks can improve the balance early on, and in doing so help focus the design of the game.

Monday, July 30, 2012

What Makes a Game Fun?


What makes a game fun? It's an age-old question that I'm sure every game developer has asked, or at least thought about at one point during their career. If you asked me that same question two years ago, I would've said that the mechanics made the game. However, after gaining more experience making games, especially Deus Shift, I have come to realize that game mechanics are only one part of the picture.

Obviously, without mechanics, you can't have a game. Mechanics are what make the game interactive - they're what you actually do when you play. That is why I think many game developers (including myself in the past) think of the mechanics as the most important factor for determining fun. With that mindset, I designed a very unique gameplay mechanic for Deus Shift. My friend and I spent nearly a year (part time) designing, balancing and prototyping the mechanics for Deus Shift until the prototype build was fun to play with friends. During the year, the game changed so drastically, that it is basically a different game than what was originally designed (it even had a different name in the beginning - Arcane Lands). So, we had mechanics that were fun, balanced, and were flexible, giving players ample opportunities even when losing. If mechanics really made the game, then we were sure to be sitting on a gold mine. After spending about nine months working on the design and prototypes, we spent maybe a month after that making art and polishing the game, and submitted it to Kongregate, certain that it would be successful.

A main menu and in game screenshot of Deus Shift. It doesn't look ugly, but it doesn't have a strong style, and looks grey, plain and uninspired.
For those of you who haven't guessed yet, Deus Shift did terribly, with an average rating of 2.79 out of 5. Our friends had liked the prototype, and the comments we received from the Kongregate community were mainly positive. So what went wrong? Looking back, it's pretty obvious to me. We spent 90% of our time on the game mechanics, but now I realize that game mechanics only count for about 5% of what makes a game fun. If you play the game (you can play it here: http://www.kongregate.com/games/terra0nova/deus-shift), you will notice a lack of style - it is very grey, plain and uninspired. There is also no campaign mode or story, and to top it all off, the tutorial is very rudimentary so it is difficult to learn the game. Without the ability to draw anyone into the game long enough to learn the mechanics, the mechanics are useless. A few people, for whatever reason, got into the game and really liked it (and our friends were forced to get into it, so their opinion was biased), but the majority of players weren't drawn into it, and so didn't enjoy playing it.

Most games don't develop entirely new mechanics like we tried with Deus Shift - they borrow mechanics from older games. In fact, many games play almost exactly like older games, only with a new skin. I used to criticize those games, claiming they weren't original and because of that, couldn't be fun. But that's really like saying a song is terrible because it has a similar chord progression as another song (for those of you who don't think many songs have similar chord progressions, listen to the Pachelbel Rant on youtube here: http://www.youtube.com/watch?v=JdxkVQy7QLM). Even though many songs have the same chord progression, they can sound different, invoke a different mood, and can still be unique and enjoyable. Games are really the same way. Think about why so many people enjoyed Half Life 2. It doesn't have original mechanics - the gameplay is fairly standard for a first person shooter. The visuals are nice too, but there are games with better visuals that I think are worse games overall. It's really how it sets the atmosphere, sets a mood and pulls you in that makes it unique, with the gameplay fitting in perfectly with each scene, making a complete and fun gaming experience. There are many other examples of games that are fun even if their mechanics are largely based on previous games. Think about your favorite games, and how they set their style, atmosphere, and mood.

I wont say don't come up with new and interesting game mechanics, as game mechanics are a part of what makes a game fun. However, keep the bigger picture in mind - do the mechanics fit with the style and mood of the game? A unique mechanic that doesn't fit the style (or takes up all the development time) may distract from the game and make it feel inconsistent or incomplete. Having a strong style and mood and tying all aspects together (design, art, story, etc) is what brings a game to life. The ability to bring all of these aspects together is what makes games so fascinating in the first place. In answer to the question: what makes a game fun, I would say it is how everything comes together, and the overall style the game creates.