|
Orzo posted:I'm not sure I understand this. Doesn't the Transformation being bound to both take care of this? That is, if the physics interactions dictate a movement or rotation, the renderable will pick up on this? Maybe I'm not understanding the problem... roomforthetuna posted:This is true even if you've already done things before. My experience has been that if I just start working with a lovely off-the-cuff design and rework it as necessary, I generally end up doing less work overall than if I try to work out a good design in the first place, and I'm a lot less likely to just get sick of it and quit because of making visible progress. OneEightHundred fucked around with this message at 08:39 on Nov 14, 2010 |
# ? Nov 14, 2010 08:26 |
|
|
# ? May 13, 2024 02:01 |
|
After using C++ for ages and not really getting anything done, I decided to try out Flash and Flixel. Wow. Things are so much simpler now - I got a basic pong clone up and running in a couple of hours as I was getting used to it. I'm really loving it.
|
# ? Nov 14, 2010 14:07 |
|
I have a 2D level composed of axis-aligned bounding box rectangles. I'd like to be able to select one of the rectangles and find all the other rectangles that intersect with it. Is there any particular algorithm that is particularly good to use here? Is this a good place to use a 2D BVH or is something else better?
|
# ? Nov 14, 2010 23:43 |
|
What kind of order of number of objects are you talking about here? If it's low, it seems like any optimization using BVH wouldn't be worth the effort.
|
# ? Nov 15, 2010 00:17 |
|
PDP-1 posted:I have a 2D level composed of axis-aligned bounding box rectangles. I'd like to be able to select one of the rectangles and find all the other rectangles that intersect with it. Is there any particular algorithm that is particularly good to use here? Is this a good place to use a 2D BVH or is something else better? Any sort of spatial partitioning scheme, really. Probably a quadtree or a KD-tree, in this case.
|
# ? Nov 15, 2010 00:21 |
|
I have a game I've written for the iPhone that uses levels based on SVG paths of unrestricted size that have a fixed width and round caps. Each level is one path. I scribble a random line in Adobe Illustrator (hooray for premade level editing tools), parse the SVG file and convert it to the internal format that my game uses. This is a sample of what the levels look like scaled down on the level select screen: Rendering these paths, in game, at a large size, is giving me a giant headache. I have a method that works right now, but it's not extensible and seems like a GIANT hack. Look below for my list of attempted drawing methods. What I'd like to do is generate a giant triangle strip that I could fill with a solid color and be done with it. I don't know what algorithm to use to generate a polygon from an SVG path and generate the final triangle strip though. Any advice or ideas? ------- Here is what I've tried: 1) Render the path onto a single texture with the provided Apple libraries. This works great, but then I'm limited to 1024x1024 (maximum iPhone 2G/3G texture size) for the size of my level, and the levels aren't usually packed (unlike the above screen shots). Using multiple 1024x1024 textures fills up memory pretty quick. 2) Determine equidistant points along the path and draw circular point sprites. This method is pretty cool because I could define the level as a function and have it change in real time. It doesn't need any memory sucking textures. It's slow because I need to render a lot of point sprites close together to not have weird line edges. It also gives weird drawing results when the point sprite is too close to the edge of the screen. 3) Go tile based. Levels become boring. Level design becomes less flexible. 4) (My current solution) Render the path to a surface in memory using the provided Apple libraries. Use a pre-generated list of coordinates that map where the surface actually has content and generate one or more textures under 1024x1024 in size that are packed with tiles. For example, a stage can have a 1024x1024 texture and a 256x256 texture for the tiles that couldn't fit. These tiles are then drawn on the screen as a big triangle strip. Pros: These levels can be super big, more textures will just be generated if needed. Most of levels, however, come out pretty small since the tiles can be packed together. Cons: My algorithm isn't smart enough to save texture space by pointing tiles that are all white to the same tile. If I scale the map in OpenGL you see the seams between the tiles at certain floating point values. I can't make the levels change dynamically. I still use too many textures for nothing. I think this method is overkill and is way too complicated for the simplicity of this game.
|
# ? Nov 15, 2010 00:43 |
|
Orzo posted:What kind of order of number of objects are you talking about here? If it's low, it seems like any optimization using BVH wouldn't be worth the effort. I'd guess maybe several hundred objects per level. Vinterstum posted:Any sort of spatial partitioning scheme, really. Probably a quadtree or a KD-tree, in this case. Essentially I'm trying to generate a list of things that are on the screen and should be updated/drawn. If all the objects in the game level are bounded with rectangles and scattered around everywhere, then I want to take another rectangle that represents the size of the game window and find out which of the game elements are inside of it. I had thought about a kd-tree, but wasn't sure how to get it to do what I want. I understand how to search for a nearest neighbor, but not now to search for all items closer than X units away. Maybe quadtrees are the way to go. I could find the node enclosing the upper-left corner of my screen, and then node enclosing the lower-right corner of the screen, and all other nodes with index values between those two nodes will be at least partly on screen. I'm still open for suggestions if anyone has them - I've read about a lot of these culling schemes before but I haven't had an occasion to implement them so my grasp of their relative strengths/weaknesses is poor.
|
# ? Nov 15, 2010 01:11 |
|
Is there any reason you can't just iterate over every rectangle (several hundred?) and check its bounds against the viewport (a very very fast and simple calculation?) I mean, if it was hundreds of thousands of rectangles it might be slow, but what you're talking about is rather trivial.
|
# ? Nov 15, 2010 01:13 |
|
PDP-1 posted:I'd guess maybe several hundred objects per level. If that's all you're doing, then I'm going to second Orzo and say it may not be the best use of your time for just a few hundred objects. Your original post sounded more like some sort of N*N complexity problem . Do some profiling first, at least. PDP-1 posted:I had thought about a kd-tree, but wasn't sure how to get it to do what I want. I understand how to search for a nearest neighbor, but not now to search for all items closer than X units away. It really depends on how you implement it, but an object which is larger than a cell could either be a member of the parent cell instead (or however far up the tree you need to go to find a cell which covers the whole object), or it could be a member of several cells. EDIT: Check out loose quadtrees. Vinterstum fucked around with this message at 01:35 on Nov 15, 2010 |
# ? Nov 15, 2010 01:30 |
|
It's also worth asking what you plan on doing with these rectangles. It sounds like you're implementing culling to reduce rendering time, but do the sprites (or whatever they are) move around? If so, you have to implement the logic to update their nodes in the tree structure you use, which although isn't that difficult, represents additional work and complexity.
|
# ? Nov 15, 2010 01:53 |
|
Orzo posted:Is there any reason you can't just iterate over every rectangle (several hundred?) and check its bounds against the viewport (a very very fast and simple calculation?) I mean, if it was hundreds of thousands of rectangles it might be slow, but what you're talking about is rather trivial. Maybe this is the case. I suppose I could just hide the implementation inside some kind of GetScreenObjects() call that would return a list of stuff, and for now just have it return everything. If that proves to be too slow I could go back and polish up that one method later on. I'm very guilty of sperging out for days while trying to find the 'perfect' algorithm, and perhaps this is one of those cases where I just need to chill out until a profiler says to do otherwise. Vinterstum posted:It really depends on how you implement it, but an object which is larger than a cell could either be a member of the parent cell instead (or however far up the tree you need to go to find a cell which covers the whole object), or it could be a member of several cells. I'll check that out, thanks. I did also find a source mentioning how to use rectangles in a kd-tree, the gist of it was that you alternate looking at the top/bottom/left/right points of the node rectangle relative to their opposite bottom/top/right/left point of the selection rectangle to eliminate branches of the kd-tree from the search. If scanning through everything turns out to be too slow at least there are some options. Orzo posted:It's also worth asking what you plan on doing with these rectangles. It sounds like you're implementing culling to reduce rendering time, but do the sprites (or whatever they are) move around? If so, you have to implement the logic to update their nodes in the tree structure you use, which although isn't that difficult, represents additional work and complexity. The rectangles are bounding boxes for Type (B) Entites. Each Entity has an IMover component which could be commands from the player in the case of the main character, an AI in the case of an enemy, or a placeholder no-op for inanimate scenery objects. Each Entity also has an ICollision property which is basically it's bounding box and collision behavior. My very rough plan is that if the IMover is capable of changing the position of the Entity it would call on ICollision to update the bounding box and notifiy the EntityManager that its position in the kd-tree (or whatever) needed to be updated. Constantly updating the kd-tree (or whatever) sounds like a lot of CPU effort but really most scenes will have way more inanimate Entities than movable Entities. You might have 50 platform and scenery Entities on the screen at once, but only 3-5 player/enemy types. Seems doable.
|
# ? Nov 15, 2010 02:35 |
|
PDP-1 posted:Maybe this is the case. I suppose I could just hide the implementation inside some kind of GetScreenObjects() call that would return a list of stuff, and for now just have it return everything.
|
# ? Nov 15, 2010 04:35 |
|
Does anyone here have a really good tutorial on vertex buffers, which types to use, when to use them, ideal size, etc? I'm getting mixed messages about whether to use them or not for data that changes every frame. This is for DirectX (SlimDX to be precise), not OpenGL.
|
# ? Nov 17, 2010 17:37 |
|
Orzo posted:Does anyone here have a really good tutorial on vertex buffers, which types to use, when to use them, ideal size, etc? Could you be a little more specific? Generally, you want your buffers to be as "constant" and as "read only" as possible, as this gives the driver the most freedom in choosing the best memory space. For data that changes every frame, you want to create a buffer in the DYNAMIC pool, and lock the buffer using D3DLOCK_DISCARD (and, when possible, D3DLOCK_NOOVERWRITE).
|
# ? Nov 17, 2010 17:58 |
|
Orzo posted:Does anyone here have a really good tutorial on vertex buffers, which types to use, when to use them, ideal size, etc? Check what Hubis said, but also dig through the DX documentation. It's mentioned here and there how you should use the different buffers. If you are trying to figure out if updating a buffer with dynamic instance data compared to setting instance data in shader constants, I guess you best bet would be to profile to see which wins with your data(I don't know if there is a given winner for any reason, so please chime in if you have more knowledge than I do). I haven't really used dynamic vertex buffers that often, since (as Hubis said), the more that is constant, the better. Perhaps you could post your "mixed messages" or some cases where you are in doubt so we can see what you'd want to achieve.
|
# ? Nov 17, 2010 19:10 |
|
Hi goons, we're a new startup making an exciting online, social/education MMO-style game world for young kids. We're looking for people with skills in Flash game development, MMO development, and multiplayer game coding/architecture/engineering. If you or anyone you know has those skills we really really want to talk to you! Please email us at hyperdermicneedle@gmail.com. Thanks so much.
|
# ? Nov 17, 2010 23:37 |
|
Originally asked in the Making Games thread in Games but realise I should've posted here instead. So I have some experience programming but not in games and knowing too little about the logic of game programming I'm trying to figure stuff out for myself and wanted thoughts on what I'm doing at the moment. I'm working in XNA & C# on a 16bit-style platform game in the vein of Super Mario World or the Sonic games (though running at modern resolutions) and I've been trying to figure out the best way of representing the levels themselves. Aiming for 1280x720 resolution as standard, I'm thinking of using 32x32 pixel tiles as the smallest component, with each tile image having a coresponding black/white image that maps where it's solid and where it's not so I can have slopes of any gradient or smoothness (and leaves me the choice of other colours to represent ledges you can jump up through but not fall down through or other things like water, etc). There'll be a Tile class holding info on the tile's images and what mask to use, and an ID number for each tile. The level itself will be divided up into LevelTiles, a class which holds a 32x32 array of 16bit numbers each corresponsding to a tile's ID number - the Level class will have a list of Tiles used throughout the level. The Level class will store the LevelTiles as an indexed list and map the level with an array of Ints representing where each tile is relative to each other so I don't have to fill a ton of space with just solid tiles outside of the areas where the player can go. Like I say I've worked this out myself knowing nothing about how platform games have traditionally been made so it might be far from the best or most efficient solution, if anyone knows a better way please let me know. Noxville fucked around with this message at 15:08 on Nov 18, 2010 |
# ? Nov 18, 2010 12:56 |
|
Noxville posted:Like I say I've worked this out myself knowing nothing about how platform games have traditionally been made so it might be far from the best or most efficient solution, if anyone knows a better way please let me know. Beyond tile grids is the ability to place arbitrary chunks of map geometry wherever you want. If you're gonna do something like that then you probably want to use a quadtree or kd-tree. OneEightHundred fucked around with this message at 16:54 on Nov 18, 2010 |
# ? Nov 18, 2010 16:50 |
|
Anyone have any good game-focused network programming articles/books/presentations/talks they'd recommend?
|
# ? Nov 20, 2010 00:11 |
|
Not sure where exactly to ask this but I want to model a mechanical machine in 3d that'll work under real world physics. For example, I would model every single part of a mechanical watch, put the parts together and then wind it up and it would be able to keep track of time. What should I use to do something like this? I'm familiar with Blender so I'm thinking I could just make all of the parts in Blender and then export that parts into a Half Life 2 mod, since that'll take care of real world physics more or less. This seems a little unwieldly though, I'm wondering if there's a better solution? Maybe some engineering programs?
|
# ? Nov 21, 2010 01:27 |
|
PBateman posted:Not sure where exactly to ask this but I want to model a mechanical machine in 3d that'll work under real world physics. For example, I would model every single part of a mechanical watch, put the parts together and then wind it up and it would be able to keep track of time. Personally, I've been looking for the perfect answer for things like this, since being an engineer, I love simulations of gears and whatnot. Half Life 2's physics are surprisingly less than satisfactory when it comes to things like this. I've found the best program is definitely SolidWorks, which takes up a hefty fee of money but if you're serious about this kinda thing it can be invaluable. I think Adobe Inventer can do this but I'm not sure, it may be a bit cheaper too. SolidWorks also has a lot of nice plugins that can help with anything, for example simulating real-world physics, stress on an object after being dropped or hit, even simulating temperature from things like computer parts and simulating airflow and how much it would cool it down.
|
# ? Nov 21, 2010 01:57 |
|
Splat posted:Anyone have any good game-focused network programming articles/books/presentations/talks they'd recommend? What aspects were you trying to figure out? OneEightHundred fucked around with this message at 08:25 on Nov 21, 2010 |
# ? Nov 21, 2010 08:13 |
|
OneEightHundred posted:There isn't a whole lot of discussion on it because it really hasn't changed all that much since the late 90's, aside from the proliferation of lag compensation which basically always follows either "trust the client" or "try performing the action based on where things were at a previous point in time." And there's the unusual method I'm using for the non-MMORPG parts of my game, where it's a mesh of peers with a synchronised timer rather than a server (so there's less lag, and MMORPG-style instant response for your own actions), though that's really a subset of "try performing the action based on where things were at a [not necesarily previous] point in time". Still, it's a different consideration. There's also considerations of whether you have one giant scalable server or some sort of much simpler lobby that spawns mini-servers, which again depends on your goals. Unfortunately I can't recommend any books or articles, because I pretty much hodgepodged it together from random gamasutra articles and manpages. At a lower level, you also need to consider what you're using - DirectPlay, some library like libevent, raw C sockets? If you don't send everything through a server how are you planning to deal with masqueraded networks?
|
# ? Nov 21, 2010 16:14 |
|
I'm trying to get the latest version of XNA (4.0) but the website throws up an error and "can't find the page" when I try, is anyone else getting this? I tried to find a mirror but it was actually only 3.1.
|
# ? Nov 22, 2010 00:09 |
|
BizarroAzrael posted:I'm trying to get the latest version of XNA (4.0) but the website throws up an error and "can't find the page" when I try, is anyone else getting this? I tried to find a mirror but it was actually only 3.1. It's bundled in the Windows Phone 7 SDK now. I don't think they did a standalone packaging of 4.0.
|
# ? Nov 22, 2010 00:27 |
|
BizarroAzrael posted:I'm trying to get the latest version of XNA (4.0) but the website throws up an error and "can't find the page" when I try, is anyone else getting this? I tried to find a mirror but it was actually only 3.1. It was bundled with Win Phone 7 and moved over to the new App Hub website. Some days I could swear that the marketing team for XNA are getting paid off by some competitor to tank the project - even when you know something XNA related exists, you can't find it easily.
|
# ? Nov 22, 2010 01:45 |
|
Harmonica posted:If the language is intuitive I guess that's a plus but the main thing is that, if I spent a year becoming versed in a language I wouldn't regret it at the end because I run into a whole load of limitations. Flashpunk is a set of Classes broadly concerned with managing sprites (including the usual transforms like scale/stretch/adjust alpha), hitboxes, keyboard/mouse input, collision detection, tilemaps, collision grids, etc. and organizing it in the context of "Entities" within a parent "World" object. While games are its primary focus, I could see using it for other bitmap-oriented projects. If you've used Game Maker, you'll see some similarities in organization, you typically just have one level loader Class, and the levels themselves are embedded XML files created with a level editor. Another plus is not having to deal with Game Maker's sometimes lovely IDE (FlashDevelop is a great free IDE if you're on Windows). AS3 is fun. It's not as verbose as Java and you don't have to mess around with as much low-level stuff. Higher level languages always entail a performance hit of course but you can do plenty of 2D in Flash (and the next version of Flash, codename "Molehill", is going to have hardware accelerated 3D). Plus Adobe AIR lets you package .swf as desktop applications and mobile applications -- really, unless I need the extra performance of a lower-level language, it's quickly becoming my favorite platform for a lot of things.
|
# ? Nov 22, 2010 09:34 |
|
I haven't done anything program related in ages, but it's the holidays now so I'm thinking I should start up another project. I was planning on doing a small roguelike to get back on the horse. Normally I just use SFML for my games but can anyone suggest anything that might be better? Also, procedural generation. I did a cursory google search but I don't exactly know what I'm looking for. Can anyone link me something I could read to help me out with it (ie. I know nothing)
|
# ? Nov 22, 2010 12:59 |
|
I found this a super-helpful overview of how to do procedural terrain and dungeon generation. http://properundead.com/2009/03/cave-generator.html h_double fucked around with this message at 15:33 on Nov 22, 2010 |
# ? Nov 22, 2010 15:28 |
|
h_double posted:I found this a super-helpful overview of how to do procedural terrain and dungeon generation. Sweet! Spent most of my weekend trying out different ideas for dungeon generation for a new XNA project but didn't find anything I liked.
|
# ? Nov 22, 2010 15:47 |
|
That was actually pretty useful, plus it linked to an awesome wiki which has heaps for procedural generation. To be honest it looks like a heap more fun than any roguelike idea I've been coming up with.
|
# ? Nov 23, 2010 14:56 |
|
I need to brush up on my java for an upcoming job interview, and decided it would be fun to write a simple card game I've been thinking about (something sort of like Magic: The Gathering, but not really). What's the best way to handle 2D graphical stuff in java? I've only ever really written client apps in swing.
|
# ? Nov 23, 2010 19:35 |
|
Anybody has experience with Unity3d, specifically on Windows 2008? Our devs have been making the game servers using Unity and it seems all Unity applications display a little notification icon in the system tray. It sounds like a really minor thing but in Windows 2008, services cannot do anything on the display so trying to run anything built with Unity as a service (which is a must for stability and ease of maintenance) crashes when trying to add the icon to the system tray. It's driving me crazy, the devs say they cannot find in the code where the icon gets added or how to disable it. The Unity forum is useless. Seems like I'm the only one trying to run Unity apps as services on recent versions of Windows, which baffles me.
|
# ? Nov 23, 2010 19:51 |
|
I've just managed to get collision detection working between OOBBs, using the Separated Axis Theorem. What I'm trying to figure out now is how I can detect which face of the box is doing the colliding in each case. Is there something that I can do during the SAT function to work this out? I hate stuff like this, and always have a hard time visualizing the collisions in my head. So far I can rule out half of the sides using simple logic - if we assume one OOBB is at rest and axis aligned, the relative velocity of the other can rule out one of each pair of parallel sides, depending on whether the x-component is positive or negative, and the same for the y-component. If I could then work out how 'deep' one box is into the other, and divide by the velocity to give the times to get that far on each axis, I think that would tell me whether it entered horizontally or vertically. I just can't seem to work out which point to use, given that the 'moving' box is rotated. Even a better phrase to Google would help.
|
# ? Nov 23, 2010 20:49 |
|
SlightlyMadman posted:I need to brush up on my java for an upcoming job interview, and decided it would be fun to write a simple card game I've been thinking about (something sort of like Magic: The Gathering, but not really). What's the best way to handle 2D graphical stuff in java? I've only ever really written client apps in swing. Slick is really easy to use and great for 2D stuff.
|
# ? Nov 23, 2010 20:49 |
|
SlightlyMadman posted:I need to brush up on my java for an upcoming job interview, and decided it would be fun to write a simple card game I've been thinking about (something sort of like Magic: The Gathering, but not really). What's the best way to handle 2D graphical stuff in java? I've only ever really written client apps in swing. Depending how comfortable you are with java you may be able to accomplish everything you need though just the Graphics2D class that is part of the standard JDK.
|
# ? Nov 23, 2010 20:58 |
|
Surface posted:Depending how comfortable you are with java you may be able to accomplish everything you need though just the Graphics2D class that is part of the standard JDK. Is that still just the AWT or has anything new been added since then? I haven't really written anything in java in about 10 years. The last time I did any direct graphical stuff was a breakout clone I wrote using the AWT around 1997. I remember the technique back then was clipping and double-buffering.
|
# ? Nov 23, 2010 21:06 |
|
SlightlyMadman posted:Is that still just the AWT or has anything new been added since then? I haven't really written anything in java in about 10 years. The last time I did any direct graphical stuff was a breakout clone I wrote using the AWT around 1997. I remember the technique back then was clipping and double-buffering. If you haven't used it in 10 years, then yeah it has changed and become more capable.
|
# ? Nov 23, 2010 22:55 |
|
SlightlyMadman posted:Is that still just the AWT or has anything new been added since then? I haven't really written anything in java in about 10 years. The last time I did any direct graphical stuff was a breakout clone I wrote using the AWT around 1997. I remember the technique back then was clipping and double-buffering. A whitepaper for you, sir: Java Graphics Performance Improvements
|
# ? Nov 23, 2010 23:14 |
|
|
# ? May 13, 2024 02:01 |
|
I did a writeup on how reflection can be useful for building a game editor for your .NET game. Let me know what you think? http://unicorn21.tumblr.com/post/1641105473/a-new-detailed-writeup-on-using-reflection-in-your
|
# ? Nov 24, 2010 00:20 |