Menu

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

#21
I've always wondered how some apps get ridiculous amounts of user ratings, but now I think I know how they do it:

Reward the player with in-game tokens for bringing out a rating.

Yesterday I came across a free iOS game Move The Box. It's an okay but pretty unremarkable game. However, I saw it has more than 10.000 user ratings in the Dutch appstore alone. I checked the US appstore (open iTunes, change language in bottom right) and there it's got almost 300.000 user ratings! :blink: This is amazing because its initial v1.0 release was only last january.

The game is like a simpler version of Puzznic and you can buy hints as in-app purchases; a 4 hints pack for $1 or a 12 hints pack for $2. Or, and this is how they do it, you can get 5 free hints for rating the game. The only other way to get hints is by spending money, so this really reinforces the feeling of getting someting for free. Btw it's a very simple implementation because the app doesn't even check if you actually give a rating. You get the free hints just for clicking the "rate this game" button, but apparently that's good enough. This tactic seems to be working on the Android market as well.

What do you think of this, manipulative or pure genius?
#22
I think there's a bug in USEASBMP when used in combination with SETORIENTATION.

You can draw an image and then do USEASBMP to "save" it to the backbuffer. From then, every SHOWSCREEN will use that saved image as the default background screen, which is great for rendering a non-moving background only once (saves CPU, compared to rebuilding it every frame).

However, when you use SETORIENTATION something goes wrong. For example, when you do SETORIENTATION 2 it will flip the screen 180 degrees. When you now use USEASBMP the first frame will be good but the frames after that will have a screwed up background.

Here is a program to test and reproduce it on Windows, also see screenshots in attachement.
Code (glbasic) Select

// the first test, normal
DEBUG "TEST 1 - a-okay"
SETORIENTATION 0
DrawBackground()
PRINT "TEST 1 - a-okay .. press any key", 160 ,0
SHOWSCREEN
KEYWAIT

// test 2, the first frame will work
SETORIENTATION 2
DEBUG "TEST 2, first - using USEASBMP"
DrawBackground()
USEASBMP
PRINT "test 2-1 ... press any key", 160 ,0
SHOWSCREEN
KEYWAIT

// test 2 second frame, now it's screwed up
PRINT "test 2-2 screwed up... press any key", 160 ,0
SHOWSCREEN
KEYWAIT

// -------------------------------------
// draw test background
// -------------------------------------
FUNCTION DrawBackground%:

  // draw colored rectangles
  DRAWRECT       0,   0, 640, 240, RGB(192,   0,   0) // red top
  DRAWRECT       0, 240, 640, 240, RGB(  0,   0, 192) // blue bottom
  DRAWRECT       0, 120, 160, 240, RGB(  0, 192,   0) // green left
  DRAWRECT 640-160, 120, 160, 240, RGB(192, 192,   0) // yellow right
 
  // draw texts
  PRINT "top",         0,   0
  PRINT "bottom",      0, 360
  PRINT "left",        0, 120
  PRINT "right", 640-160, 120

ENDFUNCTION


[attachment deleted by admin]
#23
I had update my Snake Slider game and added high-resolution graphics (640x960). It works alright on iPod/iPhone and Palm Pre, and Spacefractal was kind enough to test it on the iPad. I couldn't test it on the HP TouchPad because I don't have one, but I uploaded it to HP anyway. I assumed they would test it before putting it in the App Catalog, but as it turns out they don't. Ian Price posted a TouchPad screenshot (which was lost in the forum crash) showing Snake Slider with a screwed up display (partly rotated, too small, weird buttons etc). :|

Now I've fixed some code and settings, deleted previous GLBasic build results and compiled a new version. So I'm hoping someone would be kind enough to test it on a TouchPad, and post here if the game displays correctly or not. =D Anyone?

You can download the ipk file here:
http://members.home.nl/bas.de.reuver/tmpfiles/snakesliderlite_webos_test.zip (13,6 Mb)
#24
Recently I updated my game and I noticed that PLATFORMINFO$("DEVICE") doesn't seem to work correctly on WebOS. So I did a test:
Code (glbasic) Select

PRINT "PLATFORM=" + PLATFORMINFO$(""), 20, 20
PRINT "DEVICE=" + PLATFORMINFO$("DEVICE"), 20, 40

On the ipod this gives:

PLATFORM=IPHONE
DEVICE=IPOD TOUCH

But on my Palm Pre this gives:

PLATFORM=WEBOS
DEVICE=NO_DATA

