New Terra - Diablo meets Fallout

I am looking for a small hand full of artists that are willing to work on a project. Right now the project is just a blank slate. Mainly due to the fact I am not a 2d or 3d artist. Before any programmers sign up please realize this is NOT a Blender project. Everything but the programming side can be done in blender and converted to a working format. This is going to be a browser based game that is being developed with

Current Team

Moved

Who is needed

2d Artist(s)
3d Artist(s)
Concept Artist(s)
Animator(s)
Musician(s)
Sound Effects Engineer(s)
Voice Actor(s)/Actress(es)
Programmer(s)

Technologies that are being used

html5
css3
Javascript/JQuery(Core)
webgl/C3DL*(Graphics Engine)
php 5.3+(Backend)
mysql(Database)

  • = C3DL is subjected to change.

If you do not know what WebGL, then you must google it. It allows 3d in WebGL Enabled browsers. If you are viewing this in IE, just forget it, not till IE9 will you be able to view it. This will also use the C3DL engine for rapid game development. WebGL is just starting to get on its feet and with in a couple years will be brought to its fruitfulness with the new browsers being able to run it just fine. I know that this is a blender forum and this is not exactly a blender project. It will be using blender technologies so it still is partially a blender project. Just I am not going to use bge to develop the project.

Now, about the project.

Download and review the Game Design Document for more details about the game.

Game Theme: Steam Punk style, Diablo Meets Fallout.

The project is a simple one. I want to make a single player diablo styled game. Using the top view and such but a non demonic based game. The game is set on mars some thousands of years past today. Earth is a molten ball of fire due to the sun that has super nova’ed into a white dwarf. Mars is now hospitable and is completely terraformed.

There is alot more detail to the story than this I just do not want to go into great detail on a public forum. Right now I have a few whiteboard “maps” laid out but nothing serious as far as graphics. Below is a basic farm layout and is where the start of the story takes place. The main characters are Three brothers and a Sister who own a farm and have one farm hand. They are basic crop farmers and nothing more till an event happens that the sister is killed and two of the brothers are injured by a gang which is apart of a larger organization. There is a detailed story that me and a friend are working on which is currently being transcribed.

We will be working via Dropbox for project files. Each member will get access to their own folder as not to conflict with any other member. Also you can email me your Dropbox so I may set you up in my folder. More detail will be added as it is completed or available. Also note that no one will actually be considered for the team until the first contribution. Any files contributed remain yours to use how you will but may or may not be used in this game how ever seen fit.

Storyline Breakdown.

Its roughly 20,000 years past mars terraformation which is probably 3.5 million years after today. If you know anything about the sun and its activity you will know that earth will be inhospitable in that time frame because of the suns activity. Now when people left from earth they got everything they could, plants, animals, and as many humans as they could. Mars is 100% hospitable with no terradomes required so that means you can roam freely the only problem is space. You take a planet the size of earth and put it on something about a 1/3rd of its size and it becomes severely overpopulated. This all is realized about a few thousand years after they terraformed which is what they use as a time system now, 0 at = when the planet became terra formed then about 50 at is when they fully colonized Mars(New Terra) about 250 at is when mars name changed, and around 870 at is when over population was seriously bad. The New Terra Goverments decided another planet had to be terraformed and the entire population cant go to the new planet. A few thousand years later they found and terraformed a new planet. About 3670 AT they in-acted a “ticket” system that only people who could afford to go were able to. So only the wealthy and people who could benefit them left while all the criminals and poor got left behind to do as they please. When everyone left again they destroyed almost all technology when they left. Anything anyone could use to leave this planet and trace back to them. In essential New Terra became a wild wild west Australia. Every so often the NEW new terra would send off their criminals to the Old New Terra(where the story takes place) in a drop pods across space. They would reach safely on New Terra but once their they had to either live off the land or live off others. When things settled down after the riots and feudal wars that happened for a few thousand years the world kinda of fell into a co-existence. There was a new order, but not a goverment, that controlled a few gangs and such but basically if you had something they wanted and could not get it from you cheap they ended up sending a gang to kill you and steal it. The order grew because of the criminals that came down every so often with various technology and education.

Now about the initial storyline/game.

