Advertisement

Making a game... not an engine...

Started by May 10, 2003 12:37 AM
9 comments, last by yodaman 21 years, 9 months ago
Hiya! Well, Im currently developing a general 3D RTS engine that I can use as a base for making other games, sorta in a Genesis 3D type fashion. The engine is or will be fully scripted for AI/UI/HUD/ the console/triggers/events, etc. Anyway, with that in mind, I was wondering how and what exactly I would have to do to make an actual game using the engine... Heres what I figure you would or may need to do to customize a game using the engine: 1) In the editor, make a new game project. 2) choose either skeleton hud,AI,menu, etc layout scripts or choose from a list of defaults. 3) setup the model, texture, terrain, etc directors to start making levels 4) make all level with a "world script" which defines when the level is or has been completed. 5) In the Game Editor tool, you would choose with levels come first, wich are contected, etc. 6) use visual tools for editing HUD, menus, etc, you would aslo asign functions to the buttons and such (start game, would start the first level in the list, edit charactor may bring you to another menu where you can change your name, model etc) 7) and you can always at any point start the engine in default mode (unless you already have the hud, menu etc scripts done) to test your level and scripts. etc... Since I am making the engine nearly completely script dependent it will really be convenient for making new games! having to write a new game using pointers to the entity class, writing the winmain function, and all the other functions that would be needed to handle the rest of the engine every time I make a new game or making non coders have to do this, seems just stupid, why do it! simply edit the splash screen, use the menu tools to script the UI and HUD etc would be a lot more cooler then having to include the engine in a new project every time you want to make a new game, not only that, but that would be defeating the purpose of making the engine use scripts and such ( not every one has a cpp compiler!) Hmm, I quess I dont have any real point, other then to ask the people who have written an engine if this would be the best route to take for an engine thats designed for others(newbies) to make there own games and or as a base for new games? and also, if I should make everything so script dependent or hard code some more stuff(note* compiled scripts!) ~yodaman ps. I will be using Lua (the scripting language) by the way, because lua rulz! [edited by - yodaman on May 10, 2003 1:45:41 AM]
www.jinx.com www.thebroken.org www.suprnova.org www.mozilla.org
Okay your asking how to make a game from an engine. If you knew what an ENGINE was then you'd know how to make a game from it.

Okay maybe that was a bit harsh but this isn't the beginners forum so it's allowed, see Myopic I DID read that thread in the beginners forum :D.

EDIT: Btw I DO like your idea, I'm just being an arsehole

[edited by - RamboBones on May 10, 2003 1:45:29 AM]

[edited by - RamboBones on May 10, 2003 1:46:29 AM]
Advertisement
quote:
Original post by yodaman
Since I am making the engine nearly completely script dependent
it will really be convenient for making new games! having to write a new game using pointers to the entity class, writing the winmain function, and all the other functions that would be needed to handle the rest of the engine every time I make a new game or making non coders have to do this, seems just stupid, why do it!


Indeed. Here''s the kind of language/script constructs I have made in my ''engine''.

I have replaced the glBegin(), glEnd() combination with a single construct, with-glBegin. All I need to do is...

(with-glbegin GL_TRIANGLES
(glNormal3fv v1)
(glVertex3fv v1)
(glNormal3fv v2)
(glVertex3fv v2)
(glNormal3fv v3)
(glVertex3fv v3))

... and the gl* functions are automatically wrapped between a glBegin() and glEnd()

Replace glPushMatrix(), glPopMatrix with the construct with-glPushMatrix.

(with-gl-pushmatrix
(glRotatef rotation-x 1.0 0.0 0.0)
(glRotatef rotation-y 0.0 1.0 0.0)
(glRotatef rotation-z 0.0 0.0 1.0)

(with-gl-pushmatrix
(glTranslatef obj1-x obj1-y obj1-z)
(glRotatef obj1-rot-x 1.0 0.0 0.0)
(glRotatef obj1-rot-y 0.0 1.0 0.0)
(glRotatef obj1-rot-z 0.0 0.0 1.0)
(glCallList obj1))

(with-gl-pushmatrix
(glTranslatef obj2-x obj2-y obj2-z)
(glRotatef obj2-rot-x 1.0 0.0 0.0)
(glRotatef obj2-rot-y 0.0 1.0 0.0)
(glRotatef obj2-rot-z 0.0 0.0 1.0)
(glCallList obj2)))

