The first time we tried to make Lila Dreams (I write that with a cringe and a smile at the same time), we used a server technology called SmartFox Server. It’s a nice bit of software, though it can be pricey for a lone indie. SmartFox offers some nice pre-built features like a buddy system and so on.
Recently, I was looking at another server tech called Project Darkstar. It’s got more advanced (but different) features than SmartFox and, yay!, it’s free and open source. I’ve been poking around with it for a few days, and I’m really liking it. But with these kinds of middleware technologies, you can’t really know how good it is until you use it for something that isn’t a demo.
SmartFox isn’t complex. That’s one of its strengths, really, because you can jump in quickly and go without a lot to learn. It gives you some high level features that you can use without any fuss.
Darkstar’s power can really only be utilized after you understand how it works. It’s designed to be built onto rather than providing ready-made features for you. So you have to know enough to be able to build your own features. It’s not beginner friendly. But that’s its strength, really, because once you get it, there’s a lot of power at your disposal for the problems that it solves.
Anyway, there is a tutorial from a 2008 JavaOne conference, and it’s based on working with a simple MUD engine built on Darkstar. You follow along and add to and change small bits here and there as a way to learn. It’s a really great thing, because you need every ounce of documentation you can squeeze out of the stone that is the Internet. (Translation: there is not much being written out there about Darkstar.)
It turns out, the code used in the tutorial is old and actually doesn’t totally work with the latest version of Darkstar. Instead of patching up the holes, I figured I’d just rewrite the whole tutorial server from scratch! No–really–this is fun! I need to learn about Darkstar, and I need to deepen my experience with Java.
But also I’m learning about how to build a multi-user game. (You may think that a game without fancy graphics isn’t like a game with, but that’s not true. With graphics or without, it has the same networking, data management, and multiplayer game logic issues.) The idea hadn’t dawned on me that making a MUD would be a great way to cut my teeth on client/server coding and technical design for an MMO. It’s loads of fun, and I’m going through all of this with Lila Dreams in the back of my mind. Lots of lights are coming on in my attic.
And, of course, my little test MUD is set in Lila’s wurld. But this isn’t something I will be releasing. It’s only a prototype from which to learn. If it all goes well, I’ll be working on a real game next, but not Lila Dreams. This is a step in that direction, though.
To anyone who visits this blog regularly, above all, I thank you! But also, I hope you will keep Lila Dreams on your radar. The project is at a standstill, but it’s not dead.
Cave Story took five years to be created, and it’s not even an online game. I’m not saying expect that kind of epic time frame, just that the previously planned release date worked on the assumption that there would be funding and a team. Well, it’s just me and my pocket lint now.
Lila Dreams is no longer slated to appear on Kongregate as a premium game. In fact, Remnants of Skystone is the only premium game which will be released in the future. Kongregate will not be green lighting any more games. The economy is bad, so certain things had to give, I’m told.
[Correction: I was under the impression that Skystone was the only other game to be released after Zenning, but it sounds like I may have misunderstood what I was told. My apologies. I didn't mean to confuse or misrepresent anything/anyone. I wish the best for all the developers who will release their premium games with Kongregate!]
This is actually not a bad thing! Since I retain all the intellectual property rights, I am now free to pursue other ways of getting the game off the ground.
The Project
The current circumstances are that I can’t continue the project immediately. I have to build my way up, starting with some other projects which are all designed to get me to the point to where I can work on Lila Dreams again. I need backend infrastructure. I need client code. I need art. And so on. That’s all coming, but being one person, I can only do it in stages.
The Technology Platform
I am pretty sure that I will be using Unity for the client. Lila Dreams will be a 3d game. Being web-embeddable or downloadable is also a nice option to keep open. Plus, there’s a fast growing number of people working with Unity, so I think the pool of talent will be rich enough to tap into later.
The Game Design
I am going to make some fairly big revisions to the design as described in this blog. The game has to be scaled down to a size I can manage alone. I have some ideas for directions I want to go, but I’m still contemplating several different possibilities that I like equally. The difficulty is to choose which one best fits this setting and what I want the game to be about in terms of multiplayer activities.
The Future
My plan is to keep quiet about the project for a while. I don’t want to raise any expectations until I have something tangible to show for it. I don’t want to reveal anything until it’s a certainty, be that gameplay, art, or business model. I will post here from time to time, but there won’t be a lot of noise until significant progress is being made.
This is indie game making, and this is reality. I am sorry to those I have disappointed, but I hope you will give me another chance later. This is a game that I won’t stop working on.
So, some time from now, when you see that Lila Dreams is back in production, it will really be back in production!
I’m generally an optimist. I try to see the good side of bad things. Sometimes, bad things turn out to not be bad things after all.
Something bad: we’re waiting for Lila Dreams to get back into production. The good thing: I get a lot of time to think more deeply about the game design while I’m working on smaller projects.
Right now I am working on a game design which isn’t Lila Dreams, but it is actually revealing a lot about some fundamentals that I hadn’t considered enough. Eventually, I would have, but with constant financial pressure bearing down on you when working on a game someone else is paying for, things just get skimmed and even skipped. It’s actually really nice to just think about the game and not have that constant nagging in my head to “hurry, hurry up!”
So this other game design has as its core mechanics a competitive combat system (which I hope to make into a multiplayer Flash game). In the course of studying other games and reading articles and all that, I am improving my process for developing a combat system. I don’t think that I would have seen some of the dimensions of the design that I see now without the “leisure” afforded by putting Lila Dreams on hold which has allowed me to marinate the ideas in my subconscious for a while.
This will undoubtedly lead to some changes in my ideas for classes and combat in general for Lila Dreams–especially if the combat is not in the context of side-scrolling control mechanics.
The more I think about it, the less I want combat to be restricted to the twitchy, 2d-plane of a side-scrolling game. It would not only open up some possibilities otherwise absent, making encounters a lot more tactical, it would also reduce technical hurdles. Action gameplay (even the more plodding sort I have planned) is a lot more demanding in terms of technical design as well as from physical resources, that is, the servers. (If combat isn’t from a side view, that change cascades to a bunch of others, but I won’t be talking about that for a while.)
The real thing I’m wrestling with at the moment is how my new insights will affect the nature of classes and skills in Lila Dreams. The old debate arises: classes or skills? There will be some of both, as I’ve always planned. There are a lot of ways to make those two play nicely together, and by exploring various approaches in some smaller projects, that will lead to a stronger design for Lila Dreams.
In this game, you are a wind spirit, and you use the Wii-mote to gesture and help a boy past obstacles and dangers. I haven’t played it, but it seems pretty novel in its mechanics and definitely has nice production values.
I love the background elements and how they make the game world feel like it has some depth. NPCs, houses, and distant hills all add to the sense that there’s more “out there” than you see in the gameplay. The soundtrack is really good, too.
I found this inspiring, so I thought I would post it in case you missed it.
I am actually pretty interested in playing Free Realms. It’s maybe the first honest attempt by a big studio to create a solid F2P game. That’s both encouraging (hey, there must be viable income there) and discouraging (big studios drown out us little guys).
But it’s got some good ideas, and it diverges from the hardcore conventions quite a bit in some ways. For example, you can explore without having to fight unless you want to. I definitely find that sort of choice appealing.
So I was watching this video of the game, and noticed that you can change “jobs” at any time. Sound familiar? And they level up independently. Well, I hadn’t really mentioned that part about Roles, but there are skills for each one that you can improve independently.
I guess I shouldn’t feel disappointed, but I do. Well, at least now I know that the idea is solid, and I’m on the right track. There’s a positive spin.
Meanwhile, I’m continually working on refining my game engine technologies, coming up with new concepts to launch that are small enough to finish quickly and will inch me closer and closer to getting Lila Dreams back in production.
This is maybe not a comprehensive plan, but I wanted to at least state publicly what I intend to do about this project. There are a lot of people interested in this game–that motivates me a lot. And it’s also very helpful that I just plain old really want to play it, too! So here’s what’s going to happen.
It’s a holiday, so that slows everyone down, I think. But also I’m crunching for a deadline and so the Flash game I’m working on for that is consuming all (like 12 hours a day) of my time. The upshot, of course, is that all that effort will have multiple payoffs, one of which is building a starting point for Lila Dreams’ client and tools. I’ve implemented some things that had only been hopeful thinking in the past, so it’s really a good thing in the long term.
Once this small project is wrapped up (at the end of December), I can start to put some part-time effort into Lila Dreams again. This will involve building up more code libraries and refining all the stuff I’m doing right now.
One way I want to do this is to create some small multiplayer games. I have a basic server implementation, but it’s not tested and is still incomplete. The best way to get this into shape to handle a full MMO is to use small games to refine it. So, you can expect some progress in that area. Those little games would also help refine the code behind Lila’s client. And, heck, maybe I could make some money on these other games, too. That would really help!
Obviously, then, Lila Dreams will not be in full production for a while. But, in the mean time, I will be releasing games and polishing up the code libraries that Lila Dreams will be constructed upon.
Let me put this in perspective: I’m so anxious to continue work on Lila Dreams that sometimes, after a 12 or 15 hour day of coding my other game, I get in bed with my laptop and just browse the source code as I drift off to sleep. No, that won’t get anything accomplished, but it keeps everything fresh in my mind so my subconscious can crank away on it.
It might be a snail’s pace for a while, but I am going to finish this game.
P.S. I’ve had some offers to help, and I will be contacting folks about this when the time comes. So, if you are one of them: I haven’t forgotten!
Just a quick post to announce that I’ve started another little blog specifically about game programming (with some business stuff in there too). It’s called “Game Geek Speak.” If you’re into Flash and/or Java programming, you might like it.
So there I was. This huge, volcanic Mount Doom of work lay before me. It was dark, grim, and the trees looked taller and meaner than usual. Programming knapsack in hand, I pursed my lips and intrepidly lifted my foot for the first steps up that steep climb…
…then I realized that I was going to need more money. Hmm. Ok, so now I’m working on that problem first. And I haven’t gone up the mountain very far in the mean time.
I guess, to keep with the metaphor, I actually left the mountain and went into town for supplies. One of my goals is to make some small games. I’m building a Flash (Flex) game engine for that, and I’m finding that a lot of the things being built are directly applicable to my beloved MMO (pardon the tech-dork spew I’m about to force upon you):
Game state system with stackable rendering layers? Check.
Component architecture for fabulous flexibility in game object creation? Got that.
Plans for more shiny game engine geek stuff? Hell yeah.
I don’t expect any of that to mean much to anybody. But it felt good, because I am making progress here! Maybe not directly, but this is all stuff that Lila Dreams has to have, so I will eventually pick it up and toss it into the existing MMO chassis–and have one hot ride!! Wooooh, yeah!
But it’s also exciting to me because this is groundwork for a bunch of small games that keep kicking around in my head. I think maybe the Universe has routed me down this path for my own good. I’m learning, I’m doing, I’ve almost got a nice little base of operations to work from so I can build up, up, up. And–eventually–that big, scary mountain won’t be quite so big anymore.
While I’m here in this self-aggrandizing reverie, I will mention (against my better judgment) that I might even start a Flash game portal site. No, not like any you have ever seen. It’ll be… er, I’d better not say anything more. Mmmyeahok.
In summary: Bad news, no progress on Lila Dreams lately. Good news, some progress on Lila Dreams lately (albeit indirectly).
Stay with me here, I’m coming back to the foot of the mountain as soon as I get a chance. Only this time, I’ll be more ready than ever.
Creatrix Games is more indie than ever! Go, underdog!!
The project has slowed to a crawl, unfortunately, because I had to backtrack and am reworking a lot of code from scratch. So, this has destroyed our milestone schedule, and as a result I am not getting any more funding until functionality is back to the point where our previous milestone left off. The sucky part is that much of the code done previously was not viable in terms of being a basis for building upon, so I can only salvage small parts of it. The rest goes in the trash.
The real wrench in the works here is that I still need to eat. (Why?! Why must my mammalian metabolism demand daily fuel?!) I’ve had to divert most of my attention to other projects in order to not starve, lose my house, and become a hobo. This vicious cycle has left me with almost no time to work on Lila Dreams, although it has not drained any of my determination. It just means the game is going to be released a lot later than any of us had ever wanted. Still, I’d rather release late than never!
The good news is that there is running code and a solid, new technical architecture, so at least I have confidence that I can actually get it all put back together eventually. As with many things in life, it comes down to simply finding the hours in each day to get something accomplished.
I do foresee income from my other ventures reaching a point where I can get back to 80% of my time being spent on Lila Dreams, so nobody had better start nay-saying! There’s a bright future for this project. It’s still gonna be awesome.
Following up from part 1, here are lessons 6 through 8. I didn’t quite make it to 10, but at the end, you’ll see what I want to do about that.
Lesson #6: Remember everything else!
…working at an MMORPG is not only programming. You also have to do some advertising, public relations, dealing with the players, read/moderator the forums and the game, and many other things you don’t even think of before you actually have a working game full of players.
This is particularly nerve-wracking to me, because I’m going to need extra help once we launch. So I’ll be calling on responsible, reliable, and enthusiastic community members to help me with as much as they want.
Lesson #7: Do backups!
The good news was that he replaced that machine with a better one (Dual P3, 1.1GHZ). The bad news was that we had no backups whatsoever. So all the player files, the guild files, and pretty much all the dynamic data, plus the logs and ban list was gone.
And not just the game…
One nice July day, while I was at work, a script kiddie used an exploit to gain moderator access, and deleted most of our forums.
I’ve learned this one from running and building websites. Still, you can never assume anything about your hosting with regard to backups. You should do manual backups, too!
Lesson #8: When change comes, so will complaints
…usually whenever we change how something works, there are at least a few players complaining, threatening to leave the game, etc. In fact, whenever we are making something that was previously simple more complex, a lot of players take it almost as a personal insult.
I was thinking that the chance is pretty reasonable, and was hoping the players will enjoy this change, as it was designed to add some spice into a boring activity while reducing macroing as well. However, the intensity of the complaints was overwhelming. Someone went so far as removing one of our download mirrors. But on top of that, people were raging on our forums, threatening to quit, saying how much the game sucks now, and so on and so forth. Even players that were previously on our side whenever we made an unpopular change started to complain to me, saying they will quit playing if we don’t change it back.
The basic player demand is, “Improve the game, but don’t change anything.”
This is pretty scary to me, because I know there will be large adjustments made to Lila Dreams as we add new features and really “figure out” the gameplay (because you never know until you have a full set of players in there if something is really going to work in the long term).
It’s made a little more drastic by the fact that the launch version of the game is not the whole game. But in order to launch something that is “whole enough” and fun, I will have to make concessions to design with the expectation that there will be possibly large changes after that to accommodate the post-launch features. I aim to minimize this, but it’s not an easy thing to do.
Lessons 9 and 10
You have a new quest!
Since I really enjoy blog interaction, I figured we could continue this in comments. As players (and developers?), what are your #9 and #10 lessons?
What isn’t handled well or could be handled better in MMOs you play (or played) that we could learn from? What things have gone right that we could learn from?