Zach Bartels wrote:
> 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.  

Er...OK.  Then why did you say you were building a MUD if you're leaving 
off the MU part? :)

> So regarding DB issues with concurrency I
> think SQLite will fit the bill nicely.   

On what basis do you think this?  Have you got a reason to think this, 
or is it just handwaving?

> 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).

Once you have 2 users -- or 1 user doing multiple simultaneous things -- 
you have potential concurrency issues.  SQLite is not a suitable 
database in that case.  Fortunately, there are enough decent database 
abstraction layers for Ruby (ActiveRecord, Sequel, DataMapper...) that 
if you use one (and you probably should), switching DBs later on will 
not be a huge problem.  Just be aware that you're likely to hit a wall 
with SQLite fairly soon.

> 
> 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.

Actually, the early text games (particularly the Infocom ones) often 
have better parsers than most MUDs I've played.

> 
> 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.

Good.  Then don't hamstring yourself by refusing to consider anything 
but SQLite.

[...]
> 
> I can honestly say I feel SQlite is up to the particular task I have
> in mind at this stage though.  

What you feel is irrelevant.  What SQLite can actually do is what 
matters.

> 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.   

Right.

> 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.   

No.  It will just put you in integration hell later.  Follow the agile 
approach of integrating constantly or nearly so.

> 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.

This won't be a small project, from what you've described.

> 
> 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.

Then don't start this project until you've gained at least a little 
knowledge of each.  In 2010, there is no excuse for developing without 
both of these in place.  None.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen / marnen.org
-- 
Posted via http://www.ruby-forum.com/.