In the game you get to pick one of 4 or 5 characters. I have not decided on the sister yet. You do how ever get to pick between three brothers and a farm hand who was from a drop pod. The brothers own a farm and tend to the crops and various animals with their sister. When you start the game as a brother this brother is off selling the latest crops/livestock they gathered and thats when the shit hits the fan so to speak. If you pick the farm hard you get right into action. The brothers is kind of for newbies and the farm hand is more or less going to be a hard mode I think. Since he will be branded in a fashion that people know that he is from a drop pod. A barcode or scar or something that is common with drop pod criminals. The dialog changes per brother and farm hand so people will react differently, and so will events based on which one you pick. Each character as in most diablo fashion games have different skills and traits. The only difference in this game is that it has guns and semi-futuristic weapons. Not to many lasers or anything like that, most of that technology was destroyed, although some was salvaged and some was made from the DPC(drop pod criminals). All of which is expensive and such. We have the first few bits of the farm hand story laid out and some of his quests as well as when one of the brothers join up. Thats also one thing. After you reach so far in the game one of the brothers(the one that was out) ends up joining along as a companion. The main group of bad guys at the beginning are called the “.45’ers”. A small sect of them are responsible for the sisters death, and the beating the two brothers that were at the farm got. The farm hand managed to save them since he was out in the fields at the time but saw the gang ride up and managed to sneak up on the house and based on if you pick him or not, managed to save them or wait till they are gone.

In-game Screens


Well here is an update of my game. I am using a model I snagged online as a player model. The duplicate model to the top left is at 0,0,0 and spinning as a reference point. The interface is actually done in HTML/CSS with no images. Yes that is a custom font. Oh also this is all done in a web browser, for those that did not know. I will soon be getting this online so anyone can see it.


Well not much has changed, worked more on the Mouse movement code, and ripped out the center model for XYZ axis. Showing some of the debug information that I am using. I just wanted to throw this in to keep updates coming. It will be removed on the next major update


Just showing off two new features, Zoom and Pause.

hey im a musician ive mad effects before email me here [email protected]

I have sent you an email

Well here is an update of my game. I am using a model I snagged online as a player model. The duplicate model to the top left is at 0,0,0 and spinning as a reference point. The interface is actually done in HTML/CSS with no images. Yes that is a custom font ;).


Oh also this is all done in a web browser, for those that did not know. I will soon be getting this online so anyone can see it.

Looks pretty cool and I’m glad you’re planning ahead! Unfortunately like all of those who like to give compliments I’m a little too busy to help right now :\

Keep at it though and good luck!

its no big man, thanks for the input. I am actually surprised how fast it renders in chrome. I am playing this flash game on FB and it LAGS after a while, I can leave this up for days and it runs just fine.

I could do some modeling, animation and basic concept art, although I am unfond of texturing. I prefer to do scenery and the like.

anyone is a welcome to the team. This is primarily a hobbyist game atm but I want to push it as far as I can and want to see it eventually live and kicking. Right now I am working on the mouse code. Its acting a bit funny but as soon as I get the bugs worked out I am going to put it on my website for all to view whats going on with the game. Although its not beta nor even pre-alpha its just very basic ATM.

Sounds like my kind of project. The setting is post-modern, right?

I added some details that I mailed imreleen in the initial post. Which I will constantly edit for updates to keep this thread small. Unless I reply to someone. Also as far as models go, do not worry about animations at this point if. Just set them up for animation. I do not think C3DL supports animations YET. This does not hinder me from using it as most other webgl libraries are in their infancy or require a lump of money to use(copperlicht requires you to BUY their editor to add in models). I am pushing on C3DL to add in animation support or explain how to do so currently.

You can email me at [email protected]. I’m working on concept art of the farmhouse right now.

You may use anything at your disposal to do it as long as the models are in Collada. I prefer Google Sketchup for maps, but blender can export to Collada(DAE) files

Here is a bit of code for anyone else who is trying to make a similar Diablo or Fallout game. This code is not entirely complete as it does not decay properly. I will update this as soon as that is done. For the most part this will do what it needs to do. Also I know the line code could be done in a singular function but hey, I am working on other things to worry about 3 lines. Also if you do use this code please let me know so I can check out your project, and give me credit for its use, even modified. Ok now for the code.

