Jump to content

  • Log In with Google      Sign In   
  • Create Account

slayemin

Member Since 23 Feb 2001
Offline Last Active Jul 21 2016 07:38 PM

#5301473 you all say oculus rift but why not google glass?

Posted by slayemin on 20 July 2016 - 01:31 AM

I don't know how the hololens screen projection system works. I suspect that they have three very thin layers of glass and each layer contains the red, green and blue channel and they rely on the additive properties of light to render a colored image.

 

Rendering an imagine is the first of many big challenges you'd face if you're going to make your own AR device. Remember that augmented reality is... augmenting reality! That means you have to know a bunch of things about reality before you can augment it! You need to know where things are in reality space, so that means you'll need to have two cameras that are constantly doing image capture, feeding the capture to a processor, which then tries to gather depth information to create a "z-buffer" for the real world. Why do you need this? For occlusion of course. If you have a ball in augmented reality and it rolls behind the couch, your device will have to know that the 3D position of the ball isn't visible anymore because it is being occluded by the couch. But, maybe a portion of the ball is still visible? So you'd have to do some fancy logic against each pixel in the ball mesh to see if its depth buffer test is less than or greater than the real world depth buffer. Then you've also got to map out the shape of the objects in the real world so that you can have collisions with it. Your ball should bounce off of the couch rather than phasing right through it, and in order for that to happen, you have to do some time processing the environment around you in order to generate triangulated collision meshes. 

 

