Quote: "You guys seem to think Visual Studio is another viable development solution. It's not! It's made by Microsoft and is way too big and complicated and only designed for Windows. You could use GCC or something, but no! It's like life isn't hard enough for you guys."
Visual Studio has the single best Intellisense for C++ that I've ever used and the compiler isn't quite as good as GCC or Clang, but I don't particularly care. It has all the features I could/would want and then some. My version has a static code analysis tool, one of the best debuggers I've ever used(allows editing of variable values during program execution), and is reasonably easy to use once you get over the learning curve. I enjoy using Visual Studio, it's one of Microsoft's better products IMO.
Quote: "Work-in-progress doesn't always have to mean unfinished or unusable. If your game isn't currently playable at all then how are people going to want to use your engine? You don't have to explain to me how it works. I'd just like to see two things happen:
1) FMOD goes bye-bye
2) There are binaries for Windows and at least one other platform
That's the great thing about C or C++, isn't it? You can swap out the libraries and put it on any platform you want. Once it is confirmed to work with a couple different platforms and it doesn't use FMOD anymore, I'm sure a lot of people would be interested to learn your Lua/XML system."
Since I'm focusing on Windows, I'm not going to get rid of FMOD. You're more than welcome to download a copy of my code and make the edits necessary to convert it to irrKlang or some other audio library, but I have more important things to work on. And by the way, I said my game "engine", but it's a fairly focused engine. Granted, there are components that can be used by any project, notably the GraphicsManager, the InputManager, and the SoundManager(maybe the GUIManager), as TheComet is actually using a derivative of my GraphicsManager in his current project IIRC. But it's not a toolkit that you can just drop stuff into. There would need to be code to glue the different managers together and do the specific application logic. I use a finite state machine for my levels, so it's fairly simple to do different logic between levels or add a global behavior.
Here's my main loop in one of my app-states:
while(!_stateShutdown)
{
//updates input manager.
if(!Input->Update(false))
{
_stateShutdown = true;
}
time = Graphics->getCurrentTimeMs();
_deltaTime = time - _oldTime;
_oldTime = time;
if(paused)
{
paused = false;
_deltaTime = 16.6f;
}
_handleScript();
_handleCamera();
//Update the crowd manager
_crowd->updateTick(_deltaTime / 1000.0f);
_AIManager->update(_deltaTime);
if(!GameManager::UpdateManagers(Graphics,_physics.get(),_deltaTime))
{
_stateShutdown = true;
}
_handleSoundEvents(LuaManager::getSingletonPtr()->getSoundEventQueue(),Sound);
Sound->Update(Input->getConfiguration());
if(Input->escapePressed() && !paused)
{
int ret = _pauseMenu->Run(Input,Graphics,Gui,Sound);
if(ret == State::END)
{
_stateShutdown = true;
_returnValue = ret;
}
else
{
paused = true;
}
}
}
For right now, Work-In-Progress means it's unplayable/unusable by the majority of the public. Maybe a programmer could use my modules in their projects, but there are few that would be willing to do that. My project is even nominally cross-platform when compiled because I try to use cross-platform libraries and coding styles(avoiding Win32 API calls, etc).
Quote: "Kind of off-topic, but you should check out premake."
Thank you for the reference, I've looked at it before but I simply don't have time to figure it out for my current project. I'll check it out for my next project for sure.
Quote: "
It's like DarkBASIC but there are a ton of built-in subroutines that do everything for you and it's basically just an executable and some media that can run on Mac / Linux / Win32 / Win64 / FreeBSD / NetBSD / Solaris / DOS / Game&Watch / BeOS / BogOS / Wii / PS3 / XBox / Android / iOS / WebOS / Java / Flash / TRS-80 / X-Wing / R2D2 and every other platform. It's a tragedy that video games are the newest yet least adaptable form of entertainment."
The amount of work required to make that would be astronomical(I'm talking tens of thousands of man-hours). I count 10 different OS APIs that you would have to use, 5 different graphics technologies to have to account for and 3 different programming languages.