Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411412 Posts in 69360 Topics- by 58415 Members - Latest Member: sophi_26

April 15, 2024, 11:28:18 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Any decent 2D engines?
Pages: [1] 2 3
Print
Author Topic: Any decent 2D engines?  (Read 6427 times)
WaywardEmcee
Level 0
***


View Profile
« on: January 03, 2017, 11:25:09 AM »

So I've honestly been struggling to find a decent 2D engine to work with. I'm making a procedurally generated game, so I don't need map editors or anything of the sort, but it's also fairly data heavy so I need it to easily be able to read JSON data.

A few months ago I started working on it with Unity, and after about several years total with that engine I've come to the conclusion that I love the Unity engine, and I absolute hate the Unity editor. The inherit bloat of just trying to get a pixel perfect 2D game and decent JSON parsing is enough for me to discard the hex tile engine I wrote and seek something else.

My next stop was Phaser.IO;  The problem here is that Phaser is in a super weird state, where they have this 2.7 version which is community supported and stable, but it's also only in ES5 (which no fucking way in hell am I ever going back to) or TypeScript; while the 3.0 version seems to be unstable and missing features. So I tried giving the TypeScript version a try, however because we need to dynamically serve content and me not wanting to deal with XAMPP I threw together an NWJS package for it; of course Phaser's official doc assumes if you're using TypeScript you're on Windows and can use Visual Studio, which means I'm on my own on a Mac in terms on figuring out wtf is going. Well I got most things working, but then gave up in frustration when I realized that console logs from anything besides the .ts don't get triggered because of file resolution bullshit.


So does anyone know of any engine (I don't care about language, but Python style makes my eyes bleed), that has little boilerplate for pixel perfect 2D (it shouldn't take me more than 3 lines of code to load a sprite sheet, and render a specific frame from it), has decent JSON parsing, and doesn't force ridiculous project structure (including forcing a component-entity system)?
Logged

Follow me on the twitters: @WaywardEmcee.
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #1 on: January 03, 2017, 06:29:36 PM »

monogame - easy to setup pixel rendering, is c# so json parsing is awesome and runs on a ton of platforms. I'm not sure how you go about using it well on a mac though. It really shines with visual studio.

haxeflixel - This is probably more what you want. You can have a pixel perfect animated sprite in 2 lines of code. The only thing is that you inherit from FlxSprite which isn't really a big deal but something you might care about. Also runs on everything. Probably moreso than monogame.

If I were on a mac I'd probably go with haxeflixel mainly because it doesn't need visual studio (unfortunately the best editor HaxeDevelop is windows only).
Logged

thomf00
Level 0
***



View Profile WWW
« Reply #2 on: January 04, 2017, 09:07:30 AM »

I use Haxe with something called NME and then my own engine on top, but you can get by with just NME to start, but it's a bit more low level than Haxeflixel. If you end up trying and liking haxe I'd suggest IntelliJ with the haxe plugin, or sublime for editing on mac. For both you still alt tab to a console and run a command to get something going.
Logged

Twitter @thomasuster
Photon
Level 4
****


View Profile
« Reply #3 on: January 04, 2017, 09:16:16 AM »

Haxe and OpenFL is what I use. Pretty easy to get something basic up and running and you don't have to dive into a boatload of bells and whistles if you don't want to (at least in my experience so far.)
Logged
_glitch
Guest
« Reply #4 on: January 04, 2017, 09:46:12 AM »

I can highly recommend MonoGame. It's easy for beginners and fast.
Logged
test84
Level 0
***


View Profile WWW
« Reply #5 on: January 05, 2017, 04:10:30 AM »

I'm researching this and I've read that MonoGame requires Xamarin (license YEARLY) to export to Android and iOS. Please correct me if I'm wrong.
Logged

pmprog
Level 1
*


View Profile WWW
« Reply #6 on: January 05, 2017, 05:18:07 AM »

How about Löve? It's Lua based, seems quite nice from my simple tests.

