Unity or C++?

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

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

Advertisement

I've been bashed for using Unity 2D, people say that it "isn't real coding' and that it sucks.


Feel free to completely ignore those people. In order to do anything remotely useful in Unity, you will be required to code "for real". People who complain about coding for real or not are generally trying to feel superior. All that actually matters is whether you can get what you want done.

Is using Unity hurting my programming skill?


No. However, it is always beneficial to branch out and learn more than one language, engine, etc. Learning how to use different systems will give you insight that will help you no matter where you decide to focus.

More importantly, should I be focusing on making games with "pure" code, in other words building my own engine/physics? I'm torn here.


Decide which is the higher priority for you right now: Learning how to write an engine or a game. Neither one is the better decision - it depends on what you want to do. You don't even need to limit yourself to one project at a time, either.

you will be required to code "for real"

This! Unity provides a lot of legwork that would be required for any game. To do what you want your game to do you code it i.e, keep MSDN open. Remember all the programming principles to keep your code lean because a lot of it gets called once per frame.

Another way to look at it is, when will you feel like you're coding "for real"? Perhaps when you reinvent direct x? Since the beginning of computers software has always built on other software or frameworks or languages.

I guess my only advice would be to use what feels right and put people's presumptuous comments aside. If you feel like you are learning and are inspired to build your game with whatever technology you pick up you are doing good.


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.

So there are tons of aspects to game development, if you are interested in coding physics or graphics do that. If you are interested in coding the logic or AI for your game, do that instead. Pure code is an interesting bit of vocabulary, to me if you are writing C# or Javascript or whatever Unity uses for scripting you are building pure code.

There is no right or wrong answer when it comes to what tool you should learn. If you're halfway through a game in unity finish it! Independent of platform and tools, It is awesome to be able to finish a game and say it's done.

I agree with Nypyren's reply.

Also wanted to add that award winning games and studios are also using Unity for complete games.

Think Monument Valley and Hearthstone.

Time is a resource. The quicker you can prototype your game ideas, the more likely you are to spend the time to polish them.

C++ is great for truly learning how programming works at a deeper level, but you should decide what is more important - your programming ability or the product / game.


Is using Unity hurting my programming skill?

I'm halfway through the game in Unity, but I'm not sure if it's what I want to be doing.

it seems you have two goals:

1. making the game

2. improving coding skills

for making the game, use whatever will get the job done fastest - probably unity in your case. be sure to add in time required to learn any new tools / libs / APIs.

as for improving coding skills:

technically speaking, any time you use a 3rd party library/engine to do something that you yourself have never coded on your own, you rob yourself of a learning opportunity, so in that respect, you may not learn as much using unity vs lower level tools (c++ and some 2d graphics lib). however, this can be taken too far: IE you'd learn even MORE if you wrote your ow graphics lib, etc. Eventually, you're spending almost all your time learning, and it will take almost forever to finish a product.

games no longer need be "hand rolled", like soldering together transistors etc. suitable middleware components now exist at a variety of capabilities and price points, allowing one to use libraries and engines like IC chips to implement entire modules of a game's codebase. so the requirement (and thus the ability) to "hand roll" an entire game has pretty much gone away. so these days, a gamedev needs the coding skills required for integration of various middleware systems, such as graphics, physics, audio, plus the skills required for custom coding. its in that last part - custom coding - where experience in lower level stuff can be of use.

As Nypyren suggested, you should probably pursue two projects, one being the game (probably in unity or whatever gets it done fastest - including learning time for tools/libs/APIs), and the second being whatever middleware strikes your fancy: 2d line drawing and blit code, basic 2d physics, audio coding, etc.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Option 1

======

(1) choose a tool for making a simple game

(2) make the game

(3) finish the game

(4) oh, wait, I learned a whole lot of stuff required to make a game and my friends stop talking when they play it

(5) rinse and repeat, solving increasingly more complex problems in increasing more complex games that you finish

(6) be an expert game developer (which includes programming, designing, maintaining, promoting, etc)

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.

Stephen M. Webb
Professional Free Software Developer


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

To be fair, option 2 includes looking at kitties on the internet. That's hard to turn down!

Hello to all my stalkers.

Thank all you guys so much! I really appreciate the support. I'm definitely going to finish the game in Unity, and attempt to make my own engine. I've decided I'm going to try SFML. Does anyone know any good resources for reliable video tutorials? I'm more of a visual learner.

Option 1

======

(1) choose a tool for making a simple game

(2) make the game

(3) finish the game

(4) oh, wait, I learned a whole lot of stuff required to make a game and my friends stop talking when they play it

(5) rinse and repeat, solving increasingly more complex problems in increasing more complex games that you finish

(6) be an expert game developer (which includes programming, designing, maintaining, promoting, etc)

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.

Nevermind, I totally did not read the post before I commented.

Go with option 1.

This topic is closed to new replies.

Advertisement