Game Idea: Space Trading Sim + FPS Style RPG

December 4th, 2008 10:58 AM by Luke Maciak

We had so much fun designing our imaginary Stealth Survival Horror game that I want to do it again. Here is my new idea: Space Trading Sim + FPS style RPG. Let me give you a Hollywood pitch for this one:

Freelancer (actually Elite/Frontier but no one remembers these games) meets Morrowind/Oblivion. How does that strike you? I think it could be loads of fun. The game would essentially consist of two different modes. Parts of the game would be played “on foot” from a first person perspective. This is how you would do most of your trading, acquire quests, purchase equipment, parts and/or new ships. Then there would be “ship” mode where you actually get to steer your one-person space freighter, explore, dogfight with pirates, mine asteroid fields and do all sorts of other crazy stuff.

Before you say that this sort of thing would be an impossibly complex project, let me explain my idea fully. I gave it some thought and you are right. Making something like this happen on a scale you have seen in Freelancer, or Darkstar One (not even mentioning good old Frontier) would indeed be virtually impossible. My idea is to scale the game back a bit in order to make it work. How do we do that? We borrow the premise from Firefly!

Instead of an immense universe to be explored, lets confine the game to a single solar system or a network of 2-3 solar systems connected by wormholes. These systems have few dozen inhabitable planets in total, twice as many small moons some of which have been terraformed (fully or partially) and some of which are used for mining. There are also bunch of space stations, and asteroid mining stations scattered all over the place.

croppercapture105.jpg

Naturally you won’t have to make the whole planet surface accessible to exploration on foot. In fact that would be crazy. Good assumption to make would be that the player would only be allowed to explore the space port area, and adjacent locations. This can be easily explained through the game’s narrative. For example, the rich core worlds would be extremely paranoid and xenophobic (see Firefly again) and thus their space ports would work as closed, self sufficient ecosystems. Only citizens would be allowed to leave the area, and only after being subjected to thorough identity tests (DNA test, retina scan, etc). The player would be locked out.

On the other hand the Frontier planets would either be partially terraformed and have lethal atmosphere or simply be desolate. So even if the player managed to leave the space port, he would find himself in an endless dessert, steppes or even bare rocky plain.

Since we would only have a dozen or two of planets, we could design a unique space port for each of them. Available locations for exploration would be the docks, adjacent bazaar or trade district (depending on how “civilized” the planet claims to be), living areas (or hotels of offworlders), bars/taverns, and on major planets even some features like community parks, libraries, governmental buildings and etc. Same goes for major space stations, and large terraformed moons. Mining stations on the other hand could be tiny - perhaps even only few rooms, and occupied by 8-10 NPC’s each.

croppercapture106.jpg

If you think about each planet/moon/station as of a Morrowind/Oblivion town you can easily see the scale of the project would be feasible here. Especially since you wouldn’t need to create walkable, interesting, scenic routes between these locations. They could exist in perfect isolation since all the travel would be done through space.

Since we are working with small scale universe I would not include any kind of hyperspace jump capability. In fact, I’d make traveling between planets semi-realistic in that it would take you weeks or months of relative in-game time to reach your destination. Of course you would be able to skip the boring travel parts by hitting the auto-pilot button which would either speed up time or instantly skip to the destination barring any random encounters with pirates an/or police patrols.

What usually kills me in most of the modern space sims is the fact you cannot actually land on your own or enter the planet’s atmosphere and fly around like it was possible in Frontier. I’d love to have this option in the game. Your planets could have nice, procedurally generated landscapes appropriate to the planet type and climate. It wouldn’t have to be anything special and/or complex. Just simple stuff like lakes, plains, forests, mountains and etc.. We would make the planets on a smaller scale so you wouldn’t actually have to generate millions of miles of landscape.

Some people would complain, but Freelancer got away with planets that were smaller than some of the space stations that orbited them so I don’t think this would be a problem. Besides, there would be nothing more rewarding than dropping down onto a planet, and circling the space port few times checking out the area before touching down.

croppercapture107.jpg

