Sign in to follow this  

3D multiplatform game, but not in C++

This topic is 1776 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi!

I bet this has been beaten to death already, but I burned myself so many times that I need to create this topic before moving further.

TL;DR on Why not C++
I know how to program in C++, I've been programming in C++ for years. But I strongly believe that the most important rule of C++ is to not use C++ unless there is absolutely no other alternative. In C++, instead of creating programs, you create code. In C++ if your program crashes, you're left with a cryptic memory dump and no idea why it crashed. In C++ you have to cast magic spells in order to get simple functionality like callbacks working, and passing a pointer to an object as a parameter of such callback is another kind of nightmare. When you discover that the object got deleted by the time the callback gets handled, all hell breaks loose. In other words: I don't want C++.

Story About a Python and an Ogre
Recently I've been thinking on doing a 3D game that operates in only 2 dimensions (think of recent iterations of Civilization, or a fancy Arkanoid clone with models instead of sprites). I even have a "work in progress" of something simple that I pulled together in 2 weeks and it works. I used Python, Ogre3D and CEGUI. Right now, I have most of the functionality that I wanted, however I discovered that getting Python-Ogre to work on Linux is a bitch that hits you hard and where it hurts the most (in simple words: it's difficult).

Furthermore, I couldn't find any audio library that would be up-to-date and support 3D world positioning. Folks recommend OpenAL, but AFAIK development on Python bindings for that were discontinued. It's a shame because I worked with OpenAL before and I liked what I saw.

What I'd like to have
I'd like to create a game that operates in a 2D world, but uses 3D engine for rendering, as it gives more flexibility with various graphical effects. Besides, operating with 3D models is easier than operating with sprites.

My wishlist:

- OpenSource compatible.
- OS independent (Linux/Windows)
- Interpreted language as the MAIN language of the program.
- I don't want to have to reinvent the wheel again with functionality like string trimming. Nor with regexes. Nor with dynamically resizeable byte arrays or simple IO operations (mkdir). Nor with timers of any sort. Nor with functions that discover where program configuration and save files should be located on a given OS. Nor with callbacks. All of these are solved by Python, or by Qt library in C++.
- I don't want to worry what will happen if my user tries to use his language diacritic signs in the name of the save file, or in anything. This problem is already solved by Python, so it's another reason to stick with it.
- 3D rendering engine that uses OpenGL, and is capable of rendering text, 3D models, animation, lighting, billboards and all the fancy stuff. Basically, I find Ogre3D sufficient for my rendering needs, though it's lacking when it comes to Python-Ogre and Linux.
- .OGG and .WAV support for audio. Audio positioning in a 3D world.
- Networking (again, Python has this basically built-in).
- Mouse operable GUI (I'm content with how CEGUI works with Ogre3D).
- JSON parsing. It's like XML but not stupid. It's also built in to Python.

So, what do you guys recommend?

Edited by Zalewa

Share this post


Link to post
Share on other sites

It seems for every reason you have not to use Python or Ogre3D you find another why you like them.

 

I realize, and I am guilty of the same, that working with what you are familiar with, is always easier. 

 

However,  if you are wanting to try something different, yet familiar, easier while being all encompassing, "One" of the languages I use, because of speed and simplicity, while at the sametime being capable of doing what you want...   Is Blitz3D.  Look into it at www.blitzbasic.com.  Free trialable version ( Non-Compilable ),  Cheap if you want to buy full version.

 

So far, it has done everything I have wanted it to do.  Comes with a couple of samples as well.

Share this post


Link to post
Share on other sites

I'm sorry, I failed to mention that all my projects will be open source so preferably all the libraries should also be so. My bad.

 

The thing about Python-Ogre is that it is almost the perfect solution for me. I have only two major issues:

 

1. Horrific difficulty to get this to work on any Linux. Even Ubuntu doesn't have an official package or any PPA for that, or at least I failed to find one.

 

2. Apart from the completely one dimensional audio library in PyGame, I couldn't find any other audio library that would be still supported. PyGame audio library forces you to calculate sound positioning and distance yourself and it only supports mono and stereo, no surround. In the end I can accept these obstacles and limitations, but I would prefer not to have them in the first place.

Share this post


Link to post
Share on other sites

I think you should at least look at the site I suggested.  The language is a blend of C++ and Basic.  Graphics rendering is very simple for both 2D and 3D.  So far I have found it's limitations to be so small, That I have had no problem working around them.  The trial version is free and does not expire.  Trial version will allow you to run your programs, but not compile them.  It is also limited to memory usage size.  But is adequate to allow you to get the feel for it.

 

  Since I am only a hobbiest, designing and writing for my own pleasure and freinds, I found it very easy to learn.

 

After a few brief self tutorials,  I designed and wrote my first game in the language in 2 days.  ( I have written games in the past, but the simplicity of the language made testing while writing very easy )

Share this post


Link to post
Share on other sites

This topic is 1776 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this