Limit Load, flight game

Limit Load, flight game

Postby stelic » 11 May 2015, 02:23

Hi!

This is our first game, a cockpit flight game that is more of an arcade than a sim. The game is built on the Panda3D game engine. It is similar to the ancient games like the classic Wings or the very good Strike Commander. The story and the atmosphere are important elements of the game, so a lot of focus is placed on that too. Here are some videos:


youtu.be/zsbTvilLR68


youtu.be/D7v1yow6rEA

There are many details on the official web site, those who are interested can visit:

http://www.limitload.org
http://www.limitload.org/media/ (more media)
http://www.limitload.org/project/ (TODO list for 1.0)

An early, demo version is provided for download on the web site. For the moment it allows playing only one skirmish mission.

The game code is licensed under GPL 3, and custom-made game assets under CC-by-SA 4.0. Some of the assets were taken from "free" (as in "not sure in which way") sources on the Internet, so their licensing situation is unclear. Eventually these should be cleared for use or replaced.

It would be nice if you could recommend some other good places to announce the game.
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby Julius » 11 May 2015, 16:47

This came out of no where... wow quite awesome! I hope it will be VR compatible at some point :)

Edit: do you have a github account or something like that for the code?

Announce it over at the linux gaming reddit sub, maybe the gamedev reddit sub, and opengameart.org.
“You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete” - Buckminster Fuller
User avatar
Julius
Community Moderator
 
Posts: 1854
Joined: 06 Dec 2009, 14:02

Re: Limit Load, flight game

Postby stelic » 12 May 2015, 01:29

Julius {l Wrote}:This came out of no where... wow quite awesome! I hope it will be VR compatible at some point :)

Edit: do you have a github account or something like that for the code?

Announce it over at the linux gaming reddit sub, maybe the gamedev reddit sub, and opengameart.org.


Thanks, man! :)

It's not yet on Github but it's on my mind. I'm the designer of the game, and have no experience with version control, and also the programmer is pushing me to get up to speed and start dealing with that stuff. So I'll get to it :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby qubodup » 12 May 2015, 04:57

This does look impressive!

`make` doesn't seem to work
{l Code}: {l Select All Code}
$ make
make[1]: Entering directory '/home/qubodup/limload-0.19/models'
make[1]: Entering directory '/home/qubodup/limload-0.19/src'
make[1]: Entering directory '/home/qubodup/limload-0.19/language'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/qubodup/limload-0.19/models'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/qubodup/limload-0.19/language'
echo '101 ICON "limload.ico"' > resource.rc
make[2]: Entering directory '/home/qubodup/limload-0.19/src/core'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/qubodup/limload-0.19/src/core'
rc -fo resource.res resource.rc
make[1]: rc: Command not found
makefile:18: recipe for target '../limload' failed
make[1]: *** [../limload] Error 127
make[1]: Leaving directory '/home/qubodup/limload-0.19/src'
makefile:8: recipe for target 'src' failed
make: *** [src] Error 2

Looks like this game uses panda3d, so I'm surprised anything needs to be built. running python2 main.py doesn't work though.
{l Code}: {l Select All Code}
$ python2 main.py
Traceback (most recent call last):
  File "main.py", line 18, in <module>
    from src import PACKAGE_NAME, PACKAGE_VERSION, MAX_DT, UI_TEXT_ENC
ImportError: No module named src

I can run using `WINEPREFIX=~/.wine-x86 wine limload.exe` but after 10 minutes the level doesn't seem to have generated. Might be that wine on my machine is just too slow.

I'm on Linux 64bit.
User avatar
qubodup
Global Moderator
 
Posts: 1671
Joined: 08 Nov 2009, 22:52
Location: Berlin, Germany

Re: Limit Load, flight game

Postby nikolm » 12 May 2015, 14:40

Hi qubodup, great that you are giving it a try! I'm the programmer guy that stelic mentioned above :)

It needs building because there is also a bit of C++ code. It was used where performance with Python was too bad. And there will be more C++ in the future, like to shorten data generation times.

