• What are you working on? V5
    2,005 replies, posted
[QUOTE=garry;18813729]Don't you love it when you have a frustrating physics/collision bug, then in a last ditch effort to fix it you update Bullet - and to your amazement it fixes it ![/QUOTE] Like discoverin a goddamn $20 bill in your pocket you forgot about. [editline]03:00PM[/editline] [QUOTE=quincy18;18817348]Anyone knows of a article that talk about how to design your game (programming wise) I usually make a world object and let the world loop trough all objects and update/draw them.[/QUOTE] I put game logic (updating the positions of the objects and actions) on a loop in its own thread, and drawing all the objects in another. This keeps the CPU and the GPU pipelines full, and tighter loops means better cache hit rates, but you gotta watch out for race conditions. (Like if one thread is drawing an object, and the logic thread deletes that object in the middle of the draw operation.) [editline]03:08PM[/editline] Ideally, with this multi-threaded game pipeline system, you want to be able to divide the pipeline into n number of stages of approximately equal process time, where n is the number of CPUs on the system. It's kinda tricky in my system because the pipeline isn't strictly linear. It has a bunch of feedback loops, and one stage might pass an indeterminate amount of data to the next stage, or none at all. It makes this soft-pipeline thing a bit of a bitch to do intelligently. But that means you may be able to dedicate more than one thread to updating game logic and stuff. If it is just physics, that is highly-parallizeable after all.
Made a little breakout clone to test the entity communication stuff.. [img]http://filesmelt.com/downloader/09Dec2009_004.png[/img] [img]http://filesmelt.com/downloader/09Dec2009_008.png[/img] It all works properly but I'm not totally happy with it code-wise, so that's what I'll be working on tomorrow.
Garry, do you use any sort of lossy network simulation in your development? Something that you can run on a local machine so you can have server and client on the same hardware, but have it behave as if they were separated by a lot of network fiber? I've been running this program I wrote that delays, drops, and reorders packets to simulate a shitty connection to see if my games hold up. It makes it a lot more difficult, but I feel that this more closely approximates what my game would be like when played over the internet.
I use this [url]http://www.jenkinssoftware.com/forum/index.php?topic=1671.0[/url] [editline]08:27PM[/editline] Also, to be totally honest we're not planning to release a MP game straight away, I just want to make sure it's coded in a way so that it isn't impossible.
[QUOTE=Cathbadh;18819671]Garry, do you use any sort of lossy network simulation in your development? Something that you can run on a local machine so you can have server and client on the same hardware, but have it behave as if they were separated by a lot of network fiber? I've been running this program I wrote that delays, drops, and reorders packets to simulate a shitty connection to see if my games hold up. It makes it a lot more difficult, but I feel that this more closely approximates what my game would be like when played over the internet.[/QUOTE] I just get a mate on a shitty connection to host my server instance. It's unplayable even with professionally made games but it sure does help.
[url]http://synthiac.net/p5/manhattan/[/url] protip: hold a key
[QUOTE=Catdaemon;18819852]I just get a mate on a shitty connection to host my server instance. It's unplayable even with professionally made games but it sure does help.[/QUOTE] Well, the idea is to be able to rapidly test and debug builds and operate both ends of the connection in real-time. Your way sounds a little consuming in terms of logistics. [editline]03:45PM[/editline] [QUOTE=garry;18819748]I use this [url]http://www.jenkinssoftware.com/forum/index.php?topic=1671.0[/url] [editline]08:27PM[/editline] Also, to be totally honest we're not planning to release a MP game straight away, I just want to make sure it's coded in a way so that it isn't impossible.[/QUOTE] That's just thinking ahead. It's something any good programmer should do.
[QUOTE=Chandler;18813844]Pass it by reference. value1&[/QUOTE] Yeah I tried that but... I pass it with reference from Mainclass to class1 and from there again with reference to class 2. Then I changed the value in class2, but the value in the mainclass still remained the same.
[QUOTE=garry;18819748]I use this [url]http://www.jenkinssoftware.com/forum/index.php?topic=1671.0[/url] [editline]08:27PM[/editline] Also, to be totally honest we're not planning to release a MP game straight away, I just want to make sure it's coded in a way so that it isn't impossible.[/QUOTE] You realize with that netcode you could make a dsitributed map editor so one or more people could be editing a level in realtime yes? Potentially place viewer only clients on other machines. id Software was doing this with Rage, where John Carmack could sit on his toilet and watch people edit levels in realtime from his iPhone. He didn't actually do this as far as I know, but I think it's a great analogy. :colbert:
[QUOTE=Chandler;18820545]You realize with that netcode you could make a dsitributed map editor so one or more people could be editing a level in realtime yes? Potentially place viewer only clients on other machines.[/QUOTE] Multiplayer map editing? You gotta ask yourself: is that a particularly useful feature? Will this decrease the time it takes to make or increase the quality of a single map per designer?
[QUOTE=garry;18813729]Don't you love it when you have a frustrating physics/collision bug, then in a last ditch effort to fix it you update Bullet - and to your amazement it fixes it ![/QUOTE] I have found that by including '-1' randomly throughout my code usually solves every problem...
[QUOTE=Cathbadh;18820725]Multiplayer map editing? You gotta ask yourself: is that a particularly useful feature? Will this decrease the time it takes to make or increase the quality of a single map per designer?[/QUOTE] Considering how many games have shitty level design the answer to this question is a YES.
[QUOTE=Cathbadh;18820725]Multiplayer map editing? You gotta ask yourself: is that a particularly useful feature? Will this decrease the time it takes to make or increase the quality of a single map per designer?[/QUOTE] I'd probably buy the game just for that feature.
I've decided to say fuck it, to irrlicht, and all these other C++ engines. Maybe I'm just not cut out for serious C++ development :(. It looks like I'll be using pyglet until Panda3D (which is used by Disney for almost everything) release the 2.6 compatible version. [url=http://www.panda3d.org/screens.php?page=3]This[/url] is pretty much made me realize it's possible to make a space RTS in python. Although the screenshots on there don't really do the thing justice since most of those are either MMO's or student projects. But what's to say this won't look the same. Kind of looking forward to it :3:, I think to say that in today's world of computers where a simple game can be made in a dynamic language really is something. Maybe once the unladen swallow project gets off the ground as well, python could be a real "game programming" language, rather than just pure scripting. For those of you who don't know unladen swallow it the python implementation written on LLVM. It's loads faster, apparently (though unstable) I'll still use C++, but, for a single person project maybe this is better :)
[QUOTE=Chandler;18822441]-blah blah blah-[/QUOTE] Isn't this like the 4th or 5th time you've changed engines? :P
[QUOTE=andersonmat;18823682]Isn't this like the 4th or 5th time you've changed engines? :P[/QUOTE] It's very hard to make a decision like this in my opinion. I'm sure we've all had our false starts. Yes. I change my mind alot. And it's very hard to nail down exactly what I'm going to do. I mean the build system you guys saw is the 10th unique iteration of me trying to construct a build system. I failed countless times with it. I do this everytime I start a project, but I'm sure I'll be sticking with it this time :P
Say, I want to make a 2d game, if I want to draw something on the screen what's best ? I'm thinking of making a function that draws objects and then call it in subs like this [code] get position and type of the object drawobj(x,y,type) [/code] It will all be blocky 8-bit style so no need for rotation and all.... I'm coding in Fb fyi. thanks for dumb out of nowhere... I'm not good at coding and I want to simple things with freebasic.. I'm asking for help.
[QUOTE=Chandler;18823871]It's very hard to make a decision like this in my opinion. I'm sure we've all had our false starts. Yes. I change my mind alot. And it's very hard to nail down exactly what I'm going to do. I mean the build system you guys saw is the 10th unique iteration of me trying to construct a build system. I failed countless times with it. I do this everytime I start a project, but I'm sure I'll be sticking with it this time :P[/QUOTE] I have similar issues. Personally I think that it's a bad thing, but I really don't know. I always like to reiterate software I've written. When I attempted a game engine, I would always think that I should rewrite it, so I rewrote it. Second iteration, got the same feeling. Something just seemed like it was wrong and should be redone. I can't shake the feeling that constantly reiterating and restarting is just slowing down the process, or that I simply will reiterate forever and never get something that "clicks".
[QUOTE=VoiDeD;18824596]I always like to reiterate software I've written.[/QUOTE] Me too, everyone does :P
Something from one of my posts were mentioned on garry's blog. My life is now complete.
[QUOTE=Chandler;18820923]Considering how many games have shitty level design the answer to this question is a YES.[/QUOTE] "Too many cooks..." [editline]11:10PM[/editline] [QUOTE=cas97;18827991]Something from one of my posts were mentioned on garry's blog. My life is now complete.[/QUOTE] The death squad will arrive at your home shortly.
[QUOTE=Ortzinator;18828076]"Too many busboys"[/QUOTE] That's more like it :colbert:
[QUOTE=Chandler;18820923]Considering how many games have shitty level design the answer to this question is a YES.[/QUOTE] I was hoping for something more along the lines of valid reasoning. You might as well say that given the fact that most level editors don't allow you to input brush dimensions and textures via shouting at the computer, and the fact that most levels in games suck ass, then you would come to the conclusion that such a feature is necessary. [editline]11:40PM[/editline] How about a level editor that also cooks hot dogs? Clearly we need some more things like that.
[QUOTE=Cathbadh;18828400]I was hoping for something more along the lines of valid reasoning. You might as well say that given the fact that most level editors don't allow you to input brush dimensions and textures via shouting at the computer, and the fact that most levels in games suck ass, then you would come to the conclusion that such a feature is necessary. [editline]11:40PM[/editline] [B]How about a level editor that also cooks hot dogs?[/B] Clearly we need some more things like that.[/QUOTE] Fuck yeah
multiplayer level editor would be so great I really don't see how you can say it's a bad thing.. Maybe you're just not somebody who makes levels
Well at the moment the disconnectedness between level creation and level playing has to be an issue, especially in MP games where there are additional steps required to test changes. The ability to edit and test in real-time with other players and editors has to be a great feature if you plan on making level creation a seamless process. These kinds of things are also really good for training, a parallel here, Gobby is a great way to teach people programming things as you can both work on the same page, literally. These things lower the entry barrier for fixing and creating maps, I cannot see how this could be a bad thing. Only negatives are the resources eaten up by creating a mp editor.
[media]http://www.youtube.com/watch?v=6iLuwol8Bbg[/media] Just a small thing in Python we had to do in my Computer Science degree Python class.
[QUOTE=blankthemuffin;18830307]Well at the moment the disconnectedness between level creation and level playing has to be an issue, especially in MP games where there are additional steps required to test changes. The ability to edit and test in real-time with other players and editors has to be a great feature if you plan on making level creation a seamless process. These kinds of things are also really good for training, a parallel here, Gobby is a great way to teach people programming things as you can both work on the same page, literally. These things lower the entry barrier for fixing and creating maps, I cannot see how this could be a bad thing. Only negatives are the resources eaten up by creating a mp editor.[/QUOTE] I was considering making a generic 2d map editor, until I realized it would make much more sense to have it built into the game instead of having a separate editor for it. Being able to test things quickly when making maps is just so much easier.
Yeah I agree. Crysis sandbox is probably the best example, because it can be seen as an extension to the game and not as much a separate editor. (although it is still definitely an editor, not sure how else to explain)
Did a quick fraps dump [media]http://www.youtube.com/watch?v=yjZjoa8bOgU[/media] This movie is divided into parts, the different test worlds in Botch right now. 1. Testing network code speed, interpolation, threaded entity tick. Each light is a entity, they're attracted to the center. If they collide they go big for a fraction of a second and reverse their velocity. There's 2000 ents. 2. Breakout clone testing entity input/outputs. When a ball hits something it sends that entity a "BallHit" and reflects around the surface normal it hit. When the paddle receives a "BallHit" input, it fires a "ChangeVelocity" to the sender of that message (the ball) which changes the velocity based on where on the paddle it hit. 3. FPS camera/control mode. The camera and controls are modular, and I want the engine to stay genre unspecific. These white dots are the same entites from 1. 4. Didn't capture the cursor, but Facewound style input and movement. The mouse changes the direction we're pointing, keys move left/right/jump. This was testing the clientside movement prediction. Camera is a fixed watcher.
Sorry, you need to Log In to post a reply to this thread.