PDA

View Full Version : Jazz 2 dedicated server project


Cpp
Aug 20, 2006, 05:16 AM
Welcome to the drawing board!
What features would you like to see in a dedicated server for jj2? How do you think it should be structured? What programming languages should be used? Should there be extensions? Discuss al the questions you like.

Recoding the jj2 engine itself and creating a dedicated server of it can give us a lot of room for improvements over current standard jj2 servers. The possibilities are almost limitless. Basically all server tools that exist so far could be put into this one project. Over the past months there have been lots of breaking jj2 discoveries and innovations. We are slowly starting to comprehend how our game works. This gives us the chance to look ever deeper inside and reveal more of its secrets. The benefits of creating a dedicated server are many (this is by no means a complete list):


Many server vulnerability and bux fixes
Improved stability
Excellent support for bots (AI)
Anti-cheating software integration
Chat logging
Controller-like server administration with lots more options
Support to place votes over jj2 chat (eg. what level to load next, what player to kick, etc.)
Accurate game stats creation
Player max health control (instagib, 3 heart battle, 5 heart ctf, etc.)
Game time limiter
No more download problems
Random level selection
Scripted servers
Hosting on different ports
Better support for many new game modes
etc
etc
etc


So there we go. This thread has been made sum up the recent ideas that a jj2 dedicated server could use. Please note that we are still far away from making the actual program, but this is a start.

Discuss.

minmay
Aug 20, 2006, 09:19 AM
Hooray.

...I've been trying to make a good level for a dedicated server loop lately. Now I want to do so even more.

Dermo
Aug 20, 2006, 03:12 PM
Another advantage of this dedicated server would be that you could host multiple servers at once!

FINALLY SOMETHING LIKE THIS IS BEING WORKED ON! YAY!!!

:D
:)

Monolith
Aug 20, 2006, 07:37 PM
Some quick initial thoughts.

<h1>Jazz 2 Dedicated Server</h1><h2>Goals</h2><h3>Basic Functionality</h3>

The server must recreate the full functionality of a Jazz 2 server such that clients joining the game will not know the difference, assuming a server running no extras.
The server should not try to go beyond this except to satisfy the other goals. All extra features should be done through plugins.

<h3>Dedicated</h3>

The server should be able to run, hosting a game, indefinitely requiring no user input and not wasting resources on output when output is not needed.
A graphical display or display of any kind must not be necessary for the operation of the server. That doesn't mean one can't be provided, but it just shouldn't be required.
The server should be fully automatable; meaning another script or program can easily start, stop, and otherwise control the server.
The server should be able to be modified without taking down the server. Obviously in some extreme cases this is not possible, such as when needing to replace the executable that's running, but that should be rare. Most other things, such as changing parameters or loading and unloading plugins, should be able to be performed on the fly.

<h3>Secure</h3>

Ensure that both the server and the clients are protected from malicious attacks or hack attempts from other clients.
Wherever possible, cheating should be hindered – unless of course the host chooses otherwise.

<h3>Flexible</h3>

The server should be flexible and easily modible to allow to allow expansion and improvement of the game and the server.

<h2>Code</h2>

The server would ideally be programmed in a language that is fast and has little overhead. Obviously this includes a lot of options, but it does exclude stuff like scripting languages.
Probably most importantly and most obvious, the server should be programmed in a language that is well understood by those who will be programming the server.
My personal preference would be to use C++. I might be biased to it because I know it the best, but it really is a good language for programming a game server. The language itself has little overhead, it can be object oriented (and should be used that way), and it allows for good exception handling. Other advantages include low-level socket access through Winsock, asynchronous sockets with Winsock 2, and it can easily work with DLLs which will be a good means of supporting plugins.

<h2>Plugins / Extensions / Mods</h2>

The best way to support flexibility and expandability is to make the server work with plugins. Plugins will allow hosts to easily alter the way the game or server works without actually changing the server itself, or relying on the feature to be built into the server.
Anyone should be able to make plugins.
A good method for implementing plugins would be to implement them as DLLs. DLLs can be created unconnected to the main program, and they can be easily loaded and unloaded while the main program is running.
One of the plugins could simply be an interface to a scripting language such as Lua or Python to allow for even easier mods.

Jerrythabest
Aug 20, 2006, 11:43 PM
This sounds so great. This is so great. Whoever makes this is so great. I'm amazed. Such great things possible with JJ2, that's great.:eek: I can't wait for the great moment this great program will be finished by the great guy(s) making it.:eek:

Is this going to be a public program or used privately?

Black Ninja
Aug 21, 2006, 09:35 AM
This sounds so great. This is so great. Whoever makes this is so great. I'm amazed. Such great things possible with JJ2, that's great.:eek: I can't wait for the great moment this great program will be finished by the great guy(s) making it.:eek:

Is this going to be a public program or used privately?
Even though it's being discussed, it's important to note that no one here has said "I am working on this" or "there is a team working on this."

Dermo
Aug 21, 2006, 10:18 AM
Now come on here guys! What reason would you have for not wanting to distrubute the dedicated server when built? What harm could it do? That would cause more servers which would cause more happy players. And that could go alot farther too. They tell their friends and their friends buy Jazz Jackrabbit 2 and get on and then we'll have even MORE servers up and it could cause the community to expand. Now the pluggins i'm not so worried about being released because anyone can make them (including me). So yea release the dedicated server once it's made. Who knows? The community may go back to what it was like 10 years ago. Filled with servers and lots of people!!!

That's just my thinking.

cooba
Aug 21, 2006, 10:25 AM
8 years, not 10, and it's rather obvious that this will be a public release.

Jerrythabest
Aug 21, 2006, 11:17 AM
yeppee :) ah well I know that there is someone working on it (it's me :p)

ahat
Aug 22, 2006, 11:46 PM
Even though it's being discussed, it's important to note that no one here has said "I am working on this" or "there is a team working on this."

On the contrary! Not only is it being discussed, it's already has been started(If you ever see it up, check QuetzalSERV).

I'll take this post to say, "I am working on this", and "there is a team working on this". The team thus far includes myself, Overlord, Neobeo (and others?). As for what language it's being written in, and what I have currently written is C++, and to my knowledge it won't stray from that.

-ahat

NOTE: If anything in this post makes little or no sense, It's 5:21 A.M. and am too lazy to check for errors. :Z

Jerrythabest
Aug 23, 2006, 12:23 AM
ah well, now at least *the person who told me* can't say that I said who is working on it.

ahat
Aug 23, 2006, 12:33 AM
People are...spamming it. =\
85.99.x.x
83.18.x.x
lalala =\

I'm going to leave it up for the night, I want to see how stable it'll hold up thus far (which isn't that far, since the project was only fabricated late in the weekend.)

Jerrythabest
Aug 23, 2006, 03:07 AM
will it be possible to host as 1.23 while tsf people can join too, without version hacking

Grytolle
Aug 23, 2006, 05:02 AM
will it be possible to host as 1.23 while tsf people can join too, without version hackingYou will love the next release of Forest, which I am coding :)

WaterRabbit
Aug 23, 2006, 09:47 AM
On the contrary! Not only is it being discussed, it's already has been started(If you ever see it up, check QuetzalSERV).

I'll take this post to say, "I am working on this", and "there is a team working on this". The team thus far includes myself, Overlord, Neobeo (and others?). As for what language it's being written in, and what I have currently written is C++, and to my knowledge it won't stray from that.

-ahat

NOTE: If anything in this post makes little or no sense, It's 5:21 A.M. and am too lazy to check for errors. :Z

How do I join the server? I tried joining and it said the server is a different version.

Dermo
Aug 23, 2006, 10:36 AM
How do I join the server? I tried joining and it said the server is a different version.

same problem with me

THIS PWNZ IT OWNZ IT EVERYTHINGS!!! FINALLY! AHAT I AM NOT WORTHY!!!

Jerrythabest
Aug 23, 2006, 10:45 AM
You will love the next release of Forest, which I am coding :)
I bet i will :)

I'll try to join that test server as well later tonight

Vegito
Aug 23, 2006, 10:50 AM
Its pinging for me. ;P