Make tried to run "rc" because somehow the platform was assumed to be Windows/MSVC. To build on Linux/GCC, first the file util/build_setup.lingcc should be copied to util/build_setup. Then paths in util/build_setup should be modified to suit the distro. Then make should work.

The slowest machine we tested on had an AMD A8 APU. There the first-time start takes 6 minutes, and later starts 30 seconds. In-game performance on this machine is bad though. I hope we can speed that up somehow.
nikolm
 
Posts: 3
Joined: 12 May 2015, 14:35

Re: Limit Load, flight game

Postby qubodup » 13 May 2015, 01:10

I followed your instructions but it didn't work. I had panda from git so I installed 1.9 again.
I had to do:
{l Code}: {l Select All Code}
chmod +x util/build_module.sh

and i had to edit that file so that where `python` is called it becomes `python2` (only two instances) because on my arch linux system, `python` is v3.

Then it does compile :)

{l Code}: {l Select All Code}
$ ./limload
Traceback (most recent call last):
  File "/home/qubodup/limload-0.19/src/main.py", line 6, in <module>
    from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
[qubodup@qbox limload-0.19]$ file limload
limload: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=035d349afbaf853e7ace73631dbb775761a381bf, not stripped


It seems that the code calls `python` all the time, so I just replaced the /usr/bin/python symlink temporarily with http://stackoverflow.com/questions/1540 ... arch-linux but now it doesn't start with a different error.

{l Code}: {l Select All Code}
INFO: Starting game.
ERROR: Aborting, backtrace follows:
Traceback (most recent call last):
  File "/home/qubodup/limload-0.19/src/main.py", line 1247, in <module>
    main()
  File "/home/qubodup/limload-0.19/src/main.py", line 376, in main
    pandalog=panda_log_real_path)
  File "/home/qubodup/limload-0.19/src/core/basestack.py", line 134, in __init__
    with_antialiasing, with_bloom)
  File "/home/qubodup/limload-0.19/src/core/basestack.py", line 347, in _setup_window
    panda_notify.error("Cannot open the window.")
  File "/usr/share/panda3d/direct/directnotify/Notifier.py", line 131, in error
    raise exception(errorString)
StandardError: Cannot open the window.

Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 57, in exitfunc
    builtins.base.destroy()
  File "/home/qubodup/limload-0.19/src/core/basestack.py", line 289, in destroy
    if not self.alive:
AttributeError: BaseStack instance has no attribute 'alive'
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 57, in exitfunc
    builtins.base.destroy()
  File "/home/qubodup/limload-0.19/src/core/basestack.py", line 289, in destroy
    if not self.alive:
AttributeError: BaseStack instance has no attribute 'alive'


panda3d/ReleaseNotes shows that you seem to be using 1.8.1, so I try to recompile but unfortunately that fails http://pastie.org/10185581

I will have to figure out how to make 1.8.1 build if I want to run it. This is not your responsibility. :)
User avatar
qubodup
Global Moderator
 
Posts: 1671
Joined: 08 Nov 2009, 22:52
Location: Berlin, Germany

Re: Limit Load, flight game

Postby nikolm » 13 May 2015, 02:13

We are definitely using Panda 1.9. Since we build it from the repository, it may be few repository commits before the actual Panda 1.9 release (and thus the release notes you see). But it is certainly not 1.8.1, the game will not work with 1.8.1.

For Python command naming, yep, that's the usual issue between distros. We use Debian-based systems, so Python 2 is always under python. I should add some sort of configuration field for that in build_setup.

The import error for ConfigParser is because it was picking Python 3, as you noted. If you don't want to change the symlink, these are the files:lines to change from python to python2 in the code: src/limload.cpp:43, src/main.py:713, util/build_module.sh:37 and :45 (which you did), and src/makefile:26.

Executable bit for util/build_module.sh changed because the archive was made on Windows. This will get "fixed" when we put the stuff on Github (in the process of doing it...).

