[Pandora] Frogatto Port ?


Hawkey

Member
Joined
Jun 16, 2008
Messages
239
Hio Leute,

Da ich hoffentlich/vorraussichtlich in den nächsten 2-3 Wochen meine Pandora erhalten werde - wollte ich schonmal anfragen ob jemand vielleicht Interesse hätte ein Spiel zu portieren. Es gibt zwar schon diverse Wünsche und Vorschläge, jedoch ist "Frogatto" noch nirgends erwähnt worden :)

_______________________________________________________________________

= Frogatto =

banner-ad-frogatto-big.png


offizielle Seite: *click*

Ein sehr schönes Jump & Run mit hervorragender Pixelgrafik. Es bietet alles was man von traditionellen 2D Plattformern gewöhnt ist und hat trotzdem seinen ganz eigenen Charme (~ auch wenn der Charakter am Anfang ein wenig aussieht wie Yoshi). Ausgelegt für alle gängigen Systeme (~ siehe Nutzung der SDL Bibliothek und gemäßigte Hardware Anforderungen) - ist der Source Code freizugängig gemacht worden. Da jedoch die Contentdaten wie Grafiken, Sound etc. eigentlich davon ausgenommen sind, habe ich angefrag ob die Entwickler einer Portierung für die Pandora zustimmen würden. Sie haben eingewilligt und eine Ausnahme gemacht: solange die Version kostenlos vertrieben wird, darf die Pandora Version von Frogatto alle Daten nutzen bzw. beeinhalten (*click*) :-D
[youtube]xM3isK3_1yw[/youtube]

(~ ein Testvideo des Dialogsystem - aktuellere Videos sind noch nicht online, obwohl sich in dem halben Jahr bis zur 1.0 Version noch Einiges getan hat)

_______________________________________________________________________

Wenn also jemand Lust & Zeit hat, könnte er sich das Projekt ja vielleicht schonmal anzuschauen ;)
 
Ist nen ordentlicher Block arbeit... Schonmal ein paar Kommentare dazu, was du machen müssen wirst:
1) Es gibt kein "sauberes" build system. Sprich du wirst vermutlich auf der Datei Makefile aufsetzen und da versuchen, es irgendwie ans laufen zu bekommen. Ich hab mich die letzte Stunde schon ein bisschen dran versucht, aber...
2) Die Abhängigkeiten. Es wird direkt GL/gl.h eingebunden. Okay, im pandora crosscompiler gibt es direkt GLES/gl.h, wo der Großteil der Funktionen verfügbar ist. Dummerweise nur der Großteil...
3) Als weiterer include taucht GL/glu.h auf. Hier beginnt der Spaß, da das an sich Teil vom Treiber (also unter Linux Systemen meist mesa) ist. Im pandora sdk natürlich erstmal nicht enthalten.
4) Um nicht GLEW als Abhängigkeit drin zu haben (da es nicht nötig ist) sollte man beim kompilieren das define SDL_VIDEO_OPENGL_ES setzen.
5) Der editor sollte nicht nötig sein, sorgt außerdem für Probleme beim bauen. Entsprechend nen define NO_EDITOR setzen und die Datei aus der OBJECTS auflistung entfernen.
6) Du musst definitiv einstellen, dass das Spiel in 800x480 starten soll. Außerdem ist die Tastaturbelegung momentan hart einkodiert, die musst du auch anpassen. Das Zeug zur Auflösung sollte in preferences.cpp sein, Eingabemethodik in input.cpp.

Hier schonmal als start mein leicht angepasstes Makefile:
Code:
objects = IMG_savepng.o background.o blur.o border_widget.o button.o character_editor_dialog.o current_generator.o editor_dialogs.o editor_formula_functions.o editor_layers_dialog.o editor_stats_dialog.o editor_variable_info.o collision_utils.o color_utils.o controls.o custom_object.o custom_object_callable.o custom_object_functions.o custom_object_type.o debug_console.o dialog.o draw_number.o draw_scene.o draw_tile.o editor_level_properties_dialog.o entity.o filesystem.o font.o formula.o formula_callable_definition.o formula_constants.o formula_function.o formula_profiler.o formula_tokenizer.o formula_variable_storage.o frame.o framed_gui_element.o geometry.o graphical_font.o graphical_font_label.o grid_widget.o group_property_editor_dialog.o gui_formula_functions.o gui_section.o image_widget.o input.o inventory.o iphone_controls.o joystick.o key.o label.o level.o level_logic.o level_object.o level_runner.o level_solid_map.o load_level_nothread.o main.o message_dialog.o movement_script.o multi_tile_pattern.o multiplayer.o object_events.o options_dialog.o particle_system.o pause_game_dialog.o playable_custom_object.o player_info.o powerup.o preferences.o preprocessor.o preview_tileset_widget.o property_editor_dialog.o random.o raster.o raster_distortion.o rectangle_rotator.o settings_dialog.o solid_map.o sound.o speech_dialog.o stats.o string_utils.o surface_cache.o surface_formula.o surface_palette.o surface_scaling.o surface.o texture.o text_entry_widget.o thread.o tile_map.o tileset_editor_dialog.o tooltip.o translate.o utils.o variant.o water.o water_particle_system.o weather_particle_system.o widget.o wml_formula_adapter.o wml_formula_callable.o wml_modify.o wml_node.o wml_parser.o wml_schema.o wml_utils.o wml_writer.o unit_test.o formula_test.o wml_parser_test.o loading_screen.o utility_object_compiler.o utility_object_editor.o