Jerrythabest
Aug 23, 2006, 10:52 AM
yeah the multiversion server is pinging :eek: now I don't like it anymore :(

piet
Aug 23, 2006, 11:03 AM
i dont know if there are plans yet but i think the server should be written cross platform so it would run on linux and on windows.

Dermo
Aug 23, 2006, 11:05 AM
Well im still amazed. Just they need to work on it a little more i mean this is some crazy code they're coding lol

The problem is the three of them are the only ones in this community with the sourcecode otherwise it would have probably been done by now. Then added to and updated by everyone else in the community and rereleased.

ahat
Aug 23, 2006, 11:28 AM
yeah the multiversion server is pinging :eek: now I don't like it anymore :(

The server is QuetzalSERV, not multiversion.
Wait until later tonight, I'll have something better up.

Jerrythabest
Aug 23, 2006, 11:35 AM
I were actually talking about the new Forest Gry is making :)

I'm curious what you will have up :P and when :P

ahat
Aug 23, 2006, 11:37 AM
I were actually talking about the new Forest Gry is making :)

I'm curious what you will have up :P and when :P
My bad, then.

QuetzalSERV and...I'm not sure, sometime tonight when I get some more done.

Grytolle
Aug 23, 2006, 11:58 AM
My jazz2.log was too big and filled my HDD does giving an access violation :P Sorry about that, I was at a friend's house.

Sigma
Aug 23, 2006, 08:06 PM
Wow this is an excellent idea, I would definitely get a server. Also one thing I would like in the server is if it could work natively using a Linux OS also. I don't know if this is possible and if its not its ok, but making it able to run on Linux would be great.

Jerrythabest
Aug 24, 2006, 12:21 AM
Bad Bunny is able to join both 1.23 and 1.24 servers with the Mac version. Really funny =D

ah well, that was offtopic.

Cpp
Aug 24, 2006, 03:12 AM
will it be possible to host as 1.23 while tsf people can join too, without version hackingYes, I think it is possible to make the server appear bright in the list no matter what version of jj2 the user has. This *should* be included in the dedicated server project.

Actually we haven't agreed on anything just yet. There is no team working on any common project so far and the dedicated server is still a long way off. This thread exists for the sole purpose of collecting <s>garbage</s> ideas and Monolith has provided a whole lot of them in his post - so far I fully aggree with many of his suggestions. Thanks, Mono. There may be lesser research projects being developed at this time by individual people, but the big project hasn't started yet and there is no "official" team either. The reason for this is because we (as the community) have yet to figure out a lot of stuff we're missing eg. document the jj2 TCP and UDP protocols, fully understand the jj2 file formats, get a general idea of how the jj2 engine works, calculate weapon trajectories, etc. This is by no means a complete to-do list, but they are essentials for the project.

