Skip to main content
GameDev.net gamedev.net
🔒 Locked

Engine with C++ scripting?

Started by Mustafa Can Jan 31, 2014 at 12:34 PM 13 replies 4.6k views
Original Post
Mustafa Can
Mustafa Can
Hello everyone,
Me and my friend wants to learn C++. But this is so boring with tutorials. We learned C++ a bit. We decided make a simple game for learning C++. I think this will more interesting than making those tutorials. But we couldn't find any good game engine which supports C++ as scripting engine. We also thinked about making our engine with graphic libraries but this looks a bit hard. Could you help us for selecting game engine or a graphic library?
Thanks for advance!
renega_666
renega_666

Or maybe do you mean a C++ engine with a scripting language support (Python/Lua/AngelScript)?

Mustafa Can
Mustafa Can

i know c++ isn't a scripting language. but we want to learn C++, not py,lua etc. And you are right that is a mistake smile.png

@Hodgman

Thanks for your suggestion. I will look up Source Engine. But I think 3D games are too hard for us. I think start with basic 2D platform games. What do you think about 2D platform or 3D FPS?

ProtectedMode
ProtectedMode

Maybe you should take a look at Angel2D. It was made for game jams and prototyping, so some design options are not the most efficient or good ones, but I would say it's nice for beginners. I would suggest you start by extending the Actor class and slowly create some small things. But you will still need to understand C++, this tutorial was enough for me to get started with some fun parts. If you don't mind using the C-style library SDL I would suggest you take a look at this tutorial series.

kop0113
kop0113

For C++ interpreters, there is CERN's CINT project (http://root.cern.ch/drupal/content/cint) which supports scripting in both C and C++.

I really like it and use if for our expansive build system at work but I personally would not use it for creating games.

There is also Pico C (http://code.google.com/p/picoc) which looks much more usable for game scripting (though you would need to hook it up to the chosen engine manually). It is C only (no C++) but with the popularity of the component entity system these days, OOP is not really critical IMO.

If I were, you, I would do without the scripting part and look into something like Irrlicht. This is simply a 3D engine with a C++ API. Yes, a lot of people seem to not like it but frankly, the license, the ease of use and the portability of it is great for beginners.

The GoldSource engine was quite cool for mod development before Steam/DRM came along but you will need pretty decent knowledge of C/C++ before you will be productive using it. It doesn't spoon feed you unlike products like Unity or even in some respects like Irrlicht (less tutorials, documentation etc...).

http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Godmil
Godmil

For 2D C++ I'm surprised nobody has mentioned SFML yet.

DejaimeNeto
DejaimeNeto

You could try Enigma, it is a game engine like Game Maker that allows for parallel C++ implementation.

It is a good introduction and it is free.

Mustafa Can
Mustafa Can

Hello everybody! I decided to use SFML.

But I have a problem. I can use dynamic libraries but when i try use static one i get compiling error. I am working on Visual Studio 2013. >sfml-window-s.lib(WindowImplWin32.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Source.obj
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Source.obj
1>sfml-window-s.lib(JoystickImpl.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Source.obj
1>sfml-window-s.lib(JoystickImpl.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Source.obj
1>sfml-system-s.lib(String.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Source.obj
1>sfml-system-s.lib(String.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Source.obj
1>sfml-system-s.lib(Err.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Source.obj
1>sfml-system-s.lib(Err.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Source.obj
1>sfml-system-s.lib(ThreadLocal.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in Source.obj
1>sfml-system-s.lib(ThreadLocal.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Source.obj
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>sfml-graphics-s.lib(RenderWindow.obj) : error LNK2001: unresolved external symbol __imp__glReadPixels@28

like this. Can anybody help me?

Tutorial Doctor
Tutorial Doctor

The Engine I use named Maratis 3D uses C++ for it's engine. It uses LUA as a scripting language. It is open sourced and free also. The API is easy to understand.

http://www.maratis3d.org

They call me the Tutorial Doctor.
ProtectedMode
ProtectedMode

The Engine I use named Maratis 3D uses C++ for it's engine. It uses LUA as a scripting language. It is open sourced and free also. The API is easy to understand.

http://www.maratis3d.org

It looks like it's got many features but does it have documentation for its C++ API?

Tutorial Doctor
Tutorial Doctor




It looks like it's got many features but does it have documentation for its C++ API?

There was a guy on the site who started a page for the documentation of the C++ API, although on the wiki most of the API is not there (just the names of the classes and such). However, most of the names make sense as to what they do, but my issue is knowing how to implement them (knowing what arguments are taken and stuff.

The lua documentation is more complete though. There are only a few people working on the engine right now although recently several others have become involved (I am not advanced enough to contribute on that level.

I do know one thing, that the style of the game "Gone Home" is very possible in Maratis in its present state.

They call me the Tutorial Doctor.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.