Jump to content

  • Log In with Google      Sign In   
  • Create Account

New to game development questions


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
12 replies to this topic

#1 Veljex   Members   -  Reputation: 116

Like
0Likes
Like

Posted 25 August 2013 - 01:47 PM

Hi everybody, first post on this site.

 

I'm new to game development however I have been developing for the past 4+ years, mostly VB and web based languages however last year I started to learn C++ and I'm rather confident with it. It's a long term aspiration of mine to become a game developer, even if it is just a hobby and doesn't become a full time job.

 

Over the past 2 months I've been looking at starting the development side using OpenGL and C++ and I've been following the tutorials on www.opengl-tutorial.org as suggested on this site. Part way into these I've been thinking, I know that everybody suggests working on a small project using an pre-built engine however I've not been too sure of this myself and I feel that they are an quick way to get started.

 

I have an idea (like everybody else) on a game that I'd like to work on and I'm thinking it would be a good learning opportunity to build a game from scratch and learn as I go. However there's a few questions that I have about getting started such as is it going to be impossible to learn to use OpenGL and C++ as a beginner to game development? Alternatively if you recommend a pre-built engine, which one and what are the publications limits behind them?

 

If anybody has taught themselves to use OpenGL and C++ from scratch would you be able to share some of your resources for the best way to learn?

 

Thanks for reading and I appreciate any help.



Sponsor:

#2 Malabyte   Members   -  Reputation: 589

Like
0Likes
Like

Posted 25 August 2013 - 03:23 PM

    Go and check out GameSalad or RPGMaker for some basic stuff, else I think Unity sounds like a good, solid start. I have minimal Unity background, but Unity is what keeps popping up when I look around the internet atm. But there's tons of engines out there that you can utilize (just pick the one that sounds best for you, after some hours of research):

 

    http://www.moddb.com/engines/top

 

 

    I only have some general advice, really:

 

    The reason why people tell you to start small is mainly because you're 1 person. You need to start small, because that's how you actually manage to finish a project. You can't imagine the Pandora's Box of bugs, glitches and hours of frustration you'll unlock if you start with a project too big, and this is demonstrable one of the biggest reasons why people fail at game development. The clue here isn't really just to know programming. The big secret to beginning as a game developer is to actually make stuff and have a portfolio to show off to someone.

 

    Also, real professionals try not to judge a book by its cover, they look for the actual experience. You might have ludicrously bad textures in your game, but they may still be interested because it's a simple matter of hiring a visual designer to make better textures later. Or similar.

 

 

    Here's a video for you:

http://youtu.be/bgwG-VBKStU

 

 

    Notice how the guys in that video all say the same thing: -- Make mods, create something, anything. -- Get a portfolio, but don't start massive undertakings that typically require either years of experience, the muscle memory and twitch to type 2000 lines of code per session, and/or a big team that coordinates their individual efforts.

 

    Start small. Seriously. I'm not joking. Make a mod for Skyrim or Minecraft, get some sprite sheets made, sound, 3D models, anything. Maybe you rather want to build your own Tetris game, Super Mario, anything that you could do in a reasonable amount of time with minimal debugging. Utilize your strengths, not your weaknesses (unless you want to make them into strengths, as an investment).

 

    My own project now is to just get through the Game Programming tutorial series of TheCherno on Youtube, then start making something of my own in Java. I've already dabbled a little in Elder Scrolls modding, Fallout 3 and similar, but right now I'm learning Java and I'm having lots of fun just learning stuff - not only Java and Eclipse, but XHTML, Javascript, HTML5, making sprites in Paint.NET and just having fun with studying games on the side. This is my current stance atm, but it's not exactly something that anyone would want to hire me for. That's why my first major step after this one, is to build my website and some basic portfolio.

 

    But whatever you do: Start. Small. Seriously! wink.png


Edited by Malabyte, 25 August 2013 - 04:49 PM.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -


#3 Veljex   Members   -  Reputation: 116

Like
0Likes
Like

Posted 25 August 2013 - 05:10 PM