The current research team consists of few people doing various research on jj2 (see above). Me, Neobeo, ahat and maybe some others (I don't have a full list). Since this is only a research project (at this time), everyone is free to contribute knowledge we might need later, however, the final "big one" project will probably be a community project that would include many of the programmers from the community (if it gets to this point). Monolith? Alister? Link?

I'll post some more constructive content in a momnet.

Jerrythabest
Aug 24, 2006, 03:57 AM
if you need anyone to make a site with a knowledge base feel free to ask me :P

Grytolle
Aug 24, 2006, 04:54 AM
The tcp protocol seems pretty much covered already though. And regarding the trajectories I forsee that those are calculated clientside, so the server uses where they are to calculate whether they hit a player or not, rendering calculations useless for how bullets fly. (This forsight due to the fact that you can edit your gunspot to hit lots of people)

Cpp
Aug 24, 2006, 08:39 AM
I have made a short description of how I imagine the project to be structured. This doesn't mean that the final server will be structured exactly like this, but it gives a general idea of how things should be. Basically there are many pieces of code that the server could use, but I have listed only the most basic.

Fileworks
The module for handling the jj2 file formats. This one should be able to load all jj2 files needed to run the server such as levels, tilesets and maybe some other data, if needed. It should import them into a readable format for the server so that it can do various things needed to operate - such as extract tile masks and generate a mask level map for collision detection, enum the level events, etc.

Networking
The basic networking module is a must for every network game. This is where all the network traffic is handled (tcp and udp) - downloads, player info interchange, chat, ping, listing/updating/delisting server, etc. Also, bad traffic is dropped.

Engine
The core of the project. Here is where most of the calculations take place.
server side trajectory calculation, collision, object respawns, game status, level changes when game finishes, etc. Graphical output will probably not be needed, but can be used as a plugin.

Interface
The basic way where a server admin can communicate to the server, allowing him to load new plugins (at runtime), unload old ones, configure the server, administrate the game, ban/unban players, etc. I don't know whether this should look like a w32console or a GUI window, I'd prefer the gui tho.

Logger
A kind of jj2spy-like module where user can see the history of the server. Some things that can be logged are server status, player chat, player joins/leaves, level switches, warnings/errors (such as bad j2l/j2t), etc. Should also be able to save the log to text files.

Plugin manager
Manages available plugins during runtime and loads them automatically when executable loads. The plugins can be DLL's in the plugin folder for example. It's not neccessary that all plugins come with an interface of their own, some plugins can offer extended functionality for the server (like runtime libraries for other plugins that rely on them)... which is why they should be visible to the othes. Plugin manager would maintain a list of loaded plugins so they may see each other. There are many ideas, but I'll keep this brief.

Personally I'd let the server use only the most basic code it needs to operate, most of other stuff should be done through plugins. Please comment.

Cpp
Aug 24, 2006, 09:15 AM
Regarding plugins, there are countless ideas for them. Here is a part of my list.


Game time limiter (ends the game after given time)
JJ2 stats generator
Anti-cheating protection
Graphical output (Jazz 2 VCR style)
Voting over chat
Remote administration
Bad word chat filter
Random chat messages (advertisments that appear every once a while)
Auto-kick idle players (warn them over chat before they get kicked)
Kick/ban chat spammers (warn them over chat before they get kicked)
kick/ban flooders (players that constantly join/leave/join/leave...)
Selection of levels in a random order
Selection of levels in a given order
Selection of levels by size according to the number of active players

And some misc features that may be applied to the dedicated server.

Temporary bans that time out after 15 minutes
Automatically relist the server, if delisted
Players *MUST* enter a password to join a private server
Server query packets (it's a standard jj2 join packet with 00 as the last byte)
Proper team chat in CTF

Grytolle
Aug 24, 2006, 09:24 AM
All sounds very good.

R3ptile
Aug 24, 2006, 09:45 AM
what about in-game commands such as !rank, !stats !votemute, !votekick and !votelevel?

Cpp
Aug 24, 2006, 09:55 AM
^^ I guess those would go under a plugin that can take commands from jj2 chat. Assuming Voting is only a part of the plugin, this would be it.

Jerrythabest
Aug 24, 2006, 10:59 AM
About that logger, it would be *really* useful if you assign a type to each log line so you can choose what to view and what to hide (like joins, parts, roasts, scores, kicks, bans, chat messages, level load, tileset load, traffic, types added by plugins), to make logs without useless stuff you don't want in your log

Cpp
Aug 24, 2006, 11:53 AM
In my opinion chat lines *should* contain a timestamp at the beginning as well as some other tag that differs them from other types. The program can log everything and you can later filter out the lines you want yourself or tell the program to save the log and filter out the lines you (don't) want. In J2M I used a similar format for the logger.


==================================================
Jazz 2 Mutation Build 132
Logging started on 7.2.2006 at 21:32:16.
==================================================
LOG[21:32:16]: Loading Jazz 2 Mutation
LOG[21:32:16]: Opening log window
LOG[21:32:16]: Detected Windows XP Professional Service Pack 2
LOG[21:32:16]: Initializing program engine
LOG[21:32:16]: System path is D:\Visual Basic\JJ2\Mutation\Mutation.exe
LOG[21:32:16]: Log path is D:\Visual Basic\JJ2\Mutation\Logs\J2M_2006-2-7_21-32-16.log
LOG[21:32:16]: Loading and applying program settings
LOG[21:32:16]: Loading program windows
LOG[21:32:17]: Jazz 2 Mutation is up and running
USR[21:32:20]: Manually enabled
LOG[21:32:20]: Enabling Jazz 2 Mutation
LOG[21:32:20]: Found Jazz Jackrabbit 2 v1.23
GAM[21:32:20]: Level Mixer adjusted next level (igs_023.j2l)
GAM[21:33:05]: Level Mixer adjusted next level (igs_044.j2l)

(...)

GAM[9:21:13]: Time limit reached (15 min)
GAM[9:21:18]: Level Mixer adjusted next level (igs_002.j2l)
LOG[9:31:25]: Waiting for Jazz Jackrabbit 2...
USR[9:31:27]: Exiting program
LOG[9:31:27]: Jazz 2 Mutation stopped after 689880 loops
LOG[9:31:27]: Program is now unloading
LOG[9:31:27]: Saving program settings
LOG[9:31:27]: Unloading program windows
LOG[9:31:27]: Shutting down engine
==================================================
Logging stopped on 8.2.2006 at 9:31:27.
==================================================

Jerrythabest
Aug 24, 2006, 12:18 PM
yeah timestamps rule! :p they.. well, tell you the time it happened, eh? :D :lol:

Monolith
Aug 24, 2006, 08:42 PM
A note on letting 1.23 and 1.24 players join: if this feature is included, it it really should translate the animation frames so animations don't appear messed up.

I was thinking the dedicated server would be basically command prompt based. Although I suppose we could make it so that a GUI could be built on top of it.

I can't remember what my other thoughts were now. I could come up with a more complete class listing if you don't think it's too early for that.

Figuring out bullet trajectories will probably be the trickiest to recreate. I'm assuming we'll need these to figure out when someone gets hit since the server should manage that. (Although JJ2 has been known for having not the greatest net code.)

Cpp
Aug 24, 2006, 10:56 PM
Each time a player joins a jj2 server, it tells the server what version he uses so that the server may accept or decline him. Adapting the anims should be no problem in this case. I suppose we could even make Lori look like Spaz for 1.23 players.

I'm uncertain about the GUI part at the moment. It probably should be another plugin. I like the idea about plugins because we wouldn't have to replace the server executable each time an update is made as we can simply update the plugin instead.

I wonder whether Neobeo can read the trajectories from the jj2 assembly. Most of weapons shoot in a straight line, speed is calculated relative to player speed. However weapons such as bouncy/water shield/seek may be a problem.

Grytolle
Aug 25, 2006, 01:27 AM
I still don't think it's needed, and if it is, I bet Neobeo can, since he messed with those things with his anims-editor.

Neobeo
Aug 25, 2006, 03:49 AM
I still don't think it's needed, and if it is, I bet Neobeo can, since he messed with those things with his anims-editor.

My name appears 5 times in this thread so far. :O

It appears there are two parts to this question.

1) Is there need for bullet trajectories to be calculated in the dedicated server?

Yes. When a client shoots, he basically sends a simple packet saying "I shot this weapon, which is powered-up/normal at this gunspot". Then the server will decide if the shot hits another player and replies appropriately. Sure, the client may see that his bullet actually hits the player, but if the server did not, then the client won't actually see that player getting hurt.

2) Can Neobeo do it?

Tough. For a start, messing with anims gives no clue to calculations of trajectories. What happens is that you need to completely re-compute it from scratch, or extract the info from the ASM, and I'd prefer the latter. Theoretically, how I would go about doing this is to intercept the ASM of a function where the server receives the shoot packet, and extract from there. This is not an impossible task, but the conversion could be a very tedious process.

With regards to the original topic of ideas for such a project, everything I can think of right now has already been mentioned here.

Cpp
Aug 25, 2006, 05:04 AM
I'll just make you a bit more popular, so...
Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks! Neobeo rocks!

As I said, we probably won't have to do complex trajectory calculation for every weapon, but only for few weapons - those that don't follow a straight line to be precise. Most weapon trajectories can easily be described by a straight line - single struct/vector (has a direction, projectile speed, damage and lifetime). Personally if the calculations are to be done in C++, I'd do them in OOP with class inheritance (sort of the way Unreal engine works).

I wonder if we can get coop working properly.

Grytolle
Aug 25, 2006, 05:08 AM
Unknownfile was well on his way to do that, by altering jj2's code in memory (coopfix) which gives me hope that it can be done in this project aswell. :P

Jerrythabest
Aug 25, 2006, 06:43 AM
I wonder who are Neobeo-fans on this community. :p Put me on the list plz.

Next, the coop mode hosting would be GREAT! I have no idea how teams work in JJ2, but if possible add team coop too :P would be funny for clanwars.

Vegito
Aug 25, 2006, 06:51 AM
<useless post>Im a Neobeo fan ;(</useless post>

Jerrythabest
Aug 25, 2006, 07:01 AM
what's so ;( about that? let's make a Neobeo fanclub site =D

Grytolle
Aug 25, 2006, 07:43 AM
Yes :god:

Birdie
Oct 6, 2006, 11:14 AM
I have no idea how teams work in JJ2, but if possible add team coop too :P would be funny for clanwars.
Teams only work in team baised gamemodes (to my knowlage) and that would consist of only ctf.

Jerrythabest
Oct 6, 2006, 12:22 PM
btw.. any progress?

Cpp
Oct 6, 2006, 12:33 PM
Yep. Basically I have the whole thing sketched on a paper. Neobeo is currently working on the server and I'm documenting some other stuff that will come handy in the future.

Jerrythabest
Oct 6, 2006, 12:40 PM
kay.. sounds great! :D

nice slogan in your sig btw

Neobeo
Oct 6, 2006, 06:48 PM
Teams only work in team baised gamemodes (to my knowlage) and that would consist of only ctf.
Teams don't have to "work". They could be simulated by the server (e.g. renaming player's names to add colour etc).

And yes, the project is going quite well. For those who play online JJ2 often, they might have noticed the occasional server named azure moon or Dreaded Vertices. These are the dedicated server at work, and they usually go online to test uncertain parts of the protocol (on unsuspecting players).

Jerrythabest
Oct 7, 2006, 02:29 AM
now we suspect :lol:

kay, I'll keep an eye on the list

EDIT: theres an error in the listing.. there are only two spaces after the version number :/ now it screws up my gip script XD

anyway, cant connect

Bas
Oct 7, 2006, 10:20 PM
the occasional server named azure moon

So that explains the ping time of 1337something :P It didn't work when I saw it, though :(

Jerrythabest
Oct 8, 2006, 03:01 AM
version 1.337 ping time 133700XXXms players 13/37

Neobeo
Oct 14, 2006, 10:10 AM
UPDATE: The dedicated server project is looking really great. Much of the network protocol has been implemented at this point, but now it's coming down to design flaws in the original game.

Which brings us to the main discussion, a conflict of goals. One of the main goals of the project is full backward compatibility, and yet there must be change for these bugs to be fixed.

For example, should teamchat be fixed so that it only sends to players of the same team, or stick with the odd/even system in the original game? If the 'bug' is fixed, this implies changing the original features of the game, and might even cause confusion to players in the server unaware that the server is using a 'fixed teamchat' protocol.

Then there are also other problems like what the server sees differing from the clients', most important of these the Trigger Scenery event. I'm not sure if this is considered a feature rather than a bug, but I frequently get killed by ammo travelling through trigger sceneries which are masked on my clientside but unmasked on the serverside. Should 'features' like these remain on the dedicated server or should they be changed?

Well, there are probably more server-client problems, but this should do for a start. In general, the main concern is whether the server should retain properties of the original game, including bugs, or scrap all that into a completely new system. Where should the line be drawn?

Discuss.

Jerrythabest
Oct 14, 2006, 10:21 AM
Trash the odd/even system. We need teamchat these days! :P
Maybe you could make an *option* to show a message like "This server has fixed teamchat".

As for the Trigger Zone event, some levels depend on the independency of Trigger Zones, so I would say just keep it the way it is or make it another option, so that you can choose to 'un-fix' Trigger Zones. In my opinion, a good server program is a flexible one. And thus one with options.:lol:

Cpp
Oct 14, 2006, 01:58 PM
Personally I would go for improvements. We have the old game for the old stuff, but now we have a chance to improve things a bit. There is no harm in a fixed teamchat. While new players may not know/care about it, it can definitely cheer up players, who know they are playing on a fixed dedicated server. I'm not sure what benefits/drawbacks it might bring, but the trigger system is to be discussed in detail tho. If nothing else, we can at least have the user choose what fixes the server should run.

Newspaz
Oct 14, 2006, 02:19 PM
I would just fix everything that could be fixed. Even the trigger system. If people want to use the old system, they can always bring up a server themselves. Strange trigger systems aren't very common in normal battle and ctf levels anyway.

blurredd
Oct 14, 2006, 04:51 PM
Then there are also other problems like what the server sees differing from the clients', most important of these the Trigger Scenery event. I'm not sure if this is considered a feature rather than a bug, but I frequently get killed by ammo travelling through trigger sceneries which are masked on my clientside but unmasked on the serverside. Should 'features' like these remain on the dedicated server or should they be changed?

I've always worried about this issue which is why many of my levels using team-based triggers have bomb scenery events next to trigger scenery. I would think a true fix to such a problem would have to be client-side as well. And you would probably have to let all projectiles pass through trigger scenery, as awkward as that might look, as opposed to destroying them on contact similar to what bomb scenery does.

Monolith
Oct 14, 2006, 06:04 PM
If there is any conflict over if something should be one way or another (such as full emulation or fixes), then it should be left as an option to the user. And then the default setting of the option should be whatever works best, or whatever most people will want.

EvilMike
Oct 14, 2006, 09:25 PM
Teamchat ought to be fixed. Maybe leave an option for old style teamchat, but at least make it work properly by default. And put brackets around it for even players, like it should have (unless this can only be fixed clientside).

When thinking of other "bugs" to fix, remember that some things work more like <b>unintended features</b>. This includes things like bouncers going through walls, and trigger zones only affecting local players vs trigger crates affecting the entire server. This sort of stuff is strange, but has become somewhat vital to a lot of the gameplay. Plus if stuff like bouncers were fixed, weapon tragectories would be different between client and server.

Bascially all I'm saying is bugfixes are good, but be careful what's really being fixed.

Jerrythabest
Oct 14, 2006, 10:51 PM
seconded :) teamchat can just be fixed, I dont know why one would like it unfixed. IMO, trigger zomes as well as the bouncers should act the same as they do now by default.

