Unity or C++?

Started by
29 comments, last by Gl2eenDl2agon 9 years, 5 months ago


Currently, I'm working on a small, pixelated, 2D platformer. I've been bashed for using Unity 2D, people say that it "isn't real coding' and that it sucks.

That's like saying you didn't really build that house, unless you also fashioned and fabricated all the tools you used. It's silly. Heck, if you're using and IDE that does any code generation at all, that wouldn't qualify as "real code" by their logic either.

Ignore them. Do what makes you happy. If the end result is a completed game, even better.

Advertisement

If you're more interested in completing games than you are in designing engines, just stick to Unity for now. Maybe your priorities will change, but writing an engine to make the same game you could've/would've made in Unity, just so no one can say you're "not a real developer" is a poor use of your time -- real developers ship and support products.

That said, if your needs for an engine are simple to start with and you're interested in getting your hands dirty -- or if you simply have unique needs that would be difficult to support in a 3rd party engine -- then rolling your own can be a valid and rewarding exercise. Just don't fall into the trap of writing an uber-engine because you feel it won't be complete until its features rival Unity and friends. Write only the engine you need at the moment to complete the project you're working on (being forward-looking is fine, just don't try to guess at what's over the horizon), and over the course of two or three projects you'll find that you probably have a fairly robust engine.

throw table_exception("(? ???)? ? ???");

I know the discussion is about using Unity or not and if that would be "real" programming or not. I personally use a lot of Unity and C# at work and sometimes at hobby projects as well. I would say that there are other important questions about this subject than if it's real programming or not. I think it is a matter of the appropriate tool for the job. To start I would pick Unity because you will accomplish more in less time and perhaps that will drive you to do even more. The community is super cooperative too.

If you are a beginner, I would suggest going with Unity2D and using C# for the coding (I would avoid C++ and Unity's "Javascript").

Programming C# is real coding, you will learn a lot making a game in that.

What I've found over the years and trying a lot of things is this. Take every short cut you can find, because even if you do that, you probably still won't finish any but the shortest game.

Hello!

About 7 months ago, I started to learn C++. After a month ago, I considered myself fairly well-versed in basic C++(i.e. classes, instantiating objects, and some knowledge of splitting code into source and header files ). My goal was to make a game. Then, I kind of went off on a tangent, and attempted to learn some java, and make an android app. However, I found I had a lot of trouble with running Eclipse on my PC, so, long story short, I startedusing Unity. Currently, I'm working on a small, pixelated, 2D platformer. I've been bashed for using Unity 2D, people say that it "isn't real coding' and that it sucks. Now, I'm wondering if it would be more beneficial to make a game in C++ using SFML or something along those lines. Is using Unity hurting my programming skill?

More importantly, should I be focusing on making games with "pure" code, in other words building my own engine/physics? I'm torn here. I'm halfway through the game in Unity, but I'm not sure if it's what I want to be doing.

Cheers,

boxnuggets

For learning purposes i would recommend making smaller single concept demos or very simple games instead, reinventing things is both fun and educational but a full game has so many components that you really don't want to reinvent every single one of them.

I'd recommend using Unity for your game and once you are done you can make some low level physics or renderer demos to learn more about those things.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

Bit of an apples and oranges comparison, IMO. It's hard to publicly gather opinions regarding Unity without starting a debate because some people prefer freedom and control, while others just want functionality. I haven't used Unity that much, but here's a somewhat objective analysis from what I've gathered from my own personal experience.

Unity has more of a "socialized" game structure of reusing assets like scripts and models on new entities. So, basically if peaceful civilians have something in common with cave smugglers and you don't feel like reprogramming their common features, you'd divide them into separate scripts. So, it's one script for a health system that they share, another one for a pathfinding system that they share, and then they'd both have their own unique script for processing AI.

C++, on the other hand, handles it a bit differently. As opposed to a socialized system, you have a system of inheritance. It looks something like this.

bXh61HC.png

So, it really all comes down to personal preference.


Satharis, on 02 Dec 2014 - 06:59 AM, said:
Although you can certainly make games with Unity I find it a little strange how many people here are making some implication that you'll become some great all knowing developer by using nothing but Unity.

I didn't get the impression that people were implying that.


Option 2
======
(1) play with some tool
(b) switch to a different tool
(d) monkey around with tools
(5) dabble at starting to make several games
(6) browse the internet (heh heh, dem kittehz, oh look if I were a haircut I'd be a mullet!! lulz)
(4) go make coffee and message your friends about how lame they are for using some arbitrary tool for finishing their games
(6) play the games your friends have finished

Choose one of the above options. I, personally, would recommend the first one but the second is very popular.

It was implied over and over again.


C++, on the other hand, handles it a bit differently. As opposed to a socialized system, you have a system of inheritance. It looks something like this.



So, it really all comes down to personal preference.

Inheritance has been a dirty word in C++ for several years now.

In your example you'd just have some sort of "Unit" object that has two member values like "bool isMobile" and "bool isAggressive".

Inheritance is often mistaken for design excellence when in fact inheritance is typically the wrong solution for most problems.

My simple answer is this:

Use Unity for commercial games that you don't need too much flexibility with, or just for fun and the joy of making games (and not game engines).

Use C++ if you are making a game that is 100% flexible to it's core (and moddable biggrin.png), and are trying to major in software development and want the experience (what better way to learn software development then to make game engines from scratch? It's like almost the hardest thing you could ever do. It would look good on your resume).

View my game dev blog here!

This topic is closed to new replies.

Advertisement