Pond Wars post mortem

Hi everybody. Someone asked to see more post mortem stuff. So here goes.

It’s probably about time I acknowledged that Pond Wars is done and complete. Time to do people the honour of discussing what I learned. I’m going to focus on the design stuff but if anyone wants a full blown technical explanation let me know.

Oh, and if on the off chance you haven’t checked out the game yet you can play it on the webplayer on my website. Or you can download it from itch.io.

Inspirations

Pond Wars was my first original completed game. Prior to that I’d built flappy bird cones, space invaders clones, and made a variety of starts on my big dream project. (That’s a story for another post. My dream project makes the average forum noob with an MMO look like childs play.)

I spent a lot of time on answers. This question in particular struck a chord with me. At our local game dev meetup the next day I brought the question up, and we spent most of the night discussing how to build a system of water physics (and very little time on actually developing any games). That night I went home and built the first prototype, which was basically a cube floating on waves. At this point it was more of a technical exercise then a playable game.

Enter Starbase Battles. Starbase battles was a game one of the other devs at our meet up night was developing. A key feature of the game is passive play. Players can control the rotation of the base, but the base has no direct movement capacity. Movement is achieved by recoil from firing missiles. The key to success in the game is all about precise timing. Check out a video of the game below (download link in the description). It will take about five minutes to play and get a feel for what I’m talking about.

The final source of inspiration was a discussion with my wife. She saw my box floating on water and said the obvious things like “Why a box, make it into a boat”, “Why not make it two player” and “Who cares if the physics is wrong, you are making a game, it’s meant to be fun”. She was also responsible for the artwork you see in game.

Key design choices

The game was to be two player single screen. This decision falls back to my days playing mortal combat and wacky wheels as a kid. The game play should feel like an old street fighter game. Short fun rounds, and half of the fun coming from the social experience of being crowded around the keyboard

Shots cannot be aimed. This is one of the key points of difference in the game. The game doesn’t go to the player with the fastest reactions or the one who can remember the moves. The game is meant to reward patience and timing. Often not firing and waiting for a clearer shot is the best decision.

Shots are slow. The point is not to be able to machine gun fire willy-nilly and hope you hit the target. Shots are precious. So along with rewarding the player that waits, the timed shot mechanism penalises the player that spams the fire key.

Game Design Document

I’m not a huge fan of big GDDs. This is pretty much what I used in its place.

Key design surprises

Accurate physics is not fun. This was an eye opener to me. The first prototype had the crazy wave physics you see now. I built some basic player controllers and played it with my wife. The game was fun. So I went back and tuned the wave physics to be more real. We played the game again. This was not as fun as the first time around. This was a huge eye opener for me. More realism != more fun.

Several iterations later I invited my five year old daughter to play with me. She is much less aggressive than my wife, and spent more time avoiding me then trying to kill me. After about fifteen minutes I realised that the game was no longer fun. Hence the timer mechanism that you see now (heads up, latest play testing indicates the timer is still too long, in a future iteration rounds will probably be shorter). Key takeaway, ensure different play styles don’t break your game

Turns out that the artwork you use does make a difference. The current shape of the rocks on the edges of the map allow for players to get stuck (This is another one that will be fixed in a future iteration of the game). This was another revelation for me. Art and physics place constraints on each other, and sometimes in weird ways.

Technical challenges

I know I said this was mostly about design, but I’m going to hit a few key technical challenges as well. Surprisingly the basic wave and buoyancy physics were fairly straight forward. They are built directly on top of Unity’s built in physics.

It turns out that my wave model is subject to first order harmonics under some play conditions. As my four year old play tester expressed succinctly “Daddy, where has all the water gone?” In extreme conditions the water level can drop below the bottom of the lake. The solution was pretty simple, put in some intermediate nodes with more constraints. But discovering the conditions to produce the bug was trickier. It’s worth deliberately trying to break a game with corner cases before letting it out into the wild.

There was one persistent bug that didn’t get caught before release. In some circumstances a cannon ball could get stuck between colliders on a boat, basically making the boat unmanoeuvrable. The solution was simple, separate the buoyancy colliders and the collision colliders onto different layers. But it took explaining the problem to another dev in detail to come up with the idea. It’s important to share bugs as well as successes.

Perhaps the dumbest technical decision of the project was using a try catch block to deal with objects that went out of the playing area. The code ran something like this.

try {
    // buoyancy code
} catch {
    Destroy(gameObject);
}

Needless to say catching everything and destroying the object that threw the error was something I came to regret much later. I made some changes to the buoyancy model. The code stopped working, but without throwing an error. I had to manually trace the stack line by line to figure out what was going on. Yeah, enough said, just don’t do this.