now a completely other thing: how about the flagbug? can that be some way fixed server-side? also the bug that you sometimes don't take the flag could use a fix. and I think it wont have respawning/seeker hole bugs? :P

Camou
Oct 15, 2006, 12:02 AM
Maybe let the flag bug in if it's unfixable, but find a way to stop making it show "Blabla captured the flag", like in censoring that sentence after 5 times?

Jerrythabest
Oct 15, 2006, 12:49 AM
if theres no warp target, can you control that too? so that it sends you to.. say.. a start position

Cpp
Oct 15, 2006, 01:04 AM
Camou/Jerry what you are talking about is done client-side and the server has nothing to do with it, therefore it cannot do anything about it. The only way to avoid it is with a good level design.

Jerrythabest
Oct 15, 2006, 03:15 AM
aww sad =(
ah well then, let's design good levels :lol:

Neobeo
Oct 15, 2006, 05:44 AM
if theres no warp target, can you control that too? so that it sends you to.. say.. a start position

Unless the server dynamically fixes the level before uploading the "version with no bad warp" to the client. Then again, warps with no warp target are almost always made intentionally... right?

Jerrythabest
Oct 15, 2006, 05:49 AM
yeah true :)
we'll just have to watch our steps then =)

Cheeze
Oct 22, 2006, 11:58 AM
Wow. I remember how I always wanted to do this, a WHILE back.

Great ideas, and it good that things are going rather well. It's been a while since I set foot here, but it seems like the hacking spirit here sure hasn't died. From what I've seen from perusing around here, a lot of these programs and "patches" are made from playing around with the assembly? Wild.

If you guys need any help, I wouldn't mind lending a hand here or there. I don't have a lot of time, at least for the next few weeks until classes end, but this does seem like a very neat project.

I couldn't get a clear answer from looking through this thread: is this meant to be platform idependent? I couldn't see how it would be terribly difficult, as none of it sounds like it would be Windows-dependent.

Let me know, and have fun. : )

-Cheeze

