Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - BdR

Last few days I've been getting some spam mails from gameacadamy with a (I've got to admit) pretty slick PR campaign. It's delivered through a series of videos with a distinct kickstarter-vibe to them. You know; informal tone, inspirational music, profesionally edited.. it's all a little too slick actually.

They claim they are going to reveal this insanely new software development tool on 18th of august (next monday) called Buildbox. With it you can allegedly create games without any programming skills and deploy them on any platofrm (iphone, android, windows, mac, xbox, etc). :S I dunno, when something sounds too good to be true.. usually it just isn't true.

Anyone else hear of it, what do you think?
It seems to me that "the media" has a distorted and romanticised view on app development. :glare:

Stories seem to focus on individual "prodigy" developers with brilliant new ideas that will change the world. While in reality the real success stories seem to come from team efforts putting in a lot of work on usually not-so-unique ideas. Don't get me wrong, I think apps like Wordfeud, Angry Brids, Subway Surfers etc. are great (Wordfeud is based on the age old Scrabble for example) and they deserve all success they get. I'm just saying the media seems to skew these stories by focussing on the wrong things.

The reason I bring it up is this recent example:

The headline: Why Has This College Dropout Been Given $25 Million For His Business?
What is conveniently left out: As you can read here, it's a project onto it's third year, they have lots of employees, university and industry backing, and several professors are also funding and advising the company.

