GithubHelp home page GithubHelp logo

stuntrally / stuntrally3 Goto Github PK

View Code? Open in Web Editor NEW
72.0 6.0 2.0 1.2 GB

3D racing game with own Track Editor. The main repository with Stunt Rally 3 sources and data. Continuation of Stunt Rally 2.x using Ogre-Next 3.0.

Home Page: https://stuntrally.tuxfamily.org/

License: GNU General Public License v3.0

CMake 5.60% GLSL 5.50% HLSL 1.95% Metal 2.14% C++ 81.99% C 1.93% Objective-C 0.11% Objective-C++ 0.28% NASL 0.07% Python 0.42% CSS 0.01% Shell 0.01%
game ogre3d ogre-next physics openal 3d racing-game cpp c-plus-plus linux

stuntrally3's Introduction

Build game Translation status Last commit date Commits count License
Discord

Links

Main

🌎Stunt Rally Homepage - Download links, track & vehicle browsers etc.
⚙️Sources - also for bugs & Issues, pull requests, etc.
📚Documentation - inside docs/, Information on many pages

Media

🖼️Screenshots - Galleries from all versions and development
▶️Videos - from gameplay and editor
💜Donations - financial support

Feedback

💬Discord
🪧Reddit - r/stuntrally/
github discussions
Matrix chat room: #stuntrally:matrix.org

Forum

🏛️New Forum - Discussions, Tracks, content, how to join info on top.
📜Old Forum - archive


📄Description

Stunt Rally is a 3D racing game with own Track Editor.
Works on GNU/Linux and Windows.

For cars the game has a rally style of driving and sliding, mostly on gravel and loose surfaces.
with possible stunt elements (jumps, loops, pipes) and generated roads from 3D spline.
It includes many Sci-Fi vehicles and different planets🌌. Even surreal locations.
All tracks and vehicles can be browsed on website.

SR 3.x is continuing old Stunt Rally 2.x,
now using Ogre-Next 3.0 for rendering and VDrift for simulation.

Documentation is inside docs/ dir.

📊Features

Stunt Rally 3.1 features 229 tracks in 41 sceneries and 33 vehicles.
Game modes include:

  • ⏱️Single Race (with your Ghost drive, track car guide), Replays,
  • 🏆Challenges, Championships, Tutorials, (series of tracks)
  • 👥Multiplayer (info here, no official server) and Split Screen, up to 6 players.

The Track Editor allows creating and modifying tracks.

Full features list here.
Changes and new features in changelog.


🚀Quick Start

Hardware requirements.

🚗Game

Esc or Tab - shows/hides GUI.

Quick setup help is on the Welcome screen, shown at game start, or by Ctrl-F1.

  • Use Ogre config dialog before start to adjust Screen resolution, etc (start with cfg argument will show it).
    OpenGL 3+ Rendering Subsystem is recommended now,
    but Vulkan seems better on Windows with integrated GPUs or laptops.
  • Open Options to pick graphics preset according to your GPU and do restart.
  • Open Options tab Input, to see or reassign keys, or configure a game controller, info here.

Game related Hints are available in menu: How to drive, with few driving lessons.
Have fun 😀

Troubleshooting

If you have problems at start, check page Running.
All settings and logs are saved to user folder, see Paths. It is also shown on first Help page.


🏗️Track Editor

F1 (or tilde) - shows/hides GUI,
Tab - switches between Camera and Edit modes.
Press Ctrl-F1 to read what can be edited and how.

There is no undo, so use F5 to reload last track state, and F4 to save it often.
After each save, track can be tested in game.
If needed do manual backup copies of track folder.

Tutorial page has more info and few new videos.


⚙️Building

How to compile project from sources:

  • On Linux is described in Building (Debian based). Provided script should do it.
  • On Windows in BuildingVS (difficult), manually building all dependecies from sources first.

🗨️Feedback