Now the hard part :) I have no idea why you get the last error, "StandardError: Cannot open the window." The default setting is to run in full screen using the desktop resolution. Maybe detection of something there is going wrong. Try running it in a window. Copy config/config.ini.default to ~/.config/limload/config.ini (note stripped trailing .default), and modify fields "full-screen" to "false" and "resolution" to "1280 720" (for example).
nikolm
 
Posts: 3
Joined: 12 May 2015, 14:35

Re: Limit Load, flight game

Postby qubodup » 15 May 2015, 13:58

I have a dualscreen setup with 1920x1080 and 1920x1200 next to each other. I've been using open source AMD drivers most of the time, which did stupid things with fullscreening over both screens but didn't prevent the games from starting, so I wasn't used to this, so it might be AMD Catalyst's fault.

Doing as you say regarding config file does allow me to run it, thanks!

After about 18 minutes of loading this happens though:
{l Code}: {l Select All Code}
INFO: Starting game.
INFO: Starting skirmish mission: genk:incoming
INFO: Switching to zone: zero
INFO: Constructing terrain.
INFO: Constructing clouds.
Memory usage overflow for type Texture.
Aborted


This was with running glc-capture to record (wasn't actively recording yet, just waiting for me to start it with Shift+F8).

The second attempt took about 7 minutes and then I could fly nicely with my gamepad. It didn't crash since, even with glc (which for some reason wasn't able to capture audio through pulseaudio). With ffmpeg, I could record both video and audio:


youtu.be/xEXarlQ-ym0

Obviously, I have no clue about surviving in the skies. :)

My system:
{l Code}: {l Select All Code}
Distro        4.0.2-1-ARCH x86_64
Mainboard     FOXCONN A7GM-S 2.0
CPU           AMD Phenom(tm) 9550 Quad-Core Processor
              4 x 2200 MHz, 64-bit
RAM           7.8G
Video         Advanced Micro Devices, Inc. [AMD/ATI]
              Cape Verde PRO [Radeon HD 7750 / R7 250E]
OpenGL        4.4.13374 Core Profile Context 15.20.1013, GLSL 4.40
GCC           gcc (GCC) 4.9.2 20150304 (prerelease)
User avatar
qubodup
Global Moderator
 
Posts: 1671
Joined: 08 Nov 2009, 22:52
Location: Berlin, Germany

Re: Limit Load, flight game

Postby nikolm » 15 May 2015, 23:31

I've now checked the benchmarks for the Phenom 9550 CPU, and apparently the A8 (which is Phenom II in CPU part) is about 70% faster than 9550. I'm afraid no amount of Python code tweaking can bring performance to a reasonable level on a Phenom-class CPU. We would have to rewrite the complete game core in C++.

Even so, 18 minutes for first start is strange, I would expect about 12. And 7 minutes for second start, I totally don't get that :) I would expect about one minute. Also puzzling is the "memory overflow" crash. When I monitored process RAM usage, it never went beyond 1.5 GiB. The A8 machine we used has 4 GiB. Maybe this will all get much better when we rewrite terrain and clouds generation in C++.

The AMD 7750 GPU should be ok. We tried both the free radeon driver and the Catalyst, but not with a dualscreen setup. Testing and fixing/working around this issue is now on the todo list...
nikolm
 
Posts: 3
Joined: 12 May 2015, 14:35

Re: Limit Load, flight game

Postby stelic » 16 May 2015, 00:05

qubodup {l Wrote}:
Obviously, I have no clue about surviving in the skies. :)



It could be that I set difficulty too high. Missiles for example are quite nasty :) But since it is only one scenario, I went for more challenging setting.

