Experimental RTS/Space sim Collaborative Coding Project.
The goal is to design a game with structure/settings/balance of Starcraft and scale of Eve Online(i.e. huge space battles, space empires,etc).
Though this wouldn't stop anyone from contributing code/feedback/criticism, i'll be coordinating the project.
All code/ideas should be posted in this and subsequent threads which i'll start as needed.
step #1: We will collaboratively create a name for our project.
Each suggestion must explain why this name fits the project and why its better then any other generic name.
--Multi-paradigm programming(functional, imperative, OO, meta-programming). CLOS is one of the best object systems out there and macros allow creating new DSL's languages with ease.
--Fast native code compilers: SBCL, OpenMCL, Allegro and others.
--Existence of compilers which compile to C, in case you want to inline C code, or don't want to have a large LISP image (10-20mb unless a tree shaker is used): ECL
--Quick prototyping is possible, code tend to end up very extensible
--There is no need for a scripting language engine, you can make a quick domain specific language in LISP itself, and script the game in it.
--Wastes less time of filler code, one can just express their ideas directly
- Cons:
--You might have to roll up your own bindings for DirectX, I think there's some for OpenGL, but not so much for DirectX. If you want to interface with external libraries, you'll need to do it for them too ( for example: libpng, zlib, libvorbis, truetype, etc). This isn't a hard task as there are automated tools for doing this.
--The language offers many features, and a novice programmer could make parts of the code hard to maintain, but this is true for other languages too.
--Large image size for true native code compilers, unless a tree shaker is used, if that bothers you, you can compile directly to C.
--Language is not known by a lot of programmers. Finding new developers might be hard.
The main problem here is that you will have to write enough code to get people interested, and I have no idea if you know LISP well enough.
C#:
- Pros:
-- Well known in the public, attracting developers would be easier.
-- Easy to use DirectX bindings.
-- I've seen a couple of 3D games made using C#, speed was very decent. Just because your .net executable runs 3 times slower than the C++ equivalent doesn't mean it will matter much, you will be spending a lot of time executing native code (graphics, sound, i/o) which is already optimized. The game logic will execute slower, but there are many possiblities for optimization and dropping in to run native code isn't hard ( for speed critical parts ). Machines are fast enough nowadays for this to not matter much, besides a Starcraft clone is not likely to need as much resources as Crysis.
- Cons:
-- Expect having to code a lot of repetitive boilerplate code, but not as much as needed in C.
-- Lower speed than native code, but not enough to matter.
-- Some OSS coders hate C# because it comes from MS, even though there's Mono. Java is an alternative, but it's worse.
C++ is the natural choice in the industry, due to being possible to use OO, which while I don't consider the natural solution to all programming needs, is a very natural way of representing a game world. It also retains C's speed to some extent(of course too much OO wankery can be slow, I've seen a case of a C# written clone of one game which was originally written in C++, and the C# game was much faster and responsive. It just shows that properly designing a game and using the right (fast) algorithms will give better speed than using a slow algorithms with a fast natively compiled language.
I don't see how this discussion has much of a point as you need to know the language before you can chose it, it's not like /prog/ will code for you, unless you make it interested enough: present a working prototype with a good enough codebase.