Code Monkey home page Code Monkey logo

opengoo's Introduction

OpenGOO pre-Alpha2

A free and open clone of World of Goo

This software is released under the GPLv3 license


WARNING: The pre-Alpha2 version is under heavy development and it isn't playable yet.


DEPENDENCIES

  • Qt5 and Qt5 opengl module
  • Gcc
  • QMake
  • Make

COMPILE AND RUN

Coming soon

Command Line Options

--fps - Enables the FPS indicator

--level "level-id" - Starts the game on the specified level. The level-id is a name of directory in res/levels

CUSTOM LEVELS

Coming soon

Credits pre-Alpha2

New game engine and new level design:

  • Batarov Dmitry (Coder)
  • Slyshyk Oleksiy (Coder)

opengoo's People

Contributors

amdmi3 avatar batarov avatar etam avatar fasigno avatar ferencbarta avatar mandarancio avatar md1512 avatar slyshyko 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opengoo's Issues

Main Menu

After the level setting should be nice make a main menu view, with setting, about and maybe a little mini game (I don't know, like all the goos catched in the levels to make a super high tower) .. what you think?

Level creator

I want to develop a simple program to create level file starting from svg for make easier the creation of new amazing levels!

Scene scroll.

The scroll of the scene should start touching the sides of an inner rectangle smaller than the game viewport.

Actual OpenGOO site.

The actual site needs a temporary update. I'll work on it a little bit then I'll allow people to collaborate.

Balloon GOO and Super Sticky GOO

I think that we can create balloon Goo and super sticky goo, starting from the goo and dynamic goo class, of course the easier is the super sticky goo that is like a normal removable goo but that made very strong sticky joint.. You think that you can do it??

OpenGL mode dont work properly

All of the computers I use, equipped with Intel integrated graphics. None of them opengl mode is not working correctly.

Dragging problem

When a goo is jointed to some ones other and I drag it (and broke all the joints) the goo start to goo away from the mouse..

Why??

OpenGooDst

OpenGooDst needs to be completed

The tasks to accomplish are:

  1. The qt linguistic code that loads from a configuration file the language set by the user.
  2. The ftp upload code that uploads the report files.
  3. An xml module, merged in the game code, that prepares the report when the game crashes before launching the debug sender.
  4. Two goos artwork, based on the /Artworks/black-goo.v1.0.svg file, one crying and the other one quite happy.

If you wanna take a task, please follow the rules here.

For more information ask here.

New sounds.

We need new sounds for the game. The in-game sounds should include effects when goos are bouncing, are warped or when they are falling and also when they are dragged.

The game sound should include an intro sound effect, and few menu songs.

Game Settings

I think we have to implement a game settings overview, where change resolution and at least music and sound volume.

OpenSource driver problem!

With nouveau driver the game dosn't work (the main window is not update) so I make a little work around making the level class in a new window (for activate this work aroud use -Multiwindow parameter).

Some help is needed!

Wiki pages.

Wiki pages need a total revision. They are really important for new users and they are incompleted or hard to understand.

The game crashes when loading some levels

for example FlyingMachine backtrace

18: save_stack - 0x401540
17: UnhandledException2 - 0x4018D0
16: RtlDeleteAce - 0x7C937F99
15: wcstol - 0x7C92A787
14: KiUserExceptionDispatcher - 0x7C90E47C
13: OGStrand::OGStrand - 0x412E10
12: OGWorld::CreateStrand - 0x40D0F0
11: OGBall::Attache - 0x413D90
10: OGWorld::_CreateStrand - 0x40D8A0
9: OGWorld::CreatePhysicsScene - 0x410020
8: OGWorld::CreateScene - 0x410740
7: OGWorld::LoadLevel - 0x410C20
6: OpenGOO::_LoadLevel - 0x404760
5: Level::Level - 0x41D2E0
4: OpenGOO::_CreateLevel - 0x403700
3: OpenGOO::loadLevel - 0x403920
2: OpenGOO::_MouseButtonDown - 0x404E90
1: og::OGWidget::mousePressEvent - 0x41F270
0: QWidget::event - 0x65038E20

Visual C++ exception

I build project in Qt Creator and was constantly popping up this message

http://dl.dropbox.com/u/5326231/OpenGOO/ScreenHunter_01%20Oct.%2023%2017.58.jpg

My solution:

diff --git "a/E:\TEMP\bac9F88.tmp\backtracer_win32-b0e8c3d-left.cpp" "b/E:\Projects\OpenGOO\src\opengoo\src\backtracer_win32.cpp"
index b360c91..3ebc969 100644
--- "a/E:\TEMP\bac9F88.tmp\backtracer_win32-b0e8c3d-left.cpp"
+++ "b/E:\Projects\OpenGOO\src\opengoo\src\backtracer_win32.cpp"
@@ -288,6 +288,10 @@ void HandleCommonException(LPEXCEPTION_POINTERS info)

LONG WINAPI UnhandledException2(LPEXCEPTION_POINTERS exceptionInfo)
{

  • // Visual C++ exception
  • if(exceptionInfo->ExceptionRecord->ExceptionCode == 0x406D1388)
  •    return EXCEPTION_EXECUTE_HANDLER;
    
    save_dump(exceptionInfo);
    save_stack();
    switch(exceptionInfo->ExceptionRecord->ExceptionCode)

Sticked GOO drag problem!

I just experimented a very ugly bug, when a goo is sticked and you try to drag will happen strange thinks!
To Do:

  1. Understand the bug (when happen, which are the conditions etc etc)
  2. Find the origin of the bug
  3. Fix it!!!

Wiki!

I start to update the wiki.
My goal is to do a wiki for compiling and one for making level

Level2 issues.

A lot of strange things happen loading the level2.

  1. Gooballons are jointed on starting (with the ground?). Sometimes both of them, but there's always at least one of them jointed.

  2. Restarting the level a couple of times the game drastically slow down, I'd better say it's stuck and unplayable.

http://dl.dropbox.com/u/22799853/Level2%20error.png

Game packages and installation process.

We want to provide the game with an easy installation process for the end user. As you should know the game will be multiplatforms, particularly on:

  • Linux
  • Windows
  • Mac os

As we know Windows and Mac os platforms have no problem in providing an "easy" (next->next->next) installation procedure.

Linux has too much distributions, with different package managers and several desktop environments.

We want to develop a binary installer with a graphical interface and support at least the major linux distributions and desktop environments.

Nothing is impossible but our knowledge ends here.

Let's argue about it here.

Svg Levels.

As we know, the svg levels are the most important feature of the game.

In the original game the levels containes more kinds of goos and more effects, with active objects, wind and so on.

We should re-design the system providing a more expandable level creation system, keeping the process simple to the designers.

For example next to a svg file we can add a simple script that allows to animate the objects, apply effects during the gameplay or make something happen exactly when the designer wants.

The svg tags will be general, in this way we can expand the game with new goos or effect without changing the sintax.

I know this will take long time in design and we should recode the svg loader and the others things, but this will take the game somewhere!

What do you think about it?

Documentation

Intro

We have to spend some time writing the documentation of the code, the code is day after day bigger, and the documentation quality is low (Ohloh review).

Doxygen

A very useful tool we can use is Doxygen that is a tool for generate (html but also qt compressed help) documentation.

Screen Geometry Bug

Debian testing "Wheezy" 64-bit
4Gigs RAM, ATI RV630 [Radeon HD 2600XT]
libqt4-dev, libqt4-opengl-dev, libbox2d-dev installed

1- Box2D is located in /usr/include, *.h files that include Box2D.h say "#include <Box2D/Box2D.h>"
To fix,
--added "-I/usr/include/" to the "INCPATH" line in the Makefile (also, "-I." is in there twice)
--changed the include line in all *.h files to read "#include <Box2D.h>"
OR, copy Box2D.h into a directory named "Box2D" created in the source folder.
--From OpenGOO source folder: mkdir ./Box2D && cp /usr/include/Box2D.h ./Box2D/

2- Compile errors: $ qmake && make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I/usr/X11R6/include -I. -o thorn.o thorn.cpp
thorn.cpp: In constructor ‘Thorn::Thorn(QPoint, int, b2World_, QObject_)’:
thorn.cpp:9:9: error: ‘struct b2BodyDef’ has no member named ‘type’
thorn.cpp:9:14: error: ‘b2_staticBody’ was not declared in this scope
thorn.cpp:11:20: error: no matching function for call to ‘b2PolygonShape::b2PolygonShape()’
thorn.cpp:11:20: note: candidates are:
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:113:2: note: b2PolygonShape::b2PolygonShape(const b2ShapeDef_)
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:113:2: note: candidate expects 1 argument, 0 provided
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:55:7: note: b2PolygonShape::b2PolygonShape(const b2PolygonShape&)
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:55:7: note: candidate expects 1 argument, 0 provided
thorn.cpp:16:11: error: ‘class b2PolygonShape’ has no member named ‘Set’
thorn.cpp:18:11: error: ‘class b2Body’ has no member named ‘CreateFixture’
make: *_* [thorn.o] Error 1

The use of QML.

What about the use of QML for the graphics?

We can develop the menus with it and if it'll be a good idea we can recode the in-game graphics.

What do you think about it?

More understandable graphic

Implement a more understandable graphic, for understand better If I'm dragging a goo, if the goo under the cursor is movable or not etc etc..

Help needed in debug the SVG branch!

HELP NEEDED!!

Please evrybody try the svg branch (to do it move in the project directory and do git checkout SVG) signal bug and try to debug it!!! THANKS!!!

Zoom in.

Zoom should use the mouse pointer like the center reference point for the zoom.

Level selector

Add a main interface to select the levels, credits and option. For not enter directly in the game....
Would you like try to make it?

Intro screen.

We need a new intro screen. Someone should design a new animated intro screen, or change at least the background of the actual intro.

Assert fail

After finishing a level, I got the following error:

OpenGOO: /var/tmp/paludis/build/dev-libs-Box2D-2.2.1/work/Box2D_v2.2.1/Box2D/../Box2D/Dynamics/b2Island.h:54: void b2Island::Add(b2Body*): Assertion `m_bodyCount < m_bodyCapacity' failed.
Aborted

I will complete this issue when I will have more information

OpenGOO silent quit if use unspecified command line options.

log output:
12:35:11.863 - - Loading share data... [src\og_world.cpp:49]
12:35:11.863 - - material file [src\og_world.cpp:139]
12:35:11.864 - - resources file [src\og_world.cpp:151]
12:35:11.865 - - effects file [src\og_world.cpp:113]
12:35:11.872 - - text file [src\og_world.cpp:184]
12:35:11.873 - - Loading ... [src\og_world.cpp:74]
12:35:11.873 - - level file [src\og_world.cpp:125]
12:35:11.874 - - File ./res/levels/wrong_opt/wrong_opt.level.xml not found [src\og_world.cpp:106]
12:35:12.356 - - Clear world [src\opengoo.cpp:171]
12:35:12.357 - - Clear buttons [src\og_world.cpp:227]
12:35:12.357 - - Clear sprites [src\og_world.cpp:231]
12:35:12.357 - - Clear cameras [src\og_world.cpp:235]
12:35:12.357 - - Clear level [src\og_world.cpp:239]
12:35:12.357 - - Clear scene [src\og_world.cpp:245]
12:35:12.357 - - Clear resources [src\og_world.cpp:251]
12:35:12.357 - - Clear text [src\og_world.cpp:257]
12:35:12.357 - - Clear share data [src\og_world.cpp:36]

Performance issues!

I start to watch at the fps performance (with the -Debug option you'll see it) of the game at we have some problem with the rise of the joint's number.
Is not a box2d problem but a graphic problem (I understand this because on the region where there is not joint we don't have this problem [but the box2d made always is computation]... I don't know If I explain it clearly).
Some suggestion?

Thanks!

Mac OSX problem

On the qt-apps.org page of OpenGOO an user say that on is mac OpenGOO crash. This is the report:

Crashed on a Mac
Hello, this is wonderfull parody on World of Goo,
but it crashes on macs... I don't have so much
time to find and kill this bug, but I can show you
stacktrace of the application running.
Quote:

Process:
OpenGOO [20822]
Path:
/Users/USER/*/OpenGOO.app/Contents/MacOS/OpenGOO
Identifier: com.yourcompany.OpenGOO
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [743]

Date/Time: 2012-03-23 12:15:43.603 +0400
OS Version: Mac OS X 10.7.3 (11D50b)
Report Version: 9

Interval Since Last Report: 1061625 sec
Crashes Since Last Report: 12
Per-App Interval Since Last Report: 5 sec
Per-App Crashes Since Last Report: 1
Anonymous UUID:
7B139313-BF0E-427A-9D14-5D3321710A2B

Crashed Thread: 0 Dispatch queue:
com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: 0x000000000000000d,
0x0000000000000000

VM Regions Near 0:
-->
__TEXT
0000000100000000-000000010002f000 [ 188K] r-x/rwx
SM=COW
/Users/USER/*/OpenGOO.app/Contents/MacOS/OpenGOO

Application Specific Information:
objc[20822]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue:
com.apple.main-thread
0 QtGui
0x0000000100526fcc QWidget::mapFromGlobal(QPoint
const&) const + 50
1 QtGui
0x000000010053bdd3
qt_mac_getTargetForMouseEvent(NSEvent_,
QEvent::Type, QPoint&, QPoint&, QWidget_,
QWidget*) + 419
2 QtGui
0x000000010053dd38
qt_mac_handleMouseEvent(NSEvent
, QEvent::Type,
Qt::MouseButton, QWidget*) + 1016
3 com.apple.AppKit
0x00007fff821757a6 -[NSWindow sendEvent:] + 6504
4 QtGui
0x000000010053552f -[QCocoaWindow sendEvent:] +
111
5 com.apple.AppKit
0x00007fff8210e16d -[NSApplication sendEvent:] +
5593
6 QtGui
0x0000000100538db2 -[QNSApplication sendEvent:] +
82
7 com.apple.AppKit
0x00007fff820a41f2 -[NSApplication run] + 555
8 QtGui
0x0000000100541fc0
QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)

  • 840
    9 QtCore
    0x00000001001e4348
    QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
  • 394
    10 QtCore
    0x00000001001e74bb QCoreApplication::exec() + 175
    11 com.yourcompany.OpenGOO
    0x0000000100006744 main + 1316
    12 com.yourcompany.OpenGOO
    0x0000000100003c74 start + 52

link to the page: http://Qt-Apps.org/content/show.php?content=147716

TODO: window resizing and switching fullscreen

Temporarily application works in a 800x600 window.

I think it's a good idea to note down self-made issues, just to remember them, and to show to others "Yes. I know
about this problem. I'm working on it".

Windows Back Trace??

How implement a back trace for the Windows version of the game??
Can you Slyshyk help me?
It should be an easy think.. I need only that print the back trace information in case of crash on a output stream (for now in linux I'm using execinfo to print it on qWarning() stream)

Thanks!

toVecs issues (tools.cpp)

  1. qMalloc seems to be deprecated. Also using it may lead to memory leaks.
  2. If you need to pass an array of objects as pointer it's better to use QVector::data()
  3. It's never used, so it can be removed. Or if it will be used again, it has to be improved.

Goos brainstorm.

OpenGOO needs new kinds of goos. Now we have normal goos, sticky goos and gooballons and they come from the original game.

We must think about new types of goos for OpenGOO and put them into the game story providing appropriate training levels.

Write you ideas here!

Dont work under Debian Wheezy 64 bits

Hi,

I try compile OpenGoo and i got this:

make

g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. -o tools.o tools.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. -o thorn.o thorn.cpp
thorn.cpp: In constructor ‘Thorn::Thorn(QPoint, const QList&, b2World&, QObject_)’:
thorn.cpp:18:9: error: ‘struct b2BodyDef’ has no member named ‘type’
thorn.cpp:18:16: error: ‘b2_staticBody’ was not declared in this scope
thorn.cpp:40:24: error: no matching function for call to ‘b2PolygonShape::b2PolygonShape()’
thorn.cpp:40:24: note: candidates are:
In file included from /usr/include/Box2D.h:37:0,
from tools.h:4,
from thorn.cpp:2:
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:113:2: note: b2PolygonShape::b2PolygonShape(const b2ShapeDef_)
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:113:2: note: candidate expects 1 argument, 0 provided
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:55:7: note: b2PolygonShape::b2PolygonShape(const b2PolygonShape&)
/usr/include/Box2D/Collision/Shapes/b2PolygonShape.h:55:7: note: candidate expects 1 argument, 0 provided
thorn.cpp:41:15: error: ‘class b2PolygonShape’ has no member named ‘SetAsBox’
thorn.cpp:42:15: error: ‘class b2Body’ has no member named ‘CreateFixture’
make: *** [thorn.o] Error 1

Another issue is that library uses Box2D/Box2D.h. In Debian package, the path is /usr/includes/Box2D.h

Thanks you.

Unpenetrable Ground

The ground now is not really unpenetrable, I make a simple work around that say that when a dragged goo touch the ground that fall down, but is not a really nice solution, and also some times didn't work.
The right solution is not to fall down but to keep a the ground with out pass it.

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.