Total servers: 2
US nonstop + voting
Modern Warfare1.0 – 20lt
IP: 69.12.73.163
Game Mode: Death Match
Lives: 0
Max Kills: 15
Version: OpenLieroX 0.58 rc5
Players:
DE nonstop + voting
Liero v1.0 – 100lt
IP: 144.76.67.162
Game Mode: Death Match
Lives: 0
Max Kills: 15
Version: OpenLieroX 0.58 rc5
Players:
Pages: [1] 2  All   Go Down

Author Topic: [Release] OpenLieroX 0.59 beta10  (Read 19070 times)

albert

[Release] OpenLieroX 0.59 beta10
« on: April 17, 2012, 03:24:05 am »
About the OLX 0.59 beta 10 release:

"1,306 changed files with 159,276 additions and 173,652 deletions"

Downloads:
* Windows
* MacOSX
* source code (sorry, no Ubuntu/Debian package for now… but as usual, building on Linux is easy)

It has been a long time. This was mostly that we have been inactive on OLX for quite some time. However, in the last 3 months, I got quite active again and made quite a lot of huge internal changes. These changes are some of the biggest internal changes since the first OLX release. Not all changes are directly visible to you, though.

* game object serialization system

This is mostly internal. But this is the biggest change. It means that all game objects are serializable. This basically means that you can access every object and every attribute from everywhere (i.e. right now from Lua scripts or from console).

This is also used now to sync the state over network. Most of the old network code has become obsolete now and isn't used anymore if you have only >=0.59b10 versions in a network game. Right now, the network sync implementation is quite simple but this whole design greatly allows for huge improvements in the future. The network engine was not really tested that well yet, esp not over laggy networks. If it turns out that the performance is too bad for playing, this can easily be improved later based on this work.

The possibilities for Lua are also huge. You can basically control the whole game. There is also a new global Lua instance which is always available, even when you are not running a game. You could script the game in any way you want it. (In the future, you might script your own clan ladder system based on that. Or LXA account integration. Or some extended GUI. Or your people banning system. Some server filtering. ...) And of course do also some more crazy stuff in maps/mods (whatever you can imagine -- you really have access to *everything*).

* Gusanos stabilization

There has been quite some work on the Gusanos code to make it more stable. It should basically just work now. Also the Gusanos network engine got cleaned up a bit. In earlier 0.59 releases, Gusanos over network was not really playable at all. My hope is that this has changed now.

* merge Gusanos/LX drawing

This has huge implications. Basically all Gusanos special effects such as lightning, shadows, distortion can be used in LX. Gusanos is drawn at high-res now. I.e. worms don't look pixelized anymore. Also the special effects are high-res.

Want to play around? Type `lua game.levelDarkMode = true` in console. Or test some of the countless Gusanos maps/mods.

For OLX, I also simplified the HUD. It is overlayed now and the game gets the full screen. I think this is a somewhat nicer gameplay.

---

Some more changes. Not complete (see below for more).