Before reporting bugs or issues, be sure to Read before posting (or the old one) topic first.

Then create a new issue on github (if not present already)
or a topic on New Forum (if already joined, how to).

Other way is to use: Discord (also for chat), Reddit or github discussions.

🤝Contributing

Help and contributing is welcome.
If you'd like to contribute, please check Contributing for details.

🛠️Developing

Details in Roadmap with few missing features, known issues, and future ToDo plans.

General info with some details for SR3, its sources and using Ogre-Next is in Developing.
Sources have emojis, this file has all, with quick components guide etc.


⚖️License

Stunt Rally 3 - 3D racing game, with own Track Editor
                based on Ogre-Next rendering and VDrift simulation
Copyright (C) 2010-2024  Crystal Hammer and contributors


This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see https://www.gnu.org/licenses/

The license GNU GPL 3.0 applies to code written by us,
which is in src/ dir, subdirs:
- common, editor, game, network, road, transl
and modified, subdirs:
- Terra, sound, vdrift

Libraries used have their own licenses, included in:
- btOgre2, oics (modified to tinyxml2)
- OgreCommon (modified slightly)
- in src/vdrift/: half.hpp, quickprof.h, Buoyancy.h, unittest.h

For Media (art, data) licenses, see various _*.txt files in data/ subdirs.

stuntrally3's People

Contributors

anotherfoxguy avatar atalanttore avatar cryham avatar mattiamari avatar meskobalazs avatar rubberduck9999 avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

stuntrally3's Issues

Segmentation fault on startup

I was able to build it after a lot of trouble, but when starting the game it segfaults in the initial loading screen when loading terrain. The segfault happens on line 543 in src/Terra/Hlms/OgreHlmsTerra.cpp:

constBufferSlot += mAtmosphere->bindConstBuffers( commandBuffer, constBufferSlot );

Core file was too big to upload on github so uploaded it here: https://0x0.st/HKGj.zip

The MyGUI log also shows a missing texture called SX.jpg as the last line of the log.

MyGUI.log
Ogre.log

Making Linux binary or AppImage

I already wrote info on Ogre forum. Some links are there too and 1 suggestion.
So far whatever I do I end up with just segfault at start, with no real info what's wrong.
The issue is not with AppImage but because my binary isn't portable and it can't start.

Seems copying all needed .so files from ldd output, from my system to new lib/ dir isn't good.
I looked already at SuperTuxKart, Xonotic, RigsOfRods, speed-dreams*.AppImage, these all work.
But I still don't get which libs should I provide and which not, also should I build on old VM, or build as static, IDK what to do yet. I'm guessing I need to read and consider all that.
We also had a VM setup for old SR binary builds, maybe worth trying again:
https://github.com/stuntrally/stuntrally/tree/master/dist/linux-archive

I'm also trying with my smaller project cAmp2, also no luck:
./cAmp2: ./libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib/libX11.so.6

So anyone having some experience or hints?

Racing wheel support

In Stuntrally 2 I used to use my G27 racing wheel to play. In Stuntrally 3 this is not recognised as an input, when trying to assign it to any control in settings the game doesn't register any of the axes.

I have tested the wheel with jstest and all the axes and buttons are recognised in the OS.

Can't link with btWorldImporter

This question was probably asked several times, but I haven't found a working solution.

I configure bullet (latest git version) like this cmake -DCMAKE_INSTALL_PREFIX=/home/herman/prog/build/bullet3-install/ -DBUILD_EXTRAS=ON -DUSE_DOUBLE_PRECISION=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release ... I didn't want to install it to /usr/local/ so it does not interfere with system package manager-installed bullet used for building openmw, that does require double precision, so I chose another location. So there are installed a bunch of .a files in bullet3-install/lib, including libBulletWorldImporter.a

I configure sr3 (latest git version) like this cmake -DCMAKE_BUILD_TYPE=Release -DBULLET_ROOT=/home/herman/prog/build/bullet3-install/ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ..