Neobeo
Oct 22, 2006, 05:40 PM
Well, seeing as it runs on console, it should be portable (save for the fact that I write very unportable code since I've never ported). Platform-independence was initially not a priority since I've never coded for any other platform, but if anyone is willing to port it I'm more than happy to collaborate.

On another note, I'm sure many of you (who play JJ2 regularly) would have joined my server at least once. Please leave some feedback as to what you think of the server's current capabilities, what can be done to improve it, and most importantly what new functions it should have that the original JJ2 is not capable of.

ronin
Jan 8, 2007, 06:38 AM
hey guys I just read through this thread and love the work you guys have been doing. I run a computer room at a summer camp and the kids there love to play Jazz 2. A dedicated server would make my life so much easier and being a linux geek I love the idea.

I figured I'd ask how its going since the last update was in october. Im a computer science student but don't know any c++ yet but any way I can help i'd be glad to.

I need to find my copy of the game so I can start playing and hopfully help test out the server when it is online.

Neobeo
Jan 8, 2007, 04:55 PM
It has been stagnant for a while, but hopefully I can force a public beta by the end of the month.

Anubis
Jan 9, 2007, 01:25 AM
How about being unable to kill the server? People get free kills all the time :(

Jerrythabest
Jan 9, 2007, 11:47 AM
or HIDING the server, that would be better, and as I've already seen it being done by Forest it shouldn't be hard.

@Neo: good functions would be most of the /commands in 1.23+, since beside the unstableness that JJ2 edit is actually perfect. A dedictated server should at least have those. Also, the list of gametypes you are able to host in should be longer:
Battle
CTF
Treasure
Race (Race mode host)
Coop ('Unknown' mode host)
Race (Treasure mode host) - Could possibly show seconds to complete a lap in a chat message
InstaGib (Battle mode host) - Just battle with one health :p you know the game
Teambattle (old) (CTF mode host) - Killing someone scores your team a point, using CTF bases (if that actually happens in the dedictated server, since I'm sure its just a weird JJ2 bug)
Teambattle (new) (CTF mode host) - No bases, killing just scores your team a point.
TBCTF (CTF mode host) - 1 point for kills, 5 points for scores, as usual
EvilMike's TB edit thingy (CTF mode host) - 1 point for kills, every enemy dies on score
LRS (Battle mode host) - Just like in 1.23+
Enemy killing (Battle mode host) - Level ends when all enemies are killed, killing one scores you one point. Your health is frozen to 5.

FreeFull
Feb 15, 2007, 08:09 AM
Make it able to change players characters into other ones, or even into bullets.

Cpp
Feb 15, 2007, 02:51 PM
Hmm I might update the first post to show what has been done so far and what has yet to be done. The ideas are nice, keep 'em coming!

EDIT: Neobeo, you might want to ask Cheeze, he offered help a few posts up. vv

Neobeo
Feb 15, 2007, 08:39 PM
Real life has been interfering quite a lot with the progress of this project. I'd appreciate if any programmers out there would be willing to assist.

Jerrythabest
Feb 16, 2007, 08:12 AM
I'm not a programmer but you could test stuff on me if you want ;p :lol:

Grytolle
Feb 17, 2007, 06:21 PM
*frowns at Jerry's sexual invitation*

Jerrythabest
Feb 18, 2007, 01:16 PM
ehh :H :p


any progress lately?

Dermo
May 12, 2007, 11:38 PM
i think something like private messaging to certain players would be cool and not so difficult from the server end. the server just chooses the socket ID to send the packet out to and that's it. Make it something like if you want to PM player 7 and you're player 1, press "t" and type "/7 (message)" without quotes or parenthesis

i also think (a more difficult feat) would be the ability to host under a different port for router users who aren't allowed to open up 10053 for jj2. The reason this would be difficult is because it would be nice if the receiving end didn't require a "PortPatch" to join. Uh this i kno is possible but i'm too tired to think of how since it's 3:30am sunday morning.

Another not so easy feature would be the ability for 33+ players to join. Don't ask i don't know how that would be done.

Another semi-difficult would be the ability to only allow a user inputted number of downloaders at a time to prevent flooding/crashing.

As a console app i would like it to not operate on strictly command lines because that's too confusing. Make it start up

"Welcome to Jazz Jackrabbit 2 Dedicated Server"
"Please input your gametype (ctf, battle, treasure, coop, or race)
"please input the maximum player number"
"Load custom game mode? (1=true, 0=false)"
[if true] "Please type in the custom game mode you would like to load (i don't know)"
"Log chat (1=true, 0=false)"
"Allow Private Messaging "
"number of hearts"
"number of kills to win"
"server name"
"at this time please type in the file names of any plugins you'd like to load at this time or press enter to start"
"plugin serversync.dll loaded"
"server running"

Neobeo
May 13, 2007, 12:27 AM
i think something like private messaging to certain players would be cool and not so difficult from the server end. the server just chooses the socket ID to send the packet out to and that's it. Make it something like if you want to PM player 7 and you're player 1, press "t" and type "/7 (message)" without quotes or parenthesis
This isn't too difficult. In fact this could also work with clients PM-ing other players.

i also think (a more difficult feat) would be the ability to host under a different port for router users who aren't allowed to open up 10053 for jj2. The reason this would be difficult is because it would be nice if the receiving end didn't require a "PortPatch" to join. Uh this i kno is possible but i'm too tired to think of how since it's 3:30am sunday morning.
From the server's point of view, this is much easier to implement than the idea above. And there is no way for the client to join other ports without some kind of patch since the value 10052 is hardcoded.

Another not so easy feature would be the ability for 33+ players to join. Don't ask i don't know how that would be done.
This is not possible, for various reasons such as the range-checking done by clients, and the fact that memory is allocated just enough for 32 players.

Another semi-difficult would be the ability to only allow a user inputted number of downloaders at a time to prevent flooding/crashing.
<strike>I don't see a link between downloading and crashing, but in any case this is a pretty trivial follow-up.</strike> It appears this is a bug in the way Jazz2.exe handles downloading. This should not happen in a properly designed server. Nevertheless, there will probably be options to limit the bandwidth usage and stuff.

As a console app i would like it to not operate on strictly command lines because that's too confusing. Make it start up

"Welcome to Jazz Jackrabbit 2 Dedicated Server"
"Please input your gametype (ctf, battle, treasure, coop, or race)
"please input the maximum player number"
"Load custom game mode? (1=true, 0=false)"
[if true] "Please type in the custom game mode you would like to load (i don't know)"
"Log chat (1=true, 0=false)"
"Allow Private Messaging "
"number of hearts"
"number of kills to win"
"server name"
"at this time please type in the file names of any plugins you'd like to load at this time or press enter to start"
"plugin serversync.dll loaded"
"server running"
That would defeat the whole idea of it being a command line program. Ideally, it should just start without requiring the user to further input any information. This would most likely be done with the combination of command-line and an INI file.

And aside from all that, custom game modes (or even the official ones) will be converted to "profiles" which contain, at the minimum, the base game mode, and some sort of script.

Dermo
May 13, 2007, 06:39 AM
This is not possible, for various reasons such as the range-checking done by clients, and the fact that memory is allocated just enough for 32 players.

that i can see (make a jazz patch with the dedicated server that allocates more memory to each client)

It appears this is a bug in the way Jazz2.exe handles downloading. This should not happen in a properly designed server. Nevertheless, there will probably be options to limit the bandwidth usage and stuff.

good...

That would defeat the whole idea of it being a command line program. Ideally, it should just start without requiring the user to further input any information. This would most likely be done with the combination of command-line and an INI file.

And aside from all that, custom game modes (or even the official ones) will be converted to "profiles" which contain, at the minimum, the base game mode, and some sort of script.

then make it a windows app with a UI and everything. I don't really like the idea of a console app.

FQuist
May 13, 2007, 06:44 AM
If the console app is designed well you can always create a GUI app to control the console.

Grytolle
May 13, 2007, 08:32 AM
console > GUI

anyway lets recode the dedicated server in msl for minimum portability and slowness

Torkell
May 13, 2007, 11:07 AM
That would defeat the whole idea of it being a command line program. Ideally, it should just start without requiring the user to further input any information. This would most likely be done with the combination of command-line and an INI file.
You could keep it as a normal command-line program, but have a parameter to run in interactive mode.

Jerrythabest
May 14, 2007, 09:07 AM
The idea of an INI file is good, you can easily save setting profiles by renaming the INI file ;p. I don't like command line stuff, you could at least make it possible to add a GUI plugin (and you *could* include it with the console).

Cpp
May 18, 2007, 11:01 PM
Personally I'd focus on the engine/system itself as the root of everything else. The console and/or GUI can be later made as an extension. Most people would prefer a nice GUI, but console is also a must for "low-level" admins. Think of it this way... new users would love to have an easy-to-use interface (like Controller v4.1), but to fine-tune the server with advanced features you'd have to consult the console. And if you ask me, I'd make something like Q3A/UEd console, not the DOS one.

Dermo
Jun 4, 2007, 12:21 PM
(PA) anybody with (FTG) would make it a Windows Console and not a DOS Console.

[Personal attack and flame tag edit. - FQuist]

Jerrythabest
Jun 13, 2007, 07:03 AM
Next is he'll remove your account XD

lol just spamming ;p


To give this post some value, IMO the first released version should already give the possibility to manage the whole server in a GUI, no matter how this is done ;p not everyone knows how to work with command lines, y'know ;p

Grytolle
Jun 13, 2007, 08:04 AM
what's so hard? typing something? just rtfm

Jerrythabest
Jun 13, 2007, 08:10 AM
No, remembering and understanding what to type. Especially syntaxes.

Dermo
Jun 19, 2007, 01:00 PM
I think that this dedicated server should have a GUI as said (i do like jerry's idea of an .ini file more tho). But I think that if it would have the settings in an .ini file, than the console should sit on the taskbar (or whatever it's called down where the clock is) and run in the background. The only way to change settings is to run the GUI which would be ran separately and it would command the console. Why would you do such a crazy thing? So you could put the dedicated server in startup and it wouldn't bother you when your computer starts up. It would just sit in the background and run. And you could always unload it by right clicking and clicking quit or exit or something.

Jerrythabest
Jun 19, 2007, 01:58 PM
It's called the system tray. ;p And I don't think it's meant to be running while you are doing whatever you are doing at your PC.

Dermo
Jun 19, 2007, 04:08 PM
If it's got all the features of an anti-crash and it won't lock up your PC I don't see a problem with it running while you do whatever you want. It could be a plugin or something for the dedicated server. Occasionally i'll run 1.23+ and SalLog and use SalLog to minimize both jj2 and sallog to the system tray while i do whatever I feel like. In the meanwhile jj2 will be hosting a test server. Whenever I do that I get no issues except an occasional lock-up which fixes itself after about 2 or 3 minutes. So it sounds like a good idea to me.

Jerrythabest
Jun 20, 2007, 04:24 AM
Though still, your server isn't as dedictated as when it's the only thing running, and not in the background... ;) A tray icon plugin is still a nice idea =)

Cpp
Jun 20, 2007, 11:55 AM
Why a plugin? Features like those can be easily integrated into the program itself ;)

Jerrythabest
Jun 20, 2007, 12:16 PM
The more things are plugins, the less things will be loaded by default. If you need something you can just order the program to load it while starting, other things will remain unloaded. Saves resources and performance. ;)