You could restrict flying over the highly populated core worlds with many cities. State that it is illegal to do it, and send overwhelming forces against the player to discourage him. For example, say that these planets have long range ground defense lasers which are triggered long before you would be in range to shoot at them. So flying into the atmosphere of a core planet outside of designated airspace is suicide. The proper way to land on these planets would be to ask for landing permission, then switch on auto-pilot and wait.

Also, core planets could have thousands of cities but only some of them would contain space ports open for off-world traffic. Remember, the core is paranoid, xenophobic and downright hostile to outsiders. It adds character to the game, and it helps us to make the game smaller and less overwhelming to make.

Let’s say the player visits one of the less populated worlds. What would stop him from flying by the spaceport or the nearby city and blasting away at the buildings? I say, let them. Make some of them destructible for that very purpose (maybe even make them objectives for some quests). Just have bunch of SAM sites, defense lasers and police/military ships buzzing in the ari at each port making sure that such behavior doesn’t go un-punished. Also, attacking a space port, or civilian buildings from above would set the planet hostile to you so you would no longer land there, and their ground, and orbit defenses would attack you on sight. Any allied colonies would follow suit and also target you. The player would then have to switch to a new ship, and then purchase fake identity somewhere to get rid of his outlaw status.

I’d also have different factions like in Freelancer. Some of them may be hostile to you initially, but by taking certain quests you could become friendly with them. So if you would want to play a space pirate you could, and at some point you would be allowed to trade with other pirate groups and land on their stations and etc.

Because the game would have two distinct modes of play, it would offer much more varied assortment of missions and quests than the average space sim. There of course would be courier missions, escort missions, seek and destroy quests and etc. But you could also have traditional RPG stuff like assassinations, theft (corporate espionage), extortion, demolition and skirmish combat that would be done on foot.

The game is already getting complex as it is, but I’d love to also have an RPG element where you could actually upgrade your character. You would have set of skills, some of which would be useful on foot while others would help you while in your ship. For example, I’d definitely have something like the Mercentile and Speachcraft skills from Morrowind/Oblivion which would allow you to haggle over the price more effectively and/or charm the secrets out of various NPC’s.

I’d probably keep the combat simple and similar to what is done Morrowind/Oblivion though I’d cut it down. Since we are playing in distant future I’d probably completely remove melee, maybe with the exception of fist fighting (minimal damage - with a chance of knocking someone out, especially if attacking from stealth). I’d also stick with only few types of basic armor and weapons - some of which would be unique to specific planets. There would be some unique items with special bonuses to keep the player interested in exploring and taking quests.

I’d also make the game aware of what the character is wearing. I talked about this idea before at length. Essentially, expensive clothes would give you bonuses to mercentile and speachcraft and make NPC’s react more favorably towards you. Some exclusive establishments would even require you to wear a tuxedo to enter. Conversely, walking around in full combat armor with bunch of guns strapped to you would attract police attention and make people scared of you. Some secure areas would have metal detectors at the door, prohibiting you to enter in combat gear.

What do you think? Would you play a game like that? What would you change in the design above? What kind of features would you like to see in that game? Let’s bounce some ideas around!

Video Games are Not Addictive After All

December 3rd, 2008 11:28 AM by Luke Maciak

Most of you probably know what I think about the so called “video game addiction”. If you don’t (and you are to lazy to click on that link that I just posted) I will summarize it here: it is plain old FUD and pseudo-psychological quackery. Even though IANAP I always said that obsessive gaming is a symptom of a more serious problem, not a problem in itself. But not all people share this belief.

Quite a few people seriously believe that you can get addicted to video games the same way you get addicted to crack. It sounds ridiculous when I say it like that, but bunch of real psychologists did stake their careers on this theorem. Some time back in 2006 bunch of these people actually opened a clinic in Amsterdam for treating young people afflicted by video game addiction. That place still exists and it is called Smith & Jones Center and they have been working with video game addicts ever since.

After over two years of working with young obsessive gamers, and analyzing their results, treatment strategies and case studies they realized something that quite surprised them. Over 90% of their patients were not actually addicted.

