Write your own game engine

Source: Internet
Author: User
Tags network function
Here is my opinion. I also recommend some learning materials.
[PS: My younger brother spent a year in 3D, or CN. Don't joke. Please give me more advice.]

First of all, in terms of language, there is not much room for choice. Basically, only C ++ is used. (currently, it is still insisted that only kamazack can write the engine using pure C ), the language skills are particularly important. The compilation capability of large-scale projects is also important. For more information, see <large-scale C ++ programming>.
In terms of software engineering, you may need to understand some unit testing and system-level design methods. But popular software methods, such as agile, may not be very useful if you have to work on your own, but there is no harm in understanding it. the most important thing is design and testing.
In terms of graphics, you need to know at least one graphics API (such as OpenGL or DirectX). We recommend that you do not write multiple API Renderer at the beginning. Now, you can complete one, another version will be written later. it takes more time to design a pure virtual class, which can be easily inherited by different graphic API Renderer. Of course, at first, you only need to implement one of the derived classes.
If you have never been familiar with 3D graphics programming before, we suggest you spend a lot of time learning an API. Remember, it's just one! Whether it's OpenGL or DirectX, it's very easy to write one and learn another. however, as far as the requirements of the game engine are concerned, there must be a relatively high level in this regard, because the Renderer is a direct embodiment of the quality of the game engine.
In terms of physics, you can basically give up. This is not something programmers can decide. you may also be able to copy others' algorithms, but this requires a lot of theoretical knowledge about physical and numerical computing. Therefore, it is recommended that you use others' physical libraries. I personally think that novodex is relatively strong and has a free personal version. Other open-source engines such as ode are also a good choice. physical Virtual technologies will be explosively developed and interactive, which is a hot technology, because it can make players feel more real.
I don't know much about the network. however, if the current game engine does not have the network function, it is a failed game engine. in addition, like physical networks, it is very difficult to design networks at the early stage of engine writing.
There are also many key technologies. script technology, you can take a look at <game scripting mastery>. After reading this book, you can basically design a script parser by yourself (I haven't read it yet, haha); terrain, <focus on 3D terrain> there are also open-source terrain engines, such as Gaia. There are a lot of materials in this field; Models and animations, <focus on 3D models> and <advanced animation with DirectX> are the best books to get started with, but both of them can only help you get started, the technology in the book can still be used in current games, and will certainly not be used in future engines. It is best to understand the current cutting-edge technologies (in Unreal 2, 3, doom3, in quake4, we have seen the application of the latest research results in this area). In addition, we 'd better understand HLSL or CG, so that you can understand the shaders written by others, you can also try to write some special effects yourself. The new standard of SM 4 may become another challenge for the engine, so the advanced language of shaders will become more and more important.
If you only want to write a general small engine, the half you mentioned above is good, but it is far from enough to write a commercial engine. you need to know that today's technologies are evolving every day and many of them can be applied to your engine. However, these technologies come from papers, such as Siggraph reports, GDC Development Conference and IEEE journal. it was the Vista and 64-bit era. sm4.0 and direct10 introduced the efficient implementation of light tracing, and the myth of the rapid development of graphics chips continues, the introduction of physical chips is also impressive ...... all of these are features that can make your engine stand out.

It's too difficult, isn't it? This is because the game engine is almost impossible to write, unless you are a genius like camark.
But don't be so sad. Everyone can go beyond carmark with unremitting efforts.
Don't think you are. know you are!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.