Dermo
Jun 20, 2007, 03:30 PM
I was about to say it would make it easier if you put the most limited amount of commands required to run a program like this. Maybe /startserver /endserver /banplayer etc would all be required but when you get commands like /minimizetray and you add too many commands, it confuses so easily. So an .ini is a given on this program. Aside from an .ini file, yes a plugin would make it a lot easier. /loadplugin "minimizetray.dll" /loadplugin "autobanajazz.dll" would make it easier because you only have to remember one command and the file name which you can more than easily change to your liking.

EDIT: I'm supposed to be presenting ideas so here's one. Make it so you can set the command for certain things. Like if you want the command to change the level to be /changelevel, you should be able to edit the .ini file and change the level change command to /changelevel.

Stijn
Jun 20, 2007, 03:36 PM
I think it's time Neobeo gives some update on how this is all going to work or people will keep making suggestions that won't really fit in how the program is (afaik) going to work.

Dermo
Jun 20, 2007, 04:05 PM
I think it's time you look at his signature.

http://www.jazz2online.com/jcf/member.php?u=810

Birdie
Jun 20, 2007, 05:18 PM
Right now it's a console, and I see no reason for neobeo to give it a GUI.

Dermo
Jun 20, 2007, 05:52 PM
so you don't have to type a bunch of confusing commands. Giving it a GUI would make it easier.

Cpp
Jun 21, 2007, 12:54 AM
I do not see a reason why tray icon has to be a plugin. Small pieces of code like this can easily be integrated into the program engine. You can later edit the INI settings to disable parts of the program you do not wish to load. I like the GUI plugin idea for it allows users to make their own GUIs that way. The console window needs to be part of the engine in either case, but users can still choose not to display it on startup (can access it later via system tray icon).

Jerrythabest
Jun 21, 2007, 05:09 AM
A great idea: perform multiple commands while typing only one. In some kind of options file, maybe just the program's ini file, you can specify a command (like /doallthis) that will perform multiple core/plugin commands (like /ban# or /restartlevel etc etc). It should also be possible to use parameters. This way, I'd make a command /switchtobattle "levelname" score which will rename the server to RR Server ..Battle.., change to gametype Battle, loads level levelname.j2l and changes the needed score to win to score.

Cpp
Jun 21, 2007, 05:13 AM
Jerry: Well you have two ways of doing that. Either write a new function inside the script that does all that and then invoke it, or you can use console macros, which you can use by typing "exec macro.txt" where this macro.txt file contains a number of console commands.

Jerrythabest
Jun 21, 2007, 06:35 AM
You mean it's already implemented?

Dermo
Jun 21, 2007, 08:48 AM
Now I really like Overlord's idea. But I still like the idea of an .ini file better.

Stijn
Jun 21, 2007, 03:18 PM
I think it's time you look at his signature.

http://www.jazz2online.com/jcf/member.php?u=810

That was not what I meant :H

I don't want to show off or anything, but I dare say I'd know more than most here about this program, having used an early version of it. Judging by my expierence with this program several things mentioned here are quite unfeasible or very easy to implement yourself. However, I do not know what Neobeo wants people to know about his program, so I was asking him to react on this matter in person.

R3ptile
Jun 21, 2007, 11:39 PM
once this program is released
i'm planning to make an irc gather bot
each player simply types "!add"
once it gets the required X amountation of players
it automatically starts a server for them
to play their 2o2\3o3\4o4

Jerrythabest
Jun 22, 2007, 05:03 AM
I wonder if it's easy to add features to a program if they only know Dutch, English, some German, HTML, PHP and a tiny bit of Javascript. ;p

Cpp
Jun 22, 2007, 09:24 AM
A PHP plugin is possible. This way you could control your server directly from the web. Maybe this is a better way of administrating the server than over the regular chat in jj22 itself, but both could be useful.

Dermo
Jun 22, 2007, 09:57 AM
lawl. I like that. Since a lot of us own websites. But I find that to be a funny and weird way to control a server.

EDIT: I finished my Flash course this year. Could you control the server using an embedded swf/flv file somehow?

Jerrythabest
Jun 22, 2007, 10:41 AM
The point is that the server program will need to understand what I'm writing. And I know no more languages than the ones mentioned in the previous post... So it's only easy to add functions for most people if it supports such scripts.

Neobeo
Jun 22, 2007, 06:15 PM
Well, seeing as the last post I made here was 6 weeks ago, I dare say I'm overdue for an official project status update. I probably should have for another 4 replies or so, so that this would at the top of a new page. Nevertheless, here are the current list of features.

What already works:

Listing/delisting the server
Movement and shooting of clients
Normal chatting
Downloading of levels and tilesets


What is buggy/still in progress:

Collision detection when shooting
Capturing the flag
Object pickups


Currently codenamed azure moon, the official name is still not being made known yet. The official scripting language to be used with this project is Lua. Support for DLL plugin has been considered, but will probably not be added until the later stages.

The scripting language, for maximum flexibility, has been designed to intercept events, such as onRoast, onChat, onJoin, onCapture. As such, Lua was chosen because it will be easy for beginners to pick up. Ideally, each gamemode would run as its own .lua file.

Commands will act as functions, and can be handled globally or locally. Examples of the former are "/kick", "/n", or "/instagib on". These are functions which, when you call, will be handled internally by the server so you don't really need to know how they work. You can also define your own function, such as defining "/spaztagib" to be "player.health = 1; if player.character = jazz then kick player". (That was pseudocode though, and doesn't reflect what Lua actually looks like).

The final issue is, as much as I'd like to make this project open source, plenty of obstacles have popped up along the way making the opensourceness of this project a very controversial decision. Said discussion is still being held by the board of directors. As at time of publishing this project is still closed source.

Finally, time for the Q&A:

The dedicated server will run entirely on console. For those who have used console, this decision will be an easy one to support since it calls for much more effective and efficient means of modifying the server. If you really need a GUI, there might be a possibility of creating one from the script.
Minimizing the console to the system tray is trivial, and doesn't require a plugin. However, it could be modified with the scripting language.
I really never intended this to work with PHP or Flash. However, the plugin system is flexible. If you could get them to communicate with the server by means of DLL or otherwise, then be my guest.

Jerrythabest
Jun 23, 2007, 03:15 AM
Well, seeing as the last post I made here was 6 weeks ago, I dare say I'm overdue for an official project status update. I probably should have for another 4 replies or so, so that this would at the top of a new page. Nevertheless, here are the current list of features.The first one to post on a new page must quote your post! =D ;p

Currently codenamed azure moon, the official name is still not being made known yet.I've always liked that codename. If you don't have a name yet, stop thinking. It's a really nice name.

The official scripting language to be used with this project is Lua. Support for DLL plugin has been considered, but will probably not be added until the later stages. The scripting language, for maximum flexibility, has been designed to intercept events, such as onRoast, onChat, onJoin, onCapture. As such, Lua was chosen because it will be easy for beginners to pick up. Ideally, each gamemode would run as its own .lua file.

Commands will act as functions, and can be handled globally or locally. Examples of the former are "/kick", "/n", or "/instagib on". These are functions which, when you call, will be handled internally by the server so you don't really need to know how they work. You can also define your own function, such as defining "/spaztagib" to be "player.health = 1; if player.character = jazz then kick player". (That was pseudocode though, and doesn't reflect what Lua actually looks like).Sounds good. A scripting code that's easy to pick up is a very good choice indeed.

The final issue is, as much as I'd like to make this project open source, plenty of obstacles have popped up along the way making the opensourceness of this project a very controversial decision. Said discussion is still being held by the board of directors. As at time of publishing this project is still closed source.Just keep it closed source, unless you are going to do what Epic did with Jazz. If you make it opensource you get all kinds of incompatible edits which is not very useful.

Finally, time for the Q&A:

The dedicated server will run entirely on console. For those who have used console, this decision will be an easy one to support since it calls for much more effective and efficient means of modifying the server. If you really need a GUI, there might be a possibility of creating one from the script.
Minimizing the console to the system tray is trivial, and doesn't require a plugin. However, it could be modified with the scripting language.
I really never intended this to work with PHP or Flash. However, the plugin system is flexible. If you could get them to communicate with the server by means of DLL or otherwise, then be my guest.
Heh, lemme try to make a link with PHP. That'll really improve my PHP skills as well for sure, though it won't be easy =)