While in previous versions it gave DEVICE=PRE. The update was compiled with GLBasic v10.118, and when I tested it just now with GLBasic v10.205 it still gave NO_DATA on Palm Pre. I think this is a bug.

My app does a one-time log message to my server at the first time startup and the PLATFORMINFO$("DEVICE") value is logged. The wierd thing is, that after the update most WEBOS users (89.13%) logged the device value as "NO_DATA", but some (10.87%) did log the device value as "PRE"..?
#25
When updating my Palm Pre apps on the HP App Catalog, I get compatibility and availability options (see attachment). I've developed my games for 320x480 display, with 1:1.5 ratio, so I check Palm Pre and Palm Pre2 in compatibility. My question is; what should I check in the "availability" option?

The HP TouchPad has 1024x768 display, but I understand it can run palmpre apps and it will scale them up. But what about Palm Pre3, can it run palmpre apps as well? If so, how will it scale the 320x480 app to a 480x800 display (which has a different 1:1.6666 ratio)?

And another question, is there a way around re-uploading all the screenshots when I update my apps? I'm thinking about updating the screenshots for localisation so it has specific German, Spanish etc. screenshots. But when I then do a bugfix update after that, will I have to re-upload all screenshots for all languages again!? Why won't HP just keep the older screenshots between app updates?

So in summary :P
1) what should I check in the "availability" option for a Palm Pre app?
2) Is there a way to keep old screenshots when updating an app?

cheers,
Bas

[attachment deleted by admin]
#26
The "available on the app store button" banner is used on many websites. I also used it in my Lite app to link to the full version in the app store. So when I ported my games to Palm Pre, I was looking for a similar "Find it in the App Catalog" banner, but I could only find a low resolution one. So I recreated that banner ("reverse engineered" sort of) into a high resolution version and used that.

I thought I'd share it here :) see attachment for files.

[attachment deleted by admin]
#27
Hi all,

I've always thought multi-language is a cool and professional looking feature of many games and apps, and I always wanted to build it into one of my games. A while ago I released Snake Slider and recently I've been putting in a multi-language feature for the next update. So all I need now are the translated texts. I've already put the original English texts in there and translated it to Dutch. I'd very much like to get the German, French, Italian, Spanish (and if possible Portugese) translations. so I'm looking for native speakers in German, French, Italian, Spanish or Portugese (other Euro-languages like Swedish etc. are of course also appreciated) who want to help translate my game.

Gernot suggested to make a google-docs spreadsheet and then paste the link here, so everyone can help translate it. I was already working with an Excel file, so I've copy pasted into a google-spreadsheet, and here is the link :) Column A, B, C are descriptions, the blue part is info about the translation. The actual translated texts need to go into the column F (German) or (G) French etc. I've already filled in some phrases which I found in the Cut The Rope app.

https://docs.google.com/spreadsheet/ccc?key=0Ao14aIL7Bhz-dFFjUGpjYlZWNGFmQWpBZ1NpMVNDc0E

There is one little 'problem' though, the translated text can get too long and won't fit into a button or text balloon. For this reason, I've created a test program which displays the texts as they will appear in the app. See the MultiLanguageTest app in the attachement. To test it you can edit the Excel file, press ALT-F8 and run the macro to create the datafiles and then start MultiLanguageTest.exe to see how the translated texts will appear.

Please state in this thread if you want to do a translation, to avoid doubled efforts.

I've reserved place on the credits screen, and I really want to mention credits of the person who made the translation, like "translations by: John Schmidt (de), Jean Dubois (fr)" or something like that. Alternatively, I could put "Translation by: GLBasic Community" or something, but I don't like such inpersonal/anonymous credits. Apart from the credits (eternal fame!) I can offer of course promocodes for a free copy of the full version to the translators.

Let me know if anyone is interested in doing this, cheers,
Bas

(ps: please, do not use google-translate or babelfish, I could easily use those myself but that results in terrible translations, thank you)

[attachment deleted by admin]
#28
"Why Johnny can't code" by David Brin (Salon 14-09-2006)
QuoteBASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.
An article from 2006 but still so true, computers today offer so much flashy stuff but no entry-level programming tools whatsoever.

Think about it, when you switched on a Commodore 64 or MSX you got a BASIC prompt. Now, switch on the PS3 or XBOX (or a macbook) and you get a flashy menu where you can play music, movies, photos or games. Essentially today's computers are teaching kids how to be media consumers. :rant:

Any thoughts on this?
#29
I also posted this in the AppStore Thread but I'm so excited it's finally out there, I wanted to a separate announcement.

