How do i make my own game engine
We use cookies to make wikiHow great. By using our site, you agree to our cookie policy. Cookie Settings. Learn why people trust wikiHow. Download Article Explore this Article parts. Related Articles. Author Info Last Updated: August 1, Part 1. Choose your Language. There are a variety of languages from which programs are made. The language you choose doesn't matter too much, but the most important thing is that you start somewhere. Once you learn one language, it's much easier to learn another.
Find a course. Whether this is a class at your school, or outside of school shouldn't matter. No matter who you are, you can find a programming class that suits you. If you look around on Google, you'll find a number of other sites that also have free lectures and classes available.
You could also have a friend teach you a language, sharing is caring. You don't want your first game to be you big, important game. You want a chance to screw up and not care too much about your project. Try to make a simple game.
If you learned Java, check out the Swing package. Don't worry too much about this project s , they should only take up a few weeks of your time. Learn from your mistakes. Part 2. Think of a Game Idea. Try to challenge yourself.
That way if you don't achieve all you set out to, you'll still probably have a pretty good game left over. Think for a while, don't feel pressured to do this in one sitting. Sit on your idea for a while so you know it is good. Formalize your Idea. Technical communications is important in any kind of engineering, including software engineering. You don't want to tell someone that you're making an apple and they go and make you audio for a pear.
Write up a "Game Design Document". These are used in professional game development, but more importantly, they easily communicate your idea s to others. There are many free templates available online. Recruit Help. You don't have to go at this alone. It's also more fun and exciting in a group. You can't make a custom game engine and manage the project without help. Ask your Friends first before going to strangers or advertising for help, you'd be surprised who would love to get into the game industry.
Part 3. Look into what you're going to do before you do it. Even when you make an engine from scratch, there are still a number of tools that you could make your engine out of. Maybe buy a textbook on OpenGL, "Redbook" is the most famous one, but it is online for free. Draw Something. Render a primitive or 2D object to get started. Make a 2D triangle, or a cube. Look into "Display Lists" so you can draw many primitive objects.
Make Perspective. There aren't many games where you can't change where you're looking. Make the perspective of your game First person perspective, top-down, etc. Move Around. One step at a time! Except not actually because stepping is actually kind of complicated. Either move everything around the camera or move the camera view port, but they are the same to the processor.
Be able to move in all angles, not just along the axis. Add Textures Images. That default color will get old after a while, and not many games are used with only solid colors. Splice them into your display list s. Add Audio. This makes your game much more interesting and realistic. Perhaps footsteps for when you walk. Add Lighting. Only downside is, you need a lot of time, a lot. I think, this book will help you out.
Joined: Dec 29, Posts: 14, Don't let the naysayers completely turn you off the idea. There's plenty to learn from it. That being said Don't "make an engine". Instead, "make a game". Especially if it's your first. Generalising without prior experience rarely goes well. Plus, as the book you're reading will tell you, the runtime bits are only a small part of an engine. A huge amount of work is about tools, workflows, and integration with third party stuff.
On what experience are you going to base the decisions you make when you design those things? Do a search for the "Four Stages of Competence". Where do you think you are? Making games without an off-the-shelf engine is definitely doable and a great experience. I think any serious games programmer can benefit a lot from doing it at least once. But, when it comes time to get jobs done, and to start projects you actually intend to finish, then its also time to consider what's actually the best tool for the job.
And that's where taking advantage of the work of others has real value. The only person who cares about your engine is you. PestoPenne , landon , Kiwasi and 3 others like this.
Joined: Jul 11, Posts: 4, Joined: Oct 11, Posts: 17, Ryiah , Jan 27, Joined: Oct 23, Posts: 1, TwiiK , Jan 27, Joined: Jul 25, Posts: 9, Reading an existing engine source code isn't going to be easy, especially if you have never done it before speaking from experience. It may take you months to understand how the important parts work. Or, grab a book about game engines.
That works too. Tautvydas-Zilys , Jan 27, Joined: May 23, Posts: 4, As a 1 man operation the engine probably isn't going to get very far. I think step 1 is find out what part of the engine you can do, then step 2 is put a team together for making the other parts. If your engine is going to have manual reference counting, 2d graphics, basic audio and basic input reading keycodes for known devices , then you could probably have an alpha of an engine like that ready in 4 months.
I know this because I took a class in college 2 or 3 years ago that involved making a game with c and sdl 1. By the end of it, a handful of people had bits of graphics, audio, reference and input management that could be reused. Tomnnn , Jan 27, Joined: Sep 2, Posts: 1, When I found SDL it was a "whoa" moment for me and I learned a lot about setting up my own level stacks and entity system.
If I remember right handmade hero doesn't even use SDL just goes straight to C and OpenGL, in my opinion that's a layer unnecessarily deep unless you truly are trying to make an engine for a single platform. He's making the project on Windows, but he's said the project will support all the major platforms and that it's written in such a way that it will be easy to port to more platforms. I have never heard of SDL, but I assume it's some kind of library, and Casey, the guy behind Handmade Hero, is actively avoiding libraries because he wants to show how you can do everything yourself, at least to the extent it makes sense.
I'm sure that if you follow the project from the start and get intimate with it then you know how to replace certain parts with libraries if you so desire.
But I actually haven't watched him in a long time because I'm waiting for him to get back to the actual game and implementing potentially cool mechanics and whatnot. I'm not that interested in the raw behind the scenes stuff. I remember that in all the games I tried to make before I started with Unity I got to the point where I needed collision detection and then I gave up, so no low level stuff for me, only design.
Joined: Nov 1, Posts: 4, Aiursrage2k , Jan 27, Joined: Mar 2, Posts: What features can this give that is not possible in a current game engine? Why spend so much time creating a game engine to make a game instead of use the time to make the game? I do not get it! More knowledge is always a good thing. Creating your own tools has its advantages and disadvantages. The upside is that you have a lot of control, and you can build your game very performant and efficient, you don't have to build things in that aren't used.
Downside is you have to build all the little things that you do need, and maintaining is an ongoing challenge given regular platform changes.
We had about 2 ish internal engines a few years back. While they were super performant, still in some way more than Unity for certain things , they were inconstant development, new features often got sidelined for overhauls to support updated devices.
Particles, for example, were driven by xml, not exactly an efficient development pipeline. When we finally gave Unity a shot for a production game, within a year we adopted it across the board. Ultimately, it allowed us to put most of our focus directly into the games, and not the engine.
Unity is dedicated to keeping all the platforms playing nice, and provides not only a solid base, but extensibility of the editor still allows us to have a very customized pipeline. I have helped build a couple of engines in the past, but these days, I really want to build games. GarBenjamin , Kiwasi , angrypenguin and 1 other person like this.
Joined: Jan 16, Posts: 4, Joined: Apr 11, Posts: 28, I was easily able to make a few games on it even publish one of them to appstore before Unity days. I probably got a basic hang of things in a few days. After a couple of weeks I was able to do anything I wanted. The key thing is - I was probably doing things that weren't the best way to do do them as I had no formal training in it.
But it was fun, I was capable and had I stuck with it instead of moving onto Unity, I'd probably have grown my experience project by project. TLDR don't panic and internet noise makes things seem more scary than they are. I'll talk about that. I had some pretty clear ideas from the get go what I wanted it to do: I wanted it to take care of everything that it could reliably do without human input such as draw call sorting, vbo handling and so on - so all I needed to do was type DrawImage params So before leaping into 3D engines, let us see some clear goals.
Perhaps you'd like to use DX11 and move some quads around? Should be a suitable starting point. Tomnnn , Jan 28, Joined: Jul 5, Posts: There's no reason you can't try writing your own engine from scratch, just be aware that, depending on how feature-complete you want it to be, it can be an insane amount of work.
You would need to develop a solid understanding of the following: - Rendering - Collision detection - Physics simulation - Networking - Audio - Input That's a LOT of complex concepts to learn! Bear in mind also that the process flow needs to be considered, which is easily the hardest part. Drawing a 3D scene is actually quite straight forward, there are loads of tutorials out there ranging from simple rendering to deferred shading and advanced techniques like SSAO and even real-time global illumination.
0コメント