The last technical challenge was boat’s capsizing. Once you were flipped over it became very difficult to flip back up again. While that was accurate, it wasn’t exactly fun. The solution to this was to offset the centre of mass. If you look closely the centre of mass for the boats is actually about a centimetre below the bottom of the boat. The centre of buoyancy is on the boat, where you would expect it to be. This means the boats have a preference to be upright. It’s a small change, but it’s enough to make the game feel fair.

Monetisation

Initially I focused on launching on monetised platforms, and on figuring out ways to incorporate ads in game. I burnt a lot of hours and energy on implementing various ad networks.

Several months later the game had brought in a grand total of 0.22 cents. I realised that selling the game for money wasn’t working. And worrying about how much money it was making was actually harming its distribution and uptake. There was that little article called don’t monetise your games that made me realise I was doing it all backwards. I need to get famous first, and then charge people to come see me play**.**

I hope you enjoyed this. Please discuss thoughts on the design and my choices below. And as usual I’m happy to write more about myself if people ask.

13 Likes

An interesting post.

As regards monetisation have a look at this Blogs recent news | Game Developer
It’s a lighthearted post but it makes the point.

2 Likes

That was a cute article. My honest thoughts on monetisation at the moment is its not worth the hassle. I spent a lot of hours working out the monetisation strategy, implementing code and so forth to make those 0.22 cents, and in general those were the least interesting and engaging hours of the project. For now I’ll stick to making money off my day job and keep game dev exclusively as a hobby.

2 Likes

Instead of hijacking your thread, possibly it might be worthwhile to point out a couple of things about the design and the game.

There seem to be a number of missed opportunities in the design and the gameplay. Physics does not need to be realistic but if not then it should be used in other ways to aid gameplay.

The boats will fly out of the water and land on the enemy, but it does nothing.

The sorting layers are wrong, and could have been used to enhance gameplay. Boats will fly over the background island but behind one of the trees. The cannonbal will shoot through the leaves, a nice effect if meant to happen, but looks out of place because the trajectory is wrong.

Thinking of sorting layers adding an up and down key could have been used to move the boats inwards and outwards on sorting layers which if used to shunt an enemy vessel could have added an element of gameplay in either capsizing a boat, or dodging collision and cannonball fire.

Same with the cannonballs, they could have been fired on one of three layers only connecting if the enemy boat is on the same layer, not showing what layer a cannonball is on after it is shot creates a different type of gameplay, almost similar to a vertical battleship game, and might cause players to move directly below a cannonball as they second guessed where it would land.

No matter how small a game one should always try to put in a certain depth to the mechanics.

There’s a lot that can be done to add depth to even very basic games that allows a certain level of discovery and emergent play.

The game could have had more than one win state with capsizing a boat being one of them.

The Starbase game is not passive, it has wraparound which allows the missiles to be used as engine boosters and the wrapariound introduces an element of skill.

There are a few other things, but I would say that the game doesn’t seem to be finished.

2 Likes

I love the discussion of the challenges and iteration.

I’m curious about the timing of the game. You decided to go with what some may consider to be very slow, deliberate movement. Did you experiment with faster speeds?

There’s a really interesting element in the design of a game like this involving the kinds of strategies you want to reward. You reward calculated, well timed attacks and you punish misses somewhat harshly by having the pond be deep and the ball take a lot of time to hit the bottom. I’m interested to know your thoughts on these mechanics and why you decided to draw the line where you did.

I think the game has a great core design, the water physics are really unusual, yet very intuitive. That said, @sicga123_1 has some good points. When I played, I also sort of expected flying my boat on top of the opponent would be a victory condition. Any plans for a Pond Wars 2 that might explore some of these ideas?

That really is the secret. We’re all doing it wrong!

2 Likes

Thank you for sharing your experiences. Liked the discussion about the technical issues, the basic design, and the evolution of the game’s development. I also struggled to understand how to play the game. Of course, I did the reliably newbish thing to do - I hit play, without reading the directions. Which meant I had no idea what was happening. And, it’s what people do.

I began wondering about ideas for ‘Pond Wars 2’. The water physics looks like it could be fun to play with. Might be fun to: change to a 1 person game, use a shallower lake, and fly objects attacking from above. So, instead of shooting another boat, it would end up being a whacky, shooter game, on a wibby-wobbly-timey-whimy water craft. Kind of like a cross between galaga, missile-command, and the old jetski water-racing games. Lots of themes go with this. From aliens, to rediculous fishing, to the lockness-monster shooting trash/oil/debree that’s being thrown into it’s lake.

