Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

177 Neutral

About clickalot

  • Rank
  1. http://mynameismjp.wordpress.com/2009/03/10/reconstructing-position-from-depth/
  2. clickalot

    Psychology and game design

    You need to believe in that sort of holy grail in order to go search for it ). I will start my studies with some courses from here: http://ocw.mit.edu/courses/#brain-and-cognitive-sciences
  3. clickalot

    Psychology and game design

    As I said I'm not looking for a recipe.I am aware there isn't one because of two things because if it somehow existed then everyone would be doing it. I'm just a bit confused on where to start reading about these things, and very much afraid on loosing time reading irrelevant things. I am trying to make a game in my free time because I want to explore some ideas, so i need to optimize everything. I am aware that I can do a google search about this, witch I did, but I found unsatisfactory results in tings related to psychology and games. The answer to what I am trying to find out more about seems to be more in the psychology field rather than in game development. Of course If i find a paper that says that x stimulates fear, I will try to see if it works in a game and how it can be improved upon:). @ Tom Well I was kind of optimistically hoping for a shortcut or some sort of tutorial (like the ones you find for programming subjects) Nevertheless it seems that I need to explore this path on my own.If I find things that I consider relevant I will share them . Thanks for all your replies.
  4. clickalot

    Psychology and game design

    Thanks for your responses. Well I'm not really looking for mathematical formulas or as well defined things, nor do I search for a recipe of triggering emotions in players, but somehow I am hoping that there are some studies about emotional responses to certain stimuli. For example let's say that I was a scientist and I wanted to study fear. I would pickup a series of photographs that are considered "scary", get 1000 subjects, and then make them rate each one's level of scariness. In the same time I would measure their response to the stimuli checking their heart rate, etc. Then I would take another 1000 subjects and measure their response while I would show them the same pictures with the lights off. Another measure could be by associating some creepy music with the pictures and rate their response, etc. I would conclude that pictures depicting humanoid faces with exagerated features generate the most powerful responses while viewed with the lights off and preceded by certain sound types. Also It would be interesting to compare what the machines measured about their fear level (heart rate, etc.) and compare with what they thought was their fear level. This is more or less the type of study that I am hoping to find at some point. It would be especially interesting to have a study that can check if no matter the culture the same things are scaring us in the same way or not.
  5. As a disclaimer, I am work as a programmer in the game industry so I might have missed or misunderstood some things concerning game design. I've read some papers on game design and psychology but they seem unsatisfactory. Before I will proceed with my questions and issues I shall list the articles here: http://www.gamasutra..._of_.php?page=1 http://www.gamasutra...ign.php?print=1 http://www.gamasutra...php?story=23724 Valve has some interesting papers even if their focus is more on playtesting rather than the design process before the playtest. http://www.valvesoft...Playtesting.pdf http://www.valvesoft...ck-Ambinder.pdf The gamasutra articles seem a too shallow in my opinion. They don't go into detail and I feel that they just scratched the surface a bit and established some "rules" and "tips" by oversimplifying everything. Most of the time I feel that the way they use to model a player is a super simplistic state-machine. In reality we are really complex creatures, and even if you can trick us into certain things because of some hard-wired connections in our brains caused by evolution I feel that the players should be treated with more respect and research in these areas should explore further than skinner box examples or models.(something more complex than what zynga or the casinos are doing ). For example I am interested right now in how can I raise certain feelings in my player. Let's say I want him to feel vulnerable and afraid. But I don't want him just to feel the fear of dying and starting over again, I want him to be afraid on a deeper level. Or If I want him to have a feeling of hope how can I do that without using some cheesy flowers blossoming and trees growing and other similar childish things. I want to do it in a more subtle way. Are there resources where I can learn about psychology and the ways humans tend to respond to visual and audio stimuli? I think that games could go a level further in exploring these areas because unlike movies, the person interacts directly with the medium and is not only a receiver, so if you have any studies that involve games it would be even better . Thanks in advance for at least reading this huge post .
  6. clickalot

    Render just visible parts ?

    Clipping occurs in DirectX after the view transform. So the World*View will still be computed for all the vertices in the scene, even if they will eventually be clipped. In order to further optimize this you need some sort of spatial partitioning. Since you have a 2D game here, a simple distance function from the camera could be used to reject objects from being rendered. If you want you could use a grid for to split your scene into multiple areas and only render objects inside the viewable grid locations. This assumes that each grid cell is composed out of multiple objects.
  7. I think that iterating on it is the best possible thing you could actually do it. For my home project I try to be as scientific as possible with removing/adding or changing mechanics in my game. Everything must be playtested ideally by guys who did not see the previous versions, I usually try to keep a close tracking of their in-game actions and behavior by filming them and taking notes, and take my decisions based on that. Of course I will be biased towards a idea or another, but I try as much as possible not to take any decision regarding the mechanics design without showing it to other people. On other parts of design I tend to start from an abstract idea ( for example making the player think about a certain subject, or making him feel a certain feeling ) and then shape that idea in something more and more detailed, with a storyline, some settings, etc. I usually bounce these ideas back and forward with friends. Once these have been thought over and over again I will go deeper and try to discover an even more details about the game. As a disclaimer I am a programmer so I might not have enough knowledge on the subject as people that are trained in this field .
  8. Instead of listing all the popular languages in a post, I will try to make it a bit easy on you . Well the only thing future-proof are algorithms, or computer graphics theory. If you understand algorithms you are set to go. Most languages can be learned in a relatively short amount of time. It is just a language after all and there are many similarities between them. So If you know let's say C# you can learn Java super easy, or if you know c++, learning C# will just take a few weeks. You won't understand all it's fine details, but you can get your algorithm to work relatively easy on any of them. I don't know what experience you have but I can direct you to Cormen's book Introduction to algorithms or any other good theory book depending on the field that you want to study.
  9. clickalot

    Overusing smart pointers?

    The only issue with over-using smart pointers is that they will make you feel safe while coding. That feeling of safety might lead to a messy flow in your game. Using normal pointers forces you to have a clean flow in your code, a flow of initialization, the ownership for each object is clearly defined, etc. I've seen this a lot in school projects (university), and to some degree even in some engines used to make games . You can end up with some object shared between two or three others, with no clearly defined owner and this might give you a lot of headaches.
  10. this is exactly what the 20 is suppose to be for, it's just a hard coded number at the moment, which is probably why it's confusing, what is your suggestion for scaling back to the 2.5D scene?, my originally thinking was taking the half width/height would do it, but it doesn't sound like it. [/quote] Ok so instead of multiplying by 20, it would make more sense to multiply by BoxWidth/OldBoxWidth. OldBoxWidth = width of box (in pixels) enclosing the object when the 3 textures are saved. NewBoxWidth = width (in pixels) of the box enclosing your object during the game rendering. So the whole pipeline would be like this. Instead of saving positions you save Position / MaxPosition. So you don't have pos.xyz normalized, instead you map them from [-ObjectSpacePosition...ObjectSpacePosition]->[-1..1]. You can also pack them to [0-1] if you desire, but i don't see much gain in this. ObjectSpacePosition's is defined in the interval [-MaxPos...MaxPos]. In the game you reconstruct this position back, multiplying in.xyz to MaxPos. (and unpacking them from [0-1] to [-1..1] if needed). Ok so the only thing that remains to be done is scaling it, that can be done by the procedure that I described above. Btw OldBoxWidth is in pixels and represents let's say the texture width, while NewBoxWidth represents the item's box in-game dimension in pixels. These have nothing to do with MaxPos. MaxPos is in some abstract units, def. not pixels. Your scaling, even when you added the [-16...16] interval, will be 20 times bigger , while you actually want a smaller object in the game.
  11. Maybe I am not paying enough attention, but I still don't get the need to multiply by 20. First of all you store the position like this: o_PosBuffer = vec4((normalize(o_Vertex.xyz)+1.0f)*0.5f, length(o_Vertex.xyz)); So basically you have .xyz a normalized direction vector and some length that may be clamped to 1 depending on what format you're using. I don't understand the need to multiply this by the arbitrary value of 20. in order to get the position in object space back. I call it arbitrary since that 20 was not used to encode it in the first place. You just get position vectors that have a correct orientation, but all will have the length of 20 that will be then transformed with the view-world position. This is why I believe the sphere example seems correct, but it's not. You can try taking a cube and test with that. One potential reason is that I believe that you want to scale it correctly for the 2.5D scene, but the *20.0f doesn't do that.
  12. I find it kind of strange that it's working even for the sphere since the object's normal map and position texture seems to be the same. I'll just suppose that you just pasted the wrong picture. vec4 o_Vertex = ViewModel*vec4((o_HeightMap.rgb*2.0f-1.0f)*20.0f*(o_HeightMap.a),1.0f); Shouldn't it be * o_HeightMap.a instead of *20 since that is where you stored the length? I don't understand why enclosing it in a box would help. You can just save the positions be ok. Just storing the depth is another optimization, but first you should get it to work by saving positions and then you can try the thing mentioned in that article. p.s. szecs's advice about not normalizing the position is valid. Since you store the length in alpha I assume that you can store the x, y, z in the rgb channels without normalizing them, thus not needing the alpha-channel anymore. (saving memory and avoiding the operation of multiplying the normalized vector with the length when rendering the lights)
  13. So from what I see in the position map you have X=Red, Y = Green, Z = Blue, Because you take the position after the view transform, you have no Z. This is why there is no blue in your picture). That doesn't really help, because the way you take the position now it basically just tells us this: ...................................... - Y ......................................... ^........................ [color=#FF0000]Red ( the negative Y will just make the green component 0) ......................................... |[color=#ff0000]................................. ..........................................|[color=#ff0000]................................. -X -------------------------- Zero------------------> +X [color=#008000]..........................................| [color=#008000].................[color=#008000]Green............ |..............................[color=#FFD700]Yellow from the positive Red+Green ( you can try this in paint) [color=#008000]......................................... |........................................ [color=#008000]..........................................|........................................... [color=#008000].......................................+ Y [/quote] I think it would be more useful to have your position taken from the local space of the model.(don't multiply with the world and view mtx). This way when you compute the light amount you have more or less a position that can be used to correctly determine the light intensity at a certain point in your model. An alternative would be to save only the depth and reconstruct the position from it. Here is the process in more detail. http://mynameismjp.wordpress.com/2009/03/10/reconstructing-position-from-depth/
  14. clickalot

    Game Idea, FPS Steampunk multiplayer

    Your idea sounds nice, but most ideas do sound nice. The execution is almost all that matters in the end . Concerning the technical side of things: Battlefield had somewhat a big development team, but not all of them were working on the network side of things . You can achieve something like what you want with a decently big enough map and good map design, and game mode design. The biggest problem in multiplayer games with tons of people (let's say 64) is synchronizing everything between all the players. The trick in doing these kind of multiplayer games is making sure a small amount of players are relevant one to another at any given point. Let's say that from the 64 on the map, you rarely see 16 at a time. So the rest don't need to be synchronized to you, because you don't care what their position is or what they are doing at a certain time. They will become relevant to only if they shoot you or get in a certain range, or satisfy some other conditions. Beyond this main point you also need to hide the lag between players, having a nice prioritization system ,etc. You could look into commercial engines(Raknet had some interesting api, I did not work with it directly, but rumors say it's nice), Unreal Engine has some surprisingly nice network capabilities, not as fancy as the ones from valve where they rewind time on the server but cool nonetheless. Or you can get a coder to work day and night on this . As a positive and non depressing example I'll give you Mount and Blade. They have servers with up to a hundred players(sometimes more), with a quite high density of players in a map (unlike battlefield 3 where your team of 32 is spread among a huge map), and the multiplayer feels pretty nice. Keep in mind when comparing to valve's or Bf3's multiplayer or that Mount and Blade was made by a ridiculously small team of people.
  15. clickalot

    Right to Left Platformer

    Maybe there is also a cultural factor in our love to left->right. Since we read from left to right, doing certain things (like playing a platformer) in the other direction seems a bit unnatural.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!