I'd like to talk about how our (me and @Cemre 's) Ludum Dare 49 entry, Çiftlik Bar, was developed and how it was reacted. It's a Unity game. I hope this post mortem will be helpful for other developers.
Game
https://www.youtube.com/watch?v=MvjQBBEi4MQ
"Welcome to your first shift in ÇİFTLİK BAR!
This is no ordinary bar. The price of the beer changes every 5 seconds. Don’t hesitate to rip the patrons off with high prices, this is a business after all.
But be careful. If they wait for a long time, they will leave the bar. Or they can do worse than leaving the bar.
You are fired if no patron is left. Also, we have only 10 glasses of beer, so don’t serve beers when they are cheap.
Good luck! This is a work of luck."
Idea
We are a part of a Turkish game dev community called "ÜNOG". When the theme ("unstable") was announced, we were on the Discord server to discuss what could be done with the theme. Another member, Doğukan Köse, mentioned a bar that exists in real life. The bar worked exactly like Çiftlik Bar, the waiters would put the beer on your table only when the price was high.
There is also an infamous scam in Turkey, "Çiftlik Bank") ("Çiftlik" means "Farm" in Turkish, by the way). The name is a reference to it, considering we are scamming the patrons in the game.
"I must make a game about this", I thought.
Team
I am the programmer of the game, also worked on the design. Cemre is a multidisciplinary talent who makes both 3D art and music.
Development
It was 01:00 AM in Turkey, I was the only team member who was awake. I started a 2D prototype by myself before talking to my teammates, I would sleep at like 05:00 AM, developing the prototype was the best thing to spend my time.
In the morning, Cemre liked the idea. There would be another friend who would join us in the jam, but she said she had made other plans for the weekend. (My fault here was not reminding her there would be Ludum Dare that weekend). I had planned that she would make 2D art and the game would be 2D. But then, we had to make the game 3D.
The prototype was all 2D and top-down. There were a time limit, instead of a beer limit, but I saw that the game wasn't that enjoyable that way. This is a reason why we prototype the games. I had written the codes according to 2D logic, but it wasn't very hard to convert the existing codes to a 3D FPS game.
What went wrong?
Surely this is not something uncommon in game development, we decided to add some features during the development of the game.
For example, the patron model's mouth was not rigged at the beginning, after a while during the development we noticed that they should be smiling or frowning depending on their moods. Rather than getting back to the models, I made their mouth (which was a part of the model) transparent and added a mouth object to the model in Unity. The new mouth object's rotation would be set depending on the patron's mood.
Another difficult was me naming the patrons' tables as "Patron.cs". I hadn't thought that the patrons would be able to leave their tables, so I coded as if the patrons and the tables were combined entries. The class name of the walking creatures are "PatronHuman", which makes the source code look weird. I would refactor the codes if we didn't have a strict time limit.
At some point, I wanted to make the patrons' audio source a single one, so that only one patron would be heard at one time. I tried it, it sounded weird. This made the code look much messier.
I used Unity's nav mesh system for the patrons, who are able to walk to the exit door or chase us. Each time I baked the nav mesh and runned the game, the patrons would start the game at a point different than the chairs they were sitting on. That made me lose quite a time to fix their position. Also, if the patrons chase us and we are in the barstools (they don't have collider to make the game easier), they are not able to chase us. This is a bug I couldn't solve.
I wanted to add a global highscore table in the 3rd day. I found a tutorial about that. I spent hours to be able to connect the database I created in my website to Unity, but failed. That's something I really wanted to be able to do.
Reception
People enjoyed the game in general (though, I wish it became a hit like some of my past Ludum Dare entries). I believe that we made a fun game.
People mostly complained that they are unable to tell when a customer would leave the bar. I had wanted the players to take risks, that was a design pillar. But apparently, the players would enjoy the game more without that pillar. Honestly, not many people testes the game before the release, I wish we had seen that design pillar problem earlier.
Conclusion
You might see that you need new features while developing the game. You must be ready for that.
It's good to make people test the game before the release, so you can see that some things you see as enjoyable might not be for other people.