I moved to a new URL! Check it out!

The Future of Otter

The Future of Otter
Time for some thoughts!

I have this game engine called Otter. It's heavily inspired and influenced by Flashpunk which I used for a number of years for a number of games including Offspring Fling.

I really like using Otter, and it was a lot of fun developing it, but lately I'm not feeling super sure if I can depend on it for the future. Otter really fits my coding style, and I've learned a lot making it, and I feel like it can always be improved (often times I have to resist the urge to start a new version of it that would improve on the core of it now that I know way more about .net, SFML, and openGL,) but I'm not sure how worth it is to keep using.

Unity is gobbling up a lot of game devs these days. Everyone and their grandma is using Unity to develop games. I don't have anything against Unity, but I have a hard time leaving my fate to a tool that is essentially a black box. I have a lot of friends that use it, and sometimes their stories about core Unity bugs disrupting their entire project can give me nightmares. Being at the mercy of a crazy Unity bug that wont be addressed for a few versions seems incredibly stressful... so I'm not totally sold on jumping ship to the Unity train.

I think the core hesitation I have with Otter lately is its dependency on SFML.Net. SFML has had a lot advancements lately thanks to the recently formed core SFML team, but I think SFML.Net and the C bindings are going to be left by the wayside as they start making progress on the core C++ version. There's just not enough people using SFML.Net, and often times I feel very isolated when trying to solve weird issues since the community is so tiny.

So maybe one of my options is to go to XNA/Monogame, but that isn't a perfect scenario either. Unity's main draw to me right now is the whole built in editor and inspector thing, and XNA/Monogame doesn't leave me in any better of a position than SFML in that regard. I don't have any editors for Otter, and once I step outside the realm of pixel art there's absolutely zero good solutions out there for editing content (for something like a platformer, for example.) There are a couple of spun up editor projects out there, but they are barely useable and have way too many bugs for any project outside of the scope of a 48 hour game jam.

Another option is Haxe, but honestly I'd do anything to stick with the world of .net and C# for as long as possible. I love C# and it's amazing, and I don't want to go back to anything that resembles actionscript.

I'm just sort of using this blog post to think outloud really. I really like Unity's editor aspect lately, but their 2d support still seems really dumb... and relying on a third party tool is something that I'd rather not do (I've been scarred though my years of using Klik & Play and all of it's successors.) Maybe I can port Otter to XNA/Monogame and that would be a good solution, but I'm not exactly looking forward to spending a month or so doing that. What I was really hoping for was for someone to join up with me for Otter development but unfortunately I don't think Otter is cool enough for that to happen. Really what I probably need is more info about how to get started using Otter. The little info I've put out there has now become outdated, so starting up with Otter can be pretty though for the average person.

All in all I think I'm going to keep using Otter for the time being, and I think the most realistic scenario is a port of the internals to something else. The XNA/Monogame route seems very tempting, but I know there are a number of problems with that that need to be solved beforehand. There were some specific reasons I went with SFML over XNA and I'm not sure how I'm going to get around some of the issues there. Maybe I can cut out SFML and just go straight into openGL or something... but then I know things like text rendering is going to be an even bigger nightmare than it already is now.

There's never a perfect solution for this kinda thing! If only I had a little bit better of a programmer brain I could make Otter into the perfect portable engine for different platforms, and I'd make a sweet editor to go along with it... oh well! Really I have no idea what to do right now, but that's par for the course. Guess I'll just keeping working on Sky Sisters and a couple of other projects I have spun up and see what happens.


Bret Hudson
Bret Hudson
Two things about XNA/Monogame:

1) Monogame actually doesn't use XNA anymore! They cut it out of the framework a couple months back in the 3.3 update.

2) You might have been reluctant due to the way XNA handles assets through its pipeline. However, that was cut from Monogame as well in the 3.4 update.

Just some food for thought. :) If I had more time and not a dozen projects on my plate already, I'd definitely jump on board Otter dev and help out in any way I can. I absolutely love the engine and tell tons of people about it. I think I've gotten thirteen people now using it. I might have converted a couple more people on my Twitch stream the other day; quite a few people in the chat were intrigued with the way Otter handles things.

Going forward, I think switching to Monogame would be a good idea to remove a lot of the restrictions SFML.net holds on Otter. One of the things I would want to see in the future of Otter is to be able to port to other platforms, mainly iOS/Android. SFML's C++ can't even port to those yet, but Monogame has tons of options for platforms.
Posted June 26th 2015 12:05 PM
Kirill Losev
Kirill Losev
quite interesting thoughts.
i use Unity as main tools now. and i never had problems with BIGBUGS. may be it's because i have not done any big game yet. i've implemented things like 2d mesh slicing and directional lighting with it and it works just fine. the biggest problem for me is a version of Mono :(
you can try to make a mini-local-jam game. nobody said that you can use only one engine :D
i try to use things like haxeflixel, for example. but the editor.... it's very useful.

also, i really wanna make mini game with Otter soon

all the best!
Posted June 26th 2015 12:44 PM
Kirill Losev
Kirill Losev
i don't defend Unity
i think the editor is a reason why i still use it and did not switched to something new =\
Posted June 26th 2015 1:05 PM
Hey thanks for the input!

Bret: So for XNA and Monogame there were some weird things like rendering primitives was incredibly difficult from what I remember. This may have improved by now, and I also think shader stuff and rendering to a texture was more complicated than I wanted it to be. The pipeline stuff can be avoided by just loading files I thought (like how Towerfall does it)

I really like how Otter works, I just don't like the underbelly of it anymore. I talked to some developers who have used SFML.net and SFML for large scale commercial projects, and unfortunately they had some major issues with porting, and I don't want to end up in that scenario.

Kirill: Ah right, Unity still runs on an old version of Mono, right? Which makes some features of .net unavailable? But I think they're resolving that soon? (but who knows how soon "soon" really is)

I could try a small game some time, that is a good idea. The editor is really powerful, but I feel like if I could get a solid 2d editor for general purpose stuff, Otter would be just as comfy for me (aside from the lack of live inspector and editing)
Posted June 26th 2015 6:03 PM
Kirill Losev
Kirill Losev
yeah, unity uses a 2.x version of Mono which is outdated(a current version is 4.0) and you need to spend a time for optimization (probably you heard about a bad garbage collector). Unity makes il2cpp which should optimize your old-Mono code for better performance. this thing sounds cool, but unity has this problem what looks like "we made a feature X, but we are not going to develop it for a long time".

i would like to help with Otter as much as i can. but i am not a good programmer for an important stuff like editor :(
also, other platforms are pretty important nowadays, which looks like a main problem for you. and this thing always spooks me :D

about the editor. yeah, Inspector in unity is the most useful thing for me. and maybe Hierarchy(good to handle objects and to see what exist on the scene)

i will wait for news about what you are going to do with these problems. hopefully i will be able to help you somehow

PS: sorry for my english. it's not my main language. i try to be better in it
Posted June 27th 2015 6:56 AM
Thanks! I can understand your english no problem :)

I want to take the shell of Otter and port it to something else, maybe with some adjustments. I've had some ideas about how I could improve things with my last couple of game projects with it, but those improvements might require rewrites of some of the core pieces of the engine.
Posted June 30th 2015 1:11 AM
Kirill Losev
Kirill Losev
Sounds interesting. I will wait for news :)
Posted June 30th 2015 4:26 AM
new comment!

Post your comment!