View Full Version : Game Engine with Managed/Unmanaged Direct X
Dragon-Ion
29-12-2010, 11:29 AM
First off, if you have nothing helpful to say, don?t post anything. I don?t want to hear that I?m crazy, I know that already, and I don?t want to hear how difficult this is, I know that already as well.
So, halfway through the year I started messing around with the DX SDK and made a simple game engine with C# and Managed DX9. It worked well, but wasn?t perfect, of course. After that, I messed around with C++ and Unmanaged DX9. Mostly the same principles applied.
I?ve been playing with the idea of creating a simple space based RTS game, something like Sins of a Solar Empire just simplified (a lot). It will be sprite and object intensive with high quality (or as high as possible quality) textures and effects. No terrain generation, it?s space after all, basic path finding, just to avoid the planets and other stellar bodies, and basic collision, to avoid overlapping.
What I?m looking for is help, in any form. Advice, tips, code, links, anything that could help me. I?d like to do this in Managed DX, but if anyone here can help me to do it in Unmanaged it?ll be great. Hell, I?ll even do it in XNA if I have to and if it would be easier for me to do alone.
Speaking of alone, if anyone is willing to help with the code, textures or meshes, don?t hesitate to offer your services. Like I said, help in any form.
Thanks in advance.
Well I would first off suggest you get a better idea of what you are building (at least some of the basic mechanics like resources and units) if you havent already. Ive been finding it a lot easier to implement things that Ive planned better, and it has been especially useful when Ive been looking at more complex ideas.
As for managed using Direct X vs XNA, Im going to have to be slightly biased here and suggest you use XNA, just so that you are comfortable with it for Dream Build Play (which I recommend you enter if you think you can come up with a decent idea).
As for helping out, you should share some more of your thoughts and ideas on the game for us so we can get a better picture of what you have in mind! For instance, I havent played Sins of a Solar Empire (I promise!) and therefore dont really know what you are going to be doing other than that it is an RTS.
dislekcia
01-01-2011, 02:29 PM
I second the idea of getting to know the game you want to build better. Game design informs engine design, it takes a phenomenal amount of experience to be able to built a general game engine (and even then people end up making assumptions of what people are likely to DO with their systems).
Also seconded on XNA being a good bet. You'll be doing less low level code and spending more time getting something that you can actually look at, it's amazing how much more motivating that is.
How do you plan to make a simple simulation of a Sins-like game? I remember Sins being pretty complicated...
Dragon-Ion
05-01-2011, 08:41 AM
Hey, thanks for the replies.
I know that engines are usually designed around the games they power, and that was more or less what I was doing. Most of the engine is working (or the basics like lights, fonts, devices, mesh, sprites and textures) but I?m running into memory leaks somewhere. I?ll find it at some point.
Second, if two people tell me to use XNA because of personal experience, then I should probably listen. I?ll have a look at it today. I had taken a look at it last year, but after rendering a mesh I went on to my C++ experiments.
Now, more info on the idea I have. At first I thought each player would be given a planet and a construction unit. The construction unit can then be used to build buildings and defences. The planets could be upgraded to increase the rate at which resources are generated. The main idea is for the players to build armies of spacecraft and eliminate each other by destroying the planets. Then I started thinking of maybe a harvesting approach instead of periodic income for the resources.
And that got me to the final idea, for now. Players will still build units to kill each other, but they will have a capital ship that acts like a MCV. It will build buildings and allow you to place them in your area of influence. And you will be harvesting something like dark matter or some other anomalous space resource. So it?s more like CnC in space at the moment, but that?s the general idea to see if it will work.
Finally, if I have to learn how to make my own meshes, which application should I use and which format should I save them in? I know MS warns you not to use the .x files in distributed games, probably because they?re easy to manipulate. I have a copy of Milkshape somewhere, as well as AutoCAD and rhino 3D but they are more for engineering than game model design.
Again, thanks.
Evolution
05-01-2011, 01:21 PM
First thing you have to decide is are you more interested in learning how to write game engines or getting your game complete? Either way you will get valuable experience as a programmer.
Here is steps that I would take...
1. Write a detailed game design document so that you know exactly how you want your game to perform. This is very important to minimize workload throughout development. The document is always revised based on new information. Also decide on a target audience and distribution methods.
2. Analyze your game design document and decide on what technologies and skills you require to complete your project as quickly as possible and that satisfy the needs of the game.
Here's a diagram...
skill heavy / longer development cycle / get to learn what's under the hood >> more motivation / short development cycle / can attract lowly skilled developers
Programming
low level coding >> framework >> game engine >> game creator / tools
Artwork
3D assets >> 2D assets
You have to ask yourself are you motivated enough to take the low level / 3D assets route over the game creator / 2d assets route.
3. Set small milestones to keep team members (or yourself) from losing interest.
4. Make sure there is some management to keep things moving smoothly.
5. Get as much external/internal feedback as possible to improve on your game throughout development. I prefer agile software development (http://en.wikipedia.org/wiki/Agile_software_development).
6. Release game on chosen distribution channel, and market your game before and after release.
On your question about what 3d software to use and what format I would say it really doesn't matter. If you speak to industry artists you will find out there is no best software to use. Use software you comfortable using, but the main important thing with 3d art is your own ability, skills are very transferable. You can always convert between formats if one format doesn't work for you so it's no big deal.
Powered by vBulletin® Version 4.2.4 Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.