This is the game got me started in iphone development, so I'm very happy that it's ready now. :good: It's based on a freeware game of mine from 2005 with the same name. I first started out in objective-c, but after 5 months of struggling I could only barely move some UImageViews around the screen. Then I found out that GLBasic added iphone support so I switched (better late than never). The beautiful graphics were created by Amblagar Studio from Argentina, contacted via www.elance.com. There are still some troubles with the AppStore at the moment (probably due to the AppStore's region expension) so if you can't find the game in the appstore app, try again later.

Snake Slider - by BdR Games
http://itunes.apple.com/us/app/snake-slider/id450865171

Description:
Snake Slider is simple yet innovative new puzzle game. All you have to do is slide the green snake to the exit, but it more difficult than you might think. The yellow snakes block the way and you have to carefully move them around. You can slide any snake by dragging its head or tail. The second puzzle set adds apples and mushrooms to make the puzzles more interesting. When a snake eats an apple it will grow, when it eats a mushroom it will shrink. Puzzles with additional puzzle elements will be added in the next update.



#30
Hi all,

I was trying the new LOADSPRITEMEM function, which could do some cool sprite manipulations in combination with MEM2SPRITE. However, I cannot get it to work properly, the pixel array seems to be empty, BOUNDS(pix[],0) is always 0. This seems like a bug.. or maybe I am doing something wrong?

I assume the width, height and pixel[] parameters are BYREF, I mean they are output parameters and the function will set those values? Here is my code, the screen stays blank and doesn't show the sprite and the DEBUG ouput is this:

LOADSPRITEMEM - success! xSize=38 ySize=50 BOUNDS(Pixels[],0)=0

Code (glbasic) Select
TestSpriteMem()
END

FUNCTION TestSpriteMem%:

  // variables
  LOCAL xSize%, ySize%, Pixels%[]
  LOCAL bResult%

  // load sprite into array
  bResult = LOADSPRITEMEM("mario.png", xSize, ySize, Pixels[])

  // no loading errors?
  IF (bResult = TRUE)
    DEBUG "LOADSPRITEMEM - success! xSize="+xSize+" ySize="+ySize+" BOUNDS(Pixels[],0)="+BOUNDS(Pixels[],0)+"\n"
    MEM2SPRITE(Pixels[], 0, xSize, ySize)
    DRAWSPRITE 0,0,0
  ELSE
    DEBUG "LOADSPRITEMEM - error!\n"
  ENDIF

  // display result and wait
  SHOWSCREEN
  MOUSEWAIT

ENDFUNCTION


edit:
forgot to mention, I'm working with GLBasic IDE v9.040
#31
Hi all,

I'm busy finishing up my latest iphone game. 8) The app loads some stuff into memory at startup, not much but enough to keep the user waiting shortly. I already added a "Default.png" image, the iOS shows this before loading the app, but while it is loading the screen is black. So when my app starts, the user sees this: the Default.png image (1 sec.), black screen (1 sec.), title screen (start of program).

I wanted to create a seamless transition between the app start and the title screen. So I thought I'd reuse the "Default.png" image and show a loading bar on it. However, when I do a LOADBMP "Default.png" the app just freezes (is there another way to use Default.png file or is it just off limits?). When I do a LOADBMP "Media/titlescreen.png" it does work, but there is still a short black screen in between.

Here's my code:
Code (glbasic) Select
// initialise app
MyLoadingBar(0) // init progress bar
LoadSounds()
MyLoadingBar(25)
LoadGraphics()
MyLoadingBar(50)
LoadLevels()
MyLoadingBar(75)
//etc.

// -------------------------------------
// my progress bar at program startup
// iProgress = 0..100
// -------------------------------------
FUNCTION MyLoadingBar%: iProgress%

  // initialise background
  IF (iProgress = 0)
//    LOADBMP "Default.png" // app crashes when using this file?
    LOADBMP "Media//titlescreen.png"

//btw this also doesn't work, app freezes
//LOADSPRITE "Default.png", 0
//DRAWSPRITE 0, 0, 0
//USEASBMP
  ENDIF

  // draw progress bar background
  DRAWRECT 60, 360, 200, 40, RGB(0, 192, 0)
 
  // draw progress bar
  DRAWRECT 60, 360, iProgress*2, 40, RGB(0, 255, 0)
 
  // display progress bar
  SHOWSCREEN

ENDFUNCTION