From the article:

Using traditional abstinence-based treatment models the clinic has had very high success rates treating people who also show other addictive behaviours such as drug taking and excessive drinking.

But Mr Bakker believes that this kind of cross-addiction affects only 10% of gamers. For the other 90% who may spend four hours a day or more playing games such as World of Warcraft, he no longer thinks addiction counselling is the way to treat these people.

“These kids come in showing some kind of symptoms that are similar to other addictions and chemical dependencies,” he says.

“But the more we work with these kids the less I believe we can call this addiction. What many of these kids need is their parents and their school teachers - this is a social problem.”

In response the clinic has changed its treatment programme for gamers to focus more on developing activity-based social and communications skills to help them rejoin society.

Only people who were already prone to addictive behaviors and already developed alcohol/drug dependency could be classified as video game addicts. Other patients turned out to have deeper underlying problems that drove them to obsessive gaming. Which is what I have been saying all along. Didn’t I say it?

I FUCKING TOLD YOU SO!

And I’m not even a Psychologist. It was common fucking sense! But then again common sense is so rare these days we should really re-name it to un-common sense.

Not surprisingly, most of the young men treated at the clinic were actually hooked on the social aspect of online games. That’s where they sought support and acceptance:

“This gaming problem is a result of the society we live in today,” Mr Bakker told BBC News. “Eighty per cent of the young people we see have been bullied at school and feel isolated. Many of the symptoms they have can be solved by going back to good old fashioned communication.

By offering compulsive gamers a place where they feel accepted and where their voice will be heard, the clinic has found that the vast majority have been able to leave gaming behind and rebuild their lives.

Let me put this into perspective for you. I’m pretty sure most of my readers are familiar with online gaming culture. Would you seek meaningful relationships and social acceptance and/or support in the Barrens Chat or on some CoD server where “U R ALL FAGS!” is considered a tame and rather polite greeting? You have to imagine how badly someones real life must suck if they choose to socialize in places like that. Yes, these guys need help - but detox is not the right treatment here. They need counseling and/or group therapy or something among these lines. They need a social support system. Hell, I’d even venture a guess that once their social problems get resolved most of these people could easily return to gaming on casual basis without the danger of relapsing.

I especially liked the closing words of that article, so I’m going to quote them here:

Mr Bakker sees a time when addiction centres like Smith & Jones could close down if parents and adults in the community took more responsibility for the habits of their children.

“In most cases of compulsive gaming, it is not addiction and in that case, the solution lies elsewhere.”

Yup! Amen to that! As with many other problems, the best solution here is to educate parents, teachers and community leaders about these things. Video games are an easy target - you can make them a scapegoat and blame them for your child’s problems. But as it turns out, they are relatively harmless. If your kid is playing WoW for 12 hours it is not because Blizzard made an addictive or psychologically destructive game. It is likely your fucking fault. Take some fucking interest in your kids life and talk with him. Ask about his problems. Make sure that at least at home these kids are getting the support and acceptance they need, so they don’t have to seek them in online gaming communities.

I officially consider this topic closed. Conclusively I might add. The very people who came up with the idea of opening a video game addiction clinic have admitted they were wrong. Not only that, but they said that obsessive gaming is a social problem can be effectively eliminated or snipped at the bud by attentive parents willing to put effort into communicating with their kids. If the addiction bullshit comes up again in the future, I’m just going to link back to this post.

AppJet: Another Cloud Application Framework

December 2nd, 2008 10:52 AM by Luke Maciak

A little while ago I talked about Google App Engine being a sign of new good things to come. I was convinced that this was too good of an idea to just be ignored. Other people were bound to get into the free cloud application framework business and I was right.