This is computationally expensive stuff, so the "magic" of the hololens is that you're really wearing a stand alone computer on your head which has enough processing power and battery life to do this decently for a reasonable amount of time. It's really quite incredible if you think about how much computational power you'd need to do this, and they've shrunk it down to the size of a head band. You also have a microphone, so you can issue voice commands to the system which is pretty smart at interpreting them (I've never tried that feature).

 

Anyways, trying to compare hololens to oculus rift is like comparing boats vs cars and complaining that your boat can't drive on the highway, or your car doesn't float. They are fundamentally very different...




#5297027 MagicLeap teams up with LucasArts

Posted by slayemin on 17 June 2016 - 03:36 PM

Yeah, the field of view on the hololens was the most disappointing part of the hardware. After trying it out and then looking at the marketing materials, I can tell that most of it is marketing BS. The hololens FOV is about equivalent to holding an 8.5x11 inch sheet of paper 18 inches away from your face. To view an entire scene which is larger than that FOV would require you to be constantly moving your head around to scan the entire scene.

 

The surprising bit about the hololens (which I'd never considered) is that because it's a hologram, the color "black" is transparent, so if you're a keen observer of both the hololens and magic leap videos, you'll notice that they very carefully design their scene objects to not have black or dark colors. It's an interesting design limitation, but by no means does it detract from the coolness of the hardware.

I think the super interesting challenge, which becomes apparent when you watch these AR videos, is whether or not they can handle dynamic background objects. Magic Leap is noticeably absent -- they're projecting their video onto a static background with no moving actors, so they don't have to worry about depth & occlusion rendering. The hololens does a decent job with this, but it's pretty easy to confuse the hardware.

My humble opinion is that the more secretive a company is about their future tech, the less likely it is that it is actually viable. Microsoft has given public demos and done hackathons with hololens, so we can make a pretty clear distinction between what is hype and what is real. Magic leap on the other hand... 100% hype at this point in time. I would be reluctant to trust journalists who are invited to a private demo because they are certainly going to be hand picked and biased to write only favorable input or risk not being invited back for a second viewing. 

Interesting new development though: Magic Leap has purchased a new office building in downtown Seattle, so maybe some of us will be able to get an inside scoop or preview on their tech in the near future.




#5293678 "The Lab" impressions and lessons

Posted by slayemin on 26 May 2016 - 03:43 PM

I just finished playing through a bunch of the demos in "The Lab" produced by Valve. Here are the salient things that stick out:

-The very first environment where you are standing on the top of a mountain on a gorgeous day in Washington (my home state!) is fantastic. I would say it is 90% there in terms of immersion. The textures are nearly perfect. It needs more ambient sounds (wildlife and wind). The teleportation system was almost perfect, though if you stand on the bottom portion of the cliff, you can't easily teleport your way back up the cliff because you don't have line of sight. I think the teleporting and visuals was the most remarkable aspect of this experience.

-Vortex Game: Your hand controller is a space ship and you shoot lasers. pew pew pew! you have to avoid little droids and their projectiles and lasers by moving your hand around. The screen gets chaotic pretty quickly. Somehow, I managed to beat the game on the first try. The interesting take away from this is that it's easy to forget where your hand is located spatially, so you can get shot from behind if you're not careful. The other interesting note is that it is very easy to dodge anything if you put your hand up close to your eyes and just use your eyes and body position to dodge stuff. This spatial positioning advantage is worth considering carefully for game designers.

 

-Slingshot: The voice overs and narrative were the best part of this game demo. Also, it's a lot of fun to catapult projectiles at exploding barrels. This was a near perfect game.

 

-The Lab: Of all the things they did, the one thing that was the most striking was their implementation of the dry erase board. You can grab the eraser and wipe the board, and the eraser position and orientation is line traced from its prior position to the motion controller position, and then placed on the impact point. This is exactly how you need to do all hand interactions with objects in VR. However, I think they messed up a bit with the markers because you can't control what angle you hold the marker at when you go to draw on the board -- they set it to a preset angle rather than using the angle you picked it up.

-Longbow: This is an archery styled tower defense type game. You are the one and only tower and you have to shoot hordes of paper cutout characters by drawing back a bow and shooting arrows at them. Each killed character emits two red balloons for body shots, three for head shots. Shooting balloons restores the 'health' of your gate. Shooting arrows with a bow is really fun. They almost did it perfectly. They've got a little bit of vibration feedback when you pull back the bow, and aiming it feels pretty solid. However, I think the arrow velocities need to be tweaked slightly. The biggest glaring problem with this however, is that my arms got tired very quickly! This became a huge problem, to the point where I had to consciously decide NOT to shoot at balloons because it would tire my arms, and I'd rather reserve my strength for shooting at the invaders. This means I had to start making physical fatigue management an important game play consideration. I tried alternating between putting arrows in my draw string and pulling them back and putting arrows in the draw string and pushing my bow forward. I think the most salient point here is that your VR games shouldn't have repetitive motions which involve players holding their arms out for long periods of time. You'll want to alternate the types of hand motions players use so that the diversity of arm use doesn't fatigue them quickly.

 

-Robot Repair: I've demoed this one many times, and its fun every time, though not very replayable. The interesting thing here is the sense of presence you get. I'd say they pretty much nailed it. You don't want to walk through walls or tables, or robots because they feel so real. Just for fun, I walked through the walls in the game. They let you do that, and it feels weird to clip through them. I think its a slight design problem, but probably not too big of a deal. One other thing I noticed is that when I was examining the holographic portion of the robot, it's holographic lines exactly matched the color of the lines of the 'steam chaperon' boundaries and I accidentally walked into a bookshelf not realizing i hit the borders of my play space. This brings up an interesting point which game designers can consider: play space management. If the player strays too far, you can pause the game and assist the player in returning to the center of the action. I think this might be the only permissible time to intentionally break immersion because player safety is a higher concern.




#5292834 Hololens Development

Posted by slayemin on 22 May 2016 - 01:54 AM

I've had the rare privilege of being invited by Microsoft to participate in the worlds very first holographic hackathon this weekend. I thought I'd share a few quick notes and thoughts so far:

Mind blowing stuff:

-The hololens is able to recognize voice commands. You can say, "Cortana, record this." and it will start taking video feed recordings!

-It has NO wires. The thing is a mobile computer which is strapped to your head. Take a minute to think about that and let it sink in.

-You can use three hand gestures to create user input commands

-You can place holograms on top of tables and on walls. How freakin' cool is that?! This is done by 'spatializing surfaces'.

-The devices uses cameras and infrared lasers to visualize your environment geometry and generates meshes. The advances in computer vision alone are mind blowing.

-The glasses are rendering at 240 frames per second!!! If you thought the 90 FPS for VR was high... lol

 

The unexpected stuff:

-Developing for augmented reality is about three times harder than for virtual reality (especially when it comes to design considerations).

-Augmented reality development is NOT the same as virtual reality development. VR is more focused on immersion and presence, while AR is more about layering extra information over the existing world. I can't stress how important this fundamental difference is between the platform types.

-The field of view was disappointingly small (think of looking at the world through a 15 inch monitor)

-The glasses use additive light to create holograms, so you can't draw dark colors such as black! That's just... invisible!

-The magic of AR is being able to keep a hologram stationary even though the observer is not

-It's designed for indoor use

-It can't handle non-stationary objects very well. Definitely don't take it out to sea.

-Dark surfaces and reflective surfaces will not give good results

-People are finding use cases for AR which not even science fiction writers could have envisioned (such as someone remotely using a tablet to draw in your view port as they see what you see, called 'telepresence')

-It's not going to work as well in cluttered and messy environments because all that junk is going to get turned into triangle meshes.

-A lot of the hardware design decisions were made to preserve the battery life of the device (laser pulse frequency, camera resolutions, screen size, refresh rates, cpu, etc).

 

The disappointing stuff:

-It only works with Windows 10, not Windows 7. (clarification edit: Your developer machine has to be running Win10, though I haven't tested this to be 100% sure.)

-At this point, only Unity3D supports it. No UE4 support yet :(

-Debugging is really hard, if not next to impossible because you deploy out to the device. This slows down dev iteration cycles.

-I need to get a lot more practice with AR if I'm going to be any good at it in the future

 

 

Final thought: The hololens is VERY impressive from the technical standpoint. However, it is also the first generation of hardware for this type of technology. It is the worlds first high quality mass consumer market ready device which is capable of rendering holograms on top of surfaces. I expect that the technological advances will increase rapidly in this area within the next 5 - 10 years. I think there are a lot of very interesting problems which Hololens could solve, but the solutions for it can't just be solutions taken from VR and ported over to AR (see: fundamental difference in objectives).




#5292143 Game Prices on Steam: should there be regulation/guidelines?

Posted by slayemin on 17 May 2016 - 02:19 PM

One thing I've learned from selling stuff: The price of an item is not the value of that item.

 

A hair clip costs $0.30 to make in China. We can then sell it for $10-15 in America. Profit margins may appear to be high, but so are overhead costs (booth fee, transportation, food and lodging, time and energy, etc). Yet, people buy hair clips; It's something they like and want, solves a problem, and makes them feel pretty and good about themselves.

 

Almost a decade ago, I sold Cutco Knives to people. A full set went for about $750-800. "How will I ever convince people to pay that much for knives?!" I wondered. "Isn't that too expensive?" I found out the price doesn't matter.

With every sale, you're playing a juggling act. You've got the PRICE which you're asking for the item, and then the potential customer has the PERCEIVED VALUE of that item. If Price > Perceived value, then no sale. If Price < Perceived Value, then sale! A sale is ALL about the pitch. The art of sales is to increase the perceived value above the asking price.

 

When I did computer services for people, I hated it and wanted to stop providing my service. My strategy was to double my rate to $60/hour so that people say, "That's too expensive, no thanks!". Instead, it backfired. I got more business! Why? Because by charging higher rates, people thought that I was worth what I was charging. The high number increased my perceived value! Whoops! But, it also works in reverse! If you sell an item way below the perceived value, then the perceived value is also lowered!

 

So, what do idiot people do when they suck at sales and want to sell something? They drop their price instead of trying to increase the perceived value of their commodity! But, does it matter to others? I would argue "No! Not at all!". It doesn't have to be a race to the bottom as you guys might fear, it just means you have to create a compelling pitch about the value of your game and why it's worth the money you're asking for. We could build a compelling pitch for most decent games selling for $2 and get people to pay $10. Oh no! Sales volume drops! Okay, suppose the volume of your sales drops by 50%. Instead of making 1,000 sales for $2, you make 500 sales for $10. The 1,000 sales gives you $2,000 but the 500 sales gives you $5,000. Now, do you want sales volume or sales value?? Even if your sales volume dropped to 20%, or 200 sales, you'd still break even. You increase your sales volume through marketing and compelling sales pitches, NOT by dropping your price. That's generally an amateur move. Don't think your game is worth $10? Well, your opinion on the value of your game doesn't really matter. If it helps you sleep better at night, maintain high production values throughout the development of your game! At the same time, stop undervaluing yourself!!!




#5290899 Getting objects within a range (In order, fast)

Posted by slayemin on 09 May 2016 - 05:45 PM

As others have said, a dictionary is the wrong container. The huge glaring issue you will run into is the edge case when two objects are exactly the same distance apart. Then you have a key collision.

 

I'd at least use an array. If all you care about is having objects sorted by distance from the position, the objects can be inserted into the array in sorted order. To save on CPU time, you should also not use the distance itself (which has a square root in the calculation) and instead use distance squared.

As others have said, octrees may be the right call for you here. I wrote an article on octrees a while back which may be helpful.

However, to be truly helpful, you could elaborate more on what problem you're trying to solve. Your current solution might not be the best solution of the available solutions at your disposal :)




#5286518 linestrip flickering

Posted by slayemin on 12 April 2016 - 01:48 PM

If you add in a static mesh and render it, does that also flicker?




#5285894 Community College or Game Development?

Posted by slayemin on 08 April 2016 - 02:17 PM

First off, an introduction!

 

Hello everyone! I've stumbled onto this site recently and decided to join so I'm completely new to this community. :)

 

Just out of curiosity, I wanted to get an idea of what you guys think think of the current situation I find myself in. First off, I want to make games. I've always wanted to make games ever since i was a child. I'm currently 19 and am going to Community College, working a part time job, and developing a game I plan to release on IOS and Android this summer. I've been developing this game whenever I can find the time for the past 2 months and I believe it has a lot of potential. As much as want to keep developing and spending more time on this project, I feel like my education is holding me back. So that leaves me to my big question...

 

Should I leave College after this semester to work on my project full time?

 

I know education is important but wouldn't it be easier to get into this industry with a 100% completed project rather than any kind of degree? This semester in itself has been tough just because I try to make time for my game rather then studying and my grades show that. I've been thinking about this for awhile now and I would definitely appreciate some advice from people currently in the industry.  :P

 

Education doesn't hold you back, a lack of education does. 

 

Use your passion for game development to fuel your studies. Got a boring math class? Figure out how you can use the math material being taught in game development. Got an english class with lots of writing? Figure out how that can help you write better stories and narratives for your games. Got a team project? Use this as training to learn how to work with and communicate with other people -- that is also a skill which gets used every day in game dev. I guarantee when you start taking this approach to education, trying to relate the material you're learning to the material you're passionate about, you'll get passionate about the material you're learning.

 

Also, don't be an idiot. Your priority should be school and studies first, game development second. Study hard and master the material you're being taught. Don't just try to pass a final test and do a brain dump afterwards, try to add the learning to your list of skills. Think of it like leveling up skills in an RPG -- max out those XP gains! Would you rather be a level 10 game developer or a level 2 game developer? Stay in school. Work hard. Stay focused. Work hard. stay motivated. work hard. Keep at it. You'll get there.




#5285892 Is it good practice for game development to learn multiple languages?

Posted by slayemin on 08 April 2016 - 02:02 PM

I think programming itself is language independent. Programming is fundamentally the ability to create a series of logical instructions, often utilizing mathematics.

 

A programming language, much like a spoken language, is a form of expression of the intended thought. Learning a new language can give you new insights into how to express your thoughts, but they don't necessarily make your thoughts better. That only happens through practice with the intent to improve.

 

I am pretty good at the language independent programming stuff. I can pick up another programming language in a few days and become reasonably proficient (excluding joke languages like Malbolge and brainfuck). The thinking process is "I want to do this action ten times, how do I create a for loop or a while loop, or repeat this series of instructions 10 times in this language?" After that, it's just a quick lookup of language syntax and I'm on my way.




#5261242 How hard it is to live from games as indie developer?

Posted by slayemin on 09 November 2015 - 04:58 PM

You're not ready to be a game developer. Especially not an indie game developer. You can try, but I think that at this point, you will fail and that would only discourage you.

You should start by focusing on getting the skills it would take to become employed at a local game company. Then, go work for one for several years. Figure out the work flow for each job. Figure out how the software development life cycle works and where you fit into it. By working in a bigger studio, you can get really good at a specific part of game development (AI programming? Environment art? animation? etc). When you can do a lot of it well, you may be ready to become an indie developer.

One thing that you absolutely MUST be able to do is work well with other people!!! I cannot stress this enough. No wildly successful game is ever made in a vacuum by one person slaving away in a basement for years. You'll have co workers. You'll have business partnerships. You'll have to talk to customers, and marketing people, and everyone under the sun. At your current job, I would take it as an opportunity to develop yourself and focus on getting better at working with other people. Figure it out. How do you communicate most effectively with your coworkers? How can you lead an effort? How do you get people to see your point of view and follow you? How does your existing employer make money? Why does the business work?

If you want to be a game developer, it's going to take a huge life commitment from you. It's going to take years and years of dedicated training and work, and it won't pay a lot. But it'll be fun, and I guess that's why most people want to get into it.




#5247270 Terrain LOD

Posted by slayemin on 17 August 2015 - 04:30 PM

Yeah... some of these ideas are not very good. You only load the terrain once, and that's at level initialization time. If you're pulling the height information from a height map, there's no reason why you can't just set the exact world coordinates for each terrain vertex. If you do this for every frame inside of the vertex shader, your GPU is going to be doing a lot of unnecessary processing work which could just be avoided by placing the XYZ coordinates at load time. Multiply that by every vertex in your terrain, and its going to add up.

 

The same applies to vertex normals. There's no reason why you can't just get this info at load time and store it in a custom vertex object for each terrain vertex. In fact, if you're going to be creating a height map texture for your terrain, you can also create a normal map texture for your terrain.

 

You're making 3D terrain. You don't use quad trees for 3D environments, you use octrees.

 

To avoid the T-junctions, you want to use skirts. The LOD level of a terrain chunk should NOT be influenced by the LOD level of an adjacent terrain chunk. In my terrain system, I had four LOD levels, and I had to be able to skirt lower LOD's to higher LOD's. Check out this wireframe to see what I mean:

Attached File  TerrainLOD.png   1.28MB   10 downloads




#5246540 AOM

Posted by slayemin on 14 August 2015 - 01:13 PM

I mean like programming language and graphics like opengl or what...


Doesn't really matter what programming language or graphics API was used. Whether they used C++, ASM, Java, C#, etc, doesn't matter. They could have made the game in any language. Likewise for the graphics API -- whether they used DirectX or OpenGL, doesn't matter. They figure out how to make the right api calls to do what they need their game to do. I like to think that game development is somewhat implementation agnostic.


#5246537 Questions before I start solo on a basic 3D RTS...

Posted by slayemin on 14 August 2015 - 01:09 PM

Are you trying to build a game or are you trying to build a game engine?

 
Game, primarily. Though there's going to be a lot of overlap either way in terms of what I want to achieve e.g. make a game but hopefully learn a lot of new stuff on the way too by not necessarily doing things the absolute easiest way all the time but mostly I'd just like to get a game project finished for the first time in a long time and feel more confident afterwards about game development and 3D in particular.
 
So either way is good, I guess.

 
No.. either way is not good. Take it from me, I wrote my own game engine and it took over a year to do. I learned a lot about engines, but didn't make a game. I finally changed gears and decided I wanted to build a game and building an engine was a waste of my time because it was never going to be commercial grade quality. I'm just one engineer. Professional quality engines are built with large teams of engineers, so the quality and breadth of their engine is always going to be superior to whatever I build. If I wanted to add a new feature/functionality to my engine, I'd have to code it myself and I could expect to take many more months, and the QA just wasn't going to be there.

I don't know your game dev history or skill set, so I recommend starting really simple for starters and nail down the fundamentals. Make those atari games, then move up as your skill set increases. Use a game engine. Don't write your own.


Is there a particular reason you've decided to use C++ instead of something else, such as C#?

 
 
Mostly because it's what I'm most used to, what I've made some 2D games with, and what I've been using to (not as much or often as I should) study the workings of OpenGL.


Okay, you should definitely check out Unreal Engine 4. It's free and the backend is written in C++, and is still quite accessible to novices.
 

You need to start by building terrain. And to draw terrain, you start by drawing a single triangle in 3D space.

 
Already gone over that in some tutorials and think I have that down fairly reasonably.
 
It's whether or not making a very basic vehicle drive around a 3D terrain in an acceptable way is straightforward enough without getting into time-consuming physics for someone to even bother doing it themselves rather than just go get a library that concerns me most...
i.e. It's nice to delve in and try to learn new things, but when it's something I really have no clue about beyond the purely speculative ideas I've come up with and some basic ideas about how vector mathematics works, I'm afraid I'd wind up spinning my wheels for weeks and lose my motivation. Meanwhile it seems a typical enough thing that there must be plenty of standard solutions around, but finding them is the hard part.
 
TBH, I'd probably just go with Unity if my current computer wasn't very unfortunately one of the few still running Vista, though in the long-run maybe I should just bite the bullet and get a new computer right now..
 
Still, the idea of doing things a little more manually and getting something basic up and running that way appeals to somewhat in and of itself. It's annoying when you keep wondering how certain things are done and you're not sure if perhaps it's easier than it looks, or actually even much harder than it looks...


In my experience, everything *looks* easy, especially after you see how someone solved a problem. What you *don't* see are the hundreds of different attempts someone went through on their way towards finding that elegant solution. Getting terrain into a 'from scratch' game isn't easy. It's going to take a lot of engineering effort. You'll have to decide how you're going to draw the terrain. Then you have to figure out how to reduce triangle counts by using an adaptive LOD system. Then you have to figure out how you want to let people edit the terrain. Then you've got foliage placement. And you have to be able to find where a ray intersects with any point in the terrain. And how to apply textures. And how to make sure things don't fall through it. You'll probably want to break your terrain into "chunks" as well and figure out some way to stream in various chunks. Maybe you'll want to do occlusion testing as well. And lighting and shadows. Ugh. Eventually, you'll say, 'this isn't what I signed up for!' as you realize you aren't making games.
 

In my opinion by gameplay RTS is the second hardest genre

 
Yes, that's a concern. The idea was to hopefully get by with as little AI, for example, as possible. Probably make it mostly about resource collection. There's a lot that can be done before combat is even introduced.
Something like notch's "Breaking the Tower" from Ludum Dare a few years ago even comes to mind; essentially a simplified version of The Settlers with a very definite and short-term goal.
 
Just an experiment to see where it leads and what I can come up with.
 
Even Mega Lo Mania is an example of an RTS that doesn't necessarily fit into the typical Dune II model, where combat is simplistic and it's really more about resource gathering and the choices that are made strategically. It's 2D, granted, but then 3D would just add the matter of collision detection between the landscape and units/buildings which wouldn't change much.
Indeed I've read that during development they originally got the entire gameplay working with just the interface visible alone because the graphics weren't actually important beyond illustrating the action.
 
Maybe Unity is really my best bet... but I just find myself feeling lost and as though beyond the very beginner stage, it's hard to find many particularly structured resources for advancing your practical knowledge of game development.
Granted, it needs to be expected for something like this to be a very hit-and-miss experimental hobby/career, but when you're new to a particular concept it's easy to feel overwhelmed if you have nothing to draw from.
 
It's like even if I could always put 12 hours a day in game development, I often have no idea how best to use my time to get a good grasp on the more practical aspects of more intermediate subjects. The likes of gpwiki.org don't seem to have anything on the terrain collision problem and I haven't yet found anywhere that seems to maintain a large collection of solutions/tutorials for a wide array of common problems beyond the very basic.


Whatever you do, take careful stock of your available resources and scope your game accordingly. The objective is to built a game and actually complete it. If you're one person and can only work on it in the evenings after work and on weekends, then you don't want to build the next GTA or Need for Speed game. A simple, yet polished game is orders of magnitude superior to a complex but unfinished game.


#5244747 Questions before I start solo on a basic 3D RTS...

Posted by slayemin on 05 August 2015 - 06:07 PM

Uh... well... first question:

Are you trying to build a game or are you trying to build a game engine?

 

I'll assume you're going to build an engine. I'm also going to assume that it's not going to be of professional quality since it sounds like you're doing this to learn.

Is there a particular reason you've decided to use C++ instead of something else, such as C#? You can build an engine faster in C# without any of the super low level BS which C++ and the low level API's throws at you.

 

If you're going to be building a vehicle game from scratch, forget about vehicle physics right now. You need to start by building terrain. And to draw terrain, you start by drawing a single triangle in 3D space. Expect this to take up to a month to accomplish, depending on your skill levels.

 

You may be able to get to a vehicle in 2-3 months, and it'll be rough.




#5244567 Octrees with multiple-sized objects

Posted by slayemin on 04 August 2015 - 04:54 PM

:) It's gratifying to see people finding use from my article on Octrees

 

So, a few quick thoughts I had:
-Octrees are a decent solution for getting away from a O(N^2) collision search and go towards a log base 8 search. You'll still run into some unusual use cases where you have to run a lot of search queries if you don't tailor the system to fit your needs.

-Let your performance metrics tell you if you've actually got a performance issue before trying to find an optimization. Does your planet collision check actually cause a slow down?

-If you use the octree, the planet would certainly be a lot higher up in the tree and have to run a lot of checks against leaf nodes. If you've found that this leads to a performance problem, you can try to reduce the number of collision checks by putting objects into various categories (static objects, movable objects, objects which don't have collision, etc). 

-There's no reason you can't use more than one octree. One tree might turn into your "scene graph" which contains a list of every object the camera view frustum can see and should render. Another tree can contain just the objects which need to be tested for collision. Would this take up more memory and CPU time? Yes probably... I've never tried this approach, so it may not be a good idea. You could probably get the same effect by just categorizing your objects. Here's probably the approach I'd take:

-It might be interesting to maintain a meta data list of object types in each octree and feed it up the tree to its parent, so if you have an object of type B and it can only collide with other objects of type B, and you know that a child tree only contains objects of type A, you don't need to go down that tree to test for collisions. If you want to go crazy and worry about memory footprints, you can contain these object types in a single integer value and use bit fields. This would probably be a pretty elegant solution and lead to a very quick check for type containment.






PARTNERS