Is there a way to make this more seamless, so without the black screen showing shortly. I saw that iRace3D (also a glbasic app) had a pretty quick startup time, with a loading screen presumably written using glbasic.
#32
While working on my new game (I don't want to reveal too much but it has snakes 8)) I got this precompiler error. I made a custom type, made an array of this type and called a function via an array. Here is an example program that will reproduce the error, I tried it on GLBasic v9.040.
Code (glbasic) Select
CONSTANT SPR_INVADERS = 1

TYPE TInvader
  x%
  y%
  frame%
  FUNCTION Reset:
    self.frame = -1
    self.x = -1
    self.y = -1
  ENDFUNCTION
  //.. etc
ENDTYPE

GLOBAL Invaders[] AS TInvader

FUNCTION InvadersShiftLeft:

  DIM Invaders[11][5]
  LOCAL x%, y%, i%

  // shift one column to left
  FOR x = 0 TO 11-1-1
    FOR y = 0 TO 5-1
      Invaders[x][y] = Invaders[x+1][y]
      Invaders[x+1][y].Reset() // this gives precompiler error "call to undefined function : TInvaders"

      i = x+1
      Invaders[i][y].Reset() // this compiles fine
    NEXT //y
  NEXT //x
ENDFUNCTION

It seems that it gives this error when you put in more than just a single variable between the brackets. I can easily work around it so if it is there for a reason that's fine by me, but it looks like a bug.
#33
The full version of my game is in the appstore and now I want to make a lite version as a sort of advertising. The code will be for the largest part exactly the same as the normal full version. Only a few lines have to change so if possible I'd rather not make a separate GLBasic project, keeping in mind possible bugfixes and code maintenance etc.

I saw in this topic that you can use the ?IFDEF and ?ENDIF as precompiler commands for glbasic. In that topic it is used to determine whether you're compiler for iphone or not.

My question is, can I use ?IFDEF and ?ENDIF to check for a custom ?DEFINE, and if so how does it work? I've tried the code example below but that doesn't seem to work. It always gets to the if-part of the ?IFDEF, regardless of wether or not I disable that first ?DEFINE line it never goes to the else-part.

Code (glbasic) Select
?DEFINE CompileLiteVersion

?IFDEF CompileLiteVersion
  DEBUG "lite version\n"                 // if-part
?ELSE
  DEBUG "This is NOT the lite version\n" // else-part
?ENDIF
#34
Quote from: mangoo on 2011-Jan-01
Sia Sola        -  http://itunes.apple.com/us/app/sia-sola/id408246448?mt=8
Sia Sola Lite -  http://itunes.apple.com/us/app/sia-sola-lite/id411278957?mt=8

Genre: Puzzle

50 ancient Egyptian temples... Resolve their curse! Red and green need to change positions, but up to eight grey guards block their way. Each step you take is answered by the step of a guard – you're caught within a labyrinth of moving walls!
I just noticed something. The gameplay depends on distinguishing the stones and goal positions, and you can only identify them by their colors. For people who are color blind, this makes it hard to play the game. You could mark the goal positions as A and B, instead of just X, and then mark the different stones with an A and B as well. Or maybe use circle and square symbols if that looks more aesthetic.

See this article about color blindness and games
http://arstechnica.com/gaming/news/2008/04/color-blind-gamers-common-developer-awareness-minimal.ars
#35
I was trying out the PLAYSOUND and PLAYMUSIC commands in my ipod game. It was working fine but then I found that sometimes when I quit the program the ipod wasn't responding normally anymore. :doubt:

It took a lot of time to narrow it down, but I think I've found what is causing it. The bug appears when I do a STOPMUSIC and then PLAYMUSIC and then quit the app with the home button.

Here are the steps to reproduce it:
1) first you do something like "PLAYMUSIC "Media//music1.mp3", TRUE" let it play for a while (for example about five seconds)
2) do a STOPMUSIC
3) do PLAYMUSIC with another mp3 file
4) quickly (within 1 second) press the HOME button to quit the app.
5) now restart the app and sound isn't working

Actually, not only is the sound not working in the glbasic app... Any app or ipod function that want to make a sound will be silent and work slow. It's as if any sound the ipod wants to do waits and then time-out. For example if you go to the ipod search screen (on the home screen all the way to the left) and type something it looks like it is frozen (each letter typed wants to make a typewriter noise). After I shut the ipod down and restart, everything is back to normal.

I also think it has to do with multitasking, because when I set the property "Application does not run in background" to TRUE (checked) then the bug doesn't happen. (btw changes in the plist are not always installed correctly by xcode, always delete the app and then build-and-run to ensure the changes to the plist are also copied correctly)