However this error appears

/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x40): undefined reference to `btWorldImporter::createPlaneShape(btVector3 const&, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x50): undefined reference to `btWorldImporter::createSphereShape(float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x58): undefined reference to `btWorldImporter::createCapsuleShapeX(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x60): undefined reference to `btWorldImporter::createCapsuleShapeY(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x68): undefined reference to `btWorldImporter::createCapsuleShapeZ(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x70): undefined reference to `btWorldImporter::createCylinderShapeX(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x78): undefined reference to `btWorldImporter::createCylinderShapeY(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x80): undefined reference to `btWorldImporter::createCylinderShapeZ(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x88): undefined reference to `btWorldImporter::createConeShapeX(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x90): undefined reference to `btWorldImporter::createConeShapeY(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x98): undefined reference to `btWorldImporter::createConeShapeZ(float, float)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0xe0): undefined reference to `btWorldImporter::createMultiSphereShape(btVector3 const*, float const*, int)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0xf0): undefined reference to `btWorldImporter::createHeightfieldShape(int, int, void const*, float, float, float, int, int, bool)'
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: CMakeFiles/sr-editor3.dir/src/common/SceneObjects.cpp.o:(.data.rel.ro._ZTV17BulletWorldOffset[_ZTV17BulletWorldOffset]+0x168): undefined reference to `btWorldImporter::createGearConstraint(btRigidBody&, btRigidBody&, btVector3 const&, btVector3 const&, float)'

Do I need to disable double precision in bullet? Do I need some changes in its cmake file? Do I need it to use shared libs instead of static? Another bullet version mb? Please help.

Stunt Rally v3.1 - issue with offline LAN connection

In the past we have enjoyed playing Stunt Rally at our LAN parties.

At our last LAN party we wanted to play the new version 3.1, but unfortunately we couldn't get it to work. When creating a listen server from inside the game/main menu, we always get the message that we should check our network settings or routing/firewall settings.

At our LAN parties, everything takes place completely offline without internet or routing. So far this has never been a problem for Stunt Rally.

Can we hope that this issue will be fixed?

Thank you very much in advance. :-)

Website is down

Hello,

Sorry for posting this here, but the website has been down for 2 days (confirmed by several website down checkers), and this isn't a tuxfamily issue, as other tuxfamily-hosted websites, such as Godot Engine work OK.

Thanks.

Add icon to windows executable file

First, thanks for the new release. v3.1 looks better and runs smoothly compared to v2.7.

As I mentioned in the original issue of old StuntRally repo - in windows without integrated icons, stuntrally exe and shortcut files looks like corrupted or missing.

Hope, you'll fix this soon.

About Trees rework

I don't have an account for new forum, so posting here.
I'm suggesting trying out Tree It. Though only for windows, this free app has many more features than all the app you mentioned in forum post tried for making trees.

Here is a collection of trees library to use with Tree It. Preview
I also have sample tree library from Tree It author somewhere in my drive. If you are interested, I'll upload those on GDrive later.

If you are planning to make a fantasy themed map you can also try out this blender addon - Stylized Fantasy Tree Generator.

Add GitHub Actions CI builds for easy testing

Similar to what https://github.com/stuntrally/stuntrally has, we should add CI builds with artifacts so you can test the latest Git version quickly. This is especially important for Linux as OGRE-next and MyGUI-next are now required, neither of which are widely available in Linux distribution repositories. See also #1.

To keep artifacts small, only the Stunt Rally and sr-editor executables should be included (plus any required libraries), not the game data. You'd have to download the game data and tracks as a ZIP separately, then install the executables within the root folder of the extracted game data.

Maybe we can build a Flatpak for Linux too, but separating the game data from binaries will require modifying Stunt Rally so that it can optionally look for game data in a separate folder (since it won't be included in the Flatpak itself in this case).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.