Seeking for a hint how to take the next step...

Started by
9 comments, last by MMarcel 18 years, 10 months ago
Hi there everybody. I've been working for a while with C/C++ and DirectX now. I think that I am familiar to all the topics a noob-hobby-game-developer should know about and a bit more as I was working as a programmer for mods several times. Well, however I've programmed some kind of "2d-engine" so far, I should better call it a fast bitmaploader with the ability to draw some lines and point in addition. The thing is, I've been working all the time with things like materials etc. for now and I think I've done a really good job with the things I've programmed, but I am stuck now, because I don't actually know how to make a game out of this, I am not sure what kind of texture manager I should create etc. or if this actually is necessary, so what I'm searching for is not a source of a game but just a hint which will give me an idea to think of by myself how I could get on the next level and get finally a game. So how all of the game management should look like. I hope I have described my problem properly ^^, however thanks in advance for any sort of reply, Marcel
Advertisement
Hi,

I know exactly what you mean. Do something really, really small. Clone another simple game (like Space Invaders, Tetris, or anything). Also, making a game entirely not graphics related might be a good thing, like a text adventure. Get a feeling what you need to give the name "game" to your program. :)

Hope that helps!

Cheers,
Drag0n
-----------------------------"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning..." -- Rich Cook"...nobody ever accused English pronounciation and spelling of being logical." -- Bjarne Stroustrup"...the war on terror is going badly because, if you where to compare it to WWII, it's like America being attacked by Japan, and responding by invading Brazil." -- Michalson
Hmm ... well I wasn't assuming to programm Doom 6 now anyway, but anyhow thanks, I am searching more for some kind of brief description how an simple 2d game engine should be concepted, but thx anyhow, I'll just keep thinking ;)

... what shouldn't mean that I don't welcome more replys ^^

marcel
Oh! ;)

Well, there are many good articles in the reference section of this very web site. A few tutorial series on game engine programming might get you started.

Cheers,
Drag0n
-----------------------------"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning..." -- Rich Cook"...nobody ever accused English pronounciation and spelling of being logical." -- Bjarne Stroustrup"...the war on terror is going badly because, if you where to compare it to WWII, it's like America being attacked by Japan, and responding by invading Brazil." -- Michalson
Yes I think I'll give some more articles a read.

^^

marcel
Ok
From what I can gather from your post, you need to consider what the game will be before you can think about implementing gritty technologies in the engine.
Once you realise exactly what you want to make, your vision if you will, then implementation falls into place.
For example- if you're writing an engine specific scripting language you can't really begin without working out exactly the different elements and over all power the script will have. You can't work this out without really knowing what the engines overall aim is going to be.

Keep in mind, at this hobby level engines don't have to have commecial appeal so they can be as specific as your projects needs them to be. That includes how everything works together (eg. your Texture Manager)

So basically, you have to come up with the general concept of the game (looks, dynamics etc.) and then the structure of the engine, the way it all works together and the management of resources will fall into place.

I hope thats the kinda thing your were asking
Perhaps you could make some sort of graphic archive format e.g. size of textue followed by the texture data, repeated for all your textures. Maybe make a little program to create your archives from bitmaps or something.
Then maybe make a level data file in a similar way (perhaps textfiles listing the platform texture IDs and positioning data. If it's for a platformer. character start position etc)
Then code the function that reads these files, creates data structures from them.
...just ideas.
when making a game engine it is very important to decide exactly what kind of game this is going to be i can with a fair amount of confidence say that you are going to need

a sprite handler class
a sprite class
a collision detection class
an i/o class/system if you dont have one from an external lib

thats all i can really think of that you need for (almost)ALL 2d games

based on your game you may need an enemy class with an AI system (however you decide to do that) most of the time you going to need to make an inherited player class of the sprite class or maybe you want a heighrarky with a
Sprite|vStatic or Movable            |             v          Player or AI


somthing like that but im just listing off some ideas.

hopefully i helped
____________________________"This just in, 9 out of 10 americans agree that 1 out of 10 americans will disagree with the other 9"- Colin Mochrie
Thanks a lot for the posts.

Well actually I'm planing to create some kind of jump'n'run game ala mario or maybe metal slug, but actually I do doubt a bit that I'll manage to do this right away so I'd be happy for the beginning to have some kind of player who's able to move around and jump with some obstacles in his way, when this is done I think I shouldn't have problems to take this to a higher level.

But as I said I lack in knowledge how to concept the classes for a texture manager ... the objects in game etc. ... I do have an basic idea ... something linked list like what calls all the render calls etc.

It's just that I'm a bit tired of starting from the beginning again and again as I did now for already 4 times whilst programming the basic framework I wan't to go from when creating my game ...

Actually I think that I block my self from taking the next step because I lack in confidence when doing something so that's why I'd like a rough concept of an really simple 2d engine ...


maybe I can tell you how I've concepted the things I've done till now:

I've got a C_Application class which hold all my DX stuff like the d3ddevice etc. and has the main functions for initing dx and then the main game loop which renders the dx scene.

I controll the whole process via gamestates ... so I check in every game loop what game state I have to perform the stuff what needs to be done so that I can restart the engine, have menues blah etc.

for displaying graphics I've programmed some kind of panel class which renders always texture quads(4vertices with texture on it) and it supports also materials and transparency etc. I've got also a timer class to enable a constant movement at any framerate and so on ... so as you see I do have actually everything I need for a simple game but I need to put it all together with some kind of functions/classes to take care of all the textures I want to supply in the game, to take care of the enemys and the player and the environment to be drawn etc. ...

So thats were I'm actually stuck...


I know that you all have to face every single day such annoying beginner questions and topics like this one, but I really appreciate that some of you do reply and maybe will reply to this one ....


thanks again in advance

marcel


edit:
I have also programmed already a collision detection ... with first bounding boxes and then perfect pixel ... it's not in but I do have still my pseudo source which a friend of mine has tested in an other engine ...

an I/O system shouldn't be a problem to programm I think ...
Don't jump straight from your custom graphics library to a complete game. The two really aren't that close to each other... Anyways, you want to do a jump and run? Start simple. Have a character run back and forth on a surface. Don't do any screen scrolling. Once you can do that, program him jumping. Then try to get him to jump onto other platforms at different heights. Implement a larger map that scrolls. Make some objects/enemies he can interact with.

In other words, try building up slowly. Don't try to get the whole game working at once. Think of a goal within your game that you can work out how to program and do it. That should give you more ideas for how other stuff will work and so on. One downside to this method, is you can end up going back and overhauling stuff because you need to do it differently down the road, but I feel the whole thing is a wonderful learning experience, and well worth the effort.


****EDIT******
One tip, although I'm sure you already know it, have the game physics and graphics seperate from each other.
----------------------------------------------------------No matter how eloquently you state your argument, the fact remains that the toilet seat is a bistable device. Therefore it's natural position is no more down than it is up.[SDL Smooth Tile Scrolling]

This topic is closed to new replies.

Advertisement