Posted 09 February 2012 - 11:25 AM
Original gubbins here: http://www.gp32x.com.../59428-glesgae/
GLESGAE ( GL ES Game Application Engine ) is an engine I started last year to help further my own graphics programming, and thought that it might be beneficial to write down tutorials along the way - as a way to help the community, and ensure I do in fact know what I'm doing
It stalled for a bit, but it's now back on track!
The name derives from the fact it works pretty well for what it describes, and it's a Scottish colloquialism for Glasgow, and me being Scottish, thought it was amusing!
There are two repositories on the go for this, one which is linked to the tutorials up on the Wiki, and another which is "bleedin' edge" and is likely to break from time to time, especially when I go about doing vicious wide-ranging rewrites of things.
Stable Repository: http://svn.xp-dev.co.../glesgae/trunk/
Wiki Link: http://pandorawiki.org/GLESGAE
Bleedin' Edge: https://github.com/stuckie/glesgae
The path outline changes as I need to do things, so neither the original post, or the current TOC on the wiki really give an outline of what's coming up... or at least, the ordering of it.
Oh yes... I has a plan for entering something into the Rebirth competition thingie... and you get GLESGAE for free.
In terms of the tutorial line - I've just finished writing up about Resources, although the code has not yet been fully tested and committed back to the stable repository as yet.
There is method in my madness, but you'll just have to wait and see what comes out of it
Posted 09 February 2012 - 12:44 PM
Posted 09 February 2012 - 01:07 PM
Posted 09 February 2012 - 01:13 PM
As I said though, I'll be needing this for my own competition entry.. whether I'll be able to keep up to speed with the tutorials at the same rate ( organising your thoughts into words, and explaining things takes much longer than actually coding and debugging the damn thing, generally! ) I'm not sure, but hopefully no-one will hold it against me too much!
Also, if anything's unclear, feel free to let me know, and I'll go update it.. I'm not your standard programmer in any sense of the word, and I do tend to jump around a lot, and it wouldn't be the first time I've glossed over something critical that I shouldn't have! ( or explained something wrong, but have it right in the code... that happens too *cough* )
Posted 10 February 2012 - 08:23 PM
As such, here are my findings for anyone else wanting to go near it to use webkit for the use of building a browser, for instance.
The joys of cross-compiling a large scale library with many many dependencies!
I'm using the yactfeau toolchain, in my own custom VM ( which has NFS mounts to my dev drives on my main box.. but that shouldn't matter much to you, you'll just need PLENTY of space for this in your VM )
I'm compiling webkit from SVN as well, so it's relatively recent ( mine might be a few commits out now, but it's verified working. )
Anyway, create a project folder (mine shall be called glesgae, and checkout ( or link to ) recent versions of webkit, glib, libsoup, cairo, pixman, glib-networking, gnutls, libnettle, gstreamer, gstreamer-plugins-base
Specifically, I'm using webkit revision 105733, glib 2.31.12, cairo 1.10.0, pixman 0.18.4, libsoup 2.37.1, glib-networking 2.31.6, gnutls 2.12.12, libnettle 2.1, gstreamer 0.10.30, gst-plugins-base 0.10.30
First up, glib.
If your system's version of glib is lower than the one we're compiling, you'll need to build this version for the host.
If you're using Ubuntu, you have additional fun in that you have to clean up Ubuntu's mess... you'll need to delete the old glib libraries in /usr/lib and the one in /lib for your newly compiled version to be found and used correctly.
If your glib is fine (you'll find out if you get weird errors in the configure stage for the Pandora) we'll move on to the Pandora compile.
Create a pandora.cache file with the following in it:
ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes glib_cv_uscore=no glib_cv_stack_grows=noThen run configure as follows:
LIBFFI_CFLAGS=/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include/arm-angstrom-linux-gnueabi pndconfigure --cache-file=pandora.cacheThen
If you're really lucky, it'll compile without issue.
If you end up with the cryptic error of:
GEN stamp-testmarshal.h You should give exactly one directory nameYou'll need to do the following:
cd tests/gobject glib-genmarshal --prefix=test_marshal testmarshal.list --header >> xgen-gmh (cmp -s xgen-gmh testmarshal.h 2>/dev/null || cp xgen-gmh testmarshal.h;) rm -f xgen-gmh xgen-gmh glib-genmarshal --prefix=test_marshal testmarshal.list --body >> xgen-gmc cp xgen-gmc testmarshal.c rm -f xgen-gmc xgen-gmc~ cd ../.. makeThe Makefile is supposed to do this, but seems to get confused, for some reason.. either way, it should continue afterwards.
Once it's done,
make installas usual for it to dump itself into your project's end structure - /mnt/utmp/glesgae
This one's straightforward enough, it's just
pndconfigure && make && make install
This also requires a pandora.cache file, this time containing:
ax_cv_c_float_words_bigendian=noThen it's just:
pndconfigure --cache-file=pandora.cache && make && make install
pndconfigure && make && make installI got errors during install while building tests, but it seemed happy enough to copy the includes and libs over, which is what we needed anyway.
pndconfigure --without-p11-kit && make && make install
For the host, I needed glib-networking to be built here, if I was building for host as well.
Now for libsoup.
Again, it's just:
pndconfigure && makeI got errors during making the tests.. I brazenly ignored them and issued
make installTo which I got the same errors, but it had already built the libs and headers, and copied them into place.
On to gstreamer.
I had to specify the lib folder of where all the glesgae is being dumped...
LDFLAGS=-L/mnt/utmp/glesgae/lib/pndconfigure && make && make installOther than that, a nice and easy library to compile...
I again had to specify the lib folder of where all the glesgae is being dumped...
makeI got an error during the compile about something including a part of glib directly.
It was an easy fix, though.. I just had to edit gst/typefind/gsttypefindfunctions.c and change the line to #include <glib.h>
Now the big bugger, webkit:
LIBSOUP_CFLAGS="-pthread -I/mnt/utmp/glesgae/include -I/mnt/utmp/glesgae/include/glib-2.0 -I/mnt/utmp/glesgae/lib/glib-2.0/include -I/mnt/utmp/glesgae/include/libsoup-2.4 -I/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include/libxml2" LIBSOUP_LIBS=-L/mnt/utmp/glesgae/lib pndconfigure --with-gtk=2.0 --with-unicode-backend=glibUnless you feel like compiling GTK 3.0? No?
The LIBSOUP stuff is required as it doesn't seem to have updated pkg-config correctly - probably due to the errors in the tests.
Again, it points to where glesgae is all going out to.
make jscIt'll give up building the interpreter, but we don't need that... we just need the library and the include files.
.... after three days on and off of attempting to compile the bugger, hence this post.
Edited by stuckie, 10 February 2012 - 08:42 PM.
Posted 10 February 2012 - 08:26 PM
/* Fanatic C programmer */
On hold: YAPFP (yet another platformer for pandora), RPGDarnit
Ports on hold: Audacity, CUPS in a PND, btmnt
Currently working on: Muon, libdarnit
Posted 10 February 2012 - 08:47 PM
Certainly not something I want to go through again, hehe
I only needed the JSC part of it too, so it was a bit of a long-way around when I could've just pinched one little library from you which is ( effectively ) self-dependent ( well, depending on whether you compiled glib unicode support, or went with icu which is a dependency. ) But yea, the need to ensure everything's compiled at the same level is a bit important at the moment, so wasn't a waste.
Onwards to the fun stuff!
Edited by stuckie, 10 February 2012 - 08:51 PM.
Posted 11 February 2012 - 12:56 PM
Posted 11 February 2012 - 02:28 PM
Tired of the infamous preorder queue? Donate and help get this queue cleared!
If you like my work, please consider leaving a rating or feedback or donating, every little "thank you" is appreciated!
My Pandora Apps - My Development Blog - Pirate Games
Posted 11 February 2012 - 03:55 PM
If I was just going to bind out a proper scripting language, it'd be Lua, as I've a huge amount of experience with doing exactly that
Posted 11 February 2012 - 04:26 PM
If you like my site/contributions, consider donating.
Posted 12 February 2012 - 08:54 AM
It's not "as a scripting language", more of just "as a language" Mainly because it is an untyped language - okay, I know most scripting languages are, and I don't really like any of them. Also, this article makes me cringe - there should not be three different ways of defining classes.
I know, I'll probably have to embrace it at some point, just a shame they couldn't have picked a better language to standardise on.
Back on topic:
Are you thinking of covering WebGL too?
Posted 12 February 2012 - 10:04 AM
Just for basic HTML5/JS support, I need to sort out Canvas, Image and Audio primarily, so I've my hands full yet!
GLESGAE itself doesn't have any real File I/O implementation ( working on that now ) nor Audio implementation ( likely going to be OpenAL ) so those will be needing done as well.
Tutorial-wise, I think I might have to hold off for the next couple of weeks to get everything done, as looking at how much free time I can guarantee to have, I have 18 hours over the next two weeks, and getting the basics marked down and my compo entry done will be exceedingly tight!
Posted 12 February 2012 - 03:33 PM
hope this turns out to be great, i really see a lot of potential in such a project!
Posted 17 February 2012 - 11:12 AM
Posted 17 February 2012 - 11:35 AM
Posted 17 February 2012 - 12:13 PM
Posted 17 February 2012 - 01:39 PM
I have my reasons for implementing this first anyway, but I'll be implementing Lua as well at some point as well - especially as I have several years experience of using Lua in such situations.
Anyway, a little progress report.
I've written up a nice and simple File implementation thing.
I've pulled in SOIL to use for loading in images, as it's nice and self contained and without a mental license.
I'll also be pulling in OpenAL and Ogg Vorbis.. I won't be supporting MP3 files, as I don't want to go anywhere near that patent encumbered mess, as this engine is going to be rather important to me soon, so rather not deal with mad licenses
And I'm about to start binding out stuff for Canvas and Image, to get things on screen.
As for the Rebirth project that'll be coming out of this, most of the design was written up last night, with some concept bits and pieces drawn. I'll start another topic for this closer to the time.
Also tagged with one or more of these keywords: GLES Game Engine, C++, Tutorial
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users