Man, I spent the last hours starting and restarting the app and the ipod over and over :bed: i'm off to bed..
#36
Browsing the web I found this game called Biolab Disaster which is a pure HTML5 game. It uses the HTML5 canvas element to full effect and this guy made an entire game engine around it. :nw:

Anyway, there is also a making-of video which can be useful to other game programmers. It's always interesting to see how other people program their games, especially when they know a thing or two about programming (which this guy obviously does). I especially like the sprite engine, every enemy powerup etc. is an entity which has animations.

http://vimeo.com/14920760

Despite the dry subject matter, it's quite humorous with some background jokes :D (mp3 on desktop and default search text etc.)
#37
As I already posted here my first ipod/iphone game was put on the appstore (yay me! 8)). It's called "Break The Code" and it's a mastermind clone.
Anyway I have two questions about the whole iphone app submission ordeal.

First, it was put on the appstore three days ago, but I only found out today. I hadn't been checking my app's status, because I expected to get an e-mail about this. I haven't received any notice "accepted for appstore" or anything, so I checked the website today and found out. Did you guys receive any notice when an app is accepted?

Second, something went wrong when submitting the app the first try. Some technical stuff I had to enter was new to me, like the SKU and the namespace. What does the "com.yourname.yourapp" mean anyway, what is this info used for? If it is used only by Apple for appstore managing/administration, then why do I have to enter it myself?

Apperantly I had entered an incorrect namespace in the app ID and I couldn't use the name "Break The Code" anymore for some reason, probably due to Apple's "user-friendly" software(!). So now it will be forever known as "Break The Code2", hm. Anyone else had any problems with this?

Also, I'm feeling pretty relieved to finally have some results to show for the time I've been putting into this. :booze: (not just this game btw, other games are still underway)
#38
Hi all,

so I've bought an iPod, and finally got my developer license (after faxing a copy of my passport because they could't verify my identity). Now, when I try to open my GLBasic project in XCode, I get a message "the project was saved with a newer version of XCode"

I have XCode version 3.1.2 so I downloaded XCode 3.2.4 and iOS 4.0. But when I try to install it I get a message "iOS SDK requires Mac OS X 10.6.2", it seems that I have Mac OS X version 10.5.8 (Leopard).

So my question is, is everyone here who uses GLBasic for the iPhone running Snow Leopard on their macs? Or is there another way to install the newest XCode?

regards,
Bas
#39
Is it possible to check if a spritenumber is already loaded or if it is empty? I ask, because I want to use this to "lazy-load" sprites. This would lead to a faster startup time because you wouldn't have to load everything at once on startup. So I mean in code something like this:

Code (glbasic) Select
CONSTANT SPR_TITLESCREEN = 0
CONSTANT SPR_INTRO = 1
CONSTANT SPR_PLAYER = 2
CONSTANT SPR_TILES = 3

// ..
// do some stuff
// ..

// lazy loading of sprite, only load sprite at point where it will be needed
IF (spriteisloaded(SPR_TILES) = FALSE) // <- how to check if a sprite is loaded?
  LOADANIM "media/tiles.png", SPR_TILES, 48, 48
ENDIF


I guess you could use static variables like this..

Code (glbasic) Select
STATIC Sprite_was_loaded
IF Sprite_was_loaded = FALSE
  Sprite_was_loaded = TRUE
  LOADANIM "media/tiles.png", SPR_TILES, 48, 48
ENDIF


..But then you would have to use a lot of static variables, so I was wondering if there is a way to check the spritenumber (or sprite pointer). Maybe by using some INLINE stuff to check if a sprite-pointer is zero or something like that?
#40
:offtopic:
I work at a company that makes clinical research software and we had some extra work so we hired a freelance worker for 6 months for two projects. We work with a default framework (that we developed) it contains a lot of default screens, like inputscreen, codes-screen etc. because this really speeds up development. It also contains an about-screen that automatically shows the project name and version etc. You can also add a "programmer" string so that the aboutbox will display "programmed by J. Smith" for example.

Halfway through the project I told the freelancer "you can add your name on the about-screen", he was reluctant "oh no, I don't want my name there" but then he did put in his name. Then after he left I saw that he changed it to only his initials (for example "J.S.") I thought this was weird, why would you not take credit for your work?

Maybe a weird question, but do you always take credit for the software you write (in a credit screen, aboutbox or any other notice)? And if no, then why not? I know I always wan to take credit for any big project I work on.
:enc: thank you, yes I wrote this fantastic piece of sofware ;)