• Content count

  • Joined

  • Last visited

Community Reputation

135 Neutral

About Infernal0010

  • Rank
  1. 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? particles 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.
  2. You may get more advice/help if you isolate your problem to a specific area of code and paste that in your query instead of asking someone to go through nearly 4mb of files.
  3. Collision Detection HELP!

    you are using assignment in your if tests...line 22 and 27. You've also neglected to test outside the top and left. please look up axis aligned bounding box collision.
  4. Jumpy movement with fixed timesteps

    you have a while loop on your update function and it changes the previous translation, rotation and scale each time it runs. doesn't this mean that there will be a disjoint when you have multiple updates between renders? The next trans,scale,rot ending one render frame will not equal the previous trans,scale,rot from the previous render due to the multiple update calls within the while loop. I'm quite rusty and may be barking up the wrong tree here.
  5. Jumpy movement with fixed timesteps

    Wha'ts the timer resolution set to? i remember reading somewhere that it can be as much as 15ms on some machines. This might acocunt for some backwards movements on some frames. [url=""][/url] might help you manually set it.
  6. I am sorry that you didn't get any help, it happens. I believe the main reason you haven't received any advice is that your system apparently works and you are worrying about empty quadtree nodes for some reason. Lastly, and this is meant to be contrsuctive, it is hard to understand your question and explanation when you interchange nodes, quadtrants, entities too easily in your description. While your system may make sense to you, your description lacked clarity to really get where the problem may be occuring.. if there is a problem (empty nodes, means nothing to test against,, not much lost time there).
  7. Separating axis theorem

    [sup][color="#000088"]public[/color] [color="#660066"]Projection[/color][color="#666600"]([/color][color="#000088"]double[/color][color="#000000"] min[/color][color="#666600"],[/color] [color="#000088"]double[/color][color="#000000"] max[/color][color="#666600"]){[/color][color="#000000"] min[/color][color="#666600"]=[/color][color="#000088"]this[/color][color="#666600"].[/color][color="#000000"]min[/color][color="#666600"];[/color][color="#000000"] max[/color][color="#666600"]=[/color][color="#000088"]this[/color][color="#666600"].[/color][color="#000000"]max[/color][color="#666600"];[/color] [color="#666600"]}[/color] [/sup] [sup]seems backwards. shouldn't it be: this.min = min; no?[/sup]
  8. Switching from Console to 2D

    1) SFML/SDL is the norm here, I did some windoes GDI stuff but it's not nearly as good as using something ontop of opengl. 2) Wrote text games with some ANSI terminal graphics. Then wrote battleship using SVGA rendering in pascal... bleh! moved on and up through C++ and opengl 3) I would not use game programming as the source of learning C++/programming because there are aspects of the language and programming designs that you would want to know first before coding a game. What I mean is: wouldn't it be nice to know if a hash, an array, a linked list, a binary tree or a map would be best suited to handle the data you are considering handling for your game? That's not something you want to recode, trying each structure to determine the best fit. That's something you would like to be able to have some background understanding of before using them in a game.
  9. Have i choosed the right path for beginners?

    understand containers, understand pointers, understand memory management/cleanup nobody likes an unstable game. good or bad won't matter when it crashes alot.
  10. Modding vs actual game and engine programming. I think it's a question of immediate scale you are exposing yourself to. With modding: you can almost immediately jump into a finished engine/game and tweak stuff around and learn within that framework. Actual learning? might occur wth a decent framework to toy around in. Game making: you cannot jump into this and write the next quake. You will more than likely be best off making small flash games or hell, dos/shell prompt text games to start with. Modding is fine, but does it really give you the tools to build your own game? yes and no, you may be able to change the gamecode completely to your own game, but if I recall most licenses fr modding, your game is not something you can sell standalone, hell in most cases, something you can't charge any money for at all. In most cases, modding means your exposure to the public will be limited to the subset that owns the underlying game. In this day and age where you can sell small games, VERY small SIMPLE games over the internet fr $1 (provided people like it enough), I see less reason to want to start game programming by throwing months into editing a commercial game engine's scripts/moddable source than ever. When you have such a big engine around, you will tend to want to make a big [i]Game mod [/i]and that will take time. In the end, is the learning enough of a reward for your time? Who knows, in that same time frame you may have been able to make the next angry birds super simple 2d flash game and sold 10,000 copies on itunes...(could happen...) and 2-3 other small predecessor games. One of the best pieces of advice I've read is that your first game will suck, probably your second and third too. Each game you make will improve your skill set and help you hone in on being able to make that really great game tooling around in the back of your head. Why waste all that time making ONE big MOD that barely changes the boundaries of the game the engine was built for.
  11. [indent=1]What happens to your physics or particle pathing if you use negative time as your timestep?[/indent] [indent=1]if for instance particles animated exactly backwards for path and effects using a negative timestep, you wouldn't have to record anything but their "fizz out" locations to spawn backwards animating particles as it rewinds the scene.[/indent]
  12. MMO Networking

    I would recommend the common method of TCP/IP for login and initial connection, then transition over to UDP for gameplay. Typical FPS connectivity is advised because it is based around an authorative server which is a must for any MMO. The rates of update probably do not need to be as high as with an FPS, but if you have PVP then you will need a reasonable rate. What you will want to do is use a normal client-server prediction system which you can find threads about here. You will also want to partition your world somehow and have it generate snapshots for each partition with players in them. Then it can just dump the area snapshot to all players within that zone instead of trying to create custom visibility based snapshots per player. You could further improve snapshot performance on a very busy area by updating hostile elements in the snapshot more than friendly elements to allow a person to get informaiton that could save them.
  13. Clientside prediction & correction

    In the quake series of games the prediction and correction is done like this: each command has a timecode. Clients run their user commands locally in realtime. this is your prediction. The client also saves state of the result of each movement command and the timecode for that command/state pair. Client sends bunches of commands including previous commands over udp at a regular interval.. the reason for duplicaitng older commands is to compensate for packet loss. Server rebuilds the user command stream using the timecodes. Server simulates all usercommands that have a newer timecode than the user command executed last frame on the server. At each snapshot, the server sends back the state of the last executed command and the timecode of that command. We can call this the "Last Acknowledged Command" (LAC). When the client receives the snapshot, the client character is immediately snapped to the state that the server snapshot indicates. The client then uses the timecode of the snapshot as a start point and simulates all the user commands locally that occur after the snapshot to bring the client back into realtime predicted state. This is done within one frame and any huge error will be smoothed over the next few frames. The result is that if the physics sim is deterministic, the client and server will agree most of the time and you will not see much snapping at all. Even without error smoothing I've had a 200ms connection feel smooth. They also use delta compression on the bunches of commands and snapshots to minimize bandwidth usage. Also to note is that on the server, each client is in a quasi stable state. The snapshots takes stills of this and the clients tend to interpolate remote players between snapshot orientations or actually accept a list of commands to sim the remote player characters. The result is that all remote players look smoothish to each client, but if you were local to the server, using the server's direct state, you'd see every remote player jittering. This is why the local client on a listen server in id games is an actual client that also recieves snapshots from the server code and does all processing in duplicate of the server (for it's own client character at least) as a real client should. This method also requires that each character can be simulated through physics separately from the rest of the world. This will not work with globally correct physics sims that aim to sim the entire world each frame (your character running into a stack of cardboard boxes). Some intermediate might be possible where if the client impacts objects that can move, that those objects are now brought along into the independant simulation of the client commands that have reached the server.
  14. Visual storytelling tricks

    visual sequence of events? the background of the current scene is the foreground of the next scene.. repeat for a few scenes. ex: imagine a sequence of scifi war scenes, first scene you see a guy tending his wounds, through the window in the room you can see war of the world robots attacking the city. The next scene is a closer view of one of the tripods doing battle with people on the ground, the view is upwards towards the tripod top (you can see sky), jets fly overhead above the tripod.. next scene, you are following within the cockpit of that jet as he is issued orders to launch an attack.. That work for you?
  15. Best Resolution for 2D games

    I would argue that if you support multiple resolutions, unless you have a very good dithering system of high res textures, or textures per sets of resolutions, the game appearance will suffer.