What is the best Engine and Programming Language Should I use to make a complex 2D game? Request▾ | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 4

What is the best Engine and Programming Language Should I use to make a complex 2D game? Request▾

I am planning to make a very complex 2D sandbox game like terraria, but I want it to be more flexible and a lot better than it. It will have both rooms with a side view, and rooms with a top down view, so it will be possible to implement a lot more features. It will also have advanced physics, mechanics, etc. I am aware that not to many things can be processing at once because it will take up cpu, and I plan to not use fancy lighting and graphics that will take up gpu. I have been using Unity 3d because it is one of the best game engines right now, and Iv’e been studying C# for a year now. But I am worried that making a game using an engine that is intended for 3D games, would make 2D Development more difficult, and will limit me to simple mechanics. So I did some research and discovered that Terraira, a complex 2D sandbox game, was made using C# with Microsoft’s XNA Game Studio. This is good news, because I have experience with C#, but is Unity better? But is C# not the best language to use, and I should use Lua instead? I also found that there is another engine called LOVE, that is rated higher than Unity for 2D development. It uses the Lua programming language which a lot of retro 2D games use, but I’m not sure if it will limit me to simple mechanics, physics, lighting, graphics, etc. What is the difference between Unity’s C#, and LOVE’s Lua. If C# is more complex, I would be willing to take the extra step in scripting my game in a complex syntax if it doesn’t limit my game from being complex. But if LOVE’s Lua is capable of being flexible, fast, and won’t limit my game from being complex, then I would prefer to use Lua if it is a more simple syntax. I am debating whether or not to: Stick with Unit’s complex 3D based C# syntax if it won’t limit me Convert to LOVE’s simple 2D based Lua if it won’t limit me

21st Sep 2017, 5:40 PM
raincloud
5 Answers
+ 5
XNA = dead. Don't get into XNA or use it. MS discontinued it if I recall. Unity is the way to go. It's very versatile engine, and does 2D very well (as well as 3D). I'm creating a few 2D games on the engine right now (among other things), and I wouldn't trade it for the world. Btw, I think you underestimate the time and effort that Unity has put into the 2D aspect of their engine. Trust me, they've done an amazing job and only getting better. It's a very plausible solution for 2D gaming, so don't get it mixed up that they're 3D trying to play pretend 2D for fun, they're good with both.
21st Sep 2017, 5:46 PM
AgentSmith
+ 4
Thank you @Netkos Ent, your answer was very helpful. I have made a final decision: I am going to make my game using Lua and the LOVE engine. This is because the Lua language is more simple than C# and I will be able to execute my ideas and prototypes faster so I can make progress. I understand that Unity's C# is very versatile, but I am willing to work on my game for a few years using Lua, and if I feel like my game is not as complex as I want it to be, and I am not able to execute certain features, then I am willing to add them in after I convert to C# and remake the game if it is unsuccessful. This is why I choose to use Lua, because I can make progress faster, and at least have a simpler final version. I will be able to replace my game made with Lua in C# by reverse engineering. After a few years, If my project is successful in Lua, then I will make a tutorial series that I can give you a link to. But if my project is unsuccessful, then I will be happy to remake it using C#, and you are welcome to work on it with me as a team. Either way, you must give me a link to an email, or social media, that I can contact you with if you're interested.
21st Sep 2017, 11:05 PM
raincloud
+ 3
@Raincloud Hit me up on gmail bro. Maybe we can work on something together. *edit* Took too long, so I needed to remove my email addy. Hit me up if you see me around and are interested.
21st Sep 2017, 6:04 PM
AgentSmith
+ 3
Update: I have embarrassingly changed my decision. This is because of two reasons: Unity has a very large community, much larger than Lua, so I won't make much progress if I'm unable to learn the language efficiently. Also, I want my game to be complex, but lightweight on both cpu and gpu, because of two reasons: I myself have a basic gpu that does not have advanced shader and 3D capabilities. Which is part of the reason why I only want to focus on 2D. Lua engines require Open GL which my gpu doesn't have. It has basic Direct X, and is an integrated gpu. And I want my game to be capable of running my scripts smoothly on any device, even if it has a basic processor or gpu like myself. My problem now is that I'm worried if my game won't be optimized enough to execute certain visual effects and physics smoothly. I have read that executing advanced partial physics (A lot of single partials colliding, interacting, and executing scripts sanctimoniously) by using Unity itself, would not run smoothly. To counter this, you would have to create your own system and use a separate physics engine, which is an entirely different learning curve that I'm unfamiliar with. I would be willing to learn more about it, but I don't know where to look. My initial idea was to make my scripts execute their commands at different frames, and not all at once on every frame. The bigger gap between commands in a frame, I figure would result in a much smoother frame rate. But I'm sure that there is a catch to this tactic. I would appreciate if I could get some suggestions for my new dilemma.
22nd Sep 2017, 8:24 PM
raincloud
0
I think you can use Unity 5 for this.
21st Sep 2017, 5:39 PM
Victor Bezerra
Victor Bezerra - avatar