Diablo style click/move


  c3dl.addMainCallBack(canvasMain, "gamewindow");
  c3dl.addModel("models/us_soldier/us_soldier.dae");
  var cam = new c3dl.FreeCamera();
  var diffuse = new c3dl.PositionalLight();
  var xcord = new c3dl.Line();
  var ycord = new c3dl.Line();
  var zcord = new c3dl.Line();
  var speed = .1;
  var speedCurrent = 0;
  var speedMax = .1;
  var acceleration = .05;
  var decay = .4;

  var piOver180 = Math.PI / 180;
  var pos = [0,0,0]
  var playerX = 0;
  var playerZ = 0;
  var viewportCoords = [0,0];
  var worldCoords = [0,0,0];
  var selEndWorldCoords = [0,0];

  var mouse_left = false;
  var mouse_right = false;

  var destinationX = 0;
  var destinationZ = 0;
  var radians = Math.atan2(destinationZ, destinationX);

  var degrees = radians / (Math.PI / 180);
  var radians2 = degrees * (Math.PI / 180);
  var oldyaw = 0;

  var player = new c3dl.Collada();

  function canvasMain(canvasName){
    scn = new c3dl.Scene();
    scn.setCanvasTag(canvasName);

    renderer = new c3dl.WebGL();
    renderer.createRenderer(this);

    scn.setRenderer(renderer);
    scn.init(canvasName);

    scn.setBackgroundColor([0,0,0,0]);

    scn.setAmbientLight([0,0,0,0]);

    xcord.setColors([0,1,0],[0,1,0]);
    xcord.setCoordinates([0,0,0], [50,0,0]);
    xcord.setWidth(2);

    ycord.setColors([0,0,1],[0,0,1]);
    ycord.setCoordinates([0,0,0], [0,50,0]);
    ycord.setWidth(2);

    zcord.setColors([1,0,0],[1,0,0]);
    zcord.setCoordinates([0,0,0], [0,0,50]);
    zcord.setWidth(2);

    player.init("models/us_soldier/us_soldier.dae");

    cam.setPosition([150.0, 300.0, 150.0]);
    cam.setLookAtPoint([0.0, 50.0, 0.0]);

    diffuse.setName('diffuse');
    diffuse.setPosition([50,100,50]);
    diffuse.setDiffuse([0.8,0.8,0.8,1]);
    diffuse.setOn(true);

    if(renderer.isReady() ) {
      scn.addObjectToScene(xcord);
      scn.addObjectToScene(ycord);
      scn.addObjectToScene(zcord);
      scn.addObjectToScene(player);

      scn.setCamera(cam);
      scn.setUpdateCallback(update);
      scn.addLight(diffuse);

      scn.setMouseCallback(mouseUp, mouseDown, mouseMove, mouseWheel);
      scn.startScene();
    }
  }

  function update() {
    pos = player.getPosition();

    destinationX = worldCoords[0];
    destinationZ = worldCoords[2];
    if (lastTime != 0) {
      elapsed = timeNow - lastTime;
      if (speedCurrent < speedMax) speedCurrent += acceleration;
      if ((destinationX-pos[0]) >> 0.000001) playerX += ((destinationX-pos[0]) * piOver180) * speedCurrent * elapsed;
      if ((destinationZ-pos[2]) >> 0.000001) playerZ += ((destinationZ-pos[2]) * piOver180) * speedCurrent * elapsed;
      if (mouse_left) {
        radians = Math.atan2((destinationZ-pos[2]), (destinationX-pos[0]));
        degrees = (radians / (Math.PI / 180));
        radians2 = (degrees * (Math.PI / 180));
      }
    }

    PlayerMovement();

    PlayerRotation();
  }

  function PlayerMovement() {
    if (speedCurrent != 0) {

      player.setPosition([playerX,0,playerZ]);
      cam.setPosition([playerX+150,300,playerZ+150]);
      cam.setLookAtPoint([playerX, 50.0, playerZ]);
      diffuse.setPosition([playerX+50,100,playerZ+50]);
    }
  }

  function PlayerRotation() {
    if (radians!=oldyaw) {
      player.yaw((oldyaw-radians2));
      oldyaw=radians;
    }
  }

  function mouseUp(e) {
    switch(e.button) {
      case 0: //left
        mouse_left = false;
      case 1: //middle
      case 2: //right
        mouse_right = false;
    }
  }

  function mouseDown(e) {
    switch(e.button) {
      case 0: //left
        mouse_left = true;
        viewportCoords = getClickedCoords(e);
        worldCoords = getWorldCoords(viewportCoords[0], viewportCoords[1]);
      case 1: //middle
      case 2: //right
        mouse_right = true;
    }
  }

  function mouseMove(e) {
    if (mouse_left) {
      viewportCoords = getClickedCoords(e);
      worldCoords = getWorldCoords(viewportCoords[0], viewportCoords[1]);
    }
  }

  function getClickedCoords(e){
    var canvasPosition = c3dl.getObjectPosition(scn.getCanvas());
    var X = e.clientX - canvasPosition[0];
    var Y = e.clientY - canvasPosition[1];

    return [X,Y];
  }

  function getWorldCoords(mmx, mmy) {
    if (mmx != null && mmy != null) {
      var normalizedDeviceCoords = [(2 * mmx / $("#gamewindow").width()) - 1, -((2 * mmy / $("#gamewindow").height()) - 1), 1, 1];

      if (c3dl.isValidMatrix(scn.getProjectionMatrix())) {
        var iproj = c3dl.inverseMatrix(scn.getProjectionMatrix());

        var clipCoords = c3dl.multiplyMatrixByVector(iproj, normalizedDeviceCoords);

        clipCoords[0] /= clipCoords[3];
        clipCoords[1] /= clipCoords[3];
        clipCoords[2] /= clipCoords[3];
        clipCoords[2] = -clipCoords[2];

        var rayInitialPoint = cam.getPosition();

        var x = clipCoords[0];
        var y = clipCoords[1];
        var z = clipCoords[2];

        var kludge = c3dl.multiplyVector(cam.getLeft(), -1);
        var viewMatrix = c3dl.makePoseMatrix(kludge, cam.getUp(), cam.getDir(), cam.getPosition());

        var rayTerminalPoint = c3dl.multiplyMatrixByVector(viewMatrix, [x, y, z, 0]);
        var rayDir = c3dl.normalizeVector(rayTerminalPoint);

        var angle = Math.acos(-1 * rayDir[1]);
        var camHeight = rayInitialPoint[1];

        var hyp = camHeight / Math.cos(angle);

        selEndWorldCoords[0] = hyp * rayDir[0] + rayInitialPoint[0];
        selEndWorldCoords[1] = hyp * rayDir[2] + rayInitialPoint[2];
        return [selEndWorldCoords[0], hyp * rayDir[1], selEndWorldCoords[1]];
      }
      else return false;
    }
    else return false;
  }

