Advertisement Jump to content
  • Advertisement

Escarab

Member
  • Content Count

    121
  • Joined

  • Last visited

Community Reputation

103 Neutral

About Escarab

  • Rank
    Member
  1. DDD is not about using "previous experience at building similar systems", is about using the knowledge embedded in the target domain of your sistem to improve the design of your model, making your desing supple in the context of said domain. Eric Evans should explain better then I can: http://www.infoq.com/presentations/strategic-design-evans Normal techincal refactoring(design patterns and such) is ok to accomodate requirements changes, not domain changes. Requirement change: Make your home bank software muti currency stead of US$ only. The domain is still banking. Domain change: Make your home bank software into a backery stock managemant software. Domain change banking -> backery As I see it, the process of iterative game design creates a ever changing domain, a moving target(at least till the very end). In my opinion, no cheap techinal refactoring can make my code better as i go under that circunstances. Sure i could rewrite the entire game after the game designer has finished his work and the domain is defined and is sollid, but that would make no sense at all.
  2. Hi, long time no post here My company's latest project is finally ending after 2 years of not so good code. For sure we will deliver it, but I expect to put to practise what I've learned in the past 2 years on our next project, for when I look at the new code I will not be afraid to change it, confused about what it does or just disgusted. Game Developers been as they are, not very fond of software design or architecture, there is not so many sources directly related to the industry. So I went to our cousins "developers of normal software" for knowledge. After quite a lot of digging(said 2 years), I've come to an approach that I'm ready to commit to and give it a try on our next project. Extreme Programming supported by domain driven design is the new approach I'm about to try. Letting alone Test Driven Development, very important in order for XP to work properly but I have no idea how to apply it on game code, I want to start a discussion about model driven design in game development, specially in gameplay code. Domain driven design seems to support XP perfectly, in fact, domain driven desing seems like the "right" way to think about all kinds of software development, all but gameplay code. DDD talks about a lot of good ways to think about problems, use patterns etc, but as the name implies, it's all based on the domain. Your software is modeling some stablished domain, such as banking or accouting, and you draw on the knowledge embedded on that domain, it's logical inner workings, to design a model/code incrementally more supple as you unravels more about the domain you're modeling. Beautiful stuff! 99.9% of software are about modeling some stablished domain, even if abstract. You could apply DDD to, for example, game engine design. The domain of "game engines" talks about assets and asset pipelines, Renderers, Materials, game nodes, scenes and scenegraphs, I can easily see a DDD path on that domain. The domain is there, you evolve the code to model it better, crunching domain knowledge and spitting better desing and code . Game Play don't have a stablished domain, at least iterative evolving gameplay(the best ones) don't. With DDD you aim at a target through mist, as you gain a deeper understanding of the domain, you get closer to the target, so the mist is less effective at hindering your aim. The game play domain evolves as you code the game, allowing your game designer to test stuff and invent the "game domain" and it's rules.But suddenly it's much more fun if dire rats shoot fireballs, and a gun that can stop time is very fun indeed. Game play domain is a crazy running target in the mist. DDD is not very useful if your domain is so stable as your code is, you can't lean on that kind of domain. Very sad since gamplay code tends to be the messier code. Sorry about the long post, i've opened the discussions discussing with myself I think. Is DDD really not suit for game play code? If not, what is a better approach then? What do you think?
  3. Escarab

    Generic Skill system

    Ok, we are trying to make something like Diablo 2 skill system, skill tree , and all the rest that come with it. The bigger problem is that we want something generic , so it can be easily used by the other part of the team. We have to be able model different kinds of skills for diferent kinds of heroes, both passive and active abilities, avoiding hard coded stuff as much as possible. Helped!? Thanks
  4. We are working in a RPG-like game, and we are facing a little problem. We are having a hard time trying to model a skill system that is generic so we wouldn't need to hard code every skill one by one(using torque script). Have any of you faced this kind of problem? Any good ideas? Thanks
  5. Escarab

    Winsock Without Entire SDK?

    Yeap. just include winsock2.h and link against ws2_32 library and you are all done. MinGW already comes with the windows SDK.
  6. Escarab

    Winsock Without Entire SDK?

    My suggestion is, if you are programming under windows, and for windows, you probably will need the platform SDK one time or another, so just download it and live with it, it's not that big anyways. ps. If you use mingw you already have it.
  7. So, in order to obtain IOCP/workerthread-like server, I must to call io_service.run() in each worker? Is that it?
  8. I'm working on a MUD project for a while now. I started it from ground up, learning things as they were needed. Right now, things are starting to get in to shape, there is still a lot of work to do, but I'm getting somewhere. The base code uses Windows IOCP, so, it's bound to windows, and I want it to change.I'm planing to use boost.ASIO, since it uses the most efficient thing, (IOCP, epoll ...) provided by the OS. The problem is that it's very difficult to find a good tutorial, book, or something about it. Sure there are the official tutorials on boost's site, but, they really suck.I've understand the basics, but I'm unable to do something similar to the approach used with IOCP(Worker threads). So, if anyone is aware of some good and complete tutorial, book, article, something using boost asio, it would be very helpful, and would spare me weeks of wallowing through pages and pages and endless pages of class references. That was the Boost.::ASIO, IOCP part, now to the other considerations. As said, I have this MUD project. And would really appreciate if someone could give a look at the source code. It's far from be a MUD, but the bases are there. I'm specially worried with the one CRITICAL_SECTION per client issue, it seems to me a lot of critical_sections.So if you have the time and patience to give it a look, I would be glad. And since IOCP is a very common topic in this forum and the project is openSource, it could be useful to others. Here is the link to the server's sourceforge repository: Ethernia MUD Thank you
  9. Hi here,. I'm working on a game, basically it's a "fly through clods nothing more" game, so clouds are a vital part of it. Doing some researches, I've found a article,Mark Harri's clouds, and here on gamedev, I've founded antoher onerelated to it. I've readed both, and I think I've undertanded a part of the whole thing, but, all examples I could found were in OpenGL, and I don't know OpenGL(Yet). So, I would like to use it with Ogre3D instead. I realy would apreciate A complete tutorial or source code written in Ogre3d, but I know this is ask for to much. Some quick questions: - Where do the shader part comes into place? Ligthining the clouds? - It's better use the ogre particle system or pure billboards in order to do impostors? - How to draw the particles on billboards(Particle sistem) and make then look like 3D? You know, turn around then and they change apeareance. - How do I do the transaction from impostors to "Full 3D" clouds? I know there are to many questions, but any answer could cut my development line rougly, so, please, help a Noob XD.
  10. Escarab

    Shaders introduction with Ogre3D

    When I said "less code", I meant, less GL/D3D specific code, so I could use it easily with ogre. Yes, I do know C++. The idea of test my shaders in rendermokey was a great one, I will sure try it. Thank you.
  11. I'm using Ogre, and I must say it is awesome. I've little to no knowledge with OpenGL programming, but I get the big picture about 3D rendering theory(piepeline, transformation matrix, viewports). Ogre Seams to do what I will must to do anyway in order to be able to program real games, let say, with pure OpenGL. It encapsulates the low level stuff. I feel I could do Any kind of game (or rendering) with ogre in a professional level. Now I've have decided to use Ogre as my all purpose, general rendering API (I was thinking about learn OpenGL first).But, there is a problem, learn shaders. Ogre have a material system and a wide support to shaders in all three major shader programming languages(Cg, HLSL, GLSL). But, I no nothing about shaders but shallow theory, a very thin understanding of what it's all about ,substitutes the fixed pipeline, operations per vertex, pixels and Geometry, very cool effects and that's it. To be professional now a days, you must use shader programming. But all books, tutorials and etc, teaches shaders using GL or D3D (or at least demands you to know how to use then). I am kind avoiding have to learn GL, then shaders, then forget about GL and use shaders with Ogre. So, I'm after a introductory book about shaders (less code, more theory), or anything that may detach learning shaders from learning D3D or GL. So, if anyone knows about a book, tutorial, site, etc, that fits this description please, tell me.
  12. Oh, Thats obvious [lol].Move players is one thing send chat messages is another thing. I was wondering if there was a magical way to send message to everyone without send a message to everyone, I guess there isn't.
  13. Quote: How do you avoid the N-squared problem -- if there are 150 players connected to one subserver, and one player moves, do you have to send that movement to 149 other players? And, if 150 players move, do you send 150 packets, each with 149 player move commands in them? How often? That's part of the challenge of a real MMO, which you haven't even started talking about, let alone actually solved. I know this is probably a subject for another thread, but, how do I do that? How do I avoid the N-squared problem?
  14. Escarab

    Luabind: Passing C++ objects

    Quote:Original post by ddn3 isn't unsigned long long a 64 bit unsigned value? Hmm perhaps wrapping it in a struct called something say big_num_64 and just binding that with Luabind? Alittle trouble but then u can return big_num_64 from Lua without any problems. Good Luck! -ddn Sure, i think I could do that. But I still will be unable to get those values from inside lua, like print it on the the screen with print, or do some calculation. Maybe this solve part of the problem, if there is no other solution, I think I could live with it. And yes, it is a 64 bits unsigned value (A very big number).
  15. Escarab

    Luabind: Passing C++ objects

    I've found my problem. GetId was returning a unsigned long long. Aparently I can't do that. I Really want it to be unsigned long long, and I can fit my design in order to not need to call the unsigned long long functions inside lua. Or I could make those unsigned long long on simple unsigned integers (long long was just to be shure [lol]). But,is there a way to use unsigned long long integer with lua? Thank you for you help.
  • 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!