Jump to content
  • Advertisement
Sign in to follow this  
MickeyMouse

Tiny2D - new 2D C++ game library

This topic is 2087 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 everyone,

 

I have just open sourced my 2D game library called Tiny2D.

 

My focus with this library was on being easy and quick to use. Minimum code, maximum effect. Whether you plan to develop commercial game or just taking part in some game jam, you might be interested.

 

Current feature set includes:

  • animated sprites
  • particle effects
  • shader based materials
  • render targets
  • some built-in postprocessing filters
  • asynchronous resource loading
  • audio

Home page: http://tiny2d.pixelelephant.com

Blog: http://gamedevcoder.wordpress.com/2014/01/16/tiny2d/

GitHub: https://github.com/macieks/Tiny2D

 

Any feedback welcome!

 

Maciej

Share this post


Link to post
Share on other sites
Advertisement

I would like it more if it would be c library

 

Why is that? smile.png

 

I love C and I prefer it in many cases (over C++) but C++ proved to result in a bit cleaner and more robust API than it would have been in C.

 

In fact I have initially coded Tiny2D in C but switched to C++ later on. The main reason for that was automatic destruction of objects via destructor. The only little thing I don't like about Tiny2D interface now is that you still see an internal private pointer inside of the class' declaractions (see the main header file https://github.com/macieks/Tiny2D/blob/master/Include/Tiny2D.h ) - e.g. MaterialObj* obj inside of Material. Ideally I'd like to hide that from the user. In C, it wouldn't have been an issue. But overall I think this is very minor.

Edited by MickeyMouse

Share this post


Link to post
Share on other sites

 

I would like it more if it would be c library

 

Why is that? smile.png

 

 

 

Well i will not tell you nothing interesting, I just prefer c as language and c libs over c++ libs.

I never used c++ style lib from c - do you think that using it 

from c would be hard? could you maybe explain a bit?

Share this post


Link to post
Share on other sites

 

 

I would like it more if it would be c library

 

Why is that? smile.png

 

 

 

Well i will not tell you nothing interesting, I just prefer c as language and c libs over c++ libs.

I never used c++ style lib from c - do you think that using it 

from c would be hard? could you maybe explain a bit?

 

Many compilers allow you to mix C with C++. Since C is a mostly just a subset of C++, you can have all of your code in C if you like and still use Tiny2D which is in C++. You just have to tell the compiler that the files using Tiny2D shall be compiled with C++, not C, compiler - typically you just need to set their extension to .cpp instead of .c

Share this post


Link to post
Share on other sites

Many compilers allow you to mix C with C++. Since C is a mostly just a subset of C++, you can have all of your code in C if you like and still use Tiny2D which is in C++. You just have to tell the compiler that the files using Tiny2D shall be compiled with C++, not C, compiler - typically you just need to set their extension to .cpp instead of .c

 

that would break my rule of not using c++ ;\

Share this post


Link to post
Share on other sites

Many compilers allow you to mix C with C++. Since C is a mostly just a subset of C++, you can have all of your code in C if you like and still use Tiny2D which is in C++. You just have to tell the compiler that the files using Tiny2D shall be compiled with C++, not C, compiler - typically you just need to set their extension to .cpp instead of .c


Not quite. You can mix C with your C++ source and compile as C++ mostly as-is (excepting a few corner cases), but it doesn't work the other way unless you have a C interface in the C++ headers. Take a look at SFML for an example of what I mean. It's usable from C, but only through the CSFML API, which wraps the C++ API. A C interface is also useful for creating bindings to other languages. The C ABI and calling convention is about as universal as you can get, something that is not true of C++. Edited by Aldacron

Share this post


Link to post
Share on other sites

unless you have a C interface in the C++ headers.

 

That's what I was thinking. Basically write all of _your_ code in C but compile with C++ compiler. That way you can use external C++ code.

 

And yeah, good point about C interface being great for doing all kinds of language bindings. With some effort I'd probably manage to extract pure C interface out of my library for that purpose.

Edited by MickeyMouse

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!