CoolBasic

Game making tools

Game creation

Game making is fun, and we think that the necessary tools should be easily available for anyone, and for free. In addition, it wouldn't hurt if the process of creating a game was also easy.
These are the fundamental ideas that originally thrived me to create the CoolBasic programming language that was specifically designed for games. The original CoolBasic product is now several
years old, so we decided to re-write it from scratch and create a new, better product.

- Jukka Lavonen, Lead Developer

The goal

We have very high goals and standards. As a result the new CoolBasic game making toolset is a really big software project for us. It's been in the works for some time now, and there are
numerous people involved. But the ultimate vision is to offer a product that is superior to it's competitors, and technologically up-to-date. Existing users easily compare the new version
to the old CoolBasic, but the new product is considerably a larger entity and consists of several sub projects, such as the editor, the engine, and the compiler.

When will it be available

A first beta release was originally scheduled for year 2010, but has since been postponed a few times. We even had to change the technology stack mid-way due to strange cross-platform
compatibility issues in 3rd party libraries. We use industry-standard tools now, though. Currently, the plan is to deliver somewhere in
year 2012, but this information is of course subject to change. We'll let you know well beforehand when you can be expecting for a testable alpha or beta version.

There are plans for a cross-platform solution, but it's likely that we'll release the Windows version first.

To get an idea what's the status of those parts that together make CoolBasic, have a look below.

Project status

Game engine(s)

We designed the system so that the programming language is separate to the engine against which you're coding. We're launching with one language (CoolBasic Classic) and one engine,
Cool VES. Cool VES has a fully GPU driven renderer (in opposition to the old version), as well as audio, input, and networking features. It's based on OpenGL and there are plans for a Linux port.

Other engines may follow, and they integrate directly into CoolBasic Classic (or other languages we may add in the future). Experimental ideas include DirectX 11 based graphics engine.

Status: The top priority is the graphics engine, but its renderer is still unfinished. As soon as the compiler finishes we can implement the interpreter and start
running some code on it. This is what we want to achieve ASAP.(updated 31 Dec 2011)

CoolBasic Classic programming language

We're going to make some design changes to some parts of the CoolBasic language in comparison to the old one such as a better way to managing linked lists. Other new features include function overloading,
typed arrays, function array parameters, and scoped local variables. Overall we still want to keep the syntax familiar to existing users, and you should be able to convert your existing projects
with ease. In addition, the way we're implementing the CoolBasic Classic language makes it possible for us to use it with other execution engines (that contain different functions and services, for example)
in the future as well.

Status: The design process of the actual language is shaping up quite well, and its syntax is almost the same as in the original CoolBasic. Most of the compiler is already
done, but at the moment the development time is directed towards unit testing.(updated 31 Dec 2011)

Code editor and tools

The aim is to provide a powerful, tab & window based UI for game development in CB Classic and Cool VES. We want the editor to be highly modular so that it's extandable with new kind of project types.
We want its layout to be fully customizable, and we'd like to provide full Intellisense and code analysis features as well. The closest thing against which we're comparing, is nothing less than
Microsoft Visual Studio.

Status: There have been experiments with Visual Studio like layout and windowing system. There have been experiments with advanced syntax highlightning. And there have been experiments
with the UI being built from separate modules (which basically enables plug-in development). All of these do work. However, the editor is still pretty much at its initial phase, and is
not our top priority at the moment; it's more important to get the compiler, language, and a simple engine to work first. Due to the complexity of the editor, expect a Windows version first.
The Linux editor will have to use entirely different code base, and is therefore a new project on its own.(updated 31 Dec 2011)

New online help system

There's a plan to focus on online driven information library that contains not only language reference or engine function reference, but also articles and tutorials. The idea is to write up
a comprehensive source of information related to game development in CoolBasic technologies. This will require a database, and we're even considering to expose this documentation through a web service
so that it's usable by 3rd party applications and services. The corresponding offline strategy is still being discussed upon.

Status: Not yet started, as there's more important stuff to do at the moment.(updated 31 Dec 2011)

New web portal

We're going to completely replace the website with something worth calling a 'site'. It'll contain lots of resources and material for game development in CoolBasic technologies. The forum account
will integrate with the portal's other services. The current plan is to configure an LDAP authentication so that the users' credentials really are usable everywhere. This enables interesting
opportunities in terms of social services amongst the users.

CMS we plan on building on Wordpress. For this, we naturally need to develop complete custom WP templates.

Status: We actually have already tested LDAP with a phpBB forum, as well as with Wordpress. And we have a tentative web design, too. Part of it has already been written into
some XHTML which will then serve as the basis for the WP template. The web portal is, however, not our top priority, and you're likely to see it in production not until the launch of CoolBasic
Classic Beta.(updated 31 Dec 2011)

Questions and Answers

What's taking so long?

There have been ups and downs along the way, but the project has been progressing nevertheless. We're doing this on our own freetime, and some even among other software projects. We know it's been
long and the users are getting frustrated. And that's understandable. But we're trying to keep the pace up while also maintaining the quality of work. We'd really want to deliver this year!

Can I be part of the team?

Currently we don't have any plans for further recruits.

What technologies do you use?

This information is relevent to the Windows version only:

The editor will be a standard WPF/C# application, utilizing the .NET Framework 4. MEF is used for plug-in management. The windowing/docking system and the code editor control are Actipro Software's commercial products.

The CoolBasic Classic compiler is a C# console application, targeted against .NET 3.5 SP1. We use Mono for the Linux version.

The Cool VES engine is standard C++, powered by GLFW and Chipmunk.

The web portal and online documentation are all PHP/MySQL based.

Where is CoolBasic V3?

The compiler did exist, but V3 is no longer our top priority. Instead, we aim to successfully publish CoolBasic Classic first (along with the game engine and a finished code editor) so that the
foundation for CoolBasic V3 would be as complete as possible before first release.