Pages: [1]
  Print  
Author Topic: Hosting options: which host? which VCS? license? when am I ready?  (Read 1026 times)
Alyssa
Swordsman
***
Posts: 25



View Profile
« on: October 31, 2011, 07:12:25 AM »

So, since the last time I posted here I have kinda moved away from libtcod (partially for the fun of writing my own engine thingy on lispbuilder-sdl and partially because I was having issues with cl-tcod; I could probably be convinced to move back to tcod if you guys think it's a good idea), but I've stayed with my idea of procedural rule generation (as opposed to map, item/monster, and even story generation) and I actually have some code for a fairly powerful, albeit kinda slow and unfinished, engine. I am considering releasing the source soon, but this will basically be the first time I've released anything, so I need some help looking at my options. As you can see from the topic, I am mainly concerned about which hosting service I should use, which version control, which (open source) license, and how clean the code should be before I start releasing it (right now it is kinda mixed up in lots of files that have to be loaded in a very particular order for reasons that are not entirely clear to me). And, since the answer will probably be "It depends on the project", let me clarify that I want the pros and cons of the different alternatives, not necessarily a hard answer.

My hosting/VCS/license goals
I don't care much about my hosting service except that it's free (I am 17 and have trouble paying for stuff :$) and reasonably reliable. I suspect this will not be a problem; there are hosting services all over the place that offer free hosting to open source projects, aren't there? The main problem is that (when last I checked) some of them only support certain VCSs, so I'll have to choose a VCS before I can choose a hosting service.
As for version control: I have no idea what my priorities are; I suspect that in the short run I won't care about anything but the versioning itself, which all of them provide. I guess the main thing I want to know is, how easy is it to switch systems later? If I choose SVN (which I have installed but which lots of people say is rubbish), will future-Alyssa hate me?
As far as licensing goes, my main criteria are that it is open-source but that it doesn't force derivative projects to also be open source (which means, I think, no full GPL? I suppose I should do more research. XD). I am kinda nervous that there won't be any license that protects the output of the game generation system, but I've decided that even if I'm not wrong this is irrelevant, because the main part of chaos is not any particular game but the fact that there's always a new game ready when you figure an old one out.

My goals for chaos
The name of the project is officially "chaos :: [RL]". I have borrowed this notation from Haskell (a beautiful mathy functional language that I am not using for this project). It means "the variable 'chaos' whose type is 'set of roguelikes'" -- the idea being that this is not just an engine but a particular gamespace that is narrow enough to cut out lots of uninteresting games and wide enough to contain more surprises no matter how much you've used it. (Thus, it is a set of roguelikes that hopefully contains fewer boring ones and not significantly fewer interesting ones than the set of roguelikes in general. To hell with mathematical formalism! Tongue)
In its current state, chaos consists solely of a fairly abstract engine with the goal of having as few special cases as possible. For example, there will be NOTHING special about the player except a special "player-ai" that, instead of deciding what to do, checks for input from the keyboard and mouse. (This is tougher than it seems -- I'm currently trying to figure out which dungeon level should be drawn if the player-ai is contained in two separate bodies that occupy different dungeon levels. I am currently of the opinion that it should loop through them.)
The ultimate goal for this project is for the engine to be completed (and preferably a bit faster than it is now), for a game generation system to be developed, and for an API to the game generation system stabilized so that you can like implement a neat gimmick in two hours and see it in action in a fleshed-out game. (I am still thinking about ideas for the game generation system -- my current one revolves around "mixins" that will probably be snippets of code with metadata about where they should be spliced and how they should be combined with conflicting mixins.)
Obviously this is all a loooong way away, but it seems to me that a lot of what I do now will have a huge impact on what I can do in the future. It makes me kinda nervous.

tl;dr: Hi again! Still making procedural game generators, I've written (part of) the engine my system will use, but I've never released code before and I need help! D:
Logged

Code:
(defmethod mind-swap ((m1 meatbag) (m2 meatbag))
  (rotatef (ai m1) (ai m2)))
  ;; My mission statement: no special cases.
george
Master
****
Posts: 216


View Profile
« Reply #1 on: November 02, 2011, 02:09:31 AM »

I understand that all the choices for licenses and hosting can seem a little overwhelming at first, but trust me, it is not an important part of your project. Evaluating their pros and cons may scratch an itch that you have, but if you'll forgive my contrary advice, I say forget about that and concentrate on your code. Yak shaving around hosting and licenses is very easy to do but not that productive in the long run.

If there is not a project out there you admire that you can simply copy as far as what they use for hosting and license, I recommend using github with a BSD or MIT license.
Logged
Jotaf
Global Moderator
Master
*****
Posts: 1183


View Profile
« Reply #2 on: November 03, 2011, 05:38:47 AM »

MIT and BSD are cool, as you don't want to force derivatives to be open source then the GPL's are not for you. For VCS, on the surface they all look very much alike in my opinion. I rather like mercurial (HG), and libtcod recently moved from SVN to mercurial too. The other more recent, well-known VCS's are good too. As George said, it's not a critical decision Smiley Also, I used google code once and like it very much, I don't have any complaints, but then I never tried another hosting service. If you're curious the project I set up there is this, so you can get a feel for what you can do with zero effort: http://code.google.com/p/name-gen/

Good luck with your game BTW! Haskell notation?? Ouch, that one still gives me nightmares Cheesy But it was a great learning experience, and I now use that style of coding a lot in python and matlab Wink
Logged
Alyssa
Swordsman
***
Posts: 25



View Profile
« Reply #3 on: November 06, 2011, 06:52:21 PM »

Okay, I managed to get something uploaded! D:
http://code.google.com/p/chaos-rl/ is the project repository. I ended up sticking with SVN because I already had TortoiseSVN installed, but it looks like Google Code has some kind of tool for switching in case I ever get sick of it.

I've uploaded my first source release, but getting it to run will be kinda involved I think. You need to change chaos-home in engine-init.lisp to your install directory, place SDL.dll in your lisp directory (it might work if you use the equivalent mac or linux library, and it might also work if you put it in the chaos directory instead, but these haven't been tested), compile and load engine-init.lisp, and finally, run (game-loop (ai *player*)).

If that sounds like too much of a hassle, I'll try to get an executable out as soon as I figure out how to make ccl do that. Tongue (Note, though, that lisp compilation is lots easier than e.g. C compilation from what I've heard.)
« Last Edit: November 06, 2011, 07:53:26 PM by Alyssa » Logged