- weapon slots became dynamic. custom sizes possible. new option WeaponSlotsNum
- Teeworlds (https://www.teeworlds.com/) level support (mostly complete)
- new pixel flags types: no hook, damage area
- foreground level graphic support (put foreground.png in your (Gus) level dir)
- Gusanos high-res level support (double_res = 1 in config.cfg)
- draw arrow in race mode to the next check point
- console persistence history support
- level dark mode used in Hide&Seek
- Lua startup scripts (startup*.lua)
- console: `lua` - executes Lua code in the global Lua instance
- press jump to spawn worm support
- HUD feedback: "Waiting for respawn …" and others
- MaxRespawnTime option. If enabled (>=0) and if both this time and RespawnTime went by, the worm is automatically spawned
- termios console CLI support based on linenoise (for Unix/Linux/MacOSX)
- simplification of internal game state and game loop
- fixes in net channel bandwidth handling
- unified server/client code. shares same gamestate (map, mod, etc)
- many Gusanos cleanups and fixes
- single player game config structure simplified

For all more complete list of changes, see here or read doc/ChangeLog from the release. For even more details, this is the full Git change log.

---

Some drawbacks:

A lot of code has been rewritten and is completely new. This means that it might be buggy and it is also not that well optimized yet. In particular, this is for the graphics code, the main engine and the network engine. E.g., the graphics code is slower than earlier and you will notice this in lower FPS. Also, map/projectile shadows aren't implemented yet. And some other stuff might be missing too (please report). The network code is also not optimized yet.

The MacOSX release currently only supports MacOSX >=10.6 with 64bit Intel. It's quite annoying/complicated to have wider support. The OLX code itself should support just anything (ppc, ppc64, i386, x86_64, from MacOSX 10.1 on), however, it's somewhat complicated to get the libraries for each target arch. Anyway, I'm curious how important this is. If there are too much requests for earlier MacOSX versions or other archs, I'll probably add that support back. For now, if you happen to have such old MacOSX version, you might consider compiling OLX yourself which is not too complicated on OSX.

---

If you are interested, I send a mail some weeks ago to the OLX development mailing list where I described the changes in some more technical way. This is the mail, slightly updated for the release:

* New object system + network engine

This is probably the biggest change. Every object and every attribute is serializable now. For network, this is esp. used (for now) for CWorm, Game and Settings. Under Game, there are many new attributes, e.g. game.state (when connected, says lobby, preparing or playing), game.teamScores, etc.

This is all done via the ATTR macro. The memory overhead is minimal (wouldn't be needed at all but some extra flags like changed have been helpful here).

Each attrib has some meta attributes, e.g. like serverSide etc. By them, OLX decides who is authorized to make changes on an attrib etc. This check is done both serverside and clientside. On clientside, when you try to make changes on such an attrib, it is just ignored. This was helpful for much of the game code which is now just the same on the server and on the client (and depending on the role, the attribs are changed or not).

After each frame for each client (or also from client to server), a game update net package is sent with the diff.

* no separation between CClient/CServer

No matter if the code is server side or client side, you always operate on the same game objects / state / attributes. There is only a single global copy of the game. All information wether some client needs some update or not is handled via the object serialization system. Each CServerConnection has a copy of the full game state (or actually a diff to the current one) so that we know what updates to send. The local client will never ever need updates.

* main game loop and game state simplification

There aren't different variables anymore spread around the code describing the game state (earlier, CClient and CServer could have disagreed wether we were playing, preparing, in lobby or doing something else). There is just game.state which can be quit, inactive (menu), connecting (client-only), lobby, preparing or playing.

There is also a single main loop now which is run no matter in what state we are. Depending on the state, some sub-functions are called or not called. E.g. Menu_Frame is only called if game.state <= lobby. Also, the Gusanos code is now always called (ingame).

* more Gusanos / LX merging

Many more parts of LX and Gusanos have been merged. Esp. many CWorm attributes (angle, etc.), the ninja rope and much code. E.g. there is no Gus-specific spawn anymore, Gus-ninjarope also supports attaching to worms now, etc. This also goes into the other direction, e.g. you can configure that you don't immediately spawn after a timeout but that you press jump to spawn (after a timeout).

* Lua everywhere / global Lua instance

In addition to the ingame Lua instance, there is a new global Lua instance which is always present (and wont be reset after a game). This Lua instance gets all the same bindings as the ingame Lua instance.

There are many more Lua bindings now. Lua has full access to the object serialization system (but of course, if you change attribs you don't have access to, they will be ignored; this is nice because you can just use the same code for both server and client). Lua also gets bindings to all the CLI commands. There is almost nothing you cannot control via Lua now. However, for many things (e.g. all CLI commands, game settings write access), the access is restricted to the global Lua instance.

You can also have global Lua startup scripts which will be run at OLX startup.

Lua itself also can register some more callbacks as earlier, e.g. for serverStart, etc. Lua also can setup timers now.

You can also execute Lua commands via console via the lua command. They will be executed in the global Lua instance.

The plan was also to just base the whole console on Lua but with a different/simplified syntax (i.e. not the Lua syntax) so that it stays as simple as it currently is (e.g., for Lua, you would always need parentheses but that doesn't make much sense for the ingame console). (But this is not done yet...)

* simplified LX ingame HUD

The full screen surface is now used for gaming as in Gusanos. Information like health, weapon, etc. is shown somewhere at the bottom or the top.

The code right now may be temporary. I thought it would be nice to just provide the same interface as in Gusanos and the game theme defines the HUD. LX mods also could overwrite that, as Gus mods can.

* fixed 100 FPS for inner game loop

The inner game loop has a fixed 100 FPS. This is basically GameServer::SimulateGame and a few other things. And also the Gusanos code (which was already earlier at fixed 100 FPS). There is also the game.serverFrame variable which counts all the frames while game.state == playing and you can calculate the game time from that.

The LX physics code (which is run from within there) still has its own FPS handling and you still can configure it (as earlier), so that hasn't really changed.

* termios CLI

For Linux/Unix/Mac/all-non-Windows users: There is a nice termios CLI now for OLX. It doesn't use readline or libedit, it uses its own code (which is roughly based on liblinenoise). It supports autocompletion, history and other stuff. With all that, it is even more advanced than the ingame console.

* singlethreaded debug code

It is possible to compile OLX now that is uses the main thread for both drawing and the game logic. For some stupid debuggers, this might be useful.

* many fixes and other stuff

In the net code, quite a few fixes have been made. The CChannel specific bandwidth limitation was removed; it is not needed anymore since we do it for game updates. This greatly improves the network performance as the CChannel code was somewhat too restrictive (you saw that earlier as the bandwidth never really even nearly hit your maximum upload bandwidth). A few other basic but very serious fixes for the networking low level socket code has been made.

Some of the drawing/blitting functions have been fixed. They were still broken in specific cases. We now have optimized variants for all different possible cases of bpp, alpha-blending, etc.

Much of the Lua handling has been made secure so that it cannot really happen that you access an outdated LuaReference or so. This should have fixed some crashes. It is kind of bullet-proof now.

And many many other countless stuff has been fixed along the way of al the changes in the last 3 months. I think I cannot really count them all out of my head.

Of course, some of those transitions are not fully complete. You still find many old code, there are still the classes GameServer and CClient (which also still make sense to handle the server and the client socket) which still have some own state (e.g. it could be that the server is connected, the client is not, or so). Also, the new code might still be buggy (it is all new), although OLX seems to be quite stable so far.

Also, OLX is still compatible to the old network engine. In most of the net-engine Send* functions, when the other side is >=OLX0.59b10, it just ignores the send, otherwise it would work as earlier. As long as 0.59 is not stable and most people haven't switched yet, I don't want to remove that. However, once there is no real reason anymore not to switch to 0.59 and most people already did, we can drop all that old code. In the meanwhile, I think it is important for the transition.
Logged

joni

Re: [Release] OpenLieroX 0.59 beta10
« Reply #1 on: April 17, 2012, 01:41:20 pm »
time to test it out! :P

Edit: First thing i quickly noticed was those FPS drops. I set max fps to 120. Noticed game had hard time to keep it there, especially on respawning and checking scoreboard. Fps dropped near ~20-30 now and then, making it kind of odd to play.

Couldn't blame my PC for it, since it runs OLX fine with huge fps without slowdowns.

--
Joined to b10 server, can't get ingame - frozen in-chat and can only see the host worm in there.
--
And when playing rifles in b10 server, it shoots always doubles. major bug


Also, pretty difficult atleast for me to get in-game with servers. It freezes a lot when it just connected to a server. After few tries it completely stops answering to "Connect server", and you need to restart.
« Last Edit: April 17, 2012, 02:43:24 pm by joni »
Logged

k00man

Re: [Release] OpenLieroX 0.59 beta10
« Reply #2 on: April 17, 2012, 02:15:53 pm »
Gonna test it too, i'll be back to tell my opinion! Joni wanna come to my server as soon as I download it?
Logged
Check out my level: Warriors Stronghold

joni

Re: [Release] OpenLieroX 0.59 beta10
« Reply #3 on: April 17, 2012, 02:16:41 pm »
Gonna test it too, i'll be back to tell my opinion! Joni wanna come to my server as soon as I download it?
sure, i'll hang out in LX :P
Logged

SLak0n

Re: [Release] OpenLieroX 0.59 beta10
« Reply #4 on: April 17, 2012, 02:27:48 pm »
The program can't start because MSVCR100D.dll is missing from your computer. Try reinstalling the program to fix this program.
Logged

k00man

Re: [Release] OpenLieroX 0.59 beta10
« Reply #5 on: April 17, 2012, 02:34:04 pm »
I had that same problem too on windows version. Downloaded msvcr100d.dll from dll-files.com and placed it in OpenLieroX folder and problem got fixed.
Logged
Check out my level: Warriors Stronghold

Filmonss

Re: [Release] OpenLieroX 0.59 beta10
« Reply #6 on: April 17, 2012, 03:31:32 pm »
Did you even test the game?
no need to use rope anymore can just shoot with rifles or spam ss, and yea 1 shot 1 kill (sometimes) and sometimes 1 shot=64 dmg.

dubble napalm epicness.

seems like host do the right damage and (visiters) do twice as much. SS= 80 dmg (full), HG=26 etc.  domy can do from 60 - 80 and cannon around 54, only one cannon

bad to be host. just delete this..

Logged
2010 Most Improved Award - Filmons
2014 Best Classic Player Award - Filmons

Filmonss

Re: [Release] OpenLieroX 0.59 beta10
« Reply #7 on: April 17, 2012, 03:34:05 pm »
wait what? now i cant even see my napalm. only the fire from it
Logged
2010 Most Improved Award - Filmons
2014 Best Classic Player Award - Filmons

Punisher for real

Re: [Release] OpenLieroX 0.59 beta10
« Reply #8 on: April 17, 2012, 03:50:12 pm »
koodari joka testaa pelinsä, yeah right  8)

cant really think how ****up can be if 1 ss kills you instant or double rifles per time, did you shoot even once when testing this version?

otherway, nice punch of new things and updates !

Edit. okay tested it bout 30mins and score,

2 total crasses
1 total mouse freeze
0 ingame games
20 lobby freezes, sometimes alone in the server etc even when theres 6 players
skins/colors ****ed up

and after that i desided to quit.
« Last Edit: April 17, 2012, 04:25:52 pm by Punisher for real »
Logged
Kumivene on vene, joka puhalletaan täyteen tarpeen tullen. You know what, i like to swim alot but i dont like to slick lick random asses peaces of shit2

https://i.imgur.com/V9sBcf2.png

k00man

Re: [Release] OpenLieroX 0.59 beta10
« Reply #9 on: April 17, 2012, 04:25:47 pm »
Yeah, alot of bugs for sure. But I managed to test classic 100lt, rifles and mortars with slako, which worked out quite well. Hit registry was alot better than in any older versions. Another nice  feature is ability to play gusanos maps with lx mods.
Logged
Check out my level: Warriors Stronghold

Tafka

Re: [Release] OpenLieroX 0.59 beta10
« Reply #10 on: April 17, 2012, 04:28:09 pm »

Edit. okay tested it bout 30mins and score,

2 total crasses
1 total mouse freeze
0 ingame games
20 lobby freezes, sometimes alone in the server etc even when theres 6 players
skins/colors ****ed up

and after that i desided to quit.
At least we got a lot of gusanos stuff etc.

Filmonss

Re: [Release] OpenLieroX 0.59 beta10
« Reply #11 on: April 17, 2012, 04:31:50 pm »
b10 <3


only cuz i can shoot like 3 napalm at time
Logged
2010 Most Improved Award - Filmons
2014 Best Classic Player Award - Filmons

Filmonss

Re: [Release] OpenLieroX 0.59 beta10
« Reply #12 on: April 17, 2012, 04:32:29 pm »
b10 <3


only cuz i can shoot like 3 napalm at the same time
« Last Edit: April 17, 2012, 04:34:12 pm by Filmonss »
Logged
2010 Most Improved Award - Filmons
2014 Best Classic Player Award - Filmons

albert

Re: [Release] OpenLieroX 0.59 beta10
« Reply #13 on: April 17, 2012, 04:47:59 pm »
It seems the network code is really broken.

I'm not always sure from your reports in what version-combination you are playing. I.e. what host version, what client version and on what side does the problem appear.

Seems in some cases some weapons shoot twice? (What version combination?) And/or (what actually?) weapon do twice as much damage?

Some stay-in-lobby problems. (What version combination?)

Freeze while connecting to server. (Can I have parts of the log file about this?)

And other stuff. In many cases, it would be quite helpful to see the log files.

You might want to fill out bug reports here: https://github.com/albertz/openlierox/issues (click on "New issue")
Logged

joni

Re: [Release] OpenLieroX 0.59 beta10
« Reply #14 on: April 17, 2012, 04:49:43 pm »
Beta 10 as a host -> everyone but host shoots twice or trice. (Others using rc3 or b10 doesn't seem to matter at all)

Stay in lobby problem only in b10, for pretty much all servers.
Logged

SLak0n

Re: [Release] OpenLieroX 0.59 beta10
« Reply #15 on: April 17, 2012, 05:00:20 pm »
It seems the network code is really broken.

I'm not always sure from your reports in what version-combination you are playing. I.e. what host version, what client version and on what side does the problem appear.

Seems in some cases some weapons shoot twice? (What version combination?) And/or (what actually?) weapon do twice as much damage?

Some stay-in-lobby problems. (What version combination?)

Freeze while connecting to server. (Can I have parts of the log file about this?)

And other stuff. In many cases, it would be quite helpful to see the log files.

You might want to fill out bug reports here: https://github.com/albertz/openlierox/issues (click on "New issue")


So.. beta10 joining beta 10 = Stay-in-lobby problems
Beta 10 host + rc3 players = double weapon shooting, one shot kill etc.
But the beta10 joining beta 10 problem(stay-in-lobby. was only for me in Jonys server, so I don't know for sure if it's jonys server or if it's the version it's wrong with.

I also encountered a bug where worms kept on dying next to me when I fell into the spikes in some level, and because of that I had this epic fpsdrop(5 fps) and 200-300 ping. There was also some spawning problems when I spawned in the upper left corner of the map one time.

Logged

kokbira

  • Gi Joe Brown Brazillian Rope-Flying Ant
  • LXA Part Time Adapt
  • *****
  • Schwartz: +23/-6
  • Offline Offline
  • Posts: 529
  • 3578 credits
  • View Inventory
  • Send Money To kokbira
  • ex-player (ex-Flip and ex-s00t clan member)
    • WWW
Re: [Release] OpenLieroX 0.59 beta10
« Reply #16 on: April 18, 2012, 08:12:23 pm »
well it is only a beta. w8ing 4 fixes...
Logged

kokbira

  • Gi Joe Brown Brazillian Rope-Flying Ant
  • LXA Part Time Adapt
  • *****
  • Schwartz: +23/-6
  • Offline Offline
  • Posts: 529
  • 3578 credits
  • View Inventory
  • Send Money To kokbira
  • ex-player (ex-Flip and ex-s00t clan member)
    • WWW
Re: [Release] OpenLieroX 0.59 beta10
« Reply #17 on: April 22, 2012, 09:34:12 am »
Logged

joni

Re: [Release] OpenLieroX 0.59 beta10
« Reply #18 on: April 22, 2012, 03:58:12 pm »
As a portable app in filebase...

http://www.openlierox.net/forum/index.php?action=mgallery;sa=item;id=5764

Don't see how that's wise to share a broken game version more.

It's just bad reputation for whole game title if much people first use a broken version of a game.
Logged

kokbira

  • Gi Joe Brown Brazillian Rope-Flying Ant
  • LXA Part Time Adapt
  • *****
  • Schwartz: +23/-6
  • Offline Offline
  • Posts: 529
  • 3578 credits
  • View Inventory
  • Send Money To kokbira
  • ex-player (ex-Flip and ex-s00t clan member)
    • WWW
Re: [Release] OpenLieroX 0.59 beta10
« Reply #19 on: April 23, 2012, 06:26:02 am »
i'm doing a portable package for every new release since .58 rc3, just for fun :) - and because it is so easy to do.
Logged
Pages: [1] 2  All   Go Up
 

anything