server_objects = server.o simple_wml.o

formula_test_objects = filesystem.o formula_function.o formula_tokenizer.o string_utils.o variant.o wml_node.o wml_parser.o wml_utils.o wml_writer.o

wml_modify_test_objects = filesystem.o string_utils.o wml_node.o wml_parser.o wml_utils.o
wml_schema_test_objects = filesystem.o string_utils.o wml_node.o wml_parser.o wml_utils.o

OPT=-O2 -fno-inline-functions

TOOLCHAIN=/home/nils/pandora-dev/arm-2009q3
GCC_BINARY=bin/arm-none-linux-gnueabi-gcc
G++_BINARY=bin/arm-none-linux-gnueabi-g++
DEFINES=-DNO_EDITOR=1 -DSDL_VIDEO_OPENGL_ES=1

%.o : src/%.cpp
	$(TOOLCHAIN)/$(G++_BINARY) -DIMPLEMENT_SAVE_PNG -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -I$(TOOLCHAIN)/usr/include -I$(TOOLCHAIN)/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT $(DEFINES) -Wnon-virtual-dtor -Wreturn-type -fthreadsafe-statics -c $<

game: $(objects)
	$(TOOLCHAIN)/$(G++_BINARY) -g $(OPT) -L$(TOOLCHAIN)/usr/lib -L. -lX11 -D_GNU_SOURCE=1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib `$(TOOLCHAIN)/usr/bin/sdl-config --libs` -lSDLmain -lSDL -lGL -lGLU -lGLEW -lSDL_image -lSDL_ttf -lSDL_mixer -lpng -lboost_regex-mt -lboost_system-mt -fthreadsafe-statics $(objects) -o game

server: $(server_objects)
	$(TOOLCHAIN)/$(G++_BINARY) -fno-inline-functions -g $(OPT) -L$(TOOLCHAIN)/usr/lib -lX11 -D_GNU_SOURCE=1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib `$(TOOLCHAIN)/usr/bin/sdl-config --libs` -lSDLmain -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex-mt -lboost_system-mt -lboost_thread-mt -lboost_iostreams-mt -fthreadsafe-statics $(server_objects) -o server

poolalloc.o: src/poolalloc.c
	$(TOOLCHAIN)/$(GCC_BINARY) -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -D_GNU_SOURCE=1 -D_REENTRANT -Wreturn-type -c src/poolalloc.c

malloc.o: src/malloc.c
	$(TOOLCHAIN)/$(GCC_BINARY) -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -D_GNU_SOURCE=1 -D_REENTRANT -DUSE_LOCKS=1 -Wreturn-type -c src/malloc.c

formula_test: $(formula_test_objects)
	$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_FORMULA -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex src/formula.cpp $(formula_test_objects) -o test

wml_modify_test: $(wml_modify_test_objects)
	$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/boost -I$(TOOLCHAIN)/usr/include/SDL -I$(TOOLCHAIN)/usr/include/X11 -Isrc/ -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_WML_MODIFY -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lboost_regex src/wml_modify.cpp $(wml_modify_test_objects) -o test

wml_schema_test: $(wml_schema_test_objects)
	$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/boost -I$(TOOLCHAIN)/usr/include/SDL -I$(TOOLCHAIN)/usr/include/X11 -Isrc/ -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_WML_SCHEMA -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lboost_regex src/wml_schema.cpp $(wml_schema_test_objects) -o test
	

clean:
	rm -f *.o game
Da ich meine toolchain an nen anderen Ort installiert habe als im crosscompiler howto musst du diesen pfad wohl anpassen. Der Rest sollte so ziemlich klappen. Viel Glück/Spaß/Erfolg.
 
Back
Top