Carpe Diem a Turn Based Strategy Game

Hello everyone I just put my latest work in progress game, Carpe Diem, on IndieDB and thought I’d clue in the community here :slight_smile:

Carpe Diem is a turn based strategy being developed by myself using jMonkeyEngine. All of the models were created with everyones favorite modeling suite Blender of course. Model textures were created using a combination of GIMP and Blender and the graphics for the UI were created with Blender. Window backgrounds and such were rendered with Cycles while the unit icons were rendered with internal except for the frame around the icons which was rendered in Cycles and then added in to the BI render with the compositor.

You can read more about the game’s details on the IndieDB page, here’s a couple of screen shots though. Enjoy…

Attachments




Just a quick comment. Looks pretty cool.

Thanks Henry. Still a good deal of work left to be done, haven’t even touched on networking yet. Right now I’m focused on working out a few kinks with the AI and one or two rare bugs with boundary generation that I may have fixed, but need to test a bit more to be sure. All in all Carpe Diem has been coming along quite smoothly and has been a real joy to work on.

jMonkeyEngine has its own networking implementation, Spider Monkey, but I’ll probably forgo that and write my own implementation. I did the same with the thread pool, I find it’s easier to work with something I made myself.

There’s already a good deal of threading going on here. The AI is threaded and makes most of its decisions based upon things that haven’t happened yet in the main thread. Meaning move and attack commands, for instance, are all issued in the AI thread while the main thread carries out those actions one at a time. The AI is issuing orders and keeping track of everything that happens based on those orders before or while they are carried out in the main thread. The AI doesn’t wait for animations to complete or anything, it’s usually finished with its turn long before the player gets to see what happened.

How do you like using the jMonkeyEngine? I’ve never used it, but heard of it. I use Unity myself.

I’ve worked with Unity too. I would say Unity is more visual oriented while jMonkey is more code oriented, at least in my experience. I haven’t worked much with the Scene Composer in jMonkey, preferring to do all of my scene setup via code the Scene Composer is not something I really care to use at this point. Even still one could imagine it possible, if you setup your code correctly, to use Blender for setting up a scene for, say, a third person shooter instead of using the built-in Scene Composer.

Aside from the fact that I like Java as a language a couple of boons stand out in jMonkey’s favor over Unity, in my personal opinion. Obviously the ability to go in and look at the source code, or even edit it if necessary, and the fact that I can use anything in the Java arsenal to accomplish whatever it is I desire to accomplish.

With Unity, for instance, if you want to do a multi-player game you’re stuck using Unity’s networking implementation. Not that it’s a bad implementation, I’m sure it’s great, but if you have something that needs to be less generic and more focused you’re out of luck with Unity whereas with jME you can write your own implementation.

I’m currently contemplating adding MP3 support to Carpe Diem and with jME I can just find an open source Java MP3 library or use Java’s JavaFX media library which supports MP3. This is something that’s simply not possible with Unity under which desktop builds only support Ogg.

That’s not to say that I didn’t enjoy working with Unity, I most certainly did and I’m sure Unity is a great solution for all sorts of projects out there. At this point in time jMonkeyEngine offers what I, personally, am looking for in a game engine and I would recommend it to anyone looking for a less restrictive environment to work with.

P.S. Oh yeah, the jMonkeyEngine SDK works on Linux which is probably useful to some people I would imagine. Plus you don’t even have to use the jMonkeyEngine SDK, you can use any Java IDE, such as Eclipse, and just include the jMonkeyEngine libraries in your project.

I have been pushing the bge for some time now, and am finally getting nice resaults from it.

I wish python were easy to thread, I don’t think the bge is very easily threaded do to the game loop, but I am not sure.

The game looks nice though, do you upload videos to youtube?

I do have a YouTube channel with a variety of stuff relating to other projects I’ve worked on, but I haven’t made any videos of Carpe Diem yet. I’ll be showing some more of Carpe Diem’s game play in the not too distant future, but right now I’m doing some memory profiling because I’ve been running out of memory while letting the AIs duke it out on some of the larger maps.

I’ve optimized the problem area a bit, but I’m pretty sure I’m going to have to end up including launchers for all three versions, Win/OSX/Linux, so I can supply the Java VM with the -Xms & -Xmx arguments. The Java Virtual Machine allocates a certain amount of memory at startup and the amount allocated is, by default, a small portion of the host machine’s physical memory. By specifying the -Xms & -Xmx options I can customize that allocation so I have more to work with. Right now my machine seems to be allocating around 170MB max and that’s just not enough. In addition to that I’ll probably end up adding in some type of unit limit or something.

As for BGE, I enjoyed working with it, but I felt asset management was considerably lacking or, really, non-existent. Never did any threading in the BGE specifically, but I did do some threading with a couple of Python applications I made some years ago. I remember it being a bit of a pain, but at the same time it was my first experience with threading in general and threading in any language can easily introduce problems.

P.S. For the record I thought the BGE was great, I’m just terribly unorganized so I need all the help I can get when it comes to asset management :slight_smile: