Sign in to follow this  
ngbeslhang

Should I stick with programming or game engine?

Recommended Posts

I am relearning C++ through learncpp.com (quite good to me) and I'm at the link (http://www.learncpp.com/cpp-tutorial/612-references-vs-pointers-and-member-selection/) right now, skipped 5.9 and 6.4 though, since it's confusing.

I decided to start with rogue-like Kairosoft-based game development company (a.k.a Game Dev Story) PC game (yes, I'm serious). Will include:

* Employees will have their own traits and pressue level
* Have various power systems to choose from
* Include disasters, employee disobey the law and got caught etc.
* And more...

But, I feel that game engine are more simple than programmimg from scratch, since my maths is just average. Also, I think that game engines will limit anything I can add.

Thanks.

Share this post


Link to post
Share on other sites

ngbeslhang,Your question 1 is not a question. What's your question?You should ask your question 2 in the Visual Arts forum, not here.Good luck!

1. What I mean is which one should I start?
2. Okay.

Share this post


Link to post
Share on other sites

If you're learning you shouldn't worry that an engine might limit what you can do. Most of the most popular engines where created without a particular game type in mind, so most of the times (almost 100% of the times for people that are learning) the engine won't limit you. If you reach a point where an engine is not enough, it probably won't happen with your first (or second? or third?) project, you'll need to know exactly what you want and what the engine is capable of, but you need experience for that.

 

It's faster to create a game with an engine, and even faster if you use a tool like Unity, with drag-and-drop, multiple windows with the world and the game, animator and sprites editor, etc, etc. Now, if you want to learn things like creating a light source from scratch and writing a shader that uses that light source then maybe the engine is not the best. You sound more focused on creating the game, so I suggest grabbing any popular engine with good documentation and tutorials and go with it.

Edited by DiegoSLTS

Share this post


Link to post
Share on other sites

I would advise skipping those two tutorials.  One of them is 'random number generation' and the other one is 'sorting arrays.'  Both of those are used pretty heavily in game programming.

 

If you are using an engine on the programming side, you MUST start with programming.  Some engines have artist flexible tools that allow object and behavior creation through visual scripts, however, they usually do not provide the level of access needed for certain areas and tend to be limited in what they can achieve.  You will need to get down and dirty in code. Plain and simple.  Make sure you learn your basics and know those basics well.

 

As for question 2, this is the wrong forum.  As Sloper said, ask in the art forum.

Share this post


Link to post
Share on other sites

I would advise skipping those two tutorials.  One of them is 'random number generation' and the other one is 'sorting arrays.'  Both of those are used pretty heavily in game programming.
 
If you are using an engine on the programming side, you MUST start with programming.  Some engines have artist flexible tools that allow object and behavior creation through visual scripts, however, they usually do not provide the level of access needed for certain areas and tend to be limited in what they can achieve.  You will need to get down and dirty in code. Plain and simple.  Make sure you learn your basics and know those basics well.
 
As for question 2, this is the wrong forum.  As Sloper said, ask in the art forum.

1. So did you mean I should completely avoid them or?
2. Since I knew some basics of C++ (not OPP though) I think it's perhaps not a major problem.
3. I knew it already, will remove question 2 later.

Share this post


Link to post
Share on other sites

If you're learning you shouldn't worry that an engine might limit what you can do. Most of the most popular engines where created without a particular game type in mind, so most of the times (almost 100% of the times for people that are learning) the engine won't limit you. If you reach a point where an engine is not enough, it probably won't happen with your first (or second? or third?) project, you'll need to know exactly what you want and what the engine is capable of, but you need experience for that.
 
It's faster to create a game with an engine, and even faster if you use a tool like Unity, with drag-and-drop, multiple windows with the world and the game, animator and sprites editor, etc, etc. Now, if you want to learn things like creating a light source from scratch and writing a shader that uses that light source then maybe the engine is not the best. You sound more focused on creating the game, so I suggest grabbing any popular engine with good documentation and tutorials and go with it.

Since my first game will be isometric-based (2.5D?) I am not certain if most of the 2D game engines will support such view.

Share this post


Link to post
Share on other sites

I think isometric and 2.5D are different things.

 

Isometric view is a type of projection, while 2.5D is a term used for games that are created in 3D but there's one direction of movement that's limited in some way. Anyway, the 2.5D definition is not that strict, so it could lead to some unneccesary confusion ("but then is x-game 2.5D or 3D?").

 

You can have 2D, 2.5D or 3D isometric games and you can have 2.5D games that are not isometric. Diablo 1 is a 2D (it doesn't use polygons) isometric game and it has an isometric view, Pandemonium for PSX is considered a 2.5D game and it has a perspective projection.

 

So, you can achieve an isometric view with 2D engines, you'll need some more considerations (collisions, movement and drawing should consider tall objects in some way), but you can do it.

Share this post


Link to post
Share on other sites

I would advise skipping those two tutorials.  One of them is 'random number generation' and the other one is 'sorting arrays.'  Both of those are used pretty heavily in game programming.
 
If you are using an engine on the programming side, you MUST start with programming.  Some engines have artist flexible tools that allow object and behavior creation through visual scripts, however, they usually do not provide the level of access needed for certain areas and tend to be limited in what they can achieve.  You will need to get down and dirty in code. Plain and simple.  Make sure you learn your basics and know those basics well.
 
As for question 2, this is the wrong forum.  As Sloper said, ask in the art forum.

1. So did you mean I should completely avoid them or?
2. Since I knew some basics of C++ (not OPP though) I think it's perhaps not a major problem.
3. I knew it already, will remove question 2 later.
1. I think that he meant to say you shouldnt skip them because they are heavily used in game programming. So, go back and watch them because you will be wanting to use them.
2. Specifically for a language as complicated as C++ is, just knowing some basics of C++ isn't really good enough to pass off having a satisfactory understanding. It may be boring but if you don't know exactly what you're doing then you're probably going to be writing ugly, inefficient code and most likely copy-pasting a lot of code that other people use but you don't really understand, which is never a good thing. So make sure you really have a solid understanding of C++ before you start into a serious project. It's fine to just mess around with creating simple games like a tic-tac-toe or pong clone as a way to help learn the language, but if you go into a large project without a really good understanding then you're setting yourself up for failure. I learned that the hard way.

Share this post


Link to post
Share on other sites

Doh! Sorry, I typed that from my phone. Yes, DO NOT skip those.

So do I. I am confused when you said that to me actually.

I would advise skipping those two tutorials.  One of them is 'random number generation' and the other one is 'sorting arrays.'  Both of those are used pretty heavily in game programming.
 
If you are using an engine on the programming side, you MUST start with programming.  Some engines have artist flexible tools that allow object and behavior creation through visual scripts, however, they usually do not provide the level of access needed for certain areas and tend to be limited in what they can achieve.  You will need to get down and dirty in code. Plain and simple.  Make sure you learn your basics and know those basics well.
 
As for question 2, this is the wrong forum.  As Sloper said, ask in the art forum.

1. So did you mean I should completely avoid them or?
2. Since I knew some basics of C++ (not OPP though) I think it's perhaps not a major problem.
3. I knew it already, will remove question 2 later.
1. I think that he meant to say you shouldnt skip them because they are heavily used in game programming. So, go back and watch them because you will be wanting to use them.
2. Specifically for a language as complicated as C++ is, just knowing some basics of C++ isn't really good enough to pass off having a satisfactory understanding. It may be boring but if you don't know exactly what you're doing then you're probably going to be writing ugly, inefficient code and most likely copy-pasting a lot of code that other people use but you don't really understand, which is never a good thing. So make sure you really have a solid understanding of C++ before you start into a serious project. It's fine to just mess around with creating simple games like a tic-tac-toe or pong clone as a way to help learn the language, but if you go into a large project without a really good understanding then you're setting yourself up for failure. I learned that the hard way.
I do agree with both. But for random number generator I do have my own idea.

First, declare two integer called date and time which stores current date or time then randomize both of them. (Date will be in format DDMMYY, time will be in format HHMMSS.)

Last, declare the integer called number which contains the sum of integers date and time and randomize it.

Anyway, I'll listen to you guys.

Engine for sure, you don't have a clue how far you're from building a game from scratch.
 
Even with an engine you'll have to learn a lot.

I know.

Share this post


Link to post
Share on other sites

Depending on "why" you are game programming, I'm going to suggest perhaps not using an engine at first.

 

There are definitely two approaches here. Personally, I have gone the non-engine route, and I have to say, it has helped me in my understanding of general programming quite a bit. It's forced me into learning aspects of c++ (just because that's what I'm currently learning, this should apply to whatever language) I probably would not have bothered looking into, were there not the challenges of building a game without an engine. But, I definitely think that some engines may discourage you from furthering your programming knowledge simply because you won't need to. If you really want to know the ins and outs of game programming, I think doing things yourself is a great, albeit considerably slower/more difficult route.

 

On the other hand, if what you're really interested in is simply getting a game done, then an engine is the way to go. You can focus purely (mostly) on the game design aspects, artwork, level design, mechanics etc and not spend time dealing with the more mundane aspects of game creation.

 

I don't think there's a right answer, it just sort of depends on why you're spending your time learning to make games :)

Share this post


Link to post
Share on other sites

 

I do agree with both. But for random number generator I do have my own idea.

First, declare two integer called date and time which stores current date or time then randomize both of them. (Date will be in format DDMMYY, time will be in format HHMMSS.)

Last, declare the integer called number which contains the sum of integers date and time and randomize it.

Do you have a mathematical prove that this method is good for random number generation? You'll obviously get some unexpected values, but that doesn't mean they're random (or "work" as random). If you're not worried about that do it as you want, but it's always better to use more standard methods for this kind of things. Random numbers are a hard thing to do in a computer, maybe you already know, but the best thing you can get are actually pseudorandom numbers, the same seed will produce the same sequence.

 

Anyway, you said that you'll create the integer "number" and randomize it, so you mean that "number" is just the seed? If so, you're just creating a seed with a complex procedure and making it shorter at the same time (6 digits + 6 digits = 7 digits at most, when current time expressed in UNIX format can have up to 10 digits i think).

 

EDIT: Sorry, you'll also randomize time and date, so you can have larger seeds, but it still looks like a waste ot time, you'll get a seed that's equaly as usefull as using just the current time.

Edited by DiegoSLTS

Share this post


Link to post
Share on other sites

I do agree with both. But for random number generator I do have my own idea.
First, declare two integer called date and time which stores current date or time then randomize both of them. (Date will be in format DDMMYY, time will be in format HHMMSS.)
Last, declare the integer called number which contains the sum of integers date and time and randomize it.

Do you have a mathematical prove that this method is good for random number generation? You'll obviously get some unexpected values, but that doesn't mean they're random (or "work" as random). If you're not worried about that do it as you want, but it's always better to use more standard methods for this kind of things. Random numbers are a hard thing to do in a computer, maybe you already know, but the best thing you can get are actually pseudorandom numbers, the same seed will produce the same sequence.

Anyway, you said that you'll create the integer "number" and randomize it, so you mean that "number" is just the seed? If so, you're just creating a seed with a complex procedure and making it shorter at the same time (6 digits + 6 digits = 7 digits at most, when current time expressed in UNIX format can have up to 10 digits i think).

EDIT: Sorry, you'll also randomize time and date, so you can have larger seeds, but it still looks like a waste ot time, you'll get a seed that's equaly as usefull as using just the current time.

Do you have a mathematical prove that this method is good for random number generation?

No.

I'll go to that chapter and relearn.

I agree with you that using current time as seed is useful enough. I think I'll use the date+time method for encoder thing.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this