Everything is indented automatically, so I don''t need to worry about having to match up a glPushMatrix() with a glPopMatrix().

Also, I replace the whole "game loop -> case statement checking for events" with the following few lines of code.

(with-sdl-events
((SDL_MOUSEMOTION process-mousemotion-event)
(SDL_MOUSEBUTTONDOWN process-mousedown-event))

(move-objects)
(draw-screen))

This code defines the events I am interested in and the functions that should be called when these events occur. It also has the functions that should be called for each iteration of the game loop. Simple, eh ?

These constructs are all compiled, so speed is not an issue. It also took only a couple of minutes to create each one (except for number 3).

I use Lisp.

So you''re asking us how to make a game in you''re own engine?

What the hell?

You''ll never finish an engine if you don''t know how to make a game from it, this one has me dumbfounded I must say.

~SPH
AIM ME: aGaBoOgAmOnGeR
seems a bit too ambitious to me...

| - Project-X - my mega project.. close... - | - adDeath - | - email me - |
As I understand it, he isn''t asking a stupid question at all, quite the contrary, he''s trying to plan ahead for what the engine should provide, by compiling a list of ways to interact with it (use cases).

***
For Java games and Java related resources, go to http://www.javaengines.dk
***

Developer journal: Multiplayer RPG dev diary

Advertisement
Thanx a lot Blackone! Thats exactly what I was trying to do!
My ultimate goal is to have a engine and tools that will help
others to make there own games. Like I said "in a genesis 3D
type fashion". So, what im asking is, or really saying is that
I want my engine to be powerfull enough where game(S) can be made from it and each possably look an feel differently.

John Carmack himself told me that in the future engine programmers wont be needed as much because the gfx will get to the point where they cant get any better "they will rival monsters inc". Programmers will write code bases instead of new engines and large leaps in gfx tech will be seldom.

My point is, engines (mine will be far from having the best gfx to where i wont need to write a new engine) but, writing engines to be VERY extendable now days is a must, thus is the reason Im choosing to make it so script dependent so that it can be used for many games and each with there own look, feel and game play, although im making it genre based (heck this is my first engine!)

Note* I know that you should start small and work your way up, Ive done so for a while, i may not be able to write perpixel lighting demos yet or rigid body physics yet, but by doing what I CAN do, I will learn more and more as I make the engine.
(heck, this is a reason why its taken me two months to plan it!)

~yodaman


[edited by - yodaman on May 11, 2003 12:41:20 PM]
www.jinx.com www.thebroken.org www.suprnova.org www.mozilla.org
Well, I think it sounds great! But it surely will be very hard to implement...

But I think that you should decide about one game you want to make, and develop it with that game in mind all the time...

Making it this flexible, and fast, and easy to understand for newbies all at the same time? well.. Good luck!

quote:
Original post by yodaman
(not every one has a cpp compiler!)



You should, really, if you''re going to program games... (Or another compiler, for that sake...)

quote:
Original post by yodaman
John Carmack himself told me that in the future engine programmers wont be needed as much because the gfx will get to the point where they cant get any better "they will rival monsters inc". Programmers will write code bases instead of new engines and large leaps in gfx tech will be seldom.



Erm.. Carmack told you? Or did you read that somewhere... I''m sure I read exactly that in that Doom 3 article that NeHe posted a link to a while ago...
And I think that will be quit a while until... I also believe that there is always room for improvements!
ha ha very good!
Carmack did say, I asked him what he ment after reading that article I know his email addy easy to figure out.
www.jinx.com www.thebroken.org www.suprnova.org www.mozilla.org

This topic is closed to new replies.

Advertisement