Brad Wardell's site for talking about the customization of Windows.
Published on June 17, 2009 By Frogboy In Elemental Dev Journals

image

For those of you not familiar with game development, most of the development is spent designing the engines and technologies that will be used by the game. In our case, about 2/3rds of the time is spent on that kind of thing. 

In many respects, this time is much like developing a traditional software application.  Elemental uses a graphics engine that has been developed over the past couple of years for Society.

Our previous games used an engine called Pear that was developed in the late 90s and enhanced over the years.  The new engine, called Kumquat, has all kinds of goodies (as you'd imagine).

One of the big differences in Kumquat from my personal coding perspective is its use of Python for scripting.  Our old engine wasn't scriptable so everything was written in C++.  Now, Stardock is a bit unusual that we don't tend to use scripts in our games. In Elemental, the only reason we're using scripting is to make it easier for other people to mod the game.

Anyway, now we're starting to put the pieces together to actually make "the game" as opposed to a series of technologies.  That means I finally get to start sinking my teeth into AI.

With Galactic Civilizations, I only got a couple of months to work on the AI and I had to do it basically on my own.  This time around, our team is large enough that I get to work on it longer and I have help.

Not that I don't mind writing functions like get the distance between two points or whatever but having others who can write the worker functions will save me a lot of time.

One other difference in Elemental was the decision to have multiplayer support. There's a single player reason for this - I want to see how people play the game before the game is released so that I can incorporate clever strategies into the AI.

Those of you not familiar with Stardock developed games know that from my personal perspective, the only point to these games is the AI.  Personally, I think it's great that humans want to play the game too but I'm in it for the computer players.  My fun on GalCiv was always watching the different AI personalities fighting each other to see who would win.  But then again, I'm a pretty weird guy.


Comments (Page 5)
5 PagesFirst 3 4 5 
on Jul 19, 2009

Brad,

  Have you thought about using Mono instead of Python? I saw that is what Sims3 is doing.You get a speed bump and can use C# or VB or ... that way. C# is also closer to C++ than Python is.

  You'd also get a much better debugging expreience for the lead developer that way by doing the initial programming in Visual Studio for .Net 3.5.

  There is a library called mono add-ons or something like that which makes deploying the add ons as simple as dropping the C# files into a folder.

  Also, Mono is getting closer to Beta for a Visual Studio add on to compile mono direclty in VS instead of compiling to .Net while developing, then switching to Mono for deployment.

  Let me know if you have any questions about this approach, and I'll try to hunt down the resources.

 

on Jul 20, 2009

RalphT
Brad,

  Have you thought about using Mono instead of Python? I saw that is what Sims3 is doing.You get a speed bump and can use C# or VB or ... that way. C# is also closer to C++ than Python is

Regardless of any advantages Mono may or may not have over Python, I'd say it's pretty safe to assume that the development process is way too far to switch languages - at least for Elemental. Additionally, it being close to a beta stage is not going to help Stardock, because they are working now...

on Jul 30, 2009

A bit off-topic, but...what we really need is for some computer scientists out there to get languages beyond the never-fully-realized promise of SmallTalk and Lisp.  Someday...

on Jul 30, 2009

A bit off-topic, but...what we really need is for some computer scientists out there to get languages beyond the never-fully-realized promise of SmallTalk and Lisp.  Someday...
 

They're undoubtably already out there, but having a language out there with one reference implementation of a compiler is a vast world away from having a language capable of production level work with an IDE, debugger, multi-OS support, etc, etc.

on Jul 30, 2009

Mono is great, but Stardock are a Windows shop, so I guess they won't be using it. Incidentally I believe they already make some of their other stuff (like Impulse) in C#.

Every programmer has their favourite language I guess. Myself I think Scala would be very productive for this sort of thing. It's still possible, though, to make cool things with crappy languages (how many of us started with Basic?), so I can hardly object to having to learn a really cool one like Python.

Meanwhile..."the never-fully-realized promise of SmallTalk and Lisp"..."a language capable of production level work"...Javascript anyone? Ok, some of the syntax is kind of ugly, but Javascript is ubiquitous, has all sorts of tools for analysing and debugging your code, fast implementations, and is ridicuously flexible. People see it as a toy for making a navigation bar for a website, but it has the potential in it for some really dark magic.

on Jul 30, 2009

Javascript? *shudder* 

I've worked in C, C++, Java, even some PLM and Javascript was worse than all of them, except PLM .

Javascript has horribly funky ways of handling inheritance, method overriding, etc. If you're going to use a general purpose scripted language with OO support, use something like Groovy (or, obviously, Python). Haven't used Scala, but it might work just as well.

I sort of wonder about Python's longevity for big projects since it does some weird stuff, like the fact there aren't any truly private variables in a class...their names are just obfuscated to prevent namespace conflicts. But, it's been around a while, so it has to have something going for it.

on Aug 06, 2009

Javascript is incredibly powerful--I agree it's far more than a mere web-page toy creator--but it's not truly object-oriented, and isn't close to human semantics.  Lisp's definition is written in Lisp, for goodness' sake: that's powerful semantics.

5 PagesFirst 3 4 5