Sign in with
Sign up | Sign in
Your question
Solved

Creating a game engine

Tags:
  • PC gaming
  • Engine
  • Games
  • Programming
  • Video Games
Last response: in Video Games
Share
August 31, 2012 5:48:27 AM

How hard is it to create a game engine? ive never done programming but im interested in computers and can put a computer together, i thought of a really good original idea for a game today and decided im gonna make it, idk the first steps to even doing something like this except learning about programming, so any advice would be great.

PS: i want to create my one game engine bcuz i dont want to use someone elses and have to pay them money, im willing to go to all the lengths to do so cuz my idea is this great, thank you

More about : creating game engine

August 31, 2012 8:06:32 AM

Ahem....

Well, I suggest you get hold of the source code for some engines that have been open-sourced (Original Homeworld, for example) and then take a good long look at it.

Unless you do something very basic and relatively simple, this is not a one-man job. I don't want to discourage you from trying though. Start small.
m
0
l

Best solution

August 31, 2012 8:39:27 AM

:whistle:  HI,

Here is just some honest thoughts from my experiences. :hello: 
I think it's great that you want to develop your own game. If you are considering this route, be prepared for a lot of learning ! ^^

Game development is the easy part, you can easily imagine what you want the storyline and characters to be like. Where, when and how the game plays off etc. Maybe even thinking about how, for example, the Alien faction are gonna look like.

The time consuming and difficult part is getting a program to do exactly what you intended, in any possible scenario or combination thereof, bugs are a commonplace in software development. Then there is the complexity of procedurally aligning your thoughts and ideas into code to be understood and interpreted by the Computer for runtime.

Before I delve into creating a game engine, you need to consider a few things. Most important, what Platform are you aiming for? What will the engine have to handle, like fast motion for a racing game or massive worlds for a MMORPG ? But I won't bore you to death with too many concepts. I just want to get you in a Game Developer mindset.

Because software is always changing and developer numbers are increasing rapidly, literally millions or even billions of applications has been written and perfected over decades of trial and error. Some early Assembler programs, one of the first, and most difficult, and very low level languages, were simple single function programs with a single mission. A example is command.com (todays cmd.exe in Windows). It's sole purpose is to allow the user to give commands to the computer by typing the desired command(s) in a command line and executing that command. But basically just a middle-man interface between you the user and the code-behind,or inner workings, taking care of technical bits like accepting keyboard input and how to output the text to the screen among others, which the user does not care about and do not want to code every time he wants to view the files on C drive. Remember MS-DOS ?

A concept was born named, Code-re-usability. Some clever people came together and created/collected some standard base-classes, or library's of code that had virtually no more bugs and where tried and tested, and standardized. This led to increased productivity as time was not wasted recreating existing code. The library's grew ever larger and more complex programs came into existence. Which in turn created higher-level languages. For example take a snippet of C language telling the computer to print a given string of text to the command prompt: <cout = "Hello user" /n>; You can think of the 'cout' word, said as "see-out", being a high level keyword invoking low level language procedures/programs that knows where the screen is and how to display text and where. All you need to know is the 'cout' function/method prints a line of text and expects at least a string of characters to be passed to it. Congratulations, you just learned your first C language syntax! There are generations of development languages growing in complexity and functionality. Some of them being Assembler, Basic, Cobol, C, C++, Java , .NET, C#, HTML and some that died out. But I'm getting a little off of scope. But get the idea ?

Thats why a great many API's(Application Programming Interfaces) have been created like DirectX from Microsoft, and OpenGL, a Open Source API, taking advantage of accelerated computer hardware like Graphic Accelerators and extended CPU instruction sets like 3D-Now! from AMD and MMX, SSE and Hyper Threading from Intel, to name a few. Other third party companies has created their own engines built on top of DirectX and OpenGL standards for example the Unreal Engine , Havok and CryEngine and more.

Sure, there are many, many, many API's available, even Open-Source tools. A nice beginner C++ library to use is Allegro. It has some handy pre-coded fuctions like blitting bitmaps to and from RAM into GFX-RAM. Support for alpha blending, drawing primitive shapes using hardware and VERY handy mathematical functions for working with complex calculations, like predicting a point target. Also includes a sound library and joystick support.

Whoo, what a mouthful.
But I really only scratched the surface here, and you also need to learn a language first. I would recommend starting with a generic Programming principals guide as all languages share some limitations and basic fundamentals. Then, Java is a good cross platform development language, as you can port your code straight into any device with Java enabled. There are oodles of documentation and tutorials available everywhere. And the best part is the syntax for C++ is very similar to Java, and C# is similar to C++.

If you do go through with this topic it can be really rewarding and competitive at the same time. Technologies are emerging so fast that if you take to long to develop your game, by the time it reaches the shelves, you are behind again. This is also the reason big game houses have vast teams of developers working months on end to create the stunning games we enjoy today!

