Project4 - Follow the development of a new game


Just gave it a try, nice game! Quite difficult to dodge those enemies, and surprisingly fun!


Is the shooting part of the game already implemented? If so, I cannot find the button for shooting :)


It would be nice to be able to play this with the nub instead of the dpad...
 
(might be worth putting some UI to inform the user of this)
Might be worth putting in some UI for anything.


Basically I haven't even started on the UI (it's on the todo though).


For the moment I will just redirect people the the documentation which mentions all available functionality and controls.

Could you provide some way of identifying which replay belongs to which high-score. I know you can load them from the highscore screen , but if you want to send your best score to somebody, you've got to do a bit of digging (unless it was your last game).


Also, "Load Replay" would be a lot easier if you could list files - maybe a "Filename | Player | Score " table, that you can browse and select. That would also fix my first point :)


It's a really great game, good job!
I wanted to add a file browser, but sparrow basically has no service for accessing files build it, so I would have to build it from scratch, which is harder than one might think keeping in mind one has to stay platform agnostic and C++ does not offer much functionality for that either. (I could just "borrow" the one from Penjin, but I don't like the idea of doing that very much)


I will definitely work on improving that part, but it will be one of the last things I do as I will concentrate on the core gameplay first.


Renaming the replay files is easy, maybe just "score_player_timestamp" maybe (though the longer the name the more you have to type to load it currently and the final version will be simpler in that regard anyway, so should I even bother?).


I am glad you like it.
 
Last edited by a moderator:
Just gave it a try, nice game! Quite difficult to dodge those enemies, and surprisingly fun!


Is the shooting part of the game already implemented? If so, I cannot find the button for shooting :)


It would be nice to be able to play this with the nub instead of the dpad...
As pmprog noted this game will be about dodging and getting enemies to kill each other, you will never be able to shoot.


I will implement the nubs as an alternative for the d-pad at some point, but sparrow (the engine I am using) has no functionality for those built in, so I have to code that from scratch. I currently lack the time to look into that, so I am focussing on smaller tasks, but rest assured it's on my todo.


Also glad you like the game :)
 
Using the nubs is easy with SDL_Joystick, feel free to reuse some snippets from the Microbes source code...
 
If you activate the absolute mode for the Nubs, sparrow3d already should support it - but just as D-Pad emulation. :p


On puzzletube (which is made with sparrow3d, too) Nubs should work.


Edit: Ah, damn you, foxblock. :p Instead of going to bed I created a new "axis" branch with two new things:

  • The Y Axis is inverted (That was really... unlogical)
  • I added a analog_axis member to the spInput struct. It is exactly like the axis member, but it goes from SP_ANALOG_AXIS_MIN to SP_ANALOG_AXIS_MAX instead of -1 to 1. spResetAxis deletes both members. Keep in mind: Both are the same axis! The best idea is to use always just one (axis OR analog_axis) of them and to ignore the other one. ;-)


If you want to try it on your pandora, don't forget to change the nub mode int the start script.


If you want to try at your PC: I added a visualization of axis states to testsparrow.c, too. So if you have an analog USB Controller, check it out. I am too lazy to test with an analog stick today myself. It worked fine with the D-Pad Gamepad I had here and for my analog stick I first had to find the Gameport2USB-Adapter... ^^


good night,


Ziz
 
Last edited by a moderator:
I wanted to add a file browser, but sparrow basically has no service for accessing files build it, so I would have to build it from scratch, which is harder than one might think keeping in mind one has to stay platform agnostic and C++ does not offer much functionality for that either. (I could just "borrow" the one from Penjin, but I don't like the idea of doing that very much)
I'm going to need something similar-ish for the playlist editor in the Alarm Clock, so when I write or find one, I'll let you know in case you want to use that :)


Out of curiousity, what's wrong with the Penjin one? or should I say, why would you not want to use that one?

I will definitely work on improving that part, but it will be one of the last things I do as I will concentrate on the core gameplay first.
Yeah, that's a fair comment. I don't actually know what's in your ToDo list, so I'm just dropping things that I think would make it that bit better :)
 
Out of curiousity, what's wrong with the Penjin one? or should I say, why would you not want to use that one?
There is nothing wrong, it works fine. Writing it now I would just structure it differently and I want any abstract class I write to be usable in an engine I might construct sooner or later.