My current projects, I use Allegro, but it's not really a "game engine" (but it will do practically everything you need to make a game: graphics, input, audio), but I was thinking about looking at Unity (I'm thinking of supporting Android in my current game), but I've never understood the editor, so I was pointed at Futile. Maybe that would help you?

Logged
theomg
Level 0
*


View Profile
« Reply #7 on: January 06, 2017, 10:52:07 AM »

I'm researching this and I've read that MonoGame requires Xamarin (license YEARLY) to export to Android and iOS. Please correct me if I'm wrong.
I'm rather sure that's not the case anymore after Microsoft's acquisition of Xamarin.
Logged
_glitch
Guest
« Reply #8 on: January 06, 2017, 11:03:56 AM »

I have downloaded Xamarin to build Android apps. It's completely free and runs excellent.
Logged
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #9 on: January 07, 2017, 06:25:26 PM »

I'm researching this and I've read that MonoGame requires Xamarin (license YEARLY) to export to Android and iOS. Please correct me if I'm wrong.

That's wrong. MS bought Xamarin and made it free. Even then it still compiles against .net. Basically your target dictates what it compiles against.

Xamarin is an install option when you install visual studio community edition.
Logged

Kakapio
Level 0
***



View Profile
« Reply #10 on: January 07, 2017, 11:40:22 PM »

Another engine to consider is the Duality Engine Wink

While it does have an editor, it's extremely basic. There's no messy stuff all over the place like with Unity. Duality has some useful features, like built-in physics and animation tools. It does come packed with a tile engine that you can download (along with sample code!). The community is small but super helpful. There's a Discord where you can essentially find help at any time, along with a forum as well.
Logged

What will you make?

Twitter
Scarlet Tower DevLog
The Adversary
Level 0
*


View Profile
« Reply #11 on: January 08, 2017, 11:38:15 AM »

I have developed a 2D engine I use myself for my own games. I'm starting my own company using this engine.
Here is the itch.io page with three games free to download. The game 'Schizo Driver' uses the most advanced version.
http://theadversary.itch.io
If there is enough interest I might release the engine for licensing.
My new game project is also using procedural generation and large amounts of data for 2D as well. The engine supports both sub-pixel and pixel precise movement. I could compile a list of specific features but it's best to play the games, especially 'Schizo Driver'.
Logged
Neowedge
Level 0
*

Boom!!!


View Profile WWW
« Reply #12 on: January 09, 2017, 08:52:50 AM »

If JSON is not a heavy requeriment for you, Unity uses YAML (very similar to JSON) in .asset resources (as well in scenes and prefabs) and it is very easy create it with custom editors.

Else, did you try Cocos 2D?

http://www.cocos2d-x.org/products

I didn't, but it's open source, free and it has an editor. There are a lot of companies that use it instead of Unity. If you (or someone else) try it, I will be glad of hear your opinion about it Wink
Logged

Miguel López
Studio Head & Programmer
Pancake Team
tanis
Level 1
*


View Profile WWW
« Reply #13 on: January 19, 2017, 03:06:55 PM »

If you don't want to leave Unity completely you might want to give a try at my 2D library built on top of it. Here's a sample starter project that you can toy around with: https://github.com/tanis2000/binocle-unity-seed
Logged

thomf00
Level 0
***



View Profile WWW
« Reply #14 on: January 20, 2017, 10:54:32 AM »

@tanis You work in haxe sometimes right? Be interested to know which is your favorite engine to work in so far.
Logged

Twitter @thomasuster
tanis
Level 1
*


View Profile WWW
« Reply #15 on: January 20, 2017, 12:28:00 PM »

@tanis You work in haxe sometimes right? Be interested to know which is your favorite engine to work in so far.

Hey Thomas! Nice to see you there too Smiley

Each engine has its own kind of projects and viceversa.
So far it looks like every engine has some drawbacks. My criteria is usually made of a few points:
- 2D or 3D support based on the project I need it for
- cross-platform
- assets management
- ease of packaging / distribution
- decent debugging support

