Create a Game Engine

Started by
46 comments, last by kks21199 11 years, 5 months ago
I think the name "engine" is being overused a bit. Plenty of people seem to be using it when they are in fact talking about a basic framework or "skeleton" project type on which to build their program from. I'm presently learning Directx with the help of Rastertek online tutorials, and even he use the term "engine" and at other time "framework".

Framework don't necessarly include logics or loops, which most engine do. At least, this is how I understand engines.
My blogs:

http://www.osrebel.com <-- En Français
L'information libre et la joie d'apprendre

http://www.osrebel.com/english <-- English Version
Free information and the joy of learning
Advertisement
Sugavanvas, welcome to GameDev!

When I turned 13, i switched from QBasic to Visual Basic 4.
As you haven't yet programmed anything, I encourage you to build a small python game!
You can get a simple python installer for windows (and other platforms) here.

To write a python program, you simply save .py -files in notepad (or gedit etc.) containing the program.

Check out some simple python programs here: http://wiki.python.o.../SimplePrograms

To run the program, you may just be able to doubleclick the .py -file, otherwise, open up "cmd.exe",
go to the folder contianing your .py program, and enter "python myprogram.py".
Experiment with the sample code a bit. Search the internet for clarifications and supplementary tutorials.

When you're comfortable with this, I "challenge" you to write a python program that:

A: Asks you for the result of a random multiplication within the 10x10 table, ex. "What is 7 * 3?"

B: Awaits input.

C: Responds whether you typed in the right thing, or got it wrong.

D: Jumps back to A.


My father made me program this in QBasic, to improve my algebra and programming skills. -Must've been when I was around 12.
(Don't worry, you can do 3D and such in python, too! But save that for later. First, write simple text games.)

Good luck! smile.png
Small advice. Buy a cheap "learn video game programming" book for c++ or c sharp. Start there and use the information to build your own projects. These books will teach you how to implement your graphics device either through DirectX or OpenGL which is very important. Additionally it will teach you proper game engine structuring for Object-Oriented design.
Mad Unicorn Games
Thanks guys i will take in your advice and start from easy and then reach the hard
hi, i think it's a matter of choice.
starting from the very bottom, or direct to the high-tech, depend on our own characteristic and purpose.

some want to write game and implement/sell the result soon as possible.
or, perhaps some want to experience just the game production-cycle, not into detail.
and, maybe some want to learn programming tech, or hobby in the graph-design process.

what the best suit me, so must search, listen & try/learn it.. after experience it what next to do.. i think so..

have fun in development

I'm presently learning Directx with the help of Rastertek online tutorials, and even he use the term "engine" and at other time "framework".


Personally, I will be creating things with distinction in the terms: game source code, game engine source code, higher level framework, and lower level framework. It is possible to architect clear boundries between these four areas in the same game development system. This begs the natural questions: What if I need to make major changes? Would it be better for future changes if I make orderly boundries between these major levels? For me, the answers would be a definate yes! If I form a team around me who uses my system, then could it be much more efficient and easier to understand if there are clear distinctions in the above mentioned four levels? Again, for me the answer is an obvious yes! From a purely coding perspective, would this be most efficient to organize these levels? My answer for me is yes!

The need for preparing our game development minds for future demands might cause us to desire a better use and understanding of words in this field.

Would I be better served by a "spaghetti" type of fully intergrated system with no clear boundries? In my case, I just say no! laugh.png I'll have the spaghetti only for meal time, thank you very much! laugh.png Would I be best served by doing and saying anything I feel in creating my game development system? I simply say no!


It is very feasible (though maybe not easy) for a game developer to have different uses for the terms: game source code, game engine source code, higher level framework, and lower level framework. I recommend seeking expert books and industry publications in print and through the internet to cut through much of the confusion out there. A lot can be learned by how corporations use these terms in describing their software. My opinion is that software industry and game development organizations lead us in establishing standards, including definitions. This would prevent much confusion caused by arbitrary use of terms by individuals, in my opinion.

All these are only suggestions, but I hope that people can get something here. smile.png

Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer


[quote name='Inukai' timestamp='1351142460' post='4993685']
http://scientificnin...mes-not-engines


This is really bad advice.
[/quote]

It's actually pretty solid advice, but it's missing a few caveats.

You need to be disciplined enough to take the time to refactor and clean up your code. If you're writing a bunch of functions to handle sprites, combine those functions into a unit of some sort (class, namespace, etc.). And, combine functions into generic versions when possible.

And, you need to be able to admit that the current solution isn't working very well, and start over. If you're doing this all along, you should never have to throw out the entire code base but only rewrite a specific module. The longer a bad module is left in place, the harder it is to remove or repair.

The idea boils down to iterating on the existing code until you can complete the game; and not writing code before you need it. It also accounts for the fact that it incredibly hard to anticipate every bit of code you need to complete a game.

Check out Super Play, the SNES inspired Game Engine: http://www.superplay.info

That advice is good

This topic is closed to new replies.

Advertisement