I noticed you did not use target tracking. System is quite simple. As long as target is in your field of view, hitting "next-waypoint-target" button (default: tab or joystick button 2) will select that target for tracking. However, for this to work, target tracking has to be enabled which is by default (def keys are: f or joystick button 6, and that small glowing pilot-face icon in lower right corner of the screen is telling you if it is enabled or not), and you have to change to weapon suitable for type of target you want to select. For example, if you want to select aircraft, weapon mode has to be cannon, or air-to-air missiles, basically any weapon that is meant to shoot aircraft. Use "next-weapon" button (default: w or joystick button 4) to browse through available weapons.

Also, pilot will remember the target you were tracking, so even if you deselect it (def key: z, or holding pressed for a brief moment "next-waypoint-target" button), you just need to hit "next-waypoint-target" button again and eyes will be fixed on it, even if target is not anymore in your view field. There are some events though, that might erase target from pilots attention, like target flying too far away.

All controls you can remap in input.ini file (copy config/input.ini.default to ~/.config/limload/input.ini). For some experimentation you can also turn on cheat mode, by adding at and of config.ini "[cheat]" section and "flying_dutchman = true" :)

And by the way, playing with the gamepad could prove difficult :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby Julius » 19 Jul 2015, 04:13

Any updates on this one? Would be nice if you could enable the issue tracker on github to allow easier feedback and bug reporting by users.
A pre-compiled Linux version would be also really nice.
“You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete” - Buckminster Fuller
User avatar
Julius
Community Moderator
 
Posts: 1854
Joined: 06 Dec 2009, 14:02

Re: Limit Load, flight game

Postby stelic » 21 Jul 2015, 00:51

Julius {l Wrote}:Any updates on this one? Would be nice if you could enable the issue tracker on github to allow easier feedback and bug reporting by users.
A pre-compiled Linux version would be also really nice.


It's going on well, although a bit slowly lately. I'm hopping to have terrain creation redone in C before packing it as next version. I received several horror stories where people had to wait 17 or more minutes before they could enter the skirmish mission. However that has proven complicated so far and nikolm is a bit tight on time to tackle the problem of that size. Other than that, I am deep in first campaign and we are squishing the bugs :)

Regarding the issue tracker, I'm still green with github stuff, I will check it with nikolm :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby stelic » 16 Oct 2015, 01:55

Well, new version is up and running :)

A lot of stuff fixed, improved and added. Here is a list of some:

– Creation of terrain and clouds is now 25 time faster, caching removed, and system memory usage halved.
– Caching system for objects and textures is improved so the game should be more fluid in general (without tiny pauses, hickups or stuttering).
– Added binary package for Linux.
– Fixed support for fullscreen mode in case of two displays.
– Tweaks in skirmish “Incoming”. Players now have a little more time to catch a breath between waves.
– Added new skirmish “Avalanche”. It is about attacking ground targets.
– Included in the package two additional 3D models of vehicles: M1 Abrams and M2 Bradley.
– Somewhat improved satellite terrain textures.
– A bit improved 3D model of cockpit.
– Added three new types of rockets in the code as well as their 3D models: Roland, Rapier and Osa.
– Added sound for air-brake. When the air-brake is extended, the sound of airflow is noticeably different and that way the player can tell if the brake is out or not, without needing to look into instrument panel.
– Added sound for raising and lowering the landing gear. Lowered gear has a similar effect on general performance of the plane like that of the air-brake, so it also changes the sound of airflow.
– In previous version, fly-by sound should have been triggered every time a jet flied near the player, but that wasn’t the case. This bug is now fixed.
– Added sound for using countermeasures.


As mentioned on the list, this new version includes one new skirmish and here is a video of me playing it:


youtu.be/a5OTcjkXlLw

Overall, the biggest improvement is that terrain is now redone in C++ and that new code dramatically shortened amount of time needed for its creation (over 25 times faster). You still have to wait for some caching of various objects, though (physics, models, textures, etc.) on first run.

Enjoy! :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby Julius » 17 Oct 2015, 21:36

Looks very nice ;) I especially like the self shadowing on the cockpit model!

