C # game Path-winform, wpf, directx, and opengl,
I finally approved the application and opened my blog. Although I have been engaged in java-related architecture for so many years, my favorite language is c #, unfortunately, many times I rely solely on the power of one person and cannot change anything. Now I plan to leave my work alone and do what I really like, the main purpose of my blog is to use c # To develop large games. My first goal is to use c # To implement a large online game like legend, this kind of game will be divided into the server and the client for separate development. My initial goal is to achieve the client first. If you want to know about the server, you can subscribe to me. I will write it later.
From now on, it is true that c #, eight years ago, is a little unfamiliar, but in fact many of the ideas are all figured out. Of course, to play games, you must first choose a suitable technology.
Today, I mainly listed four implementation methods that I still have a certain impression on.
Winform, wpf, directx, and opengl. Let's talk about my understanding of these four implementation methods.
Winform
Winform is the most familiar technology. I remember that when I graduated from college, I used winform for a crawling application, dedicated to crawling beautiful pictures on the Internet, so that when the teachers saw so many beautiful pictures, they gave me an excellent graduation design title. Haha, so the first thing I thought of was winform. For winform, the implementation idea should be a window with a drawing control in it, and then rewrite the drawing control to implement custom painting. The class used should be System. classes under Drawing. Here I think, to implement a game like legend, winform's drawing performance should be a test. In addition, there are many game animations, and many animations exist at the same time, this problem should be considered. My idea is to first create multiple bitmaps, draw the map to the memory in advance, and refresh the time in a unified manner, for example, refresh once in ms, that is, 10 frames per second. Once analyzed the legendary code, it is about 10 frames per second.
Wpf
About wpf, I also saw some related articles in my blog. Some people say that wpf is a completely rewritten plotting mechanism and can be accelerated using GPU, I plan to study wpf as well. If I understand it, I think the implementation of wpf should be a bit similar to that of winform, I found that the game control interface of wpf is very easy, such as dragging and dragging animations. Therefore, wpf is also a good solution.
Directx
Speaking of this, I searched a large circle on the Internet. After summary, most people think that directx is the best solution for developing games on the win platform and the most successful solution for games at present, however, after reading the related sdks, I found that if I used directx to develop a game and didn't have a suitable game engine, I wanted a man to implement a large game like legend, I feel like a person is building the Great Wall project, but if I use other people's engines, I find many of them are c ++ languages, but I am not very familiar with c ++, so, in principle, I think directx is a heavyweight solution and needs to be further understood.
Opengl
Similar to directx, it is also a heavyweight solution. The difference is that opengl is open-source, which is relatively less difficult to implement its own game engine, I remember that my favorite "Diablo 2" in the past seems to be using opengl. If we look at the client, diablo 2 is similar to legend. However, the implementation of Diablo 2 is more complex than legend because legend has only eight locations. Diablo 2 should have more than eight locations, so we need to know more about it.
Today is the beginning. It seems that it is not a good habit to send an article on the blog site without sending code. Haha, but this article is the beginning. To be honest, it is a large-scale project, especially if you don't have a penny, it's just your own hobby. It's easy to give up, so you can open a blog Park and write it out, I also hope to get support from more people. In the next article, I will officially start talking about this project and related code.