Go and check out AppJet.com. It is another free cloud application framework that allows you to write and host your application on their server for free. Many people were confused and/or disappointed to learn Google’s service only allowed Python. Personally I adore that language so I have no clue what was their problem. But the truth is that the very first feature request on their App Engine code page was to add Java Support. Number 13 was to add PHP support. Sigh… Give people great app with an elegant, succinct language and they immediately want to replace it to replace it with the uglies. Let’s face it, Java is overly verbose and PHP can’t compete with Python on prettiness or consistent, straightforward syntax. Both are good languages but, eh… I can see why they went with the big Python.

AppJet went a different route and picked a language that most people know and love (or hate). And no, it’s not Java. You see, AppJet folks are a forward thinking lot, and they picked a language which has a bright future ahead of it: Javascript.

You get access to basic Javascript with their custom set of server side libraries including a custom permanet storage system. I find their storage solution quite ingenious actually. It is simply a javascript object and you assign properties to it as to any other object - it just sticks around.

There are two awesome features that set this service apart from Google App Engine though and I can’t decide which one of them is more awesome. First is their incredible web-based IDE. You just have to see it, and if you are to lazy to explore their page, here is a screen shot:

AppJet IDE

You can actually edit your code right in your browser. No ftp/sftp, no custom uploader apps (like in Google App Engine). How awesome is that? Everything you need is on a single page. On the left you have your code window with nice accurate code highlighting. On the left you have a preview pane so that you can see your changes in real time. I’m really impressed with this feature - it is possibly one of the best apps of this kind that I have seen recently.

Second great feature is the fact that AppJet does not lock you into their cloud the way Google does. If you are not happy with their hosting, or for some reason can’t use it you can download their server software as a single jar and host it on your server. All you need is a recent JVM.

To see what this technology is capable off, check out EtherPad - a collaborative real time text editor which runs on the AppJet stack. Quite an impressive service if you ask me, showing that AppJet is capable of much more than just little toy projects.

I can totally see myself using AppJet for some small throw-away apps in the future over Google App engine - if nothing else, just because of the online IDE and the fact it does not lock me into their hosting so I could easily migrate my app to a self hosted environment if I wanted to.

Clojure: Lisp on the JVM

December 1st, 2008 10:39 AM by Luke Maciak

I have found a new toy! It is called Clojure. What is it? It is a Lisp dialect that runs on the JVM. Hey, hey, where are you going!

Crap! Around 85% of the readers just left the site in disgust. Some of them have probably un-subscribed from my feed as soon as they saw the word lisp. Oh well, well have to finish this without them.

What’s wrong with Common Lisp you say? Nothing wrong with it. But if you take a language and put it on top of JVM you now have double the amount of power. Here is the thing about programming languages. No matter which one you pick, it will be missing some library or functionality you will need for your project. It’s always a different thing that is missing, but you will never get a language that has everything. And that’s ok. The JVM languages however have the advantage of being able to tap into the incredibly rich Java API, or to seamlessly invoke stuff written in other JVM languages such as Java, Jython, Javascript (with Rhino) and etc..

This gives you a great deal of power and flexibility as you can imagine. This is why I love Rhino which allows me to produce Java compatible code without actually using the Java syntax. Clojure will allow me to do the same thing but with Lisp.

Of course there other JVM implementations of lisp such as Armed Bear Common Lisp (ABCL) or Second Interpreter for Scheme Code (SISC). All of these are fine, but I like Clojure because it seems to be a very progressive project. Instead of simply porting CLISP or Scheme to JVM they decided to create their own flavor, one built from the ground up with Concurrency and Java interop in mind. Traditional lisps don’t do concurrent programming. Since JVM has a great theading support so some of their implementations (like SISC) try to graft it in. But they are bound by backward compatibility and other concerns so the results may vary.

Clojure on the other threads it’s own path, abandoning some traditional conventions and implementing modern ideas. For one it is strongly concurrent, providing interesting abstractions for dealing with synchronous and asynchronous data access problems. Correct me if I’m wrong but I do not thing that any other lisp implementation has such a through and well thought out threading support.

But that’s not all. Clojure natively implements modern data structures such as hash maps and vectors making them behave as functions. Let me show you and example:

(def a (hash-map "foo" "bar" "biz" "bif"))
(a "foo") ; returns 'bar'

