Entries Tagged 'Production' ↓
June 3rd, 2009 — Production
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.
It feels good. Like there’s hope.
May 4th, 2009 — Business, In the News, Production
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!
March 17th, 2009 — Game Features, 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.
December 17th, 2008 — 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!
November 25th, 2008 — Production
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.
I’ll have more Lila Dreams news later.
Ta-ta!
November 18th, 2008 — Production
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):
- Asset manager with asynchronous hot loading? Yes.
- Steady 65 FPS multi-layered, parallax scrolling tile engine? Yessir!
- 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.
October 16th, 2008 — Production
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.
September 16th, 2008 — Production
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.
Corroborated by Brian Green (via Raph Koster’s blog):
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?
Any takers?
September 2nd, 2008 — Production
I ran across a really interesting article from 2005: http://www.devmaster.net/articles/mmorpg-postmortem/part1.php. It’s a unique look into how things work behind the scenes of an indie/freeware MMO.
What’s more interesting is I could compare my plans with the author’s experience, and determine if I’m doing anything right. Luckily, most of what he covered I had accounted for. But I thought it is worth highlighting here, and maybe commenting with regard to where Lila Dreams’ development is at this very moment.
So this is part 1, the first five lessons.
* * *
Lesson #1: Nobody reads
…before adding the combat, even though we had a big, red bold text on the download page stating that the game has no combat, people were still downloading, and their fist question was, invariably, “How do I kill something?”
You can always be surprised by how true this is. I knew this from other game development experiences, but it’s easy to forget.
Lesson #2: All or nothing
Eternal Lands isn’t an AAA game, but most of the people expect the same quality from any game they download, even if it’s free or beta. Not surprisingly, 99% of the people that downloaded the game didn’t stay for more than, at most, one hour.
Corroborated by Nerfbat.
A game is only as strong as its weakest feature. Games are more often judged by their weaknesses than their strengths, just like anything else. Any incomplete feature or complete but crappy feature will leave a bad taste in players’ mouths.
If a feature isn’t up to snuff, leave it out until it’s really ready for the public. Of course, this means you can’t promise too much before you launch if you can’t get all those cool features implemented with sufficient quality, or players will be disappointed!
I may have already crossed that line (that’s why I clammed up when I realized development would be delayed by the recent change in staff). But the silver lining is that this is an online game, so we can have constant updates and new features after launch. I hope that takes out some of the sting.
Lesson #3: People will cheat
Even in a freeware game. In any game. Even when it’s kinda pointless. I don’t get it, but we have to take measures against it anyway.
Some resources were placed in very convenient places; for example, there were some flowers right outside of the flower shops so a player could easily make a lot of money by harvesting flowers and selling them 10 meters away in the shop. Macroing is a common cheating method that automates a player’s actions by external macros that simulate specific actions.
Lesson #4: Always make tutorials optional
…a lot of the beginners didn’t feel like doing the tutorials either. They just wanted to “kill stuff”. Consequently, many weren’t able to leave the newbie island, because they didn’t read the NPC texts. In order to address this problem I had to implement a text command to skip the tutorial. Even though the first NPC did say that if you want to skip the tutorial just type #skip, this didn’t really help. For some reason, some people can’t even read small amounts of text. So, in a way, the newbie island was defeating it’s own purpose.
This is kind of a corollary to #1, and like #1 you can never get used to how much people will ignore your work on tutorials.
Lesson #5: Always have tutorials
I decided to just remove the tutorials, and let the beginners start on a larger island, which had “stuff to kill” (as they would expect) and didn’t require any tutorials to leave it.
Nevertheless, many people were now complaining that there is no tutorial… so I implemented a different tutorial on the starting island, which enables (but doesn’t require) you to get more familiar with the game and even earn you a few prizes. This worked much better than the first type of tutorial.
Of course there will be tutorials in Lila Dreams.
This game is a lot different from a conventional MMO, and I view that as a liability as much as a feature. So, I’ll try to compensate by having plentiful, repeatable (but optional!) tutorials to ease players into things.
This is harder than it seems, because consider that the control scheme itself is even a little unconventional (although we’re trying to keep it as intuitive as possible). If a player can’t easily grasp the controls quickly, that’s a big deal. But I think we can make it fairly painless, and the control scheme is not crazy, it’s just not “click here and watch your avatar move to that spot.”
* * *
Next time, I’ll talk about the other five lessons.
August 12th, 2008 — Production
Since I don’t want our beloved community to languish during this lull in our development, I thought I should update everyone on our current activities.
Dave is feverishly learning the code base. It’s big, really big. I know, because I’m learning it too! I’ve promoted myself to real programmer status, and actually it’s pretty fun. So Dave and I are staring up at this mountain we need to climb in order to get production moving at full steam. But we’re not afraid.
(I’m gonna talk a bit tech-head now, because I don’t want to talk game design until we get this baby moving again.)
Actually, I’ve begun to rewrite our tools from scratch. The version we’ve used up to now was a kind of Frankenstein of rushed hacks and patches. It also wasn’t set up to support the workflow I want the project to have. I’m fixing all that now.
Dave is working on getting the server to send assets to the client (whereas before they just got grabbed from a public URL). In the process, we’re building a new asset management system, and exploring all the deep, dark corridors of this MMO engine’s dungeons.
Fun, exciting, and I’ve actually got a very optimistic outlook for the future of the game. Lila is far from over.