Thanks for the advice! Much appreciated. I've thought about making mods but i felt that was the same base as using an engine in that it wouldn't be learning to develop fully due to using a base and editing programs.

 

While thinking about this final game, I've realised that there is so much implementation that needs doing to it that I've been able to mentally break it down so I think i could make each individual aspect as a small project. I understand about the scale of it and appreciate that it will take ages (and i don't relly intent it to be released, would just be a bonus) so i'm hopefully going to just make a few small environments to learn and hopefully use that to make a game.I have a few friends who are looking to get into game development as well, or at least modelling etc, but to get others into it I'll have to make a start before others will be willing to help.

 

 

Also with regards to 2D games. From theory of them I would guess that they are different to 3D games as they work on images moving instead of 3D modes meaning that all of the environment aspects aren't fully required.



#4 Veljex   Members   -  Reputation: 116

Like
0Likes
Like

Posted 26 August 2013 - 04:02 PM

Just another query. Do any large scale games such as Skyrim use pre-built engines? Or are they mostly built from scratch?



#5 EarthBanana   Members   -  Reputation: 904

Like
1Likes
Like

Posted 26 August 2013 - 08:52 PM

A lot of large scale games use pre-built engines..

 

Unity

http://unity3d.com/gallery/made-with-unity/game-list

 

Cry Engine

http://www.crytek.com/games

 

Unreal

http://www.unrealengine.com/showcase/udk/

 

and here is a list of commercial game engines many of which will have AAA titles made using them

http://en.wikipedia.org/wiki/List_of_game_engines



#6 3Ddreamer   Crossbones+   -  Reputation: 3156

Like
1Likes
Like

Posted 26 August 2013 - 10:10 PM

Hi,

 

It is safe to say that the larger the game development project then the greater the odds that they use a game engine.  Likewise, the larger the game development and/or the game engine development, then the greater the demand for a team to finish it well.  

 

On the other hand, since you expect to stay at hobby status indefinitely, go ahead and have fun in exploring high and low level coding in the way that you expressed. smile.png

Diving into class libraries would be an efficient way of organizing your games and avoiding some of the "spaghetti" coding which tends to cause heart-attacks in debugging. I also would recommend OpenGL Version 3.1, but just my opinion.  For sure, you don't want to go any lower than OpenGL 2.1, as far as I can see.

 

Clinton


Edited by 3Ddreamer, 26 August 2013 - 10:13 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer


#7 Satharis   Members   -  Reputation: 983

Like
1Likes
Like

Posted 27 August 2013 - 01:31 AM

Thanks for the advice! Much appreciated. I've thought about making mods but i felt that was the same base as using an engine in that it wouldn't be learning to develop fully due to using a base and editing programs.


Although this is a specific subject: mods, and of course you are right, making a mod is not the same as making a game from scratch, I should point out there is some danger in your way of thinking.

To be honest what it comes down to is: don't do extra work for the sake of work, its a mistake all beginners make and I made myself, everyone does it. But what I really mean is, if you can make a game that you picture, with an engine, then use the engine.

It's often a new developer pitfall that they feel they need to create everything from scratch, to be able to prove they know every bit of the game development process, but let me put that in perspective.

If you're a carpenter, would you build a house from scratch as a novice? Of course not, you wouldn't pull out trees and saw them and build an entire frame and make a roof out of wood and everything, it would take you forever and probably end up terrible! So don't do it with a game either.

Do you know why I choose not to use an engine usually? The reason is: and I'm pretty sure that this is true with most people that choose to not use a full on game engine. Is that it is -faster-. Now you may scoff at that idea at first but the reality is that once you begin to learn the process of game dev, even from working on small games, you'll figure out one thing: that big engines are just that, BIG. These engines are powerhouses and made to do things vastly different from what you want to do, in fact they try to be good at everything. That's one consideration, it may take much -longer- to take an engine like unity and make it do what you want then it would be to take something like SFML and make it do what you want.

Another part of it is learning, people can pretend all they want but learning a new engine is like learning a new language, it takes time and practice and has many nuances and best practices to learn, there is a big difference between someone that has used unity for a year and someone that is a good coder and has never touched it. Is that a bad thing? No, in fact learning that engine means you have it available as a tool in the future, but it is certainly a point to be made.

So what I'm really trying to say when it comes down to it is that you should start at the simplest level you can to finish a game, my advice is to either start with a windowing library like SFML/SDL if you're using C++, or something like Pygame if you're using python, it doesn't really matter, game libraries are a plenty in most mainstream languages.

Of course you can use an engine as well, thats a seperate path, learning to use an engine is usually less about learning to code and more about learning how the engine works by working with it, and -that- is why people often suggest an engine. An engine lets you both get something up and running quickly and also you begin to understand the architecture behind how it works, so when you roll your own code out you have ideas and methodologies to work off of.

Anyway, ending my little rant, I would just say that you should make your goal to be to finish each project and not worry about performance or tool or not being "impressive" enough, learn bits and bobs when you feel it will be beneficial.

#8 SimonForsman   Crossbones+   -  Reputation: 6111

Like
0Likes
Like

Posted 27 August 2013 - 02:40 AM

Just another query. Do any large scale games such as Skyrim use pre-built engines? Or are they mostly built from scratch?

 

Skyrim was built using the Creation Engine (Which was made by Bethesda for Skyrim(allthough they will likely use it for future titles as well), some earlier bethesda games however (Oblivion and Fallout 3 for example) used the Gamebryo engine (www.gamebryo.com)


Edited by SimonForsman, 27 August 2013 - 02:41 AM.

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!

#9 Karsten_   Members   -  Reputation: 1604

Like
0Likes
Like

Posted 27 August 2013 - 04:24 AM

The Creation Engine is an evolution of the Gamebryo Engine (in that if you grep through it, there still are references to Gamebryo functions / strings).

Likewise Gamebryo was an evolution of NetImmerse (which Morrowind used). I really like the idea of augmenting engines with newer stuff since I find it a shame when proprietary engines (products) drop support and the next game would have to be written using a whole new engine (kinda loses the charms of the original games).

 

A large company like this can afford to evolve their own unique engines because they have the man power. For a single man or small team, unless the end goal *is* an engine, you probably are not able to invest the 1000s of manhours required to make a featureful engine and a fun game at the same time.

 

That said, if your game doesn't need "much of an engine", then it might be worth knocking up your own rather than learning a large engine such as UDK, CryEngine or Unity (IMO overkill for 2D and there are simpler and better alternatives that specialize in 2D).


Edited by Karsten_, 27 August 2013 - 04:30 AM.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#10 Veljex   Members   -  Reputation: 116

Like
0Likes
Like

Posted 27 August 2013 - 06:37 AM

Thank you everybody, this is all a lot of help. Just looking at the OpenGL tutorials it does look a lot complicated and I'm thinking more and more that it is just re-inventing the wheel. I may leave that till later and learn more towards general game development. 

 

A lot of large scale games use pre-built engines..

 

Unity

http://unity3d.com/gallery/made-with-unity/game-list

 

Cry Engine

http://www.crytek.com/games

 

Unreal

http://www.unrealengine.com/showcase/udk/

 

and here is a list of commercial game engines many of which will have AAA titles made using them

http://en.wikipedia.org/wiki/List_of_game_engines

 

Does anybody have a large amount of experience with any of these engines? I know it's a long shot but I personally grew up playing naval based games and would like to work towards something of this level. Something that's worrying me about using an engine is having one that would be able to support features such as waves without effecting the performance.



#11 Malabyte   Members   -  Reputation: 589

Like
1Likes
Like

Posted 27 August 2013 - 06:56 AM

Does anybody have a large amount of experience with any of these engines?

 

Well I don't, but I'd like to point out that Youtube, for the last couple of years, has exploded in a ton of tutorials for anything you can possibly imagine. Watching some tutorials might answer some additional questions:

CryEngine 3

Unity

Unreal (UDK)

 

I don't know about you, but I've learned tons from watching youtube tutorials alone and I also find these very useful when trying to figure out if something is interesting or not. It's a tool in the toolbox for when you want to find information. Going to someone's playlist and looking at the overall array of videos that they've got, can also be a way of shortening down the time you spend watching their stuff (since you don't need to watch every single tutorial video just to get an idea).

Hope it helps.


Edited by Malabyte, 27 August 2013 - 06:58 AM.

- Awl you're base are belong me! -

- I don't know, I'm just a noob -


#12 Veljex   Members   -  Reputation: 116

Like
0Likes
Like

Posted 28 August 2013 - 01:56 AM

Okay I've had a look around and I've downloaded Unity so I think I'm going to start learning in this and see if it is what I'm looking for. If there's anything that you think may help please let me know. I'm always looking for a better way to learn =)

 