But go google around, I gave you a quick crash course to get you started right away.. :pt1cable: 
(PS. I hope I did not make many mistakes, I am very tired now and off to bed) :sleep: 
Share
August 31, 2012 5:53:57 PM

blakwidowrsa said:
:whistle:  HI,

Here is just some honest thoughts from my experiences. :hello: 
I think it's great that you want to develop your own game. If you are considering this route, be prepared for a lot of learning ! ^^

Game development is the easy part, you can easily imagine what you want the storyline and characters to be like. Where, when and how the game plays off etc. Maybe even thinking about how, for example, the Alien faction are gonna look like.

The time consuming and difficult part is getting a program to do exactly what you intended, in any possible scenario or combination thereof, bugs are a commonplace in software development. Then there is the complexity of procedurally aligning your thoughts and ideas into code to be understood and interpreted by the Computer for runtime.

Before I delve into creating a game engine, you need to consider a few things. Most important, what Platform are you aiming for? What will the engine have to handle, like fast motion for a racing game or massive worlds for a MMORPG ? But I won't bore you to death with too many concepts. I just want to get you in a Game Developer mindset.

Because software is always changing and developer numbers are increasing rapidly, literally millions or even billions of applications has been written and perfected over decades of trial and error. Some early Assembler programs, one of the first, and most difficult, and very low level languages, were simple single function programs with a single mission. A example is command.com (todays cmd.exe in Windows). It's sole purpose is to allow the user to give commands to the computer by typing the desired command(s) in a command line and executing that command. But basically just a middle-man interface between you the user and the code-behind,or inner workings, taking care of technical bits like accepting keyboard input and how to output the text to the screen among others, which the user does not care about and do not want to code every time he wants to view the files on C drive. Remember MS-DOS ?

A concept was born named, Code-re-usability. Some clever people came together and created/collected some standard base-classes, or library's of code that had virtually no more bugs and where tried and tested, and standardized. This led to increased productivity as time was not wasted recreating existing code. The library's grew ever larger and more complex programs came into existence. Which in turn created higher-level languages. For example take a snippet of C language telling the computer to print a given string of text to the command prompt: <cout = "Hello user" /n>; You can think of the 'cout' word, said as "see-out", being a high level keyword invoking low level language procedures/programs that knows where the screen is and how to display text and where. All you need to know is the 'cout' function/method prints a line of text and expects at least a string of characters to be passed to it. Congratulations, you just learned your first C language syntax! There are generations of development languages growing in complexity and functionality. Some of them being Assembler, Basic, Cobol, C, C++, Java , .NET, C#, HTML and some that died out. But I'm getting a little off of scope. But get the idea ?

Thats why a great many API's(Application Programming Interfaces) have been created like DirectX from Microsoft, and OpenGL, a Open Source API, taking advantage of accelerated computer hardware like Graphic Accelerators and extended CPU instruction sets like 3D-Now! from AMD and MMX, SSE and Hyper Threading from Intel, to name a few. Other third party companies has created their own engines built on top of DirectX and OpenGL standards for example the Unreal Engine , Havok and CryEngine and more.

Sure, there are many, many, many API's available, even Open-Source tools. A nice beginner C++ library to use is Allegro. It has some handy pre-coded fuctions like blitting bitmaps to and from RAM into GFX-RAM. Support for alpha blending, drawing primitive shapes using hardware and VERY handy mathematical functions for working with complex calculations, like predicting a point target. Also includes a sound library and joystick support.

Whoo, what a mouthful.
But I really only scratched the surface here, and you also need to learn a language first. I would recommend starting with a generic Programming principals guide as all languages share some limitations and basic fundamentals. Then, Java is a good cross platform development language, as you can port your code straight into any device with Java enabled. There are oodles of documentation and tutorials available everywhere. And the best part is the syntax for C++ is very similar to Java, and C# is similar to C++.

If you do go through with this topic it can be really rewarding and competitive at the same time. Technologies are emerging so fast that if you take to long to develop your game, by the time it reaches the shelves, you are behind again. This is also the reason big game houses have vast teams of developers working months on end to create the stunning games we enjoy today!

But go google around, I gave you a quick crash course to get you started right away.. :pt1cable: 
(PS. I hope I did not make many mistakes, I am very tired now and off to bed) :sleep: 


Thank you thats a great start, im really looking for certain books that can help me, i work alot and am not in front of my computer but on the way to work on the bus i have alot of time to read, i need a book for beginners programming and basically anything and everything i would need to make this game and keep learning about programming and game development
m
0
l
September 7, 2012 5:58:13 AM

Best answer selected by johndud.
m
0
l
October 5, 2012 12:46:59 PM

:kaola:  I'm actually creating a game engine also. I'm working my but off. I don't know anything about coding and just learning. If you would like to email me for ideas or whatever my e-mail is TheIdioot@gmail.com

It might be easier if more than one person is working on it.

m
0
l
!