Good evening, guys! Can someone point me in the direction of what tools I would need for creating a simple basic game engine? I know most of you would advise me to first create a game and then move onto more complex things like game engines. But this is for my final year B.Tech. project and the project supervisors have said that creating a game using an existing engine is not allowed. I tried to point out that programming games out of existing engines is similiar to writing a software using an SDK, but sometimes people are just too stupid or stubborn to understand. Now, the game engine need not be elaborate. Just a simple one will do. I have done advanced C++ in my second year so that's not a problem. So, just tell me the different types of basic tools I'll be needing. This is more of a 'need-to-do' thing rather than a 'want-to-do' thing. Everybody else has taken up all the other topics and I don't have a choice, really. If I get through this, then I can get a proper game development education when I join the Guildhall at SMU. So please help me guys. 200 marks are at stake. Thank you.
P.S. : This is India, so the education system is still massively flawed. \<_\<
Camera, mesh loading, mesh animation, and scripting is about as basic as you can get.
You can write a game with just that.
However for anything serious then it starts getting complex.
Shadows, physics, level of detail, screen space effects (lens glare, motion blur, bloom, SSAO, the list is endless)
How long is a piece of string? Twice as long as half of it.
No, what I meant was what API's I should use? Which IDE is the best and user friendly? How do I implement external libraires? That sort of thing. I am using this book as reference: http://www.amazon.com/Game-Engine-Programming-Development-Series/dp/1592003516
All a good programmer needs to write a game is a text editor and a compiler. (Technically the compiler is optional, but very few people write their own these days, I've written a few. If you work in Forth, you can write your Forth compiler in Forth... which is good fun).
If you are going to write your own game engine, then you are writing your own API's.
You will have to make a choice to build you game engine on top of an existing GRAPHICSapi, such as OpenGL, you may choose to build on top of an existing sound api like OpenAL, but that is a decision that is defined by what platform you intend to work on.
The same is true for the IDE.
If you want to write a windows game engine, then visual studio and direct3d is a good place to start, but why would you want to do that?
Why not go for something more exotic. Raspberry PI, Android, Windows mobile.... all depends on what platforms you have available.
So without knowing what your target platform is , we are back to that piece of string.
I haven't read that particular book, but the amazon reviews say it focuses on Direct3D, which implies Windows, so you should probably use Visual Studio for your IDE. You can get VS 2012 for free (the "express edition") from Microsoft's website; just google it.
Basically a lot of things is optional, but they might make your work faster or more effective. It also depends what are you working on, doing C# in IDE is way lot easier than doing it without, but for C++ I probably would argue as I think that working in C++ is more effective without IDE. All in all it is personal matter, some people prefer IDEs, some don't (it's like "some prefer beer, some wine") - so I can't tell you which IDE you want, or whether you want it at all.
From my experience, using IDEs tends to less thinking about the code, but also that is definiely not rule.
As for API, it depends on whether you're going for Windows, Linux, Cross-platform, etc. If you really want to work from scratch I'd recommend you http://www.sfml-dev.org/, as it is very easy to use and it can be learned in an instant, which is always a good thing (although sometimes in the future you might need to directly work with XLib/Windows/... - learning those might be good experience, but takes a lot more time). Of course using SFML often means using OpenGL and OpenAL as graphics and audio library.
As you wrote that you're short on time, you might just grab OpenGL or D3D (based upon which one you actually learned in school), and start working on game. As for IDE, you can go with mentioned Visual Studio, I'd recommend also Qt Creator or Mono Develop (in case of C#), in case you're Linux user. Unless you don't know a lot about bash scripts, I don't recommend following the way of I-work-withouth-any-IDE ... although in that case you probably wouldn't be asking as here.
@Stainless: I do have a bit of touch of Visual Studio 2010, so I am able to use that. And my college only has support for Windows ( \<_\< ), so that's gonna be my target platfrom. Coming to Graphics API, my seniors who have done a similar project last year recommend Direct3D. Since it's for Windows platform, I guess that's ideal. But I am a little more acquainted with OpenGL, so I'm kind of in a dilemma about that. But OpenGL's my preference anyway.
@Reedbeta: Yes, it does. The author showed all the examples and illustrations in Visual Studio. Since I am choosing Windows as the platform, I guess I picked up the right book. But then again, it's Direct3D.
@Vilem Otte: SFML is awesome. Thanks. This makes my work a lot easier. As I said earlier, I prefer OpenGL, so that shouldn't be a problem.
I still have a bit of planning to do and decisions to make but you guys gave me a bit of clarity here. Made most of my work a lot easier. Thanks, guys. (I love this site.)
Off-topic: I don't know how many of you guys are working in the industry but, is anyone going to E3 this week?
#Off-topic: Sadly, with current situation in my country, I really can't think about travelling right now. Along with that, I'm way too busy - first half is working on my game project, second one is freelancing to make money for living, and third one is praying for passing final exam for university degree. Maybe in next years, depends on just two things - time and money.
I don't think money will be a problem once you get your university degree. All the best with that!
I have technology at E3, but I'm not going.
I did my time going to shows, it's fun the first few times, then it becomes tedious and painful. As you get older, hangovers last longer.
I can imagine what you mean in general. But for a person who hasn't gone to any such conventions, it's always pretty exciting to me.
Don't get me wrong, it's was nice having a free bar and Sony getting the house band to play (Oasis) but picking drunken journalists off the floor every few minutes, and getting collared by someone for a ld hl; add de; session gets old fast.
It's nice getting changed with the hired glamour models in the morning, but it doesn't make up for standing there in a silver jumpsuit for the rest of the day.
It's great seeing the stand up and working the day before the doors open. Not so nice crawling underneath the stand on the second day to fix beer soaked cabling
They get old.... fast.
In fact the last few I did go to I didn't even book a stand, we just went to the bar and told everyone to meet us there.
Really? These things happen?!
Hell one show we took all the stock we had, I mean we even took the "returns", we sold the lot on the first day of the show.
We went back to the hotel, asked to talk to the manager, asked to put something in the safe..... put in over £400,000.00 .... this was in the 80's
We had the stand for two more days, no more stock, what do we do?
We hired a jazz band, bought a barrel of beer, sat on the stand for two days getting pissed and listening to jazz
Yes this shit really happens