
I thought I'd do one of these for anyone that might be interested! π
Ubergine was made by 3 people in the UK, myself as the programmer and audio guy, my fiancΓ© @curleyrach doing environment art and UI and our friend @olliemotion doing character art and animations.
Me and Ollie had done a few Ludum Dares in the past where I was just doing audio but it had been a few years since then!
I've bounced on and off a lot of game engines over the years for various reasons but I have recently been using Monogame and I absolutely love it. It fits best with how I want to program games.
The Idea
We ran through a few ideas at the start but settled where we did for a few reasons. As this was my first time programming in Monogame, I haven't got round to programming a working camera solution yet π
so we wanted to keep the game stationary if possible. We also chose a side on perspective to allow for sprite flipping to ease the amount that Ollie and Rachel had to do!
The Ubergine itself was originally a tree, but we thought to ourselves, "Why would vegetarians be trying to eat a tree?" and made the jump to vegetables. It was then a case of finding a long visually interesting vegetable to fit in the play space we had available, and well... ππππππππ

We'd originally planned a basic arena shooter, but soon had the idea of splitting the controls. I was happy with this decision as it felt (at least slightly) original. It can be tough to control 2 characters at once, but I find when it clicks and you pull it off it feels great!

What went right
This was my first time building a complete game with Monogame as I've just been making prototypes and experiments for the past 2 months. With that in mind I'm very happy how the game turned out, seemingly bug free! π²π€ I did a lot of stuff that was new to me, but it all seemed to fit and work!
It's a little thing, but it was only when I got to spawning the enemies that I realised I was going to have to sort the sprites in a way so that things with a higher Y value would appear above other entities. This caused me some stress as I initially wasn't sure how to do it and thought it would cause the game to look very janky! It turned out to be as easy as giving the Entity base class a sortOrder property, having entities set their own sort order based on Y position every frame and then sorting the Entity list by the sortOrder property! Easy!
I also think the art was done really well and all tied together great. When Ollie sent me over the Ubergine graphics I knew we were onto something. π It seems like people really responded to the art which is a great feeling. π
Also this was @curleyrach's first time ever doing pixel art and she picked it up really fast. This is definitely going to become a new hobby for us both. π
The music turned out cool too and I was happy to have an excuse to whip out my banjo! πͺπΆ

What went wrong
One thing I feel could have been better were some of the sound effects. I woke up early Monday morning very tired and recorded those so I think some of them are a little lackluster but oh well. π
I took a shortcut with the particles also. I have programmed a particle system in Monogame before but I was a little scared to try it in a jam. So instead I opted to use this great tool Particle FX Designer by @Code Manu. Its a great tool that allows for quick output of nice looking particle effects to sprite sheets. So all the particles in the game are actually animations played with a random rotation value and some other modifiers to make them look different. π
Another issue I had was my UI. I am scaling the screen for fullscreen and different screen sizes by outputting the render to a texture and then scaling the texture up with ratio applied. This worked great for gameplay as it allowed me to program in a consistently sized world. The problem was that this meant that my UI layer was actually very small in pixels so I couldn't use hi-res fonts as they would look blurry! π’ Lesson learned for next time, I will be splitting the UI into a separate thing and scaling it differently to the game world to fix this issue!

Conclusion
We're in a very strange time a the moment and I didn't realise how much I needed to output something! It has been extremely satisfying to finish this project, be happy with the result, and have a really positive response from the community! Thanks for all the reviews so far! β₯β₯

Please play and rate Ubergine if you haven't already π
https://ldjam.com/events/ludum-dare/46/ubergine