If you want to just make games indie, stick to DB. If you want some more control try C++ and see if you like it.
Though, if you want to remain indie, there's no reason to go C++.
I am going to put some sample code for you, so you can see how things look with C++.
The samples will display a sprite in the left-upper corner.
DarkBASIC Pro:
set window size 800,600
load image 1,"image.png"
create sprite 1,1
do
sync()
loop
C++ using SFML library (One of the easiest free graphical libs):
#include <SFML\Graphics.hpp>
#include <SFML\Window.hpp>
sf::RenderWindow App(sf::VideoMode(800,600),"Title");
int main()
{
sf::Image image;
image.LoadFromFile("image.png");
sf::Sprite sprite;
sprite.SetImage(image);
while(App.IsOpened())
{
sf::Event Event;
while(App.GetEvent(Event))
{
if(Event.Type == sf::Event::Closed)
{
App.Close();
}
}
App.Clear(0,0,0);
App.Draw(sprite);
App.Display();
}
return EXIT_SUCCESS;
}
C++ using AGK:
#include "template.h"
using namespace AGK;
app App;
int image, sprite;
void app::Begin( void )
{
image = agk::LoadImage("image.png");
sprite = agk::CreateSprite(image);
}
void app::Loop( void )
{
agk::Sync();
}
void app::End( void )
{
}
See if you're ready for that. Also, where in DBPro you can do:
string1$ = "I like"
string2$ = "apples"
string3$ = string1$+" "+string2$
In C++ it can be:
char* string1 = "I like";
char* string2 = "apples";
char buffer[5000];
sprintf(buffer,"%s %s",string1,string2);