Cataphract
Jun 25, 2007, 08:10 PM
The final issue is, as much as I'd like to make this project open source, plenty of obstacles have popped up along the way making the opensourceness of this project a very controversial decision. Said discussion is still being held by the board of directors. As at time of publishing this project is still closed source.


Hum? Obstacles? The only valid reasons I can think right now for making a program not free is if 1) one has licensed code from a third party and wasn't given permission to disclose it or 2) the business model depends upon it.

I hope it's not some silly objection such as Jerrythabest's or something like "it'll make it easier for someone to write an exploit and run arbitrary code on the clients".

It's not like there are many skilled programmers in this community that would benefit from making the program free, but it would probably be a good incentive to attract more people -- it's not just the stand-alone server program, anyone would have access to the JJ2 protocol and a reference implementation of it. That certainly creates interesting possibilities.

It could also accelerate the development, since everyone would be able to contribute with patches.

So I hope the "board of directors" decides to release this under a free license.

Jerrythabest
Jun 25, 2007, 10:37 PM
Hmm you actually made me doubt now! GJ :p

Torkell
Jun 26, 2007, 06:28 AM
Hum? Obstacles? The only valid reasons I can think right now for making a program not free is if 1) one has licensed code from a third party and wasn't given permission to disclose it or 2) the business model depends upon it.
"Free" does not necessarily mean "open source".

Cataphract
Jun 26, 2007, 06:38 AM
"Free" does not necessarily mean "open source".

Sure, words have several meanings, but clearly I was using "free" to refer to freedom, not price. See http://www.gnu.org/philosophy/free-sw.html

Cpp
Jun 26, 2007, 08:42 AM
Well one thing is clear already. It definitely won't go commercial ;)

Dermo
Jun 26, 2007, 09:05 AM
LOL I could see that now! Amazon.com:

Jazz Jackrabbit 2 Dedicated Server
description: host your own jj2 dedicated server with this program!!!
price: $19.95 FREE SHIPPING

comments:
somebody: What the heck is jazz jackrabbit 2?
somebody else: ???
somebody else: I bought this program and it says i need to download levels for jazz jackrabbit 2. what the hell??

Jerrythabest
Jun 26, 2007, 12:50 PM
Whahahah :lol: It's price is even a lot more than the one of JJ2 itself ;p

Dermo
Aug 31, 2007, 10:41 PM
Awww but that's no fun! It's funny when the animations get screwed up from a 1.24 person joining a 1.23 server! XD

:(

Jerrythabest
Sep 1, 2007, 01:28 AM
But still it's better if they don't.

Dermo
Sep 1, 2007, 07:38 AM
how so?

Cpp
Sep 1, 2007, 10:46 AM
The animations can be fixed easily. Depending on what version a client uses, we can then align the anims to fit the given characters.

Jerrythabest
Sep 1, 2007, 12:52 PM
Give moo a checkbox to disable it ;)

Dermo
Sep 1, 2007, 06:31 PM
Thank you, Jerry!

Caffne
Mar 30, 2008, 09:19 AM
I personally believe it should be command line. Servers tend to be command line only.

BTW sorry for bump.

Jerrythabest
Mar 30, 2008, 11:30 PM
Bump is good. I wonder if this is still being worked on ^^ Did moo get his checkbox yet?

Cpp
Mar 31, 2008, 07:00 AM
Check my signature.
The forum has just opened.

Jerrythabest
Mar 31, 2008, 08:32 AM
Aye :D I'm there

...only I'm not recieving the activation mail. Manual activation please :)

Cpp
Mar 31, 2008, 10:21 AM
The activation is a bit bugged as it does not send from a valid email address. Check your spam for the activation email. I'll eventually have to setup a proper email client.

EDIT: Activated

Cpp
Apr 16, 2008, 11:31 AM
Just a question.
Is the community still interested in this project? I see certain people talk about it every once a while, but nobody seems to be interesting in coding or at least helping to code it. Unfortunately I don't have much time to keep coding it on my own.

Speeza
Apr 16, 2008, 11:36 AM
I am its just I don't hear much news about it.

Stijn
Apr 16, 2008, 12:18 PM
The lack of interest in coding this might be an effect of both the lack of coders in this community (#1) and the mysteries and secrecies J2NSM tends to surround its projects with.

Vegito
Apr 16, 2008, 01:00 PM
I cant even code soo...

Jerrythabest
Apr 16, 2008, 01:10 PM
Each second I'm waiting for this kills one of my cells. You'd better make time before I'm gone ;p


I'd love to help but I wouldn't know how. Still, I'm really one of those people who are really waiting for this to come out. BTW... Is the project still called Azure Moon?

piet
Apr 16, 2008, 02:14 PM
if this project isnt running maybe some coders can begin there own project.
since a few months i started learning java and C# so maybe we can team up.

if the project is still running i will gladly help :)

Cpp
Apr 16, 2008, 03:36 PM
Azure moon was Neobeo's prototype. It had a number of networking capabilities plus a built in LUA support. Although I only have an older version of it with no LUA support

EvilMike
Apr 16, 2008, 03:44 PM
It would be nice if this project was picked up again. I despise hosting jj2 servers because the game can be so unstable, but with a dedicated server I would probably host a lot.

Raven aka StL
Apr 17, 2008, 05:54 AM
Most interesting, this would be a huge, <s>late</s> leap forward.
Do carry on with the project, for the community's sake. :|

Speeza
Apr 20, 2008, 12:52 PM
Bump , any news ?

EvilMike
Apr 20, 2008, 08:47 PM
Why would there be? No one is actively working on this project at the moment.

piet
Apr 20, 2008, 11:59 PM
Why would there be? No one is actively working on this project at the moment.

again i say who wants to start a new project. we will re state the goals to a minimum for the first release. (i should say no exta funcs only basic jj2 behavior without extra game modes).

i think java is a good choice becouse of its cross platformness.

Erik
Apr 21, 2008, 03:10 AM
Also java is slow

piet
Apr 21, 2008, 04:28 AM
Also java is slow

as a desktop app it might seem slow and at initial startup it will be a bit slower then native apps. but when its running it will be fast enough to do its job.

correct me if i am wrong but thats what a java programmer told me.

EvilMike
Apr 21, 2008, 12:06 PM
Why would you want to restart this? It makes no sense. There has already been a lot of work put into this, even though it is not finished yet. I have even seen severs being hosted using this, it just has quite limited functionality. For example, last I saw, it was possible to move around and chat, but impossible to shoot or damage other players.

If anyone is really willing to put work into this project, just ask for the source code. Don't do off and start something new, it's unproductive.

piet
Apr 21, 2008, 01:33 PM
Why would you want to restart this? It makes no sense. There has already been a lot of work put into this, even though it is not finished yet. I have even seen severs being hosted using this, it just has quite limited functionality. For example, last I saw, it was possible to move around and chat, but impossible to shoot or damage other players.

If anyone is really willing to put work into this project, just ask for the source code. Don't do off and start something new, it's unproductive.

good point!

FQuist
Apr 21, 2008, 02:41 PM
someone could upload the source to some repository like google code, perhaps. Imho one of the reasons most projects aren't finished is the veil of secrecy surrounding them. not that they would otherwise be finished, i doubt it, but the chance might be higher.

piet
Apr 22, 2008, 12:53 AM
someone could upload the source to some repository like google code, perhaps. Imho one of the reasons most projects aren't finished is the veil of secrecy surrounding them. not that they would otherwise be finished, i doubt it, but the chance might be higher.

if its on google code i would gladly take a look at it. dont know if i could do the coding but i can lead the project and bring some structure to it with a forum a dev site and code hosting (subversion repository).