Code:
(defmethod mind-swap ((m1 meatbag) (m2 meatbag))
  (rotatef (ai m1) (ai m2)))
  ;; My mission statement: no special cases.
george
Master
****
Posts: 216


View Profile
« Reply #4 on: November 11, 2011, 09:30:06 PM »

Nice! Congrats.

One thing I would suggest, since you're building an engine and not strictly a game, is to make your project work with ASDF. The cl-tcod library does this and it makes things much easier to work with.

https://bitbucket.org/eeeickythump/cl-tcod

Here is an example of the cl-tcod.asd file:

Code:
;;;; -*- Mode: lisp; indent-tabs-mode: nil -*-

(defpackage #:tcod-system
        (:use #:cl #:asdf))

(in-package #:tcod-system)

(defsystem tcod
    :description "CFFI for libtcod, a truecolour console library."
    :author "moriarty4@gmail.com"
    :components
    ((:file "tcod") (:file "tcod-colours"))
    :depends-on ("cffi" "defstar"))

ASDF might even allow you to declare a dependency on the SDL.dll but I'm not sure.

Quicklisp even has a way to quickly set up a project, Xach had a nice post about it here, http://xach.livejournal.com/278047.html?thread=674335.
« Last Edit: November 11, 2011, 09:32:28 PM by george » Logged
Alyssa
Swordsman
***
Posts: 25



View Profile
« Reply #5 on: November 12, 2011, 02:10:56 AM »

hmm, that might be a good idea. The thought that someone might someday want to use MY code is kinda weird, but if this project ends up going well I guess it wouldn't be so farfetched. Thanks! :3
Logged

Code:
(defmethod mind-swap ((m1 meatbag) (m2 meatbag))
  (rotatef (ai m1) (ai m2)))
  ;; My mission statement: no special cases.
Pages: [1]
  Print  
 
Jump to: