2d Game Render/Function System
I am posting what I have so far as a template I am going to use for my 2d games I am making, I am attempting to make it completely reusable and all in directx. I guess it could be called a mini engine of some type, but I hate calling it that. Below is what I have implemented so far. Please tell me what I am missing or should add to it.
Initialization of Direct x
Textures - Loads into linked list
Sends to graphics function to be drawn to back buffer
Uses the LoadTextureFromFileEx function to load them
Graphics - Draws textures in texture quads to buffer for render
Input - Uses direct input to acquire input from the keyboard
Sound - Uses DirectMusic to play background noise
- Still have to work at playing a sound overtop of
background
----------------------------------------------------------------
This is what I have so far, I hope to put this as a .dll once it is done and get down to actually programming games.
My 2d games I hope to make is a Tetris clone, Breakout, and a Pac-man clone. These will be my first full games I have programmed, I have just been working on the above for the last 2 weeks to get this done first. I have made mini stuff before but never a complete game.
So if you would add anything to this to make this usable for all three of these games let me know. I was thinking of adding colision detection to the engine but not really sure how to do that yet. The only collision detection I have done so far is cheap tetris style by creating a playable area and marking where the block is and not letting it leave the basic array.
Any help would be very much appreciated, I will post the source when I think I have something worthy of it and get your advice again before I start the actuall game themselves.
Thanks Again in advance,
Plex
Two general capabilities that are usually in engines:
- Scripting/Configuration
- Logging capabilities
I don''t know anything about your situation or your capabilities, but my suggestion is: Finish a game. Stop working on an engine that can be totally reusable in the future. Why? Because without ever having made a single, complete game you will not understand all the complexities involved in creating a production-level piece of software. You have to at least slog through an entire development cycle before you can begin to envision what will be very useful in an engine.
Now don''t get me wrong. It sounds like you''ve done quite a lot on your engine and you can use that to complete a game. But until you actually finish a complete game you will not have the context for which to make your engine highly useful.
I think I suffer from this symptom too and I call it the "Anal Engineer Syndrome". When we''re writing code we are always thinking reuse, reuse, reuse and good design but we rarely end up completing concrete projects because we enjoy engineering the engine too much.
Of course this is all my own opinion so take it as you will.
Regards,
Jeff
[ CodeDread ]
- Scripting/Configuration
- Logging capabilities
I don''t know anything about your situation or your capabilities, but my suggestion is: Finish a game. Stop working on an engine that can be totally reusable in the future. Why? Because without ever having made a single, complete game you will not understand all the complexities involved in creating a production-level piece of software. You have to at least slog through an entire development cycle before you can begin to envision what will be very useful in an engine.
Now don''t get me wrong. It sounds like you''ve done quite a lot on your engine and you can use that to complete a game. But until you actually finish a complete game you will not have the context for which to make your engine highly useful.
I think I suffer from this symptom too and I call it the "Anal Engineer Syndrome". When we''re writing code we are always thinking reuse, reuse, reuse and good design but we rarely end up completing concrete projects because we enjoy engineering the engine too much.
Of course this is all my own opinion so take it as you will.
Regards,
Jeff
[ CodeDread ]
One of the best (and most accesible) ways to create a quality engine is to attempt to create a quality engine. Sure, maybe you get to a certain spot and you realize, "Doh! I really should have done it like this, but it''s too late now", but you will plan better for it next time.
You can read all the articles you want, and make all the small non-engine based games you want, but until you actually try to make a decent engine, you won''t know exactly what you need, and what you don''t need. And you''ll catch onto that quite quickly
Also, engine programming isn''t an exactly science. Everybody does it different. As long as it accomplishes what it set out to do, then it''s at least a half-decent design.
This is why I think XNA is a little bittersweet. Yea, it''s going to be awesome, and it''s going to interface both the PC and xbox, but it could really take the fun and creativity out of engine programming.
Why? Because it provides a consistent interface that you have to use. Sure, this is awesome, and will be great for productivity. However, if there is this concrete structure, how are we supposed to develop our own engines?
Sorry, I kinda got off on a tangent there
Dustin Franklin
Mircrosoft DirectX MVP
You can read all the articles you want, and make all the small non-engine based games you want, but until you actually try to make a decent engine, you won''t know exactly what you need, and what you don''t need. And you''ll catch onto that quite quickly
Also, engine programming isn''t an exactly science. Everybody does it different. As long as it accomplishes what it set out to do, then it''s at least a half-decent design.
This is why I think XNA is a little bittersweet. Yea, it''s going to be awesome, and it''s going to interface both the PC and xbox, but it could really take the fun and creativity out of engine programming.
Why? Because it provides a consistent interface that you have to use. Sure, this is awesome, and will be great for productivity. However, if there is this concrete structure, how are we supposed to develop our own engines?
Sorry, I kinda got off on a tangent there
Dustin Franklin
Mircrosoft DirectX MVP
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement