• Advertisement
Sign in to follow this  

Actions Of A Game Engine?

This topic is 2996 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im relatively new to this and im a bit curious. My goal is to create a game or possibly an online rpg similar to the final fantasy series. Ive been researching into the functions of a game engine lately and have noticed that in most game files are .DLL files and of course files with the textures, sound files, etc. Im Just wondering how the whole process is done. is it something like this (if i am wrong please correct me): -The Game Executable triggers the .DLL files at certain events - with mmorpgs it starts by executing a launcher.DLL (written with directx and c++ to display the launcher graphics and apply actions to the buttons) -when gamestart on the launcher is clicked then run the Gameguard.DLL (if the MMORPG uses gameguard) -when gameguard.DLL is finished completung its certain tasks it will then send a signal to the EXE to run the ENGINE.DLL - (Written with c++ and DirectX) The engine.DLL contains the code to launch the loginscreen and the graphics of the login text boxes/ give the button graphics a function? -When a user name and password is entered it takes the text, connects to the database of the MMO and attempts to find a match? - if a match is found the ENGINE.dll takes the data connected to that account in the database and uses it to locate certain clothing that the players characters are wearing and draws then to the base model (for the character selection screen). It also draws the 2d graphics to the screen from the programfile and give the specified buttons functions? -When game start is clicked make the screen black and begin the loading process*)- - load the skybox, npc's, and other still objects and place them in the specified location for the map. -begin reciving packets from players already connected to the server. - search the database to find the characters last location? - Load the map of the current area ( load the graphics) syncronize the players current position with it. -load game GUI and all the functions that come with it. - UN BLACKEN THE SCREEN- -Now follow the normal games functions, when your character moves to an area display the walking animation. -Collision - when a character comes into a certain raduis of your character begin reciving packets to display all that characters actions over the server . . . including the animations and clothes of the character - Display all said chat in a chat box over head. Send packets to nearby characters within the packet sending radius so that they can pick up your words, and they can pickup yours. I am aware that when your actually coding this in a programing language your going to have to code it in atom details LOL . . . Anyway . . . any corrections, additions, modifications, or just sharing your knowledge of the topic to me would be greatly appreciated. OH and im also looking for a good free open sourced game engine that can be preferably easily modified to make some kind of online "Final Fantasy" like game i will soon write a post sharing my idea with all who are interested in it. :D

Share this post


Link to post
Share on other sites
Advertisement
You put years of work into one post :D.

First off, what kind of experience do you have programming?

If you are new, I'd suggest starting with visual basic. It is, in my opinion, the easiest language to start off with. The first game I made was asteroids but most people suggest tetris.

As for your interpretation of how a game engine works you are sorta right but are missing the point of a DLL. All a dll really is, is a bunch of functions that the main program will execute. For example, lets say my game supports dx9/dx10.

Now the DLL(s) would have functions needed for both dx9 and dx10. In your main exe you would just load the appropriate DLL and go from there.

But using a DLL isn't really important when you are starting. It is mostly used for easing patching, amoungst other things.

It would be helpful to say what languages you know or are learning. But if you are just starting, the first thing you need to do is go to chapters or something and get a good book. The first book I read on how to program was c++ is 21 days. But that was after 4 years of highschool programming courses. All I can suggest is start very small and set small goals. I came to realize very fast that if you think youd need to put in a week of work, in actuality, it'd turn into a month.

The game/engine im currently working on now i thought would maybe take a year. its just a 2d side scrolling space shooter/rpg.

It has been about 2 years now (of course i dont work on it every day, maybe 3 times a week) and im still veryyy far from completion. I have re-arranged my program 4 times, revamped my interface and window code at least twice and have switched from opengl to dx9/dx10.

Things just seem to spring up on you :D! If you want, I could give you the code to my engine. It is still far from done but it would give you an idea of basically how you can write a game.

If you're interested just send me a PM.

Jake

[Edited by - jake_Ghost on December 7, 2009 9:13:22 PM]

Share this post


Link to post
Share on other sites
WOW jake you sound very experienced!
I AM very new to programming unless you consider taking a look at some code as a gain in experience.

Ill take your offer on the source code of your 2d game just to see what the code looks like in the source of an actual game engine. Sounds Exiting! :D

You can email it to me at IDamiez@gmail.com
oh ill also PM u the message . . .

Share this post


Link to post
Share on other sites
Well I've sent you my files. Have fun!

Also, I've deleted as much as I can so it's mostly just the code now but it's still 15mb compressed. So it's taking a while to send.

Jake

Share this post


Link to post
Share on other sites
Game engines are best built by building games first, and extracting common functionality for reuse in later games. Not only do you build a library of reusable code - something that can grow out into a framework or engine that speeds up development - but more importantly, you gain experience and insight. Those are vital resources, more important than the actual code itself.


Having that said, I would recommend using an existing engine first. Something like Panda 3D, combined with Python (you can use C++ with it, but Python is a better choice for game-code imho).


Quote:
Original post by jake_Ghost
The game/engine im currently working on now i thought would maybe take a year. its just a 2d side scrolling space shooter/rpg.

It has been about 2 years now (of course i dont work on it every day, maybe 3 times a week) and im still veryyy far from completion. I have re-arranged my program 4 times, revamped my interface and window code at least twice and have switched from opengl to dx9/dx10.

Refactoring is good, but aren't you overdoing it a bit? Cleaning up code can end up being a swamp that's hard to get out of. Granted, projects tend to get messy when they're nearing deadlines, but a somewhat messy game that releases is still better than a polished, but never released, game.

I started writing an engine with C++ and SDL some years ago, but gave up on it eventually - it took too long, I got swamped in the techical details and lost track of the initial goal: writing a game. Some time later however, I started writing a Flash game in haXe, and I reused some of that code for another game/prototype, and for another... and through all of that I kept improving that code. I now have a framework that allows me to create games fairly easily - I successfully used it at work (which again led to improvements) and I'm now working on some Python-based tools (free-form level editor).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement