Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Destiny/Zack0Wack0

Pages: [1] 2 3 4 5 6 7
Games / Phaedra - Centhra's Ludum Dare 25 Jam entry
« on: December 18, 2012, 08:51:42 PM »
You are the evil overlord of a dungeon fortress and adventuring parties are raiding your dungeon for treasures and ultimately are attempting to slaughter you in the name of their king! To keep yourself safe while your army die horribly for you (as any good villain would), you stay in the luxurious heart of your fortress, watching over the battle with your seer's magic. You decide that without your brilliant command, the battle will be lost, so you use your magic to control your minions from afar and control the tide of the battle against the onslaught of heroes.

The game blends the action and strategy genres by allowing you to control a minion directly with the WASD keys and attack, or select a group of minions using left click and drag and then right click to direct them towards enemies.

The aim of the game is to prevent all of your minions from dieing, as they are the only thing stopping the heroes from getting to the heart of the dungeon, slaying you and stealing all of your treasure. The top left of the HUD shows a progress bar, which at the start of the game has a red bar and a blue bar which are of equal length. The red bar represents how close the minions are to killing all heroes (i.e. how close you are to winning) and the blue bar represents how close the heroes are to winning (i.e. how close you are to losing). There are four waves of heroes (the next wave starts after you kill all the alive heroes, an exclamation mark is shown on the minimap where the new wave spawn is). If you kill all four waves of the heroes and have minions left, you win and get to keep all your treasures and life!

left mouse - clicking on a minion (your evil servants fighting the invading heroes) will select it
left mouse + drag - select a group of minions and then right click somewhere to direct them towards it
right mouse - direct your selected minions to move to a position
w, a, s, d - movement when a minion is under control, otherwise moves the camera
shift - faster camera movement
space - attack in the current direction when a minion is under control
arrow keys - move the camera
escape - stop controlling any minions

Download or Vote (submitters only)

- SolarFlare (Art)
- Trinick (Code)
- Dr. Calamity (SFX / Music) - not on these forums
- Kheyre (Misc.)
- Trigun (Code)
- Shadowbeing (Party Host)
- z0w0 (Code)

Made in 72 hours.

Modification Help / Don't propagate the XY Problem
« on: November 29, 2012, 03:01:49 AM »
It seems Coding Help would benefit if everyone learnt about the XY Problem and why it's the cancer of programming forums.

You want to do X, and you think Y is the best way of doing so. Instead of asking about X, you ask about Y.
You're trying to do X, and you thought of solution Y. So you're asking about solution Y, without even mentioning X. The problem is, there might be a better solution, but we can't know that unless you describe what X is.
Someone asks how to do Y when they really want to do X. They ask how to do Y because they believe it is the best way to accomplish X. People trying to help go through many iterations of "try this", followed by "that won't work because of". That is, depending on the circumstances, other solutions may be the way to go.
To answer question Y, without understanding larger problem (the context) X, will most likely *not* help them entirely with X.
A.k.a. "premature closure": the questioner wanted to solve some not very clearly stated X, they concluded that Y was a component of a solution, and now they're asking how to implement Y.
The XY problem is when you need to do X, and you think you can use Y to do X, so you ask about how to do Y, when what you really should do is state what your X problem is. There may be a Z solution that is even better than Y, but nobody can suggest it if X is never mentioned.

Modification Help / Don't lock or edit your topics
« on: January 25, 2012, 06:43:48 PM »
It's been said a fair few times before, stop locking your topics here. A majority of the time when someone thinks they've solved something, they lock the topic. But there is always something that they might have missed or there may be a better method to use, but they've locked the topic so no one can tell them. In this case, sending a message to say they could do it doesn't work because people might be searching for help with their code and looking through the topic, see the method that resulted in the lock and think it's the best method, when it's not.