Yeah, that's a fair comment. I don't actually know what's in your ToDo list, so I'm just dropping things that I think would make it that bit better :)
See here: https://raw.github.com/foxblock/Project4/master/media/todo.txt


It's not complete, but a good overview. It's linked from the project page and will be updated with the GIT, so it should be up to date most of the time ;)
 
New version:

  • Changed appearance of player character
  • Added help text to menus (so you finally know which buttons to press - thanks to sparrow it's also auto-cross-platform! :) )
  • Added wave system and a few initial waves
  • Added pause (press Start)
  • Changed behaviour of UnitLaser - will now start to move after a while (simple pattern)
  • Changed the timing for scoring a bit


Get it while it's hot: http://foxblock.pirategames.co.uk/games/project4/index.html


The engine itself is nearing completion, only a few things left on the todo :)


Content however is still lacking, but I can see the light already.


On a related note: I cannot get linking sparrow dynamically and putting the library in the PND to work. No matter what I do the Pandora will always report missing the library.


I tried putting the libsparrow3d.so in a "lib" folder, I tried simply putting it next to the binary, I tried adjusting a run script from another PND I did not understand...


Is there a guide on that somewhere I haven't found yet (there really should be one...)? What the hell do I have to do? (some PXML magic? run script magic? linker magic? maybe I am just doing something wrong...).


Anyway for now I just compile sparrow into the binary, which just works fine...
 
Just do export LD_LIBRARY_PATH=./lib in your startupscript, if you have the libs in a folder called lib in the pnd. Should work. :)
 
SDL_mixer.dll missing from the Windows build zip :( Looking forward to trying out the new version
 
Just do export LD_LIBRARY_PATH=./lib in your startupscript, if you have the libs in a folder called lib in the pnd. Should work. :)
Already tried that, for some reason it does not work (still reports it cannot find the lib file - "error while loading shared libraries: bin\Pandora\libsparrow.so: cannot open shared object file: No such file or directory").


For the record here is the PND (which does not work): http://foxblock.pirategames.co.uk/games/project4/dev-builds/project4_pandora_120914_runlib.pnd maybe somebody notices what's wrong with it

SDL_mixer.dll missing from the Windows build zip :( Looking forward to trying out the new version
Fixed, sorry about that.
 
Last edited by a moderator:
I have not much time right now, but this is the launch script of testsparrow, which uses sparrow and seems to work, maybe it helps. It doesn't use "export", just LD_LIBRARY_PATH=. in front of the testsparrow call.



Code:
#!/bin/sh

export PATH=":${PATH:-"/usr/bin:/bin:/usr/local/bin"}"

export LD_LIBRARY_PATH=":${LD_LIBRARY_PATH:-"/usr/lib:/lib"}"

export HOME="/mnt/utmp/testsparrow" XDG_CONFIG_HOME="/mnt/utmp/testsparrow"


if [ -d /mnt/utmp/testsparrow/share ];then

	export XDG_DATA_DIRS=/mnt/utmp/testsparrow/share:$XDG_DATA_DIRS:/usr/share

fi

export SDL_AUDIODRIVER="alsa"


cat /proc/pandora/nub0/mode > /tmp/nub0mode_before_testsparrow

cat /proc/pandora/nub1/mode > /tmp/nub1mode_before_testsparrow

echo absolute > /proc/pandora/nub0/mode

echo absolute > /proc/pandora/nub1/mode


LD_LIBRARY_PATH=. ./testsparrow $*


cat /tmp/nub0mode_before_testsparrow > /proc/pandora/nub0/mode

cat /tmp/nub1mode_before_testsparrow > /proc/pandora/nub1/mode


rm /tmp/nub0mode_before_testsparrow /tmp/nub1mode_before_testsparrow
 
Finally fixed that lib error, it wasn't so much the fault of the packaging or run-script rather than the actual lib file, which had the "bin\Pandora\" path baked in (notice the backslashes, which aren't really typical for Linux - I really should have noticed that before -.- ).


Anyway, working fine now, thanks for all the help and especially HolySmoke on IRC for coming up and confirming with the real source of the problem.


Download the build here (same as before, just repackaged): http://foxblock.pirategames.co.uk/games/project4/dev-builds/project4_pandora_120914.pnd
 
Quite fun: good difficulty progression. If I had my old studio I would donate electro type sounds (like robotron!). Bweaoww Fzzzzt Chrhrhrhr!
 
Back
Top