New to game development questions

Started by
11 comments, last by 3Ddreamer 10 years, 8 months ago

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.

Advertisement

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:

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

- Awl you're base are belong me! -

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

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.

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

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

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

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

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.

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)

[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!

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).

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

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

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.

This topic is closed to new replies.

Advertisement