There isn't a perfect engine that does it all well. In the end I pretty much use Unity when I need to protoype something quickly. Unreal is my favorite when I need a high level of details in 3D. I do use MonoGame+Nez from time to time. I tried all different Haxe frameworks and there isn't any I would suggest. The reason being:
- OpenFL: bad API, too much old flash style code
- Kha: it's a one man band project. I can't see it survive a long time
- HaxeFlixel, HaxePunk, etc: they're all based on OpenFL
- Snowkit: bad API, still in alpha
And basically the hxcpp target has a bad garbage collector. And you probably know something about it with your mobile games. Oh! And on top of that debugging is kinda crappy. I worked on the VSCode debug integration but it's still far from being usable.

For 2D projects I enjoy MonoGame being C# but distributing a game is painful. The current stable has crap macOS support. Starting a new project isn't exactly easy. Debugging is good though.

I do enjoy working on my C++ engine, but the build tools are damn hard to use and you need to write a lot of small tools to be able to start a new project and include the engine and have everything compile correctly on all the platforms.

What I would love to see is something like a small C engine that exposes LUA bindings or something like that and that has good cross platform support and a good debugger, but that's probably asking too much.

I have been thinking about porting my C++ engine to Haxe and use the Snowkit tooling to compile and distribute.
Logged

WaywardEmcee
Level 0
***


View Profile
« Reply #16 on: January 21, 2017, 12:49:20 AM »

So I've been working with HaxeFlixel for the past few weeks, and hopefully I'll be able to begin contributing to Screen Shot Saturdays in a few hours.  Coffee

At times it doesn't do enough, but that's okay. At this point I'm following a similar route as thomf00 and just building my own engine on top of it. I rather have an engine that doesn't do enough, because I can just extend it's functionality rather than engine that does too much, and then I have to waste endless hours trying to figure out how to get it to stop doing something without breaking some internal code logic (which by Murphy's Law will only be apparent a month down the line).
Logged

Follow me on the twitters: @WaywardEmcee.
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #17 on: January 21, 2017, 05:49:11 AM »

@tanis You work in haxe sometimes right? Be interested to know which is your favorite engine to work in so far.

What I would love to see is something like a small C engine that exposes LUA bindings or something like that and that has good cross platform support and a good debugger, but that's probably asking too much.


It sounds like you are describing Love2d.
Logged

tanis
Level 1
*


View Profile WWW
« Reply #18 on: January 21, 2017, 06:40:14 AM »

@tanis You work in haxe sometimes right? Be interested to know which is your favorite engine to work in so far.

What I would love to see is something like a small C engine that exposes LUA bindings or something like that and that has good cross platform support and a good debugger, but that's probably asking too much.


It sounds like you are describing Love2d.

Love2d has no iOS or Android support, nor it works on gaming consoles.
And AFAIK there isn't much of a debugger for LUA, but I haven't searched much about it so I might be completely wrong.
Logged

Thaumaturge
Level 10
*****



View Profile WWW
« Reply #19 on: January 21, 2017, 05:22:36 PM »

What I would love to see is something like a small C engine that exposes LUA bindings or something like that and that has good cross platform support and a good debugger, but that's probably asking too much.

It's C++ (I believe) rather than C, uses Python rather than LUA, and I'm dubious of calling it "small", but have you looked at Panda3D? It lacks a Unity-style editor (last I checked, at least), but it seems pretty feature-rich to me. I believe that it can distribute to all of Windows, Linux, and MacOS, although I don't think that I've tried building for MacOS.

(It's been my choice of engine for some time now, although I'll confess that at least some of that is familiarity and a liking of its licence.)

Regarding 2D projects specifically, I believe that it has a scene-root specifically intended for pixel-based placement. I don't know offhand whether it has any sub-pixelling issues, however.
Logged

Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic