I am developing my first serious game with XNA. I decided not to use an engine already done in order to learn how it is implemented. About two months ago I started and I have reached a point where I don't know how to continue. The main aspects of the engine I have achieved are:
- Texture Manager (it controls load, unload, add and remove textures using threads). - Model Manager(it controls load, unload, add and remove models). - Camera Manager (it controls the differents types of cameras that are active in the game). - Canvas Manager (it controls the scale of the result image drawn in the screen with different aspect ratio). - Screen Manager (it controls the different screens shown in the screen like main menu, option menu, game screen...). - Animation Manager (it controls the differents types of cameras that are active in the game). - Settings (a class that contains the different options selected by the player with load and save methods). - Input (an single class that contains different methods for check what keys has been pressed). - String/Subtitles (a class that contains only a unique public method that returns a string/subtitle based on an identifier and the selected language that appears in the settings class). - Different types of cameras including a free camera, a fixed target camera and a chase camera. - A single animation class that only controls changes in position, scale and rotation of models. - Different classes for control post processing effects using RenderTarget (now only has a gaussian blur). - Many classes to handle the different menus and menu entries that appears in the game. - Two different class that control loaded models and drawable models. I have separated the models in both classes to not have to load the same model if I have to paint it several times. - A simple log class.
I have finished the menu but now I am starting with the game and I have no idea how to continue. I have looked at many sites and have posted in this forum (http://www.gamedev.net/topic/629129-how-to-design-the-levels-in-a-platform-game/page__p__4966389#entry4966389). I just finished implementing the octree but really do not know how to proceed (scene-graph, etc, etc, etc). I think there are many alternatives and I don't know which to continue (in the referenced post I explained that was what I wanted to achieve). Does anyone know how I should continue?
You have created very generic systems. Essentially you have gone the route of the engine programmer. Your target platform from that post is a 2d platformer using 3d world.
Consider what you need specifically for that style of game
will your game be more like an extruded 2d world with the camera positioned far enough away so that you can see into world as 2d at the center, but as the objects move away from the center of the screen, they are now at angles to the camera making it feel more 3d?
how do you make it esay to represent the level? if it's a real 3d world, then octree and some method of serializing it for storage/loading.
How do you make it easy to represent the level for content creation? you need to build a level editor.. perhaps with a layer of abstraction to present a 2d tile interface for designing the main platforming plane. haveit extrude the level to 3d.
What else does your engine need to support this game?
entity structure - actors, triggers, weapons, game objects
AABB collision or at the very least sphere-sphere collision. (AABB would be best though)
some method to script/code behaviours/pathing of enemies.
@dimitri.adamou I am goint to start with it. If anyone knows a help link, he / she can post.
@Infernal-rk I have found three videos that are what I want:
In the last video, the player can rotate the camera but I don't want that this can be done.
I think of creating a level editor in which the player can insert the elements always having a fixed cubic size. I this cube, it is possible not to occupy the entire size of it and only a part. For example, if I want to insert a staircase with 45 degrees, half of the cube will be empty.
However it is possible that I have some difficulties if I want to insert something smaller (in this case I think about having the ability of insert cubes with smaller size but fit in the original cube size). Is it crazy which present?