Hello guys. This project is far from dead. I am just writing some of the story line and what will show up in a demo. We still need some team members to fill in. We are not using BGE but blender artists can still contribute to this project. I really need some modelers and texture artists. Static models needed only till the animation engine is competed so there is no need for taking time for animations, just set up the armatures and we will work on that after my side is done. Concept artists are wanted as but if you can do it in 3d you are needed more so.

Here are some screens of the Javascript based main menu. More will come soon. I need someone who can design a good menu around this idea. This is about how I want it to look like. Colors can change, but the menu names and order stay the same. Other than that anything else can be changed. The alignment, font, color. Needs a generic background image for the backdrop. Anyone up to it?


This is the initial menu. It uses html and css for the highlighting and such but uses jquery for the slide animation.


Shows the Single Player menu and hover states


Showing off the Multi Player menu. The second menu option will only show if their is a character it can load.

I’m on it. I’ll get it into dropbox in a day or two.

you must be on dialup then because the file is less than 22k. Either way its the fine by me. It is the Farm hands story line which will be a hardcore mode, and be the demo for the game since his story actually starts sooner then the brothers story line. Also if you need any tools let me know and I should be able to get an open source equivalent.

Some more shots of the menu. More comming soon.


Showing of the possible options menu


This will show the requirements for each system. The game will pre-check for browser and OS and possiblly the hardware to. If I can find an unobtrusive way of handling that.


This will show people how to contact the team to submit bugs or what ever.

The first release of the Game Design document. This is a very stripped down version, hence the v0.01. This should provide a good picture of what I am wanting this game to be. This is a long document and is not completed. Its about 75% complete as far as sections having something in them but about 20% complete with a good amount of detail.

Hello all. This project is still going strong and now has a facebook page. The up to the minute updates will be there while all the major updates will be here and there. Check it out and be sure to change the filter to New Terra+Others to see the other team members posts.