Game Engine Senior Design Project

Started by
5 comments, last by Axiverse 15 years, 7 months ago
I am starting my senior design project for my senior year of university and I want to make a 3D game engine using XNA. I have about a year to make this, so I think I can get at least basic functionality implemented. The problem is I'm not entirely sure where to start. I have a lot of experience with Java, C, and OpenGL. The way I'm thinking about going about it is to make a really basic game and abstract up from it. I'm taking a game design class this semester, so that gives me time to work on that too. I want to have 3D rendering, sound, collision detection, particles, keyboard, mouse, and Xbox controller input, and hooks for AI. If I still have time, I'd like to implement networking and nicer graphics. Does this sound plausible? Can anyone give me pointers on where to start?
Show me a sane man and I will cure him for you.
Advertisement
Remember that XNA is a C# API.

I'd suggest just tackling it section by section, so start with one section, like rendering.

Start with, say writing methods to create a few basic primitives, then maybe a model interface. Once you have that component done, and the graphics are out of the way, start working on Input, Once you've done the input, work on collision.

The best way to approach a large project is to break it down into manageable, logical chunks and get them done one at a time. But i'd definitely start by drawing out a game plan, what graphics features do you want to implement? how do you want to structure your input? read about different types of collision and see what your options are.

planning it all out ahead of time is just good software engineering practice, plus it'll form some consistensy in your design

PS. you probobly already know all this, but i figure i'd bring it up just in case
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
I do already know all this stuff, but pointing it out is warranted nonetheless. I have to plan it all out first anyway, but since I need to generate some numbers and make sure I have something working by April it'd be nice to know what's going to take the longest. I'm guessing it's going to be graphics or collision detection that's going to eat up the majority of my time. Anyway here's a basic layout of what I'd like to make (in no particular order):

Graphics:
-texture, environment mapping
-normal mapping
-particles
-transparency
-bone chain animation
-lighting

Collision Detection
-bounding spheres?

Sound
-3D sound fx
-Background music

UI
-HUDs, menus
-level editor?

I/O
-Xbox controller input
-Keyboard, mouse input

Misc
-texture fonts
-networking?

I can't think of anything else off the top of my head. I'd rather not do scripting since I probably don't have time for it and something can just as easily be coded as scripted (at least I think). Anyway, does this seem plausible? Are there any items that could potentially take a jillion years?
Show me a sane man and I will cure him for you.
Are you going to make an engine or a game?

If you're seriously going to make an engine, the most important question (_much_ more than what king of graphics effect, or sound effect, or whatever feature your engine should support) is how someone who'd want to make a _game_ will use your engine. How will they create content? Will you be able to add the 95% of missing features these people will request you? From my experience, this is a very serious and difficult question.

Or make a game :)
Quote:
Graphics:
-texture, environment mapping
-normal mapping
-particles
-transparency
-bone chain animation
-lighting

Collision Detection
-bounding spheres?

Sound
-3D sound fx
-Background music

UI
-HUDs, menus
-level editor?

I/O
-Xbox controller input
-Keyboard, mouse input

Misc
-texture fonts
-networking?


I am pretty sure this isn't the order you plan on doing it, but I went ahead and re-listed in the order I would do them:

Primitive Model Rendering/Shapes
Textures
UI (Menus/Boxes/Fonts/etc...)
Keyboard/Mouse Input
Collision Detection
Scripting (Python/LUA/etc, easily added and a great feature)
Normal Mapping / Particles / Transparency / Animation
Editor (in engine)(here or after Lighting)
Lighting (Material/Shaders)

I would really recommend adding in scripting. Makes moving stuff around in the "game" or engine a lot easier.

Hopefully this helps...

"Those who would give up essential liberty to purchase a little temporary safety deserve neither liberty nor safety." --Benjamin Franklin

Might I suggest not to implement useing XNA, but to use Java/OpenGL (possibly building upon jMonkeyEngine)?

I'm saying this because there will probably be plenty of .NET/XNA engines out there, while there ain't many grown-up engines (if at all) for Java.

And I doubt the real platform independence of the .NET/XNA combination.
Newbie programmers think programming is hard.Amature programmers think programming is easy.Professional programmers know programming is hard.
On the other hand, maybe that's cause it's hard and not that practical to implement it in Java. Though I know it can be done, I think that it's a lot easier to do it in C# and XNA - thus why there are more engines that use that combination. Plus, for a time restricted school product, the people and the community that you can turn to for help is invaluable.

This topic is closed to new replies.

Advertisement