This is just one example but there is a trend of mainly focusing on how young the app developer/startup and leaving out parts that don't fit in this picture of "young prodigy developer". Any thoughts on this..?
In january 2009 I bought a Mac Mini just for developing iPhone apps, but it seems this hardware is already now obsoleted by Apple. :(

It's a Mac Mini 1.83 GHz Intel Core 2 Duo (2GB RAM) with Mac OS X v10.6.8 and XCode v4.2. Recently I wanted to update an app that I developed (not using GLBasic btw, just in XCode). When I uploaded my app update, initially it is accepted just fine, but after about a minute iTunesConnect displays a "invalid binary" error and I receive an e-mail stating that the app doesn't meet the "iPhone 5 Optimization Requirement".

It seems I'm faced with the following chain of requirements:

  • Starting may 1st, all apps must support iPhone 5 (see here)
  • So you need the iOS 6 SDK, which in turn requires Xcode 4.6.2 or newer (see here)
  • XCode 4.3 or newer requires Mac OS X Mountain Lion or newer (see here)
  • Mac OS X Mountain Lion requires at least a Mac Mini from "begin 2009" (see here, btw what is that, january or february? Why not specify a model nr?).
I tried to buy the newer Mac OS X Mountain Lion using the mac app store, but it just gives this message:
QuoteWe could not complete your purchase. OS X
Mountain Lion is not compatible with this computer.

So my $100 developer licence is now essentially useless to me unless I buy a new mac. :rant: Anyone else here run into this problem with macminis from before 2009? And is there another way around this, I mean without having to buy new hardware?

just saw this this post on iphonedevsdk, seems I'm not the only one.
Since we're all into game development here, I though this might be interesting. Someone over at hardcoregaming101 is doing a Kickstarter for a book about Japanese game developers.

It's the first kickstarter I'm backing, hopefully it will reach the goal and I'll get the digital copy. :) I though I'd post it here because judging by kicktraq it looks like it might be a close call to reach the goal.

I've been working on a 3D game and Kitty mentioned (here and here) that it is recommended to use textured models instead of just colored models because they are faster on mobiles. I thought this was strange, so I've created a GLBasic project to see this for myself. The program displays an increasing number of objects and displays the frames per second (fps). The models are created and textured with AC3D and exported using the glbasic plug-in. See attachement to this post for the project and models and textures.

The colored models look different than the textured models, but that's not the point here. I've tested it on my available devices and here are the findings (colors=colored non-textured, txt64=textured with 64x64 bitmap, txt256=textured with 256x256 bitmap):

Code (glbasic) Select
iOS, iPod4 retina:
            colors txt64  txt256
  1 objects ~60fps ~60fps ~60fps
  8 objects ~60fps ~60fps ~60fps
27 objects ~60fps ~60fps ~60fps
64 objects ~60fps ~60fps ~60fps
125 objects ~60fps ~60fps ~45fps
216 objects ~56fps ~45fps ~33fps
343 objects ~39fps ~32fps ~26fps
512 objects ~27fps ~22fps ~21fps

Android, HTC Desire X:
            colors txt64  txt256
  1 objects ~60fps ~60fps ~60fps
  8 objects ~60fps ~60fps ~60fps
27 objects ~60fps ~60fps ~60fps
64 objects ~60fps ~60fps ~43fps
125 objects ~53fps ~39fps ~28fps
216 objects ~35fps ~25fps ~19fps
343 objects ~24fps ~17fps ~13fps
512 objects ~17fps ~12fps ~10fps

WebOS, Palm Pre (320x480 device):
            colors txt64  txt256
  1 objects ~60fps ~60fps ~60fps
  8 objects ~60fps ~60fps ~60fps
27 objects ~60fps ~60fps ~50fps
64 objects ~60fps ~60fps ~32fps
125 objects ~51fps ~43fps ~23fps
216 objects ~30fps ~27fps ~18fps
343 objects ~20fps ~19fps ~14fps
512 objects ~13fps ~14fps ~11fps

Maybe these devices are the exception to the rule. Or maybe my 3d models and textures are non-standard, or my fps function is wrong or something. But it seems that colored non-textured models run a bit faster than the same model textured (although it's not that much).

So, does this mean I can just use colored non-textured 3D models? Maybe this was an issues on 1st generation iPhone and Android, and the newer graphics chips can handle this better? O_O
(note: I know I shouldn't use flat colors, I'll create properly textured models later)

work-in-progress/alpha version download ->

I wanted to do a 3D game, but I figured it's best to start simple. So at the moment I'm working on a Space Invaders game using 3D models instead of bitmaps. :) It has several levels and power-ups. Still lots of stuff to add like score display, player destroy, level intro etc.

I don't normally do this, I usually don't post about a game until it's "ready". But hopefully it will be just a little extra motivation to finish this game and maybe also get some feedback. :good:
I'm trying to get an animated 3D model into GLBasic, but the problem is that the Convert3D tool seems to remove all colors. In GLBasic when I load my objects with X_LOADOBJ, they are just plain white.

I wanted to make a simple animated object with 2 keyframes. So I've made 2 keyframe models and I export them to .obj and then use Convert3D from the GLBasic\tools\ folder to put them together as one .ddd file with animation frames.

It looks like the .obj files use a separate .mtl file that describes the materials. The content of the .obj file uses a mtllib and usemtl keywords, I assume material library and material usage, so for example the .obj content is like this:

Code (glbasic) Select
mtllib blue_cube.mtl
g g0
v -5 -5 -5
usemtl acmat_0

Maybe this is a new feature of this file format and Convert3D doesn't support it yet?

I've attached an example project, also see screenshots below.

[attachment deleted by admin]
In the helpfile, you can search using the third tab "Search". This used to work, but now the "list topics" button always displays "no topics found", no matter what keyword I try. Even keywords that I know should yield results, for example "3d" or "sprite" or "drawsprite". Some info on the file version I have:

GLBasic IDE v11.261
GLBasic_e.chm (filesize 635393 bytes, filedate 9-jan-2012)

And another thing, as I mentioned here, could someone maybe add a chapter to the helpfile about some of the tools? I'm new to the 3D parts of GLBasic and I've found that I have to rely on looking for clues in old forum posts. I was looking for info on Convert3D.exe, but info about the AC3D plug-in, DiNGSFont, shoebox etc. would be handy too. I think all the relevant info should be in one central place, so the helpfile would be perfect.

I know writing and updating the documentation is a lot of work, but it's very important for using GLBasic to its full potential. Is there a way we can contribute to the helpfile, maybe in a wiki-like setting? :good:
What is the best way to create a .ddd model that holds a simple explosion animation? I don't mean explode an existing spacehip model into tiny vertices, but just an explosion ball and some random debris.

I'm new to 3D and I'm looking for a way to do explosions in a Space Invaders type shooter game for iPhone and Android.

Doing particles is CPU costly (both in 2D as in 3D) so I thought creating a model with 2 keysframes would be a good solution. The first keyframe is some debris parts close together, and the second keyframe would be the same parts except exploded like the AC3D object->explode function. So something like below, except with more parts and in more random directions.

I know there is a .dda ascii fileformat, because I saw it mentioned here on the forum. But I don't know what it can do or how I can use it. I suspect that I could create a model and then edit the animation in by hand, because it is only 2 frames of animation, and only a few vertices that represent the debris. Maybe I can just write a small program to generate the data and write it to an a ascii text file. But where can I find documentation on the file format?

Also, there is Convert3D program in the GLBasic tools folder, it has buttons labeled "(+) keyframe" and "(-) keyframe" but I don't know how to use this program or what it can do. Is there any documentation on this tool?

So the question is, how to do a simple animation? :nw: Any help would be appreciated

I'm trying some 3D stuff and I created some cubes and spheres in code using X_OBJSTART, X_OBJADDVERTEX, X_OBJEND etc. I really like the flat shaded 3D objects. They look kind of oldschool, like Virtua Racer or Star Fox for SNES. See image below what I mean with flat shaded, the red sphere on the left-hand side. 8)

So now I wanted to create some more interesting objects, other than the simple cube or sphere. So I'm using AC3D as a model editor, export it to 3ds file and convert it to .ddd using Convert3D tool.

But when I load the resulting .ddd object, it looks like the objects aren't lighted or shaded correctly. See image below, I draw a row of the same object, using X_MOVEMENT, X_ROTATION around y-axis and then X_DRAWOBJ.

The colors between the 2 example are slightly different because of material settings in AC3D, so that's not the problem.

The top halve is 1 object created in code with X_OBJSTART, X_OBJADDVERTEX, X_OBJEND, and when I draw a row of this one object it show correctly. The bottom halve is a cube created with AC3D, loaded from X_LOADOBJ. The shade of the bottom part of each cubes is different. This is not expected, because the bottom parts are all facing the same direction. There is a X_SPOT_LT with same position and angle as X_CAMERA, so the light is comming directly from the view angle.

I've tried changing X_AUTONORMALS before doing X_LOADOBJ but that doesn't make any difference. Do I need to set some surface properties in AC3D before exporting it? O_O
In the new version GLBasic v11 there is a problem with apps that run on both iphone/ipad, and project resolution is set to 768x1024 (portrait). It correctly runs in 768x1024 mode on the iPad, even on the new iPad3 (which has 1536x2048 screen) so this is correct. However, the problem is that on iPhone4/iPod4 it incorrectly starts in 320x480 graphics mode. (btw this is a bug report, as suggested this topic)

Here's my new info:
GLBasic v11.261
libpng-gf.a => 14-dec-2012
libGLBasiciPhone-egl.a => 14-dec-2012

In project->options I set the Resolution to 768x1024. On an iPod4 my GLB app now runs in 320x480 mode. I've tried it on an iPod4, iPhone4 and an iPad3. I've even uninstalled both GLBasic v10 and v11, and then only re-installed v11. Console gives this output:

Code (glbasic) Select
init with frame.
desktop backing: 320 x 480
mainScreen: 320x480
glb_notify_screen_size 320x480
slaunch ok
-applicationDidBecomeActive    -> unpause
rbow init
Rbow::SetScreen( 768,1024)
get accurate timer - 1st call
flip - 1st call
BGRA ext supported

Note that when I set the project settings to 640x960 and run it on my iPod4, then it does go to 640x960 ("retina") graphics mode. Here is the console output.

Code (glbasic) Select
init with frame.
App wants to support retina...
Retina scaleing available: self.contentScaleFactor = 2.000000
desktop backing: 640 x 960
mainScreen: 640x960
glb_notify_screen_size 640x960
slaunch ok
-applicationDidBecomeActive    -> unpause
rbow init
Rbow::SetScreen( 640,960)
get accurate timer - 1st call
flip - 1st call
BGRA ext supported
Check this out, PetitComputer is a sort of virtual machine for the Nintendo DSi which is available on Nintendo DSiWare. It has been available for Japan market since March 2nd 2011 and since last week also for the US. No official European release as of yet.. :doubt: <- official website <- short introduction video

It's a virtual 1980s homecomputer with its own BASIC programming language, so it's very similar to ZX-Spectrum, MSX, C64 etc. The cool thing is that users can exchange programs they've created via WiFi or via QR codes. Japanese users have already made all kinds of new games with it, just check the many youtube videos. Someone should make a GLBasic  version of this one :D
At the moment, iphonedevsdk only displays "this site has been suspended". It's a great forum for iOS specific questions, things like xcode, objc and the appstore. Every now and again I browse through the site to see how other developers are do their app developing/marketing bussiness.

In the past, opening the site would sometimes display "maleware detected" because of flaky ad-banners (just one of the reasons I hate webads and banners in general). Now it seems the entire site is offline, though maybe it's temporary. Anyone know what's going on? :doubt:
I'm trying to build a drum-machine-like program in GLBasic using PLAYSOUND as part of a rhythm game. The game will be bouncing a ball from tile to tile, and the music in the background stays in-sync with the bouncing of the ball. :)

I've programmed a drum-machine test program which can play a "track" (a simple textfile). The beat sounds okay on my Windows pc, but when I run it on my Palm Pre there's a slight stutter. It's not much but enough to notice the beat is not "tight". This is probably because the Palm-device isn't fast enough to play so many PLAYSOUND commands(?). It seems to run okay on my iPod4 device, so maybe it's due to slightly different screen refresh (60hz 50hz?), or are they the same? (and does it matter?) :doubt:

I've attached my tester program, see the "music synth" test part. The samples used are 44k 16bit mono, I've tried down-sampling them (with cooledit) to 22k and there seems to be a slight improvement on my palm, but still the "sequencer" speed seems a little uneven.

Any ideas on improving this? Maybe use a bigger sound buffer (how?), or use different sound commands (which ones?)


[attachment deleted by admin]
I'm working on an Android port of my game and I'm using the Android emulator with a Android 4.0.3 setup. My app is relatively large, because I've included 3 sets of graphics files, one for 320x480 (small) and 480x720 (normal) and one for 640x960 (highres).

What I've noticed is that when I install an APK file and start it for the first time, it takes a very long time to start. It only shows the top bar with batery and time, and a bar with the app name, the rest is black screen. Then after a short while, a dialog appears: "<app name> is not responding. Would you like to close it? wait/ok". I press wait a few times and finally give up and close the app. Then I reopen the app, and it usually seems that some (in some cases all) graphics files are missing.

When I go to Settings -> Apps -> App info, under Storage it displays this (also see attachment):
App 23MB
USB Storage app 0.00B
Data 17MB <-- !?
SD card 0.00B

The App and USB Storage seem normal but the Data part seems abnormally large. I suspect that the media files are copied from the APK file to some other location in Data and are used from there. Is this normal? Why is this? Can I change some settings in android to speed this up or prevent this copying from happening at all?


[attachment deleted by admin]
I'm working on the Android version of Snake Slider, and it should work on a real device but I could only test it on the emulator. If anyone wants to test it, the unsigned .apk is in this zip:

It supports 320x480, 480x720 or 640x960 resolution. Any display resolution will work, for example 480x800 (most of current Android phones) will use 480x720 with small border at top and bottom. Please let me know if anyone has tried this app.

In iOS, when you use OPENFILE to open a file in the app folder in write-mode, it crashes instead of returning FALSE. I know it sounds illogical to try to write to the app folder, but in previous versions this has always worked and it just returned FALSE.

I used this as one of the first-time startup checks (along with PLATFORMINFO$("DEVICETYPE"), iPhoneIsCracked etc.) and reported the results back to my database for analysis. I noticed that the default Lib files libGLBasiciPhone-egl.a and libpng-gf.a were updated very recently on 2 march 2012, so maybe OPENFILE was changed?

To be honest, the result of this check is not that important to me anymore, so as a workaround I will simply skip it. But anyway, here is my code. At the OPENFILE line I expected it to return FALSE but instead it crashes.
Code (glbasic) Select
// -------------------------------------
// check if app folder is writable
// this could indicate a jailbroken iphone/ipod
// -------------------------------------
FUNCTION CheckAllowWriteAppFolder:

  LOCAL bResult%
  LOCAL bTmp%
  LOCAL Filename$

  Filename$ = "Media//appwritecheck.ini"

  // try to write new file in Media/ in appfolder
  bTmp = OPENFILE(1, Filename$, 0) // 0=write
  IF (bTmp = TRUE)
//    WRITESTR 1, "filecheck=1" // not needed
    bResult = TRUE
    bResult = FALSE

  // remove file
  bTmp = DOESFILEEXIST(Filename$)
  IF (bTmp = TRUE)
    KILLFILE Filename$

  // function result
  RETURN bResult

Just came across this news item:
Remake the classic Pong in an original way to win $50.000

Entry period ends 15 april 2012, a playable app must be ready by 6 july 2012. I don't think I'll enter, but anyone here feeling up to it? It is kind of weird though, because of Atari's cease-and-desist attitude against any Pong clones.
While testing GLBasic with Android, I noticed that PLATFORMINFO$("LOCALE") gives different codes on Android compared to iPhone. For example Dutch/Netherlands = "ne" instead of "nl" and Deutsch/Schweiz = "sc" instead of "sw", Dansk = "da" instead of "dk", english (both UK and USA) = "un"(?) etc. I've tested it on the emulator on Android 2.2 and 4.0.3 but it probably works the same on real devices.

I suspect PLATFORMINFO$ on Android takes the first two letters of the country name, instead of the language code. That would explain why "united states" and "united kingdom" both return "un". It does work correctly for Deutsch,France,Espanol etc. but with those country names the first two letters are the same as the language codes.
Here is an example of a program which supports multiple languages, in the same way as I used in my game Snake Slider. Here is how I added multi-language support, hopefully someone can also benefit from this. :good:

At first I programmed the game with just English texts. Then I decided to add multilanguage, so I went through all source files and collected the text-strings and put them in a column in an Excel sheet. Then I added a column with translated Dutch texts as a first test. Then I wrote a VBA macro which would output the texts to an ini-file with numbers as keys. For each language there is a separate ini-file, so for example the english.ini file would like this:
Code (glbasic) Select

0=Start game

The vba macro also generates a GLBasic list of constants which contains all the numbers, so this is kind of like enumeration. I could paste this into my source file, it looks for example like this:
Code (glbasic) Select


Then I wrote a GLBasic function that would read the items from the ini-file into an array of strings called MultiLang$[]. So at program start-up (or when the user changes the language) the program reads all texts from the corresponding language file into the array.

When all this was ready, I changed my source files and replaced all the fixed English strings to MultiLang$[] array items, using the constants to get a certain string from the array, for example like this:
Code (glbasic) Select
// original command..
PRINT "Start game", 100, 100, TRUE

// ..changed to multi-language
PRINT MultiLanguage$[ML_START_GAME], 100, 100, TRUE

The Excel file and macro help to manage and edit the translated texts. If I used "magic numbers" in GLBasic to locate the string items, like MultiLang$[2], I would have to update many lines of code everytime I inserted or deleted a translated text item. But now, I can just generate new language ini-files and an updated list of constants and everything still works the same. :)

See attachement for an example project plus an Excel file with the vba macro.

[attachment deleted by admin]