Thanks for all the help guys!



#13 3Ddreamer   Crossbones+   -  Reputation: 3156

Like
0Likes
Like

Posted 30 August 2013 - 11:07 PM


I know it's a long shot but I personally grew up playing naval based games and would like to work towards something of this level. Something that's worrying me about using an engine is having one that would be able to support features such as waves without effecting the performance.

 

Some of my time is spent in making 3D ocean going vessels of all sizes, which I have imported into a couple simulations.  People are pleased that the Indie and Pro versions of Unity 3D have excellent performance with any one of several ocean simulators which you may plug into the Unity engine.  In my opinion, the Triton SDK provides a good balance of quality and performance when used with Unity 3D.

http://www.youtube.com/watch?v=zyQQYPYJ3Jg

 

The default water for the no cost (free) version of Unity will be an adequate place holder until you gain enough experience with Unity to justify an upgrade to Indy or Pro.

 

Perhaps you may want to look seriously into this sooner rather than later.  Follow the link under the video for this water system:

http://www.youtube.com/watch?v=NyFUJLIVa-A

 

The Triton SDK is very flexible and would give you the opportunity to learn the way that creating water should be done in a game or simulation.  In the meantime, there are some third party water libraries for Unity that are no cost or very affordable.  

 

In your coding, you must put the water into memory management and thread allocation to get superior performance.  Since dynamic water is somewhat demanding on computer performance, you will need memory management and processing allocation in order to have the realism that everyone wants.  The C++ libraries are very capable in these areas.  Use the coding languages recommended by Unity and your ocean simulation of choice, rather than recompiling.  (Once you become experienced, then recompiling will be a viable option.) A comprehensive SDK like Triton would be essential.  There are other fantastic water simulators out there, too, so have a look at them, such as a fantastic Russian Ocean Simulation SDK (There are 3 of them from Russia, but I mean the highest quality ones), but the name eludes me at the moment.

 

