From: Zach Bartels Date: 2010-01-15T01:35:06+09:00 Subject: Re: Recommended Reading (also: Arrays/Hashes) Thanks for those replies all, I definitely got back more input than I expected. So let me just quell a few concerns. I'm afraid this is going to be another long post (sorry, lol) Yes, I am aware of the scope of this project. However I'll reiterrate that at this time, my goal is not to produce any kind of functional multiplayer environment. So regarding DB issues with concurrency I think SQLite will fit the bill nicely. Any attempt at a multiplayer game / MUD server would almost assuredly mean a rewrite / new project built using any knowledge I gain from building the single player environment - and as far as modifying it for multiplayer if I wanted to, I mean something small like allowing a couple friends to join in (ala early examples of small MP environment from the pioneering FPS / RTS games). Sorry if I confused anyone on that point. I simply wished to express my desire that the game complexity be comparable to a MUD environment with regards to the complexity of the world mechanics, and interactivity with objects / npcs in the environment itself. As opposed to those really early text games which while nice, still couldn't compare to a MUD with a good parser. So its safe to say while not a "throwaway" project, I intend to take it quite seriously and probably put it out there for fun at some point. In reply to the Ruby games framework comment. Nothing really satisfies me, and I am waiting for things such as Ogre.rb to mature and become feasible for use in production. I can say I would love to do a graphics based game at some point, something 2D Akin to the early Final Fantasy's, or maybe even Isometric 2D/3D strategy type games (FF Tactics, Front Mission, etc). Those are likely YEARS in the future for me though. I can honestly say I feel SQlite is up to the particular task I have in mind at this stage though. I have done a lot of thinking about tables, rows, and specifric column fields I will need / want and if I have to add an extra column or two in the future I don't think I will be too concerned. Most of the data stored in the DB is going to be pre-made content, such as room descriptions and stuff like that. I do plan on keeping a lot of run-time generated content in memory and then saving out what is needed when appropriate (a new item is created on the fly, and then it gets saved to the DB). I think my particular approach to building my individual systems and testing them, one at a time, before working on integrating them, will leave me a lot of flexibility in needed changes to design and how difficult it will be to change said design. It leaves me a lot of time to flesh out ideas in my head, while I'm dealing with other problems, and then write them down and whatnot. Perhaps this is not the most efficient way to do it, but so far its worked well for what I perceive to be a relatively small project. I have no intention of using rails at this point, as I don't really see a need for it for this particular case. But I will admit I know very little about it, and it seems like just another "web platform" to me so maybe I am making wrong assumptions. Also I admit I have 0 knowledge of unit testing, version control, etc. So I probably do need some education in those areas. I so appreciate the links to those MUD projects, as I didn't know we had that many in the community. Although I am loathe to "steal" as it were, from other projects I definitely will want to look at them for ideas on how I want to approach the same obstacles. Events vs Threading: I totally understand where that commenter was common from. Threading scares me! Its one of the biggest things I have been fretting over once I have to move beyond the stage of building my rendering engine (Room based of course) and can start testing a "live" environment. At the same time, Event Management, stacks, queues, all that stuff confuses the hell out of me. But I definitely intend to have multiple things going on in the background even if the player is idle. I gotta have a spawn timer/manager for mobs, potentially a day/night/weather system, spell /item buff durations being monitored, mobs and NPC's actively walking around and doing tasks, as well as quest monitors & timers. So I am definitely going to have to learn event management. I totally understand the mountain I have just made for myself but I feel pretty committed to it and I know it will take me a LONG time to do this. So I'm ready for the challenge. (I hope) -Zach