The language also extends standard lispy sequence functions such as map and filter to all objects that implement the Java iterable interface. So you can easily apply them to all the crazy custom data structures from your legacy code base. It also supports attaching metadata to your objects. It allows you to associate arbitrary map (eg. hash-map) to an object which does not affect that objects hash for comparison purposes, and doesn’t count as part of that object but which can be accessed at any time from within your code.

There is more stuff there but you can read about it on the Closure homepage. The point is that this feels like a new, vibrant language that is going places. When you work with CLISP or Scheme you are dealing with a mature, and pretty much static language. They are pretty much set in stone at this point, and they are very reluctant of introducing new features.

Clojure on the other hand is in active development, and is constantly being improved. It has a thriving community, a well maintained wiki page and a clearly defined set of goals and philosophy. It is a very exciting project - and one of the very few times, that someone is doing some new and exciting things with Lisp. It is a good idea to keep an eye on it. I’m not saying it will become the next big language. I mean, come on - it’s lisp. But it does take lisp into new and interesting directions which is a good thing and for one I’m excited about it.

If you want to start messing around with it, you will need to do three things:

  1. First download the clojure.jar and put it somewhere
  2. Second download jline.jar and put it in the same directory (if you skip this part you won’t have history, and left/right arrow support in the console interpreter)
  3. Make put this bash script somewhere in your path:
#!/bin/bash 
CLOJURE_DIR=/path/to/clojure
CLOJURE_JAR=$CLOJURE_DIR/clojure.jar
 if [ -z "$1" ]; then 
   java -cp $CLOJURE_DIR/jline.jar:$CLOJURE_JAR jline.ConsoleRunner clojure.lang.Repl    
else
   java -cp $CLOJURE_JAR clojure.lang.Script $1
fi

This will allow you to invoke the command line interpreter by calling your script without any arguments, or run a script provided on the command line. That’s all you really need to get started. Or you can just run it from the command line but as with many of these JVM language things these invocations tend to get way to long to type them in by hand each time.

So if you are a Lisp person, or you are interested in learning some lisp go and check it out. You don’t need to install anything. Just download few files, put them in a temporary diectory and start plugging away. If you don’t like it, delete them and your done. How easy is that?

Two Programming Polls for the Weekend

November 28th, 2008 11:19 AM by Luke Maciak

Fridays are usually reserved for my entertainment/fun stuff posts and I was initially supposed to post a review of something or other, but I got lazy. So instead I decided to to a poll. It is also a nice choice for Fridays because it will stay on top of the blog for 3 days allowing it to gather more responses until it is pushed down and off the front page.

This is a tech related blog (well, more or less - I tend to branch out more and more) and I have tons of very technical posts here aimed at software developers, and talking about particular programming languages. I know that not all my regular readers are programmers though. I also know that I have some regular readers who never, ever But it would be nice to see what kind of languages are people who visit here using on a day to day basis. I think we did something similar before but not in a form of a poll. This time around I want to know what language you actually use on a daily basis. The stuff you use for work. We all have favorite languages, but these are not always the ones we use at work. So tell me about the language you need to use for better or for worse right now.

I'm currently coding in:
  • Add an Answer
View Results

Please be nice with the write-in option. If I see too much of Chuck Norris I’m going to disable it. Use it wisely!

Done? Ok, now tell me about your favorite language. The one that you wish you were using at work. Your go-to language for all side projects. Or perhaps the language you wish you had time to learn better. I want to see if the two polls sync up significantly or if there is a wide disparity between them:

I wish I was coding in:
  • Add an Answer
View Results

Unfortunately my sample size is pretty small as most polls get under a 100 votes so we might not see any interesting patterns emerging out of this exercise. But there is always a chance that by some random fluke Digg or Redit will bubble this up to the front page and we get more votes before the server catches on fire and melts down. So digg me up if you can!

Oh, and if you are not a programmer and you don’t plan to be, hit the polls too so that I can see comparatively how many people come here for the off-color humor and randomness that I seem to deliver in between my programming related posts. )