Does it support Opentrack? See: https://github.com/opentrack/opentrack
(easy way to use it: https://github.com/opentrack/opentrack/ ... adtracking )

Cool would be a terrain generator that loads OpenStreetMap data. It has been done for other games see: http://wiki.openstreetmap.org/wiki/SuperTuxKart
“You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete” - Buckminster Fuller
User avatar
Julius
Community Moderator
 
Posts: 1854
Joined: 06 Dec 2009, 14:02

Re: Limit Load, flight game

Postby stelic » 20 Oct 2015, 04:40

Julius {l Wrote}:Looks very nice ;) I especially like the self shadowing on the cockpit model!

Does it support Opentrack? See: https://github.com/opentrack/opentrack
(easy way to use it: https://github.com/opentrack/opentrack/ ... adtracking )

Cool would be a terrain generator that loads OpenStreetMap data. It has been done for other games see: http://wiki.openstreetmap.org/wiki/SuperTuxKart


I checked this OpenTrack tech and, I think, I remember showcase of similar stuff in... Arma 3(?) a while ago. Anyhow, I am not a big fan of whole idea. In my opinion only true VR goggles have potential to be valid "head-tracking gear" and that all is still hanging in the air to my knowledge (although I know there has been some buzz lately with AMD's LiquidVR).

As for the OpenStreetMap data, it's looking interesting. Thanks for the tip :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby Julius » 31 Dec 2015, 08:58

Looks like there is now a github repository:
https://github.com/stelic/limitload

and a scripting manual for making missions:
http://www.limitload.org/scripting-manual/

Game model sources are available too now:
http://www.limitload.org/resources/
(although licensing seems to be still not very unified)

@stelic: should we setup a game specific sub-forum on this website since you are still missing something like that? Have a look at the other projects we feature to see what could be done.
“You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete” - Buckminster Fuller
User avatar
Julius
Community Moderator
 
Posts: 1854
Joined: 06 Dec 2009, 14:02

Re: Limit Load, flight game

Postby stelic » 05 Jan 2016, 01:18

Julius {l Wrote}:http://www.limitload.org/resources/
(although licensing seems to be still not very unified)


I took a time to expose better the licensing for all resources currently in use. Contacted authors, especially for those resources I wasn't sure about. Nikolm built a script that should pay close attention to it from now on. What's in use and its status, is now in the file LICENSE.resources. Vast majority is open, but there are still some here and there, that I'm not sure about, so it's work in progress :)

Julius {l Wrote}:@stelic: should we setup a game specific sub-forum on this website since you are still missing something like that? Have a look at the other projects we feature to see what could be done.


For now I think this one topic is enough. Still thanks for the offer, and I might ask you in the future if it wouldn't be too much of a hassle for you and other moderators :)
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Re: Limit Load, flight game

Postby Imerion » 05 Jan 2016, 18:43

Oh, Linux binaries! This looks well made, downloading now! :)
Try my games! : My Games - Read my FOSS Games Blog! : Free Game News
Imerion
 
Posts: 98
Joined: 09 Apr 2011, 19:37

Re: Limit Load, flight game

Postby Julius » 30 Jan 2016, 03:18

Has this been included already by the way?
http://opengameart.org/content/aerobatics-aircraft
“You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete” - Buckminster Fuller
User avatar
Julius
Community Moderator
 
Posts: 1854
Joined: 06 Dec 2009, 14:02

Re: Limit Load, flight game

Postby stelic » 31 Jan 2016, 11:59

Julius {l Wrote}:Has this been included already by the way?
http://opengameart.org/content/aerobatics-aircraft


Propeller aircraft don't work well in the code. Even these transport aircraft, like C-130, are barely working, but luckily I don't need them to do anything complex :)

Still if anyone wants to adapt any particular jet model following the concept of those that are already adapted, I am willing to add it on the site and in the code so that it can fly (without cockpit or any ability to control it though, since the code for more playable planes is not ready yet).
Limit Load, arcade cockpit flight game.
stelic
 
Posts: 8
Joined: 11 May 2015, 02:09

Who is online

Users browsing this forum: No registered users and 1 guest