Glad you are calling this one done. Now, you can move on to the next one!

Gigi

3 Likes

My advice to you, seeing as you’re now going hobbyist and you wish to monetise your youtube channel, would be not to make another one of these, but to start on your dream project and chart it via youtube videos and posts and advertise to every newcomer that wants to make a dream project themselves. Show it warts and all and it will be a journey that may have no end but may bring about other things and may be an opportunity to build a youtube following or patreon supporters.

1 Like

Others experiences are always interesting to read, so thanks for making this. Out of curiosity, how many copies got downloaded and what sort of advertising did you do?

The game reminds me of this old one my Grandpa used to have, where two monkeys took turns throwing exploding bananas at each other on top of a city skyline. In fact, I was surprised that you could move onto your opponent’s side of the pond. Or move at all really, since it’s pretty hard to hit your opponent =P

2 Likes

Congrats on joining the “I went public with a finished game!” club. You’ve made the jump that separates the incrementally-better from the rest!

You made a lot of very good points. I think you’re right to start with a project you don’t charge people to play. You additionally make some interesting observations that hold true elsewhere, like ‘accurate physics are not necessarily fun for the player,’ and ‘try to break what you make.’ To any lurker or newbie, those are three very important takeaways from your journey on this title.

Beyond that, I like that you include a section on key design decisions. In my projects and their associated post-mortems going forward, I’m going to be sure to enshrine those and talk about them.

Some suggestions, to help out:

  • Again, congratulations - you’ve passed the first test and finished something. I pose a question, though - how well is it doing, and why do say that it’s performing that way? For this first, finished project, you’ve correctly decided that money isn’t a good measure of anything. How else are you going to measure how good this is, and figure out where to improve?

  • Don’t just host your game on your site and itch.io. Now that you’ve gone public, I highly recommend that you distribute to what I call “The Big Four” of Unity freebie game development: GameJolt, Wooglie, Kongregate, and NewGrounds. NewGrounds in particular has actually been performing quite well for the project I put on it, relative to the others. You can and will get some small ad revenue, without having to integrate an API (Wooglie has an API, but it’s not an ad API.) itch.io for me hasn’t really performed well in terms of money or metrics to determine whether or not I am improving.

  • Support your product. When you expand this game to other audiences, they will report some minor bugs, for all the reasons you talked about in sharing your project with your family and friends. Fixing the bugs quickly will improve the ratings your game gets slightly - this happened to me with The Hero’s Journey.

  • Consider a personal technical post-mortem that you either don’t share, or do share with your Game Dev meetup - the point is to talk better tech and figure out where to improve that. Identify bits of code you could use for other games, and package them up for later - this will help you spend less time writing code, and more time making a game. I’ve killed a lot of prototypes and in-progress projects, but the end result has been better technology that made it easier for me to make prototypes and in-progress projects that I could kill later. :wink:

Can’t wait to see what you come up with next!

3 Likes

So, I have some feedback and by god do not jump on me for saying this: It’s just a business thing and if you want to accept the potential pros and cons of it… that’s ok. I just want to be clear as glass.

  1. If your goal is to become famous first - then make money - you need to focus on games that give you a way to collect player data (IE: Emails). This is key :slight_smile:

  2. I’d change the name of your company. I assume you are, in fact, Mormon, but it gives the wrong impression of the kind of games you’re making. The assumption people will make is there’s a religious theme or motive behind the game and that will turn them off before they even see it. I know you well enough from the forums that I don’t mind saying this, but even still look at all the prefacing I felt I had to do to ensure nobody got upset over suggesting that religion hurts game sales :slight_smile:

I do see a lot of potential with the water physics model you came up with to help craft some interesting dynamic combat or movement. I say keep it up. Not necessary with this project, but in general and of course, thanks for sharing!

3 Likes

Thanks for the feedback guys.

@frosted I did experiment with faster movement. As things move faster the game becomes more about reactions times and less about precision.

@sicga123_1 I hadn’t considered adding more complexity in terms of a 3rd dimension. I did toy with adding in bonus drops for a while.

@Gigiwoo pretty much none of my play testers have read the instructions. Not even the ones who randomly played my game at a meet up night without realising the dev was sitting across the room just observing. Most struggled figuring out the keys. Most also expected the up key to do something. I think some sort of ten second cut scene tutorial the first time you play might be justified.