Cpp
Apr 22, 2008, 08:51 AM
On-topic:
I was thinking about setting up a svn on my own personal server, but I guess it's possible to use 3rd party repos as well. We have already documented much of jj2's internals and there have been a number of prototypes to date. Unfortunately the project got stuck a while ago because there didn't seem to be much interest to keep it going. I've worked on the docs for a while later tho. The project's dev forum is here (not much content on it): http://dev.lordprime.com


Off-topic:
Recently I spoke with Pyromanus and he brought a rather big question to my attention. I would like to share this question with outside world to see the response. There have been discussions about a number of different projects and I am rather curious to see which one of them is most desirable and which is most probable. To list a few:

Dedicated server
A server for the current game (1.23, 1.24) with new features, scripting and plugin support. Should use portable code and run at least on linux and windows. This project is probable because we've already documented all jj2 file formats as well as network protocols. The main challenge here is to create a robust internal structure and recode certain parts of jj2 like the engine itself. For such project, I'd likely require some help from experienced programmers (I dare not say any names) to discuss the blueprints and portability (possibly to work on the code as well).

JCS+
Neobeo has worked on this project since forever and the project is currently <strike>dead</strike> indefinitely postponed. Basically, it's a rewritten Jazz Creation Station with a number of new features. Unfortunately Neobeo doesn't seem to have much time to work on it any more.

OpenJazz2
Like OpenJazz1. A portable, completely rewritten and reverse-engineered version of jj2. Has to support current jj2 standards (networking protocols, file formats and the like). This is basically the same as the dedicated server, but without scripting support and added multimedia (gfx, sound, ui, etc).

New game (1.25)
This project basically gives us the ability to write our own jazz game from scratch. Since this is a new game, it does not have to stick to current jj2 standards. We can implement a number of features that the current game lacks (see the 1.25 thread (http://www.jazz2online.com/jcf/showthread.php?t=1910)). While this project presents the greatest reward, it also requires the most work to pull off.

Grytolle
Apr 22, 2008, 09:36 AM
Openjazz2 is definitely the best idea, and the most useful.

Bobby aka Dizzy
Apr 22, 2008, 09:45 AM
These ideas are all interesting but I personally doubt the feasibility of nearly all of them with the possible exception of JCS+.

robust internal structure and recode certain parts of jj2 like the engine itself
I personally don't see how we can actually expect to produce a spot on replication of the JJ2 engine itself when all we have is the binary. I can easily think of a number of subtle issues that would be extremely time consuming to reverse engineer (for example, how do bouncers actually bounce? The server is responsible for this calculation.). It might be possible to get a JJ2 engine that is 90% of the way to being accurate but I don't think we'd ever be able to get that last 10% perfect.

Cpp
Apr 22, 2008, 10:17 AM
I personally don't see how we can actually expect to produce a spot on replication of the JJ2 engine itself when all we have is the binary. I can easily think of a number of subtle issues that would be extremely time consuming to reverse engineer (for example, how do bouncers actually bounce? The server is responsible for this calculation.). It might be possible to get a JJ2 engine that is 90% of the way to being accurate but I don't think we'd ever be able to get that last 10% perfect.Trust me! That's a minor problem ;)

Stijn
Apr 22, 2008, 12:07 PM
It's this kind of attitude I'm sort of tired of, Cpp. You could as well just explain why that is a minor problem so we aren't left to guess.

For the record, Neobeo has already done work on calculating weapon trajectories, though I'm not sure exactly how much he progressed.

EvilMike
Apr 22, 2008, 12:19 PM
Out of all those projects, the dedicated server should be focused on the most, followed by jcs+. The reason for this is simply pragmatic: both of those projects have had work on them, and both of them show the highest probability of being finished. Particularly the dedicated server.

OpenJazz2 is a good idea but too complicated at the moment, and feels like a bit of a pipe dream.

It's this kind of attitude I'm sort of tired of, Cpp. You could as well just explain why that is a minor problem so we aren't left to guess.
I'm pretty sure he was joking if the ;) is any indication. He's saying that even though it's tricky, that stuff can be figured out. Difficult, but not impossible. No need to lash out against him.

I personally don't see how we can actually expect to produce a spot on replication of the JJ2 engine itself when all we have is the binary. I can easily think of a number of subtle issues that would be extremely time consuming to reverse engineer (for example, how do bouncers actually bounce? The server is responsible for this calculation.). It might be possible to get a JJ2 engine that is 90% of the way to being accurate but I don't think we'd ever be able to get that last 10% perfect.
You'd be surprised how much of the weird tiny details can be figured out with a bit of ingenuity and a lot of spare time. I think weapon trajectories could be figured out with enough effort. Maybe they would still be a bit off, but most likely less than 10%.

Stijn
Apr 22, 2008, 12:37 PM
I'm pretty sure he was joking if the ;) is any indication. He's saying that even though it's tricky, that stuff can be figured out. Difficult, but not impossible. No need to lash out against him.
I'm not lashing out against Cpp personally, but to J2NSM in general. Keeping all their knowledge "secret" is not constructive. Just put it on a public wiki or something, so everyone can benefit from it.

Bobby aka Dizzy
Apr 22, 2008, 12:47 PM
You'd be surprised how much of the weird tiny details can be figured out with a bit of ingenuity and a lot of spare time. I think weapon trajectories could be figured out with enough effort. Maybe they would still be a bit off, but most likely less than 10%.

I don't doubt that most of the weird details can be figured out but there are surely many many corner cases in the engine behavior that none of us have ever given too much thought. I'm skeptical that we would be able to achieve a valid server clone of the game and that the people involved would not become burned out of tracking down all of the details.

Perhaps more openness in reverse engineering the game would help the effort by allowing people to help and to start from the work of others rather than rederive everything. I'm not sure that the history we have of hiding our secrets in closed off hacking communities is for the best for making real progress anymore. (I don't think we'll have a rash of abused hacking tools if we give away information about the game as was the concern ~5/6(?) years ago when we started forming these groups)

EvilMike
Apr 22, 2008, 01:27 PM
Yeah I agree that j2nsm could be a bit more open. It has a good database (wiki) which is currently private, and the IRC channel is also private. But on the other hand, there is actually some stuff that there is a very good reason for keeping under wraps, mostly for securty reasons. The best in my opinion would probably be to make the system more open, but keep the sensitive issues private. I just don't know if the pressure is really there to make things more open. I think the information database at least should be made mostly public (though not to edit). That would at least spur activity a bit, and get more potential members. It's kinda dead at the moment.

It's pretty easy to "join" j2nsm anyway, so in the mean time that's the best option for anyone interested in getting involved. It's a pretty loose collective, and I don't think there is even any real official list of members. If you are smart, trustworthy, and able to make the slightest positive contribution, then you can get in. A lot of people with access don't even have much programming skill, including me.

(I don't think we'll have a rash of abused hacking tools if we give away information about the game as was the concern ~5/6(?) years ago when we started forming these groups)
The sort of things people could do 6 years ago are quite a bit different from what is possible now. Crashing servers, spamming servers with crap without even being in them, and some things that are quite a bit worse (I will not go into more detail here). JJ2+ and other tools blocks a lot of that but some of it is bad enough that there is still a very good reason for letting as few people as possible know about it. The people with access to this knowledge should only be the ones who can be trusted not to put it to bad use or leak it, and I think that is a very reasonable position, albeit somewhat annoying to those left in the dark.

Cpp
Apr 22, 2008, 03:48 PM
EDIT: Perhaps I overreacted a bit in this post so I'll just edit it out.

Lastly, I'll save myself the typing and agree with everything Mike just said.

Monolith
Apr 22, 2008, 09:40 PM
Dedicated server
A server for the current game (1.23, 1.24) with new features, scripting and plugin support. Should use portable code and run at least on linux and windows. This project is probable because we've already documented all jj2 file formats as well as network protocols. The main challenge here is to create a robust internal structure and recode certain parts of jj2 like the engine itself. For such project, I'd likely require some help from experienced programmers (I dare not say any names) to discuss the blueprints and portability (possibly to work on the code as well).

While I must still include the big note about having very little free time for such projects, I am interested in helping with the core framework and engine that such a project would require. I know little about reverse engineering or JJ2 formats, but engine design, multithreading, and network programming are things I could do.