Jump to content
  • Advertisement

tim_shea

Member
  • Content count

    41
  • Joined

  • Last visited

Everything posted by tim_shea

  1. tim_shea

    Quantifying insanity.

    I think we're sort of talking past each other at this point. In any case, I love survival games and psychology so I look forward to playing whatever you come up with. Best of luck!
  2. tim_shea

    Quantifying insanity.

      So, this is not strictly true. In fact, there are entire genres built around accounting for exactly that. To be sure, game design based on player immersion is much more artistic and subjective than game design based on systems, but it is definitely not out of reach.     Player immersion is not something that the player chooses to engage in. They have to set the conditions for it, but you as the developer have to actually create it, if that's the route you want to take. And keep in mind, it may not be the best option. Immersion and entertainment are orthogonal attributes of game design. Particularly in a sandbox or procedural game, it could be incredibly difficult to construct an immersive experience, and even if you did it might not be as entertaining as a more rule-driven experience.
  3. You should definitely give some thought to dependency inversion. Circular dependencies can very easily become problematic in the future. Unless there is some reason not to abstract out an interface, it would benefit you to do so.
  4. tim_shea

    Quantifying insanity.

    It's fairly clear to me that you've put a lot more thought and [research? personal experience?] into the fine points of this mechanic than the average forum reader, so I'm not sure if you're going to gain much defending your ideas against the superficial criticisms we can provide.   Nevertheless, here is my superficial criticism: it seems like you haven't made a clear distinction between the "real" mental health of the avatar and the perceived mental health of the player.   If I have a lot of concrete statistics to manage and specific rules and interactions to consider, along the lines of a pen and paper rpg, then I expect to be loosely bound to my avatar. I get plenty of information (more than he would reasonably have access to, e.g. his precise level of healthiness) but my means of acting on that information are mediated by the rules of the game and his current state. A crazy avatar, in this sort of game, might do things I don't expect.   On the other hand, if I am forced to perceive things exactly as the avatar does, then I would expect to be more tightly bound to my avatar (there should be relatively few cases where I don't have control) but at the cost of my unrealistic introspection with respect to statistics. In this sort of game, I would not expect my avatar to go crazy, so much as the game to try to convince me that I was crazy.   Both could be enjoyable games. In the past, I've played survival games that hewed towards either side (not with respect to mental health, just in general), and enjoyed them. But a sort of middle ground option might easily get confusing.
  5. tim_shea

    My world driven game idea

    In my game engine architecture course last year, about 3/4 of the teams were unable to get even two-player networked games to work, whereas almost everybody was able to implement the full scene graph structure, physics, spatial sound, animations, etc.   Networking makes every aspect of your game more complicated.   Minecraft was not multiplayer in the early alpha. It was only later (as the game became a sensation and raised many millions of dollars) that a lot of the features you see today were implemented. It's also just generally not a great model for game dev, because it was such an unusual case. Is it possible you will pull off what Notch did? Yes. Is it likely? Definitely not. Much better to set your sights on something firmly achievable and then branch out.   Edit: On a different note, I like the concept. I would say prototype it and see which elements are fun and which aren't.
  6. Regarding the issue of player attrition, I think it makes sense to have mechanics that encourage loyalty and discourage disloyalty, but only to an extent. Keep in mind, some of the most disastrous losses and most spectacular victories in human history have been due to political rather than tactical maneuvering. Also, desertion in battle and uncoordinated retreats are primary factors in reducing the total number of casualties. Very rarely has a real battle resulted in 100% casualties, because people will naturally leave when they realize they have no hope for victory. This also introduces very important strategic options. Managing your own troops morale and the enemy's morale can be as important as managing their rations or ammunition. Rather than introduce an artificial mechanic for this, you could let human player's real emotions dictate the morale of their army.
  7. Wings by Daedalus What is it? An artificial intelligence library for use in games. A set of tools to help you incorporate high quality intelligent behavior into your games without the headaches. Who are we? A team of five Computer Science majors at CSU Sacramento sponsored by Josh Klint of Leadwerks Software and advised by Dr. Ahmed Salem, Associate Professor at CSUS. What do we want? Game developers (that's you!) to share your experiences and priorities with respect to gameplay and artificial intelligence. Your feedback will help us shape the Wings library. Please take our six question survey: http://www.surveymonkey.com/s/MTFKQ9G For more information about the team and the project: http://athena.ecs.csus.edu/~daedalus/ If you have any questions or concerns prior to taking the survey, please feel free to post them here.
  8. tim_shea

    Monster thinking in an action rpg

    I don't think I agree with these sentiments, but the advice is good. Neural networks and genetic algorithms are among the most promising subjects in AI research. They are the only techniques with a good likelihood of producing real emergent behavior or machine learning. However, most implementations *are* unpredictable, training intensive, and unlikely to provide a whole lot of benefit in a typical rpg. I would say if you want to look at something more advanced than finite state machines or scripts, the most fertile ground would be production systems. These are kind of (not really) like a large collection of interrelated if-then-else statements. The idea is to build up a collection of productions (sometimes called rules) that represent all of the 'mental' considerations of the AI. In my opinion, this type of representation is much more authentic than a real-time plastic method like a GA or NN. Consider, during the course of a battle, it is pretty unlikely that a monster will be learning and incorporating a whole lot. It seems a bit more realistic to say that a monster or enemy has a lot of knowledge and experience (in the form of productions) that it brings into the battle, but that set of knowledge doesn't necessarily change a whole lot.
  9. One thing to keep in mind is that everything doesn't have to be an object. If some collection of functions and data is related, then it's often useful to group them together, but you should really consider whether it makes sense to create one. If clients of the gui management code will likely only use one or two methods (register, unregister?) then you don't have to wrap that functionality into an object to be instantiated, especially if doing so would require you to provide static functions anyway. On the other hand, if you really do think there are enough operations and data to justify defining an object, and it does in fact make sense to instantiate one, then by avoiding singletons you actually gain a lot of flexibility (one lightweight gui manager handles the hud, another for the pause screen menus). I think if you embrace the fact that a single program can incorporate multiple paradigms, you should see the need for singletons decline.
  10. tim_shea

    Monster thinking in an action rpg

    I think all the advice you've received so far is great, but just to give an alternative idea. What if you approached the problem not as a perfectly rational actor weighing the costs and benefits of perfectly measured variables, but instead as a monster trying to decide what the hell to do with this crazy hero. Putting myself in the place of said monster, I can think of a couple of likely cognitive strategies: a) I am an instinctual sort of creature, like an alligator or maybe an ogre, and in the clutch I tend to rely upon particular strategies. These strategies will most likely be widely applicable and crudely effective (having gotten me this far in life) but due to their generality may be exploitable. So as an alligator if I smell a hero crossing my swamp I likely try and take a bite out of him. As an Ogre, I put my club to use. There is probably not going to be much decision-making involved for an instinctual sort of creature. b) I am a sneaky, crafty, or cunning sort of monster like a goblin shaman or a street urchin. I am not very intelligent, but I may come up with some unexpected way to approach a confrontation. In my view, as the cunning monster I'm not so much comparing a bunch of options and deciding on the cleverest one, rather I'm just more likely to try something unorthodox rather than always rely on a standard approach. So, again I don't need complex decision making, what I really need is some mechanism for simulating creativity (a simple solution might be a lot of prescripted behaviors, that are randomly selected from so as to appear emergent). The key to my cleverness as a goblin shaman isn't that I pick the best possible move, rather, that I tend to try unexpected things, potentially gaining an advantage. c) I am a normal, competent, human-equivalent intelligent being. This one is pretty complex, because there is such a range of cognitive behavior in humans, let alone fantasy races. However, I would say some good approximations are certainly possible. For one thing, depending on how your system works and whether it can handle this, you might consider the fact that the most important (and often the only) decision that a typical soldier makes in a brief conflict is whether to fight, and a lot of the time only one side makes even that decision. So, an orc hunter might put some effort into sizing up his opponent and deciding whether he feels lucky, but once he's charged in, he probably isn't spending a lot of time deciding who to swing his axe at. I would say, there are a few decisions (whether to fight, whether to run, maybe others?) that could benefit from a weighted statistical model *or* a fuzzy approach, but honestly for these kinds of monsters the choice of which action to take should probably be really simple. d) I am a highly intelligent being, such as a wizard, a battlefield commander, an elder dragon, or whatever. For this category, I am somewhat divided. Traditionally, games tend to assign the least flexible, and least intelligent cognitive simulations (almost always a simple, scripted pattern) to ostensibly the most intelligent type of enemy. I understand why, as games have to maintain a certain level of fun, and often have to follow certain conventions to do so, but I still dislike it. If I am a seasoned, veteran troop commander, I am not entering a battle without a plan that stands a high chance of success (unless I'm in a desert badum-bum-tsh!). So, for these kinds of monsters, I could see employing a fairly elaborate cognitive model, perhaps even a perfectly rational algorithmic model. But, if you plan on keeping with RPG tradition, then actually you don't even need that for these guys, just some state machines and scripts will do it. I hope this helps. I'm not disagreeing with anything else said, just offering my take on how certain monsters could think in battle. I probably over-simplified the human-types, because there is really a whole lot that you could do there. Good luck.
  11. tim_shea

    So what's your RPG story?

    Yes. I was like 13 and not much into theme or interpretive meaning at the time. Since you mention it, I guess the whole sin catastrophe could be allegorical. I think I was distracted by the personal stories (fatalism, duty, etc.) and didn't really even consider the story of the world as anything but backdrop. I suppose that could be a lesson, that if you want to include potentially divisive or advanced ideas into a game, perhaps its best to cover them with just enough gloss that they can be ignored by the uninterested. Then again, perhaps if the story had been just a bit plainer, it would have really challenged me to consider its meaning. :S
  12. tim_shea

    So what's your RPG story?

    Irh9, it sounds really interesting. It would be refreshing and hopefully rewarding to play a game where I got the feeling that the designer wasn't just a D&D nerd (not that that's a bad thing to be) but actually took an interest in and had opinions about the larger world. I like to think that a few bioware games (Dragon Age, KOTOR, etc) were really reaching for this kind of reflection, but when I try and identify specific examples it gets too murky to be sure. I think too many designers want to make their game artistic, without necessarily realizing that the best art expresses ideas that are political, philosophical, theological, etc. If you can come up with story that has actual themes and artistic intent, and then impose a gameplay mechanic that doesn't destroy them, more power to you. I'll pay for it (maybe, probably ). Thanks for sharing.
  13. It seems like the consensus is that, yes, it certainly can be done, though of course it'll have its challenges. As a counterpoint though, you could just as easily pick out, say one or two core features, build up a prototype with those features, and then slowly add content that way. So, you don't have to chunk development spatially (in terms of levels), you can break it down in whatever way will be most convenient given your development plan (e.g. if you expect it to take only a few weeks to build the game world, but many months to build the graphics engine, then you might split up rendering components instead).
  14. Well, by now I know that you are pretty attached to a lot of the jRPG conventions, but I guess I'd have to ask whether the game would be 3d or 2d? Personally, I really, really enjoy wandering in open wilderness. The caveat is that I've really never found 2d graphics compelling enough to drive this, because they are just too far from reality. I think with decent graphics though, even empty wilderness can be fun to explore just for the sake of seeing things. In a more strictly traditional jRPG though, the only thing I can remember really driving me to poke into every nook and cranny was treasure hunting. I really don't care anymore whether I find every single hidden room, I'm much more interested in experiencing the story contiguously, but when I was young I remember spending hours and hours searching every single square of grass, and every wall in every dungeon. Action mechanics can be fun, but in a genre where everything is statistically driven, it's pretty out of place.
  15. Nope. In fact, most of the time if a person is causing trouble for their teammates, doing stupid things, or intentionally not contributing it's exactly because they simply don't care very much what the outcome is. I think this is exactly the wrong idea. Players will mess around more the less consequence and interest the game maintains. A fairly slow paced game like WoW is not going to keep a player's attention all the time, so you'll inevitably have people playing games inside the game. The highly repetitive nature of WoW doesn't help. I would guess that it applies less so to Left 4 Dead, but it's much the same thing. L4D was awesome, scary, and intense the first (and perhaps second) play through each level, but by the time you've played each level 5 or 6 times, they get a bit mundane (personally, I think this is because of the linearity). Cue the griefers. My suggestion would be, if you're really worried about people not taking your game seriously, eliminate unnecessary repetition, and produce more exciting content. When a player is having a great time, their much less likely to try and ruin someone else's.
  16. tim_shea

    So what's your RPG story?

    I read your comment, thought, "man, this guy should read that article about the player character" then clicked the link. Apparently, Tadhg Kelly has a lot of ideas about game characters! I've thought about that before. I think it's especially important for non-linear games and games where you can customize your character. It just doesn't make sense in those cases to try and force some designer's story line on the player's avatar. I think this kind of storytelling could work really well in an open-world zombie game, where you can sort of briefly look in on, or take part in, the lives of apocalypse survivors, but the story of your character is really that of the people you meet.
  17. n00b0dy, your approaches are not a dichotomy. In fact probably all elements of game design (as all elements of life) are a continuum. For the sake of argument, let's say approaches A and B are both bad as you claim, well what about all of the possibilities in between? That is, after all, why we call it game balancing, because its a matter of finding the most entertaining balance between unpleasant extremes. Also, WoW is not particularly relevant to balancing a turn based retro rpg. I know we've already introduced plenty of outside examples to support the discussion, but there are limits to how far you can take an example. It might be useful to look at why the designers made the pacing decisions they did, but it would probably be fruitless to try and port them into this model. However, I actually think your example of a petrify (or potentially death spell, or other, really negative things) effect which would increment over time, forcing the player to avoid engaging the Medusa until he was ready to fully commit, that might be fun. It's maybe not a good basis for the basic attrition system in a game, but in a dungeon or two I think it has a lot of promise.
  18. tim_shea

    So what's your RPG story?

    I haven't seen it, but mostly this was influenced by The Road, only without the kid Edit: I mean, most directly influenced, not mostly influenced, as of course, there are dozens of other stories with similar themes.
  19. tim_shea

    Fathoming the Unfathomable

    I'm going to focus on Limbo, because you brought it up, and because it's such a fantastic game. I think what the designers really did perfectly was to get out of the way of their game. The intentionally minimal graphics let your imagination run wild (seriously, tell me you didn't get a grossed out chill-down-the-spine the first time the little head worm got you) and your imagination is going to be a better renderer than a computer for the foreseeable future. This is why books have not been supplanted by television, nor comics by cartoons. Now, I'm not suggesting that you do away with all graphics, but I think if you look for places where you know technology won't match your vision (or your player's imagination) then just don't try. Use suggestion of detail, make things indistinct (within reason), rely on fewer, but more significant, colors, etc. Also, you keep referring to ambiance, which is good, but keep in mind that in real life we don't notice every tiny thing (and you wouldn't be able to capture it anyway), really it's about the big, important things being good, and a few key details being right. So, make the grass that perfect, grassy green. Or, instead of a musical score, give me a realistic crunch of gravel. Basically, use the technology to aid the player's imagination rather than trying to override it. To me, that is really what made Limbo successful. I didn't get immersed in the game because I was emotionally involved, I was able to get emotionally involved because I was immersed. 'Uncanny valley' is actually only a dip in the perceived realism of a construct, as it approaches human-like. Perceived realism decreases, as we notice and magnify tiny imperfections and flaws in the construct, but as modern CG shows, it increases again on the other side. A good artist with modern tools can make it to the other side of the valley. Thus, it wouldn't be impossible to make a realistic and immersive game, just impossible with current technology and less than millions of dollars.
  20. tim_shea

    So what's your RPG story?

    And that puts a most interesting spin on sunandshadow's comment about mostly good people, with conflicting philosophies. The early Israelites, in a world of violence and depravity, were violent and depraved, but rationalized it with an in-group moral philosophy. Its fascinating, really, and I think makes fertile ground for a game plot (thus, you can both win! it will be a dark, violent, but realistic, and uplifting, and probably confusing, story). So, for awhile I've wanted to make an entirely story driven, single character rpg (in the old fashioned sense of playing a role). The story is entirely derivative (because, I think there are a lot of good themes that have never been properly explored in games, and it makes sense to try those, as a stepping stone to more complex and original work), but would hopefully be engaging or thought provoking: You are on a journey. It's not clear where you're going, but you've been walking for a long time and you'll be walking for a long time yet. There is a haze far overhead that makes the sun look enormous, but does nothing to lessen its burn on your neck and arms. As the miles stretch on, your feet ache and your belly growls, but you don't stop walking. Desiccated grass and leaves crunch underfoot, methodically marking time. You occasionally pass dry, dying tress, leaning back towards the dirt that pushed them up, but mostly the landscape is bright, and empty... Eventually you reach a river, but it's dry. A few boats lay sideways on the rocky bed. Bleached scum coats the rocks, but there is nothing green or living in sight... After a long time, you will come to the city, and you will find her dying, her broad avenues crumbling, her powerful skyscrapers collapsing. She will not be empty like the other places. What I want is basically a reverse-RPG, in which the character is slowly dying in a dying world. The story is sort of a pilgrimage, in that the character is seeking some sort of understanding, except that there may not be any to find. Feel free to share any thoughts. One concern that I've considered is that a game that focuses entirely on the minutiae of a dying man's journey through a dead environment is likely to be boring, but I'm hoping it will be a new kind of boring.
  21. tim_shea

    My Dream Game

    I haven't played Spore (so take my opinion with a grain of salt) but from what I've read, the in depth creature creator stuff really derailed the game aspects of it. Basically, making monsters and playing with evolution and biology is cool and fun, but doesn't necessarily mesh well with the idea of civilization sims. This really shouldn't be surprising though, as brilliant evolutionary biologists are only just able to coherently explain biological development, and how various factors might influence it, and even then only in somewhat simple cases. On the other hand, we have so little sample data with which to study civilizations, that history is more of a liberal art than a science. Combining these two tremendously complex fields together in a way that is fun and even remotely accurate seems unlikely. Not to mention, smaller scope (remember that a civilization sim is already among the broadest types of games) is almost universally going to lead to better results for an independent developer.
  22. tim_shea

    Programming Techniques

    Sorry if it wasn't clear, my advice was given in the spirit of "if you aren't sure how to acquire the taste for function decomposition, then..." and not as a general practice. I believe there are few, if any, situations where a long, complex process with multiple levels of detail should be all thrown into a single function, but it takes some forced practice to determine when a function will benefit from a split. So, to be clear, I am not saying that all functions must be a particular length, or that they should be split arbitrarily if no obvious distinction arises. What I am saying is that obvious distinctions are often present, and there are advantages to capitalizing on them. Edit: Also, I don't believe "you need to" do anything with regards to styling in code, rather, some styles promote code reuse, some promote readability, some promote maintainability, etc. In my experience, function decomposition is a very beneficial style, and to only employ it only when I am compelled would be to forego its benefits altogether.
  23. tim_shea

    Programming Techniques

    Hmm, the code formatting didn't work, so it looks like I've made an unmitigated mess of your code. This is troubling. Edit: Fixed
  24. tim_shea

    Programming Techniques

    Aesthetic criticism is generally discouraged, because it is so subjective. Thus, I'm not telling Spirrwell "your functions are too long", just that "I've generally found that shorter functions make for more readable code, and readability is really nice." As an example (I hope you don't mind, I'll remove if you do): [source lang="cpp"]unsigned char GiveOne () { if (index >= packetLength) { throw failure("ReceiveBuffer::Give -- out of data"); } unsigned char byte = buf[index]; ++index; return byte; }[/source] This function is extremely readable, all statements are at the same level of abstraction, and a developer who knows little to nothing about your system can immediately understand the logic. On the other hand: [source lang="cpp"] sock_type connect2CMW (cmwa_config_data const& configData) { sock_type sockfd = cmw::getSocket(SOCK_STREAM); #if 0 sockaddr_in SockAddr; SockAddr.sin_family = AF_INET; SockAddr.sin_port = htons(56791); SockAddr.sin_addr.s_addr = inet_addr("10.0.0.184"); if (::connect(sockfd, (sockaddr*)(&SockAddr), sizeof(SockAddr)) == 0) { return sockfd; } #else for (;;) { #ifdef CMW_WINDOWS int const basePort = 56791; #else int const basePort = 56789; #endif ::std::string node(configData.localhost ? "127.0.0.1" : "www.webEbenezer.net"); for (int j = 0; j < 6; ++j) { addrinfo *res; getaddrinfo_wrapper(node.c_str(), basePort + j % 2, &res); if (::connect(sockfd, res->ai_addr, res->ai_addrlen) == 0) { freeaddrinfo(res); #ifdef SYSLOG_AVAILABLE syslog(LOG_INFO, "connected to CMW on port %d", basePort + j % 2); #endif return sockfd; } // 111 is connection refused and 113 is no route to host. printf("connect() failed on port %d. errno is %d\n" , basePort + j % 2, GetError()); freeaddrinfo(res); } #ifdef CMW_WINDOWS Sleep(configData.sleepseconds * 1000); #else sleep(configData.sleepseconds); #endif } #endif }[/source] this one has a few different levels of abstraction (low level OS code, med-low level application code?), is quite a bit longer, and performs several steps in an apparently complex operation, but I wouldn't be able to readily identify the boundaries or proper high level names for those steps without being more familiar with the domain. Again, I'm not saying it's bad, incorrect, or anything like that, just that subjectively, I am less able to grok this than I (think) I would be if you were to do something like: [source lang="cpp"] sock_type connect2CMW (cmwa_config_data const& configData) { sock_type sockfd = cmw::getSocket(SOCK_STREAM); //Not sure if you sometimes need to enable that disabled code? Still under development? for (;;) { ::std::string node(configData.localhost ? "127.0.0.1" : "www.webEbenezer.net"); int port = GetBasePort(); for (int j = 0; j < 6; ++j, port += j%2) { addrinfo *res; getaddrinfo_wrapper(node.c_str(), port, &res); if (::connect(sockfd, res->ai_addr, res->ai_addrlen) == 0) { freeaddrinfo(res); AttemptLogCMWConnection(port); return sockfd; } freeaddrinfo(res); } SleepUntilRetry(configData); } void AttemptLogCMWConnection(int port) { #ifdef SYSLOG_AVAILABLE syslog(LOG_INFO, "connected to CMW on port %d", port); #endif } void PrintCMWConnectionError(intport) { // 111 is connection refused and 113 is no route to host. printf("connect() failed on port %d. errno is %d\n" , port, GetError()); } void SleepUntilReconnect(cmwa_config_data const& configData) { #ifdef CMW_WINDOWS Sleep(configData.sleepseconds * 1000); #else sleep(configData.sleepseconds); #endif } int GetBasePort() { #ifdef CMW_WINDOWS return 56791; #else return 56789; #endif } [/source] I may have mangled the logic, and again, I am not implying that this is better (unless your compiler is really good, it may be slower for instance). Hope this illustrates what I mean better though
  25. tim_shea

    My Dream Game

    If you are still using indexed locations, rather than coordinates, what I would do is generate a weighted graph and assign values to the connections which represent the distance between locations. You can use a directed graph if a connection favors one way travel (e.g. a river is much easier to follow downstream, the south Atlantic can only be crossed westward by wind power). You could generate these weights randomly, but will need to apply lots of constraints if you want to represent a real physical space, that is, excluding directional or other terrain factors, the sum of distances between several locations have to 'add up'. Of course, as this system gets increasingly complex, it may be prudent to just use coordinates and weighted terrain after all.
  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!