I recommend that you establish major areas in his order:

 

1) Terrain

2) Import a simple user controlled object and code it to be manipulated by the end user (you at this point).  This is a test.

3) Sky

4) Ocean

5) Import a complex object such as a ship which you like, configure it in Unity 3D, and add any coding along your long term game development functionality.

 

Start simple in these areas.   Learn game development by Version Control system.  Examples are Alpha, Beta, and Version numbers [ Alpha 0.1 thru Alpha 9.9 (higher or lower by need), Beta 0.1 thru Beta 9.9 (or whatever needed), and Version 1.0 thru Version 1.1 thru Version 9.9 ]  You may use your own system of numbering at this stage, but a couple hours into research online about Source Control will result in many hours of increased productivity and happier development.  Keep copies of every version stage of your game development!

 

Make one simple game and finish it. Create a second simple, but improved game and finish it. Develop a third more complex game and complete it.   Working in stages helps the evolution of coding.  Kill the very inferior coding after a lot of hard attempt at a feature of the game with no success.   If it works, then do a better job at coding next round of development. End any game development which becomes so muddled that you get lost or can not debug it any further and start another one.  Keep any useable coding as a springboard to dive into deeper game development.  Your coding will improve on the next game.

 

 

One last piece of advice:  Look for publications on developing a game using Unity 3D on Amazon or other sites, as well as get recommendations from Unity 3D developers on good instruction manuals for coding in that engine.

 

Work hard and enjoy!  biggrin.png

 

 

Clinton


Edited by 3Ddreamer, 30 August 2013 - 11:12 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS