SSForum.net is back!
-
Posts
900 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Events
Gallery
Articles
Everything posted by JoWie
-
Nowadays servers are cheap, so I think that is not a very big issue. A bigger annoyance would be something like SSC. Personally I am in favor of: A thin as possible client (client only renders graphics). The downside is more down stream bandwidth for clients in small games and input lag. The upside is a massive reduction in relative player lag, downstream bandwidth for clients becomes O(1) instead of O(n-1), upstream bandwidth for the server would become O(n) instead of O(n^2), cheating is mostly eliminated, clients are easy to develop for multiple platforms (windows, linux, console, web browser, et cetera) Player-run servers that can out-scale easily (instead of only up-scaling) Secure, isolated sub arenas for players that can not operate a server. (a sub arena owner can do anything he wants without affecting other arena's). This involves stuff like isolating files, scripting (like a web browser) and settings. A single point of trust for things like passwords. Someone runs an authentication service, only this service sees your password, email, et cetera. When you connect to a server, it only knows your username and if your authentication was valid. The service does not care what servers use it. I do not really like the idea of a quake style server for a subspace like game.
-
I had made a similar "bang" animation a while back. I actually tested the different formats after lvz compression. The lvz with the BMP was the smallest. Although it was not by a whole lot. I used a different repeating pattern however.
-
BMP would probably be the smallest in this case tho The old files: http://welcome-to-the-machine.com/ss/hs2005.zip I lost the even older stuff
-
The point is that you can see what you look like after you factor in lag
-
I will write one for 800 dollars
-
That would have defeated its purpose
-
Abortions for some, miniature American flags for the others!
-
It sounds nice and I have done it on an ipod touch, but it is not worth the effort.
-
It may be easier to write it as a web application. Note that an web application could not use the current version of ASSS' chatnet directly. You could make a small modification to ASSS to support websockets or deploy a proxy. The latter method obviously has a lot of downsides (and already exists). Oh, do not forget that it costs $100 a year if you want to publish applications in the apple app store.
-
HS needs a FTL Infinite Improbability Drive
-
Technically, it is indeed very similar to *mirror. But what we want to do in everspace is that you can buy multiple bombs and guns, if you equip all of them and fire, you fire all those bombs and guns. Using offsets you can do stuff like this:
-
I added ufo. You need a fake player per weapon if you want to fire them at the same time. Weapon packet with the same timestamp & pid are ignored.
-
The encryption has already been cracked by a few people. Also, a (modified) UPX unpacker would also help
-
Password remembering could be an issue, it uses the windows registry.
-
The placing of the actual brick is done by the server, the client merely sends "I want a brick at 340,740". If no brick appears at all and the brick count is not decreased, the client is rejecting it because you are standing on some tile. If the brick only partially appears, it is usually rejected by the server. But the client may ignore invalid brick locations. It looks like subgame is handling those special tiles like wormholes. I just tried it with tile 243 on ASSS and there is no issue. If the arena is not turf, you could try tile 170 instead.
-
Are you on subgame?
-
I have the source for revision 685, 23 feb 2009
-
This is a snippit of a module (by d1st0rt) in which I had to add that same formula. #include <math.h> static double sintabf[40]; typedef struct GunTurretInfo { char name[20]; // name of the turret byte ship; // what ship it should use int x; // relative X to it's master int y; // relative Y to it's master int rot; // relative rotation to it's master struct Weapons weapon; // What weapon to fire } GunTurretInfo; static void LOAD() { int i; for (i = 0; i < 40; i++) sintabf[i] = sin(i * PI / 20); } static void PPK(Player *p /* The boss*/ , const struct C2SPosition *pos) { gtppd *data; Link *link; gt *turret; struct C2SPosition ppk; int rot; switch(pos->weapon.type) { // player is firing case W_BULLET: case W_BOUNCEBULLET: case W_BOMB: case W_PROXBOMB: pthread_mutex_lock(&globalmutex); memset(&ppk, 0, sizeof(ppk)); ppk.type = C2S_POSITION; ppk.rotation = pos->rotation; ppk.time = pos->time; ppk.y = pos->y; ppk.x = pos->x; ppk.xspeed = pos->xspeed; ppk.yspeed = pos->yspeed; ppk.energy = pos->energy; ppk.status = STATUS_UFO | STATUS_CLOAK | STATUS_STEALTH; data = (gtppd *)PPDATA(p, pdkey); FOR_EACH(&data->turrets, turret, link) // The bosses' minions { if(turret->p && !turret->coast) { ppk.y = pos->y; ppk.x = pos->x; rot = pos->rotation; rot += turret->type->rot; rot %= 40; if (rot < 0) rot += 40; ppk.x += (int)round( turret->type->x * sintabf[(rot + 10) % 40] - turret->type->y * sintabf[rot % 40] ); ppk.y += (int)round( turret->type->x * sintabf[rot % 40] + turret->type->y * sintabf[(rot + 10) % 40] ); ppk.rotation = rot; memcpy(&ppk.weapon, &turret->type->weapon, sizeof(struct Weapons)); game->FakePosition(turret->p, &ppk, sizeof(ppk)); turret->lastpkt = current_ticks(); } } pthread_mutex_unlock(&globalmutex); break; } }
-
A good book is http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628/ref=sr_1_1?ie=UTF8&qid=1306148571&sr=8-1 (written by the guy that developed the language). Just keep the points from https://secure.wikimedia.org/wikipedia/en/wiki/C99 in mind while reading it. If you are going to do a lot of work in C instead of python, I suggest you run ASSS on linux for a few reasons: You automatically get a backtrace if ASSS crashes GDB on windows often ends up with a corrupt stack Valgrind Compiling a module is slightly easier Recompiling ASSS entirely is a LOT easier (there are a few reasons for compiling more then your own module such as interfacing with python or adding a line to ?quickfix) Installing all the required libraries and tools is a single command: "sudo apt-get install build-essential python python-dev mercurial libdb4.8-dev mysql-client libmysqlclient-dev gdb" (ubuntu) The coding itself could be on windows / mac os x ofcourse. I use a VM or a VPS for compiling and testing. Some useful resources about ASSS: https://bitbucket.org/grelminar/asss https://bitbucket.org/grelminar/asss/wiki/Home https://bitbucket.org/grelminar/asss/wiki/Development_Reference http://wiki.minegoboom.com/index.php/Writing_Modules_In_C http://wiki.minegoboom.com/index.php/Callbacks
-
I always hated that my calculator did the following: -2^2 = -4 And it was one of those calculators that had separate buttons for subtraction and negativity
-
Just tried it with nvidia optimus and it works on both the integrated GPU and the discrete GPU. OpenGL looks good but on directx 9 it gets sort of blurry when you start to move.
-
Continuum: Subspace expansion pack
-
Maybe they used an exploit in an old software package. I like to give every domain / subdomain different users to lessen such attacks. I use suPHP for this when they need to run php scripts.