eg. Someone might need to know how to ignore certain iterations of a loop in the following code (they're returning, which breaks the entire loop):
Code: [Select]
for(%i = 0; %i < 10; %i++) {
if(%i == 5)


Someone responds telling them that they can wrap the echo in an if which checks if the iteration is not 5:
Code: [Select]
for(%i = 0; %i < 10; %i++) {
if(%i != 5)

It's fixed! It works fine, so the person locks the topic. But something important has been missed, which could potentially help others or simplify the original poster's code:
Code: [Select]
for(%i = 0; %i < 10; %i++) {
if(%i == 5)


I think I remember that Ephi once unlocked topics and posted something about how people shouldn't lock them but they keep doing it anyways.

You also forgot to mention these things:

Never edit out the OP, ever. (or any post for that matter, unless you made a typo) When something changes, make a new post. When people need help later on and are smart enough to search, all they see is working code being declared wrong because you edited it into the OP. All it does is confuse them.

Never recycle your topic for a new problem. Make a new one. If anyone has a problem, I'll sort them out. All it does is add extra confusion especially for people searching. They'll never find the old problem because you changed the title, and likely all the posts within it.

Modification Help / Baseplate - support platform idea
« on: January 05, 2012, 08:42:36 AM »
Sometimes programming in TorqueScript can be a bit of a pain. So I had an idea a while ago for a little support script that someone could execute and it would wrap TorqueScript things into a simple interface. It works a lot like jQuery, with recursive or chaining of functions and is completely event-orientated and a tiny bit asynchronous. Here's a little bit of examples of what it can do (the global object is known as _ for quick coding, $Baseplate if you're picky):

Code: [Select]
_.on("client connect", sayHello);

function sayHello(%client) {
_(%client).message("You're now admin.").admin(true).message("Just kidding.").kick();

The engine is basically event-based, which means you bind a callback to an object based on a specified event and then when that object triggers that event (or "it happens") the callback is called (usually with additional arguments, depending on the event). The first bit is a function that binds the global event "client connect" to the function/callback "sayHello" (which is then defined below it). "sayHello" is passed the %client object who just connected to the server and called whenever a client connects.

Then the real magic of the recursive nature of the library starts. The first function is just the function "_", which at the moment just returns the object if it is passed an object. This is only used to signify the fact that you'll be using a baseplate chain for easier reading, and it's possible it'll be required in a future version (if there is one). You'll notice it's one big long line (and it might look a little messy like that, but you can make it look nicer by putting a new line between the dots). This is because every function that takes a value (for eg. the "message" function is a method on the client that messages a value to the client) then returns the client afterwards.

The first function messages the client telling them they're getting admin, then returns the client object, which then can be recursively used again. Then the client is made an admin (admin(isAdmin)) and then the client object is again returned. The client is then messaged saying it was a joke and then the client is returned. Then finally the client is kicked from the server. Note: all of these functions are defined by this library.

But that's just a simplistic example, there are plenty of other cool features. Note: Most methods in the library return the current value of a property of an object when no arguments are supplied, but set the property of the object to a supplied argument and then return the object if an argument is supplied.

An array class (all baseplate methods that need some sort of array thing use this):
Code: [Select]
%array = _.Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
%another = _.Array(11, 12, 13, 14, 15);

%array.push(11).pop(); // add 11 to the end, then remove the last element (hence removes newly added 11)
%array.concat(%another).each(forEach); // concatenate (joins two arrays) and then return a newly joined array, but then do a foreach loop on it and calls the specified callback ("forEach") with every value in the array

function forEach(%value) { // called for each value in the array
} // echos all the way between 0 and 15

echo(%another.join("\t")); // joins an array together into a string, delimited by a string value
// echos "11\t12\t13\t14\t15"

%zeros = _.Array();
%zeros.allocate(100, 0); // sets the array size to 100 and fills all elements with zero
%zeros.set(0, 1).reverse(); // sets the first element to 1 and then reverses the array, hence 1 is now the last element (the 100th element)

A platform object (and class, but it's auto instantiated) that gives you underlying connections to the player's computer. Because all of the methods are generally accessing things controlled by the computer, the only thing that takes an argument to change it's property is .clipboard and .resolution.
Code: [Select]
%platform = _.platform; // also _.Platform() or $Baseplate::Platform

echo(%platform.os()); // echoes "windows" or "macintosh", as they are the only operating system that currently work for blockland
echo(%platform.ram()); // echos the amount of ram the computer has
echo(%platform.clipboard("lol this is on the clipboard").clipboard()); // sets the clipboard and then echos the value of it, should echo what it was set to

%resolution = %platform.resolution(); // returns an array of the computer's resolution

echo(%resolution.get(0) @ ", " @ %resolution.get(1));
%platform.resolution(800, 600); // set the computer's resolution to 800 by 600.

// and others that aren't as useful

A benchmarking system for testing the speed of something (usually against another method):
Code: [Select]
function test1(%time) {
if(%time) // finished
echo("test1 took " @ %time);
getRandom(1, 10);
function test2(%time) {
echo("test2 took " @ %time);
getRandom(1, 1000);

// do 1000 tests of each
_.benchmark(test1, 1000);
_.benchmark(test2, 1000);

A simplified schedule system:
Code: [Select]
function callback1() {
echo("callback1 called");
function callback2() {
echo("callback2 called");
}, callback1); // in 4 seconds after this is called, call callback1
_.every(5000, callback2); // every 5 seconds call callback2 (repeating schedule)

Extended string operations:
Code: [Select]
%string = _.string;

%string.toUppercase("dogS"); // -> DOGS
%string.charAt("bbbac", 3); // -> "a"
%string.fromCharCode(%string.charCodeAt("zed", 0)); // -> "z" (ascii map manipulation, useful for lots of things)

function tokenCallback(%token) {

%string.tokenize("dogs:are:animals:omg", ":", tokenCallback);

Extended math operations:

Code: [Select]
%math = _.math;

echo(%math.PHI); // more constants too

%math.cos(3.14); // all trig in radians, just like torque
%math.atan(0.5); // this is the standard atan, torque forces atan2 on you
%math.atan2(0.5,0.5); // torque's version (works better for complex math)
%math.round(0.4); // 0
%math.radians(90); // %math.PI / 4
%math.degrees(%math.PI / 2); // 180
%math.ln(100); // natural log
%math.exp(10); // exp function
%math.random() // random value, or %math.random(min, max)
%math.fraction(10.2); // returns 0.2 (fraction part of a number)
%math.base(50, 2); // 11010 (converts from one base to another, %math.base(%value, %to [, %from = 10]);

Crypto functions:
Code: [Select]
%crypt = _.crypt;

echo(%crypt.sha1("i am laughing hahahah dogs")); // uses native sha1 algorithm in torque
// %crypt.md5("dogs are funny"); needs big number math, almost works but torque's large number handling breaks it
echo(%crypt.base64Decode(%crypt.base64Encode("ninjas are smart")); // ninjas are smart

And then other things, like working with game objects (clients, players, bricks):
Code: [Select]
%brick.popState(); // back to how it was when pushState was called

Other things I've thought about are JSON handling, XML handling, networking utilities and stuff. Is this pointless or would people actually use this library?

Add-Ons / User Content alpha
« on: November 11, 2011, 07:16:00 PM »
Any files placed in the config/content folder will be put in base/. This allows you to make GUI edits and such, to get around the Blockland patcher.

eg. config/content/client/ui/Title.png will put in the base/ folder as base/client/ui/Title.png and when the game starts up you will see your version of Title.png.

It works by overwriting any files in the base folder with any files in the content folder, and Blockland automatically fixes it up via the patcher when it starts up so if you delete any files in the content folder and the overwritten files are still in the base folder, the Blockland patcher will fix it up automatically.


Modification Help / Unofficial Blockland API v1
« on: September 18, 2011, 10:22:27 PM »
I made a little API for fun and to muck around with node.js. It's located at:

All output is formatted in JSON. The master server is queried and cached every 2 minutes. All commands can have an optional 'callback' argument to use JSONP. Arguments are parsed as GET parameters (if you are familiar with my Server Status image thing, like that) for example if you wanted to set the host and port arguments you would use '?host=Centhra&port=30000'.

The rank value is a calculated rank for the server. It's formula is: ln(average players + 1) + sqrt(average bricks)^(average players / 100). This'll probably change.


Lists all the current online servers. An example response (normally there'd be more then 5 servers, this is just an example):
Code: [Select]
"version": 1,
"status_code": 0,
"status": "",
"servers": [
"online": true,
"ip": "",
"port": 28100,
"dedicated": false,
"passworded": false,
"host": "Kiwibear",
"name": "Kiwibear's Server of Stuff",
"players": 3,
"max_players": 20,
"map": "Adjustable Plate",
"bricks": 538,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 765,
"counted_players": 1745,
"counted_max_players": 15300,
"counted_bricks": 4038238,
"average_max_players": 20,
"average_players": 2.281045751633987,
"average_bricks": 5278.74248366013,
"rank": 2.2908594994443305,
"last_seen": "2011-09-14T23:10:33.351Z"
"online": true,
"ip": "",
"port": 28100,
"dedicated": false,
"passworded": true,
"host": "Surburb",
"name": "Surburb's CityRP [Beta 2.1]",
"players": 8,
"max_players": 16,
"map": "SurburbfulRP",
"bricks": 188696,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 684,
"counted_players": 1587,
"counted_max_players": 10957,
"counted_bricks": 82365155,
"average_max_players": 16.019005847953217,
"average_players": 2.3201754385964914,
"average_bricks": 120416.8932748538,
"rank": 2.3453734545274747,
"last_seen": "2011-09-14T06:18:33.270Z"
"online": true,
"ip": "",
"port": 28100,
"dedicated": false,
"passworded": false,
"host": "zaman101",
"name": "zaman101's Blockland Server",
"players": 1,
"max_players": 32,
"map": "Bedroom",
"bricks": 663,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 72,
"counted_players": 55,
"counted_max_players": 1782,
"counted_bricks": 185551,
"average_max_players": 24.75,
"average_players": 0.7638888888888888,
"average_bricks": 2577.097222222222,
"rank": 1.5979750034523665,
"last_seen": "2011-09-18T15:56:33.360Z"
"online": true,
"ip": "",
"port": 28100,
"dedicated": false,
"passworded": false,
"host": "Saphire Legend",
"name": "Saphire Legend's Grapple Knife TDM",
"players": 5,
"max_players": 20,
"map": "Slate Desert",
"bricks": 6445,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 12,
"counted_players": 45,
"counted_max_players": 240,
"counted_bricks": 64438,
"average_max_players": 20,
"average_players": 3.75,
"average_bricks": 5369.833333333333,
"rank": 2.7328711160207195,
"last_seen": "2011-09-19T01:32:33.293Z"
"online": true,
"ip": "",
"port": 28000,
"dedicated": false,
"passworded": false,
"host": "macy",
"name": "macy's bulide a lab",
"players": 1,
"max_players": 8,
"map": "Plate2",
"bricks": 392,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 537,
"counted_players": 448,
"counted_max_players": 7536,
"counted_bricks": 289401,
"average_max_players": 14.033519553072626,
"average_players": 0.8342644320297952,
"average_bricks": 538.9217877094972,
"rank": 1.6332265601349283,
"last_seen": "2011-09-16T01:00:33.363Z"

Requests the information for one specific server. It accepts a host argument, an ip argument and a port argument. This works like my Server Status images. If you wanted to find the data for the host 'Centhra' and only on the server port '30000' then you would use '?host=Centhra&port=30000'. The port part is optional, in order to select single servers out of multiple servers for one host or ip. The ip argument or host argument must be set, otherwise it's impossible to find the server. Example response:
Code: [Select]
"version": 1,
"status_code": 0,
"status": "Found the server.",
"server": {
"online": true,
"ip": "",
"port": 30000,
"dedicated": false,
"passworded": true,
"host": "Centhra",
"name": "Centhra's Dueling Beta",
"players": 30,
"max_players": 99,
"map": "Skylands",
"bricks": 9340,
"preview_image_url": "",
"preview_thumb_url": "",
"counted_times": 2107,
"counted_players": 17958,
"counted_max_players": 66444,
"counted_bricks": 20613428,
"average_max_players": 31.53488372093023,
"average_players": 8.523018509729473,
"average_bricks": 9783.307071665875,
"rank": 3.7330073029851434,
"last_seen": "2011-09-16T02:56:33.332Z"

Requests the statistics collected by the API server. There's not too much that is returned yet, and I still have to add 'most_popular_host'. All the returned fields are self explanatory, except 'map_tally' which is just the number of times a map has been counted on the server. Example response (without the entire bit of 'map_tally' because it clutters it up):
Code: [Select]
"version": 1,
"status_code": 0,
"status": "",
"stats": {
"counted_bricks": 5097453364,
"counted_players": 745500,
"counted_servers": 323338,
"counted_times": 3477,
"average_players": 214.40897325280415,
"average_bricks": 15765.092145061824,
"average_servers": 92.99338510209951,
"unique_servers": 2138,
"online_servers": 116,
"most_popular_map": "Adjustable Plate",
"map_tally": {
"Slate Fields 2": 3205,
"Slate Desert": 14082,
"Skylands": 37031,
"Plate 3": 24292,
"Bedroom": 38540,
"GSF Paradise": 2016,
"Mikes House-Storm": 36,
"Slate Fields 4": 142,
"Adjustable Plate": 50158,
"Slate": 21838,
"Slate Astro": 3344

Possible future commands: /addon (info about addons), /user (info about Blockland users)

What the forget does it mean?
For coders, it's a little tool to see your server's rank, average bricks, brick count, player count, etc.
For non-coders, it's just collecting useful statistics that'll probably turn into a summary page one day.

Games / Warzone 2100 [Repost]
« on: May 30, 2011, 03:46:21 AM »

It's the late 21st century, and the world's civilisations have been wiped out by a series of nuclear strikes. Most of the humans, desperate for survival, scatter into colonies of scavengers. You work for "The Project" - a group of people desperate to reconstruct Earth to it's past state. To do this you need artifacts that help scientists mirror old technology. But the only people who still have artifacts are scavengers, go figure. Eventually as you play through you figure out who it was that nuked Earth.

The game is old-school 3D. You can also rotate the camera, zoom in/out, and pan the camera. You may also see a unit's perspective of view. (but not control it like a TPS game)

There are 4 major factions in the game, Nexus, the Project, the Collective, the Scavengers and the New Paradigm. You get to fight them all as the Project in campaign however in multi-player everyone plays as the Project. There's not really any special features of the units for each faction because you choose how you want your units.

When you collect artefact or build a research station you are able to research certain technology. There are 4 different research areas: base defence (towers, stronger structures), unit defence, unit parts and new structures.

Once you get unit parts from research you can design your own units which is such an awesome feature of the game. Each unit is made up of 3 parts, wheels, body and turret. The wheels simply say how fast the unit goes and how much added defense they have if they are bulkier wheels. The body gives a certain amount of defense and speed as with the wheels. The turret is basically the "function" of your unit, there are weapon turrets and system turrets. The weapon turrets are things like rockets, machineguns etc. the usual. System turrets are repair units, sensor units for scouting, engineer units etc. There are over 400 parts for making units with and over 2000 possible unit combinations.

This game is simply addicting. The online play is so fun because the AI are very smart (and OP) and thanks to a mod that comes with the latest build AI learn from their mistakes. It took me a while to port forward for it but I got it done and I played with Wookiee a few times. The the first and second times we got absolutely obliterated by the AI. Then we played another game with Racer, free for all. I took over the middle of the map at the start and then built heaps of tanks and put them in the middle ready for attack. Then Racer came out with rocket tanks and started owning a few of my tanks just sitting off to the side so I selected all my units and came in and killed his base. Then I thought I'd check out Wookiee's base so I sent a few little tanks into his base and viola, he has his whole base surrounded by walls and he has heaps of rocket tanks. So I made a looping production of array rocket tanks with repair turrets at the back. I went in and defeated his base, then fireworks started popping up. It was super fun.


On December 6, 2004 the original developers released the source code and all of it's music/art under the GNU license. A group of developers took up the challenge, made a new site, and are actively developing it (the last release was a few days ago).

There's a map system and mod system. You can create new units, modify how the game works, etc.

  • Zack0Wack0
  • Drakorp

Modification Help / Multi-Stage Scripting Contest
« on: May 07, 2011, 12:43:39 AM »
The judges are:
(me) Zack0Wack0
...more will be chosen later if needed

The contest will be a series of rounds.
Each round, all entrants are given a scripting task and an opponent.

All entrants have a time limit of 2 days to complete the task.
Failure to complete means the opponent wins.
If both the entrant and the opponent fail to complete in time, then neither wins.

After the 2 day time limit ends,
the entrant's and his opponent's finished script is judged by the panel.
The judges choose their favourite of the two scripts and that entrant is the winner.

For every win an entrant gets, they get a point.
The entrant with the most points at the end is the winner of the contest.
If there is a tie at the end, there will be a sudden death round (involving eval on a server, more info if it happens).

Make sure you follow all the guidelines for each task, not doing so will get you bad reception from the judges.
Feel free to add your own little features to your scripts for each task, it will definitely interest the judges final decisions.

1. You are allowed to ask in coding help, but you lose 0.5 points per round that you receive help.
2. If you're discovered to be using any pre-made scripts, you will be eliminated.
3. You are not allowed to work together with others, except of course if it's in coding help.
Breaking rules will result in points being abducted from your score, or elimination.

Anyone can participate, even if you're new to scripting.
Competition is a great way to learn things.
Entrant   Score   Wins
Red Guy22
Resonance Cascade00
Round 1 -- 3 days left from 13/5/11 GMT+10
You must create a money/currency mod.
You must make it as if you were going to release it publicly (Which you can feel free to do when the round is over anyway)
Your script must follow these guidelines:
 - Money must be stored in a variable, for each player
 - There needs to be a grant money slash command for admins
 - There needs to be a take money slash command for admins
 - There needs to be a trade/give money slash command for players
 - There needs to be one or more events for players to use money (eg. paying for an event to dispense a gun)
 - There needs to be a slash command to check money OR a bottomprint that displays it

Round is over!
Treynolds vs Lilboarder (No winners)
Red Guy vs DrenDran (No winners)
Honorable vs Munkey (No winners)
::Matt:: vs otto-san (otto-san)
Resonance Cascade vs Irk89 (Irk89)

Round 2 (5 days to go)
You must create a system for saving and loading data. (ie. a database)
Your script must follow these guidelines:
 - You must design your own file format or use an existing database format (CSV, SQL, XML, etc)
 - It must feature loading and saving of data into files
 - There needs to be a way to access and change data
 - Automatic loading (automatic saving is optional)
 - The data needs to be organised

Munkey vs ::Matt:: (no winners)
Honorable vs Treynolds416
otto-san vs Resonance Cascade vs Red Guy
Irk89 vs DrenDran (no winners)

Round 3 - starts 31/05/11 GMT+10 ends 05/06/11 GMT+10 (5 days)
You must create a mod that allows you to phone/call other users. This is targeted at a roleplay audience.
Your script must follow these guidelines:
 - When a user enters the game, they are assigned a phone number (as many digits as you want, just remember people would use this on signs, notifications, etc. so nothing ridiculous)
 - /call *number* - this slash command will call a phone number, if the recipient is offline the caller should only be allowed to leave one message and then immediately hung up. If the recipient is online, obviously you begin chatting.
 - DO NOT make a slash command to chat on the phone. Make any general chat (pressing T) from the caller or recipient automatically send until someone hangs up
 - /answer - answers phone calls
 - /hangup - hangs up any phone calls
 - /messages - check any messages and read them
 - Notify the user what is going on when they are calling/receiving etc.
Extra bonuses (least important + optional):
 - A way to have automatic answering machines (they can annoy people on Blockland too!) (events?)
 - Deleting messages
 - /call could accept multiple number arguments so you can call multiple people and set up a chat channel

Red_Guy vs Treynolds416
DrenDran vs Resonance_Cascade (no winners)
Honorable vs Irk89 (no winners)
Munkey vs otto-san vs ::Matt:: (no winners)

Round 4 - You have 7 days to complete it from 25/06/11 GMT+10
You must create an output event that fires a projectile at a position or named brick. (ie. spawnProjectileAt)
Your script must follow these guidelines:
 - Functions exactly like spawnProjectile on the brick only it will fire at a position or a named brick rather than a starting velocity.
 - The first argument should be the datablock type.
 - The second argument should be a text box to enter the name of a brick to fire the projectile at. If it is blank it fires it at the position mentioned in the next argument instead.
 - The third argument is a vector saying the position to fire at. Its only used if the named brick argument is blank.
 - The fourth argument is a vector to offset the velocity by.
Pretty easy to complete, I thought I'd make it easier than the other tasks considering the lack of final submissions.

Honorable vs Red_Guy (no winners)
otto-san vs Resonance_Cascade (no winners)
Munkey vs ::Matt:: (no winners)
Treynolds416 vs DrenDran

Once you have completed a task, send it to me.
pecon7 will be give the winner at the top of the ladder after the competition a $15 (possibly $25 if enough interest is raised) reward from anything on the internet.

General Discussion / Remote Control
« on: April 26, 2011, 02:15:27 AM »

Your game sets up a simple web server. You need to login to access it (obviously).

* Manage general preferences (the same as RTB's server control "Server Options" tab)
* Control the server
   * Kick
   * Ban (only perma at the moment)
   * De-Admin
   * Clear personal bricks
   * Admin
   * Super Admin
   * Auto Admin
   * Auto Super Admin
   * Clear All Bricks
   * Chat (no view of the chat, yet)
   * Change the map

* View the chat
* Manage add-on RTB preferences

1) Install the add-on how you regularly do (drag the zip file into the add-ons folder)
2) Start your server up (dedicated or regular)
3) You need to know your hosting port. If you don't know or if you haven't changed it, it will be 28000
4) To access the remote control interface when you are on the same computer as the server, go to the web address http://localhost:yourport in your browser, where yourport is your hosting port (step 3)
5) To access the remote control interface from a different computer (or for someone else on the internet), go to the web address http://yourexternalipaddress:yourport, where yourexternalipaddress can be found here and yourport is your hosting port (step 3)
6) If you've done it correctly, a HTTP authentication login dialog should pop up.
7) Enter the username 'remote', the password is your super admin password
8) You can now access the interface. It should look something like this:

9) Remotely control your server!

Final Notes
If someone does manage to get a hold of your super admin password and access the remote control interface - they can't do any more harm then they would be able to if they went to your server and became a super admin via the password.
You can't change your super admin password. (this is so no one changes the password to access the interface)

There is some URL encoding bugs, it should be fixed soon.


Modification Help / Miners
« on: April 20, 2011, 11:31:49 PM »
This is not infinity mining, this is my own holiday project with a touch of Minecraft. (Although it works similar to Infinity Mining, where you mine and it creates the bricks around it)

The world is broken down into chunks, much like Minecraft. Each chunk is 8x8x8 blocks and they are procedurally generated. The chunk is then given some ores, which are randomly weighted so that it spawns veins.

GUI-less and command-less. I wanted to make it different to my past project, DRPG. I think how it is now is good.  Materials you collect are in your brick inventory, and you can place them using left click. Equipment you collect is in your tool inventory. (only hammers at the moment). Crafting and forging use no commands.

Liquid physics allows for water and lava to flow. Every time you break a piece of ice, or igneous, it turns into water or lava and has a random density value. It flows down and sideways. It should be noted that each block of liquid isn't necessarily a full volume of it. The physics are kinda unrealistic at the moment, but I plan to fix them later. They're good enough for now. Also note, that eventually water and lava colliding will result in the lava turning back into igneous.

Mining - kinda obvious.

Forging allows you to smelt ores. Each ore needs a certain amount of coal, silver - 1, gold - 2, hematite - 3, copper 2. Smelting takes 1 minute to finish. You can make a forge by placing coal on silver ore then right clicking either of them. You can put ores and coal inside the forge by dropping them in (ctrl+w) or clicking on them with the material open in your brick inventory. Right clicking will light the forge. Currently the forge is a glowing grey cube, but I plan on making a custom brick model for it. (I had one made, but it broke). You need full trust to use someone else's forge.
Note: 1x Hard Stone or 1x Stone smelted will give Smooth Stone, a crafting ingredient.

Crafting allows you to turn raw materials, or smelted materials, into new things. You can make a table by putting silver ore on silver ore and then right clicking them. You put ingredients inside the table by dropping them (ctrl+w) or opening the material in your brick inventory and clicking on them. Once you have all the ingredients inside you right click. The recipes are pretty straight forward. You need full trust to use someone else's table. The table will also have a custom brick in the future, for now it is a 4x4 plate.
1x Coal + 1x Smooth Stone = a Torch
x1 Smelted Silver + x1 Smooth Stone + x1 Smelted Copper = a Silver Hammer
--work out the rest

Natural caverns

Claims & wars - in development.


Creativity / Webdev
« on: March 23, 2011, 05:31:50 AM »
Is anyone else here interested in Web Design/Web Development?
I've been doing it for a few years.. but HTML5 has re sparked my interest and improved my skills, I guess.

Here's some things I've made/projects:
NOTE: All of these need HTML5 compliant browsers. That means Google Chrome, Safari, Mozilla 4+ or Internet Explorer 9.
That's my personal blog/index/thing/majigy. It's built for Google Chrome, but it should appear fine in Safari and Mozilla. It's actually my third design in the past month. I had a case of perfectionitis. Uses HTML, JavaScript (jQuery, three.js, AJAX) and PHP. Planning on adding a login function with OpenID but I want to write the library myself, so that might take a while.
An extension of this three.js example. You'll need a WebGL compliant browser (Chrome 9+, Safari 5+, Firefox 4+) to view it. It's made with JavaScript, specifically three.js which is a 3d library for the new WebGL/HTML5 Canvas technologies. I basically just added sand, water and extended the world generation size. Bit of a rip off huh?
This is a just a simple 3d diagram of The Solar System. I was adding textures but the download took ages. The orbits are not accurate because Kepler's Law is a bitch. This also uses three.js, but you don't need WebGL to view it.

New HTML5 technology to check out:

Places to go if you want to learn about Webdev/how to make your own website:

Modification Help / BLB Editor v0.1
« on: February 06, 2011, 04:00:31 AM »
BLB Editor v0.1

  • Edit Blockland brick files in a partially styled text editor
  • The model is rendered along side the text editor for easy editing without booting up Blockland
Planned Features
  • Syntax highlighting
  • More generic text editing tools - find, replace, comment/uncomment, etc.
  • Face and vertex editing - select faces and vertexes and edit their positions, scale, colors, textures, normals, uv coords
  • Importing of multiple industry standard 3d model formats: 3ds, obj (definite), collada (maybe). If you have any other model formats you would like to see (besides .blend because it has no structure at all) then post them here.
You can download it from my site. Due to forum rules on sharing applications, I can not link to it directly. You can find the link to the file in my profile's signature. YOU DOWNLOAD IT AT YOUR OWN RISK.
0.1: first release
All bottom edge textures are broken when rendering.. and I have no idea why. No matter what I do to fix it nothing works.
Perspective seems broken on some renders... not sure if its the rendering matrix settings or the way the vertexes are rendered. This should be easy to fix once I find the issue.
System Requirements
  • OpenGL - Most modern graphics cards come with it
  • Any operating system that can run .exe files - not positive if it works in every operating system. From what I've read with the python compiler I used it should work on everything. Tested on Windows XP.

Gallery / Beta Player
« on: January 02, 2011, 01:01:51 AM »
hi babes

Credits to MegaScience for giving me the model.
Credits to Badspot for the original model.
Credits to me for fixing MegaScience's stuffty code and getting the player-type to work. :cookieMonster:

Drama / Zou = Plaz?
« on: December 24, 2010, 11:04:33 PM »
Zou got mysteriously banned yesterday. I was on SkateXD's server then this happens:


Off Topic / Save the Gingers Foundation
« on: December 24, 2010, 09:21:22 PM »
Inspired by

Pages: [1] 2 3 4 5 6 7