@BeefSupreme the marketing budget was extremely limited. I spent about 50 on a google campaign attempting to attract people searching for two player same screen games. That level of marketing doesn’t really transfer well through to a huge amount of plays, and I quickly abandoned the idea of throwing more money at it.

I honestly couldn’t tell you how many downloads its had. I haven’t included any analytics in the game. I played around with a lot of different places to host the game. Initially starting off with google drive, then facebook, then knogregate, then my blog, then itch.io. The numbers I do have show 1000 plays on Kongregate and 6 downloads on itch. I would be highly surprised if there are more then 100 copies of the game in existence.

@sicga123_1 I like the encouragement to do my dream project. But I’m not even sure its possible. Let alone doable by a single person in any sort of reasonable time frame. Even the biggest studios would struggle to pull it off.

@AndrewGrayGames nice advice. I’ll check out the other options for distribution you mentioned. I also like the idea of a personal tech post mortem

Pond Wars 2

Since people have mentioned it a couple of times, there are three concepts I’m playing with for this

  • Pond Wars 3D
  • Pond Wars single player
  • Pond Wars online (cross platform network two player)

However writing this post mortem has been an eye opener for me. The first days of building the initial concepts, watching the first play tests, experimenting with new data structures were exciting. I had energy to burn throwing at game development.

Walking away from Pond Wars and on to something new may be just what I need to get me out of the slump I’m in. I’m going to play with this for a few days, and if it still sits right, I may call this project done. At least for the next year or two.

1 Like

@ironbellystudios

You are right, I am a Mormon and highly religious. The name is a throwback to time I spend on more religious themed forums. Declaring your biases straight out helped reduce confusion and flame wars (a little). The main reason I’ve stuck with it is I hate messing with multiple screen names.

That said I might end up changing the name of the studio. Pond Wars has no religious theme at all, so it is misleading. The website name is also pretty hard for people to remember.

Are there options other than a tutorial? Things that come to make. 1) more intuitive choices, for instance, the LEFT/RIGHT/UP key, spacebar, return, left-mouse click - ANYTHING. 2) on-screen reminders - little arrows that point to the boats (ex. Player 1 - WASD & E). 3) Text that appears periodically - ‘Press E to fire’. Please don’t waste time with a tutorial. Boring. Mind you, these are ideas for a FUTURE game. This one is done :).

Some thoughts:

  1. Call it done. Enjoy the feeling of it being done.
  2. If you makee a Pond Wars 2, I vote for Single Player. 3D is an incredible time-sink - 3D water physics is hard to implement, hard to visualize, and even harder for your game to be fun. The sideways water physics is what makes this game. And, online multiplayer, ‘Meh’.

Gigi

4 Likes

I agree with that, however, one can add a 3D dimension in gameplay without actually having a 3D dimension in actuality. I was referring to using flipping between the 2D sorting layers to create additional gameplay, I wasn’t suggesting going full on 3D. Quite a few interesting things (subject to testing - may not workout of course) can be done by playing around with sorting layers in a dynamic fashion.

2 Likes

I sort of see the appeal of going single player, the ‘fighting game’ model is kind of harder to play (you need 2 players!).

I think that a lot of the mechanic of the water would lose its charm if you build it as a platformer. The water becomes sort of a gimmick that you layer conventional platformer stuff on top of.

Even though it may reduce the target audience by an order magnitude, I think you should stay true to the core premise: heads up, fighting game style. So I’d vote in favor of network multiplayer, I think this is a natural step.

Probably the most successful version of this kind of game (other than fighting games) is a turn based version called Worms that was released on xbox arcade (essentially a modernized version of the tank war game that was one of the first multi player games ever made).

The closest thing to a successful single player version of this is probably Angry Birds, and although that is different kind of game, if you want to go single player - this is much more what I would suggest thinking about, rather than a platformer.

The interesting thing Pond Wars brings to the table is that unlike other ‘trajectory games’ you have no direct control over the angle - you respond to the water. So, the main game play should really revolve around manipulating the water to give you an advantage. Since responding to water is so crucial, it’s gotta be real time. Which makes it a hybrid of a fighting game and a classic turn based trajectory game. You should look to both these genres for inspiration, think about how you can manipulate the water in new, interesting ways.

But regardless of what you do - if you want people to actually play it, and like it, you gotta give it some juice. There needs to be visual feedback. If you shoot the enemy, something needs to animate. Maybe freeze the screen .25f after impact, slap a vignette filter on the camera, and stick a text bubble above the boat “Ouch! You got me!” - “You trying to sink my battleship!?” etc.

Camera tricks can be super effective juice that can be done with no work other than a few lines of code and a little imagination.

3 Likes