• Content count

  • Joined

  • Last visited

Community Reputation

115 Neutral

About mwtb

  • Rank
  1. Quote:Original post by lemBobbin I am interested in making a random map generator after taking a look at the Dwarf Fortress game i saw in a recent post. <snip> Thing is i dont want sthin really random like a heightmap, cause i would end up with tons of holes filled with water or sthing, i want it to be semi realistic with rivers that flow into lakes and mountain ranges etc Are you talking about a cell-based map at a similar scale to Dwarf Fortress? There's a big difference between generating a map for something like Civ and something like World of Warcraft. I'll assume you plan to create large-scale maps for strategy-rpg style games to start with. A while back, I spent some time working on a web-browser strategy-rpg concept and I got quite far into the whole map generation part of things. I followed a plan similar to yours, using layers of information. I used a hex-grid cell layout, and each cell had properties of height, terrain-type, rainfall, waterflow(producing rivers), agriculture-potential and then population. There's nothing earth-shattering about it. The basic logic behind rivers was that water-flow accumulated going down from cell to cell by height, and I made a simple assumption that rain fell on mountains and hills. Taking these assumptions, I just created a layer that contained the accumulated flows as rain-water ran down the map cells, I then used this layer to erode the cells a bit (lowering height where flow is high) and recalculated the flow. After a few iterations, I got some simple rivers following reasonable paths, although I didn't get around to adding the ability to have lakes, so some rivers just stopped at a low point. I've let the project lie fallow for a long time, and I didn't make any effort to pretty-up the rendering of the underlying map, but my web-browser display prototype is still running here (although I never load-tested it, so it could well fall over if a few people start banging on it before the caching mechanism kicks in) and you can read the various blog entries about generating the map I made while working on the project here. Again, it's nothing amazing, but it might help you decide what you want to do and I'd be happy to answer any questions. [Edited by - mwtb on September 22, 2006 6:57:21 AM]
  2. I've been skipping this thread as it seemed to start as a general moan about lack of resources, and I find this sort of complaint a bit laughable in the face of the availability of information these days compared to only ten or fifteen years ago. However, now it seems to have become a good example of a kind of conversation that I can rarely be bothered with, which might be a reason why the OP feels he is never answered. I was once a games AI programmer, I have a background that includes academic A-Life research at post-grad level and as a hobby coder I have always gravitated towards AI-related projects. I don't consider myself an expert, but you would imagine that I'd be interested in the theory discussion in this thread,and yet I'm not. Why? Because as a request for help it almost immediately becomes a demand for solutions. It also contains an inherent dismissal of a certain kind of approach which immediately disengages anyone who has ever considered such sources valuable. Because as theory for discussion, it isn't being tabled as something that can be explored, it's a dictat of reality according to the poster. Beyond that, it seems to simply boil down to the idea that "feelings matter" in human decision making. The weather matters, as does the amount of coffee you've had, or whether the pretty girl at the checkout smiled at you when you bought your newspaper. It's hard to seriously engage with such a theory without a strong modelling concept to back it up. Because, ultimately, I care about AI from the perspective of achieving a more natural interface between people and software, and on this forum that software is games. How would this theory apply to games? How would the player perceive the improvements? What actual difference to agent behaviours are foreseen? How would the programmer/designer/player control the AI and bound its behaviours? To be honest, it seems like you would have a much easier time tabling your idea and asking for resources in an academic psychology forum, as your thinking seems to be far more at their level.
  3. I didn't quite follow what you have tried, particularly where you say you restore your passwords with old_password(). You are generating the user passwords with OLD_PASSWORD('password') and they still don't work? If so, the only other thing I can think of is that you aren't changing the correct user with the correct domain access.
  4. I wouldn't say "should", but FSM-based architectures are commonly used in games AI, so if you're comfortable with that model, then go for it. There's no one "best" way to do this sort of thing, the important issue is to organise your thinking about the AI so that you can modify and maintain it easily. To that end, if you do use FSMs, be sure to avoid dependencies as much as possible, as they become spaghetti pretty quickly if you start having substates and sub-substates.
  5. As with most AI problems, the general rule is to break it down, for example: Individual Player Player Position Zone Teams (is this relevant in Ice Hockey? I don't know much about the game) Team Tactics Players can move, pass, block, shoot, tackle, they also get injuries and have skill levels (and in Ice Hockey get annoyed with other players and get into punch-ups). Players in particular positions have roles and modes - defend, rush, hold. Zone Teams are teams within teams, with shared priorities and set tactics, e.g. dispossess attacker, clear puck. Team Tactics are top-down instructions as per a coach, team formation, aggression etc. By separating these elements (in your own way) you should be able to clarify your own thinking about how an actual player would make decisions from moment to moment and you'll also create a flexible system that you can tweak easily.
  6. [web] future of web games

    It's hard to gauge what "viable" means for you as it really depends on what your expectations are. For me, viable means that you can create it and put it out there for either "hobby" money (think of the amount you'd spend on guitar lessons or green fees or whatever). For you, you might want to support yourself on the earnings. There is a market for web-games (as in games in a browser) of all kinds. It has great advantages as a delivery format, but also presents significant challenges if you want to get paid and in terms of creating genuinely interesting products. I doubt that the ratio of web-game producers that live off the proceeds is really much different from that of all games -- i.e. not many. Personally, I'm working on one simply because it's a great way to get some new skills and attract real customers to test your work. Money would be nice, but breaking even is about as high as my expectations go for the moment and I fully expect to be out of pocket in the most likely circumstance.
  7. For simple journal keeping, wordpress has been more than enough for me. It's flexible, well-supported and well-documented. It also handles multiple users quite nicely, so I guess it could provide decent team blogging. I suspect there would come a point when you want to move to something like Mambo but you don't really say what sort of site you want to run.
  8. procedural/OOP engineering help

    I'm afraid there are no simple answers, only simplistic answers. The examples given in most OO texts are intended to show the concepts and not to demonstrate where life becomes difficult. In particular, the noun-verb analysis method commonly taught as the start and finish of OO design work is misleading in the extreme. There's more bad news in that there's no real shortcut to understanding how to deal with these issues, although the books mentioned will help. I would suggest looking at an existing 3D engine, but I don't actually know of one off-hand that would be an example of good OO usage -- perhaps OGRE? From an OO perspective, the "draw itself" thing seems like a tempting wrong-turn though -- for example, does it seem sensible to bind landscape patch classes to D3D? This is where the patterns work comes in useful, so something like a bridge pattern might be useful concept for you to consider... ... or not, there's always a compromise to be struck. OO works best when creating analogues of real-world systems, but it becomes less clear when looking at abstract entities like collision handlers and renderers. The OO-purist views on class design can cause performance issues (although the issues are often exaggerated by OO-critics) or may simply be unnecessary for your needs. Don't get bogged down in OO dogma, analyse what you do, get a tool that can reverse-engineer your class diagrams from your code and make a point of examining them.
  9. procedural/OOP engineering help

    I'm not entirely clear what you're after, so I'll suggest a few options to cover the possibilities: If you want a book that describes how to tackle complex projects from a technical stand-point then I recommend Large-Scale C++ Software Design" by John S. Lakos. It's not a light read and it's getting on a bit, but I haven't found anything else that deals with the practical issues of OO developments in quite the same manner. If you want actual planning help, then "Surviving Object-Oriented Projects" by Alistair Cockburn was a good read, but it's aimed at actual business project and team managers, not individuals. If you want help on how to break down a problem in an OO way, then something like "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development" by Craig Larman would be a good option, although it isn't C++ based in any way. Finally, as you're doing C++, don't fail to have a copy of "Effective C++" by Scott Meyers. It should be compulsory. I hope one of those suits. ------ My Dev Blog
  10. Thanks for all the help, guys. I'm sure I'll be back with more questions, but you've given me a good start.
  11. Top-Down Herd/Flocking AI ?

    As mentioned above, the major expense in terms of CPU for bottom-up is the influence checking and this can be dramatically reduced by using sensible data structures, or may well not be an issue at all if you have small herds.
  12. Thanks for the great responses. I was thinking of concurrent as actively using the site, but I was thinking of this as a likely peak (these games seem to attract groups that are local to each other, all in the same school etc.) rather than as a constant. Obviously these numbers are just to get a ball-park figure. If I were to start with a shared server, what are the issues with that? How would I track CPU load, for example, is that sort of reporting available as standard? What about non-standard connections? Is it difficult to find hosts that will support proprietary server software and comms?
  13. I wasn't sure where to put this, but here seems appropriate. I'm considering putting together a turn-based web game. I am thinking of a fat-client at some point, but I want it to have a workable browser-based interface as well. I have a loose plan for staged delivery of game functionality and clearly I want to build up a community of people to play the game as it develops. In order to do this, I need to give them access for free, at least until there is something worth even a token payment and I would prefer not to have to charge at all. What I am trying to work out are the costs of hosting and the potential for offsetting those costs. If we consider a game that requires some significant DB processing as well as delivery of DB-driven content, with say 50-100 concurrent users, what sort of hosting is likely to be required and how much is it likely to cost? Considering the same site, what are the realistic opportunities to get some money back via advertising or affiliate deals? I'm sure I'm not giving enough info, so feel free to point out where I need to be more concrete. This is all new to me, so any help is welcome.
  14. Top-Down Herd/Flocking AI ?

    I'm curious as to why you want to do this "top-down" when the mechanisms for the behaviour as "bottom-up" are fairly well understood and documented? Do you have performance concerns or control concerns?
  15. Project Management

    I'm not sure the list actually demonstrates a set of transferable skills as much as a set of transferable task descriptions, for example: - Working with the designer and team leads to turn the design into a task list. - Working with the team leads to turn the task list into a schedule. Except without knowing about the field, the PM can't understand the completeness of this list/schedule, the dependencies in it, the risks associated or the effort required. In other words, his entire contribution to this would be "Guys, make me up a schedule, please." That's if he's sensible enough to recognise that he can't actually do the job himself. - Assigning tasks to members of the team. Without knowledge of the field, the PM would have no clue how to do this and again would be reliant on simply asking the team to divide the jobs amongst themselves. - Reviewing tasks completed by the team (or not as the case may be) and updating the schedule as appropriate. Applying what knowledge of deliverables and quality assurance processes? Yes, I'm being harsh, and yes there are transferable skills at the core of managing projects. Sure, in all instances, the answer is that a good PM uses the expertise available to him, but in software development this often degenerates into one of two situations: either the team ends up baby-sitting the PM and much time is wasted or the PM keeps making bad choices because he doesn't ask for support or because the team isn't actually prepared or capable of giving it. Anyway, I'm sure that we're not going to agree on this, and nor do we have to. I still don't advise the original poster to treat managing a software project as "just another project", because my experience (both being managed and as a manager) doesn't support that as being a sensible approach.