Home » Community » Forums » Your Announcements » IndieLib 2d Engine - Fast Game Development
  Intel sponsors gamedev.net search:   
[Control Panel] [Register] [Bookmarks] [Who's Online] [Active Topics] [Stats] [FAQ] [Search]

Add Forum to Favorites |  Send Topic To a Friend | View Forum FAQ | Track this topic


 Last Thread Next Thread 
 IndieLib 2d Engine - Fast Game Development
Post New Topic  Post Reply 


Hello!

I’m really excited to announce the first release of IndieLib game engine. It has been a lot of hard work for several years in which I have been working in this project. What started like a hobby has become in a quite robust 2d engine that I think can be useful for the gamming community, specially for the indie game developers. Because of that I want to offer it to all you for free, hopefully it will be useful for some of you.

The main purpose of IndieLib is to make the things easier for the game developer, specially for those of you that love trying new game mechanics and fast game prototyping. I was really shocked for that brave guys of the Experimental Gameplay Project and the things that I see everyday on TigSource or in these forums. After seeing what these developers were able to do in just one week, I decided to start working again in and old project called LooverLib and to try to pack in the same engine lot of useful features for being able to make games really quickly using c++. What I wanted was that anybody that know a little of programming would be able to give expression to their ideas faster and easily. I know this first release hasn’t accomplished completly this purpose, but I hope to be in the correct way.

IndieLib is a c++ 2.5d engine for game development and fast game prototyping in a really easy way. Internally it uses Direct3d for hardware acceleration, but doesn’t use DirectDraw or ID3DXSprite, it directly draws textures on polygons. The engine is focused in fast 2d rendering, but also allows you to use 3d models. Here you have a list with the main features:

- Simple interface and extreme easiness: really fast game prototyping using entities for each of the graphical objects and changing their attributes. All the methods are as simple as "SetPos", "SetCollisionArea", "SetFade", "SetTransparency", etc.

- Translations, rotation, mirroring and scaling of sprites.

- Alpha blending, transparency, tinting and fading of sprites.

- Render images of any size (not only power of two). You can load images as big as 10000x10000 pixels or more, and IndieLib will cut them internally in smaller blocks. Furthermore, IndieLib will automatically discard all the blocks out of the screen, also if your sprites are transformed and the camera making a zoom or rotated, only what you see is what is going to be rendered.

- SetGrid method in order to create grids for your sprites. Later you can move each grid point in order to make a lot of different effects like waves (like in Aquaria game), deformations, etc. (Thanks Alec for the advice :)).

- 2d and 3d camera concepts, completely independent of the graphical objects. Easy methods to translate, rotate or zoom you camera.

- Easily creation of several viewports. Just create as many viewports as you want using different cameras assigned to them. This is really useful for making widescreen games, etc.

- Scrolls of any size, with automatic block discarding.

- Animation system using XML animation scripts, for defining the frames and sequences.

- Advanced collision system. Create an xml file defining your collision areas per sprite using circles, rectangles or triangles. You can define as many collision groups as you want, each one with a different name. Join this file to an entity object and check collision between the collision groups of other entities. Don't worry about translating, rotating or scaling your entities, the collision groups will always fit perfectly your entity. You can also have sprite animations in which each frame has different collision groups (imagine this feature in a "Street Fighter" type game).

- Bitmap font system, for drawing graphical texts of fonts created with MudgeFont for IndieLib. Change the alignment, char spacing and line spacing easily.

- Rendering of 3d Meshes (you can mix 2d and 3d easily). You can also apply transformations to them (rotation, scaling, fading, etc). This will allow you to make games like "New Super Mario Bros" in which the characters are 3d models and the scenario is 2d.

- Light manager, for lighting your 3d models. Enable / Disable lights, change their attributes, etc.

- Timers. Start, stop, pause them easily.

- Entity class, for both 2d and 3d objects, for managing the graphical objects in a really easy way. Just create an entity, join a graphical object to it, an change it's attributes (space transformations, color transformations, etc).

- Image class, for loading / saving different types of image files and for accessing to the bitmaps directly. You can also apply filters to the images like gaussian, noise, equalize, saturation, etc.

- Direct blitting of primitives (rectangles, circles, polygons, lines, etc).

- Mouse and keyboard input (using SDL). Check if any key/button has been pressed, is being pressed or has been pressed more than n milliseconds. Check combination of keys/buttons that are pressed at the same time.

There are more things explained in the
FAQ.


Do you want to see the engine in action? Well, you can just check some screenshots or to download the IndieLib SDK and to run the tutorials that are already compiled and ready to try (you don't need to know anything about programming for clicking the .exe and see the demo tutorials ;), try to press arrow keys and mouse buttons / wheel, because some of them are interactive).

But an engine is nothing without documentation. For that, I spent lot, lot of hours documenting all the methods (I hope I didn't make too many mistakes in english) and making some tutorials (more will come along these months):
- Api Reference
- Wiki tutorials - (only 9 by now).

I really hope that the engine will be useful for some of you and that you will make incredible games using it. I invite all you to join our forum, and I would be really happy if some of you want to contribute helping me.

Just click and download the IndieLib SDK (It includes the IndieLib binaries, the tutorials sourcecode and .exe, and the documentation). Start making games!

Regards,
Javier López

PS: Sorry for the mistakes I'm sure I did, I'm not very good at english.






[Edited by - Loover on April 22, 2008 11:14:47 AM]

 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I haven't tried the demos (on a Mac right now), but I read the feature list and checked out the screenshots. Just wanted to congratulate you on what looks to be a very impressive project. (I'm not surprised it took a few years to complete...that's a lot of code to write!)

 User Rating: 1986   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

Thank you jyk! I hope if you have some time you give it a try :)

 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I wasn't going to pay much attention to this till i saw that harvest massive encounter was made with it. I am a huge fan of that game, so now I may take a closer look :)

 User Rating: 1025   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I'm also fan of Harvest Massive Encounter but this game is not done with this engine. I just draw myself some fan art sprites after playing that game and I used them for one of the benchmark that comes with the SDK :)



 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

After taking a look at both the demo's and the tutorials I've to say that I'm impressed. The engine seems very easy to use and meanwhile it's also quite powerful. The engine actually impressed me so much that I'm considering using this engine for my current project. It seems like this engine has most of the features I need.

I'm wondering about one thing, though. What are you planning to add to future releases of the engine? I know that this is a strange question as you've just released the engine, but I'm really curious about this as I'm planning to use this engine.



.simplicity - blog | Sirrf - Simple Irrlicht Framework

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

This is actually ver nicely made. It'a also simple to get something started. I'm going to play around with it for a bit.

Congratulations.

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I just looked at your demos. It's pretty awesome. I especially like how you have cameras - something I thought about for Gorgon, but ultimately didn't implement because I'm lazy.

I do have a criticism. In your demos I often found things moving so fast that I couldn't see what was happening. For example, the camera rotation demo, when I rotated the camera it spun like crazy. And in the tiling demo, it was moving so fast it actually was hard on the eyes (especially an old set of eyes like mine) and I had a hard time making out whether the tiles were animated or not. You might want to considering slowing down the action a bit by multiplying by a frame delta value (if you aren't already).

Also I have a bug report: In the rabbit benchmark demo when I hit the spacebar to go to full screen it turned the screen black, and then 'flashed' and then the app just quit to the desktop. Not sure why this is, I'll look through the demo source and see if I can't spot something.

But overall this beats the shit out of my crappy library in a schoolyard-bully-taking-your-lunch-money kind of way. A very good job.


Oh internet... so many idiots... so few bullets.

Linky goodness: [journal] | [Gorgon]


 User Rating: 1436   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

--------------------------------------------------------------------
To ZCCdark203:
--------------------------------------------------------------------

Thank you very much for your words, I thought that nobody was going to give a chance to a new c++ 2d Engine. I'm happy that some people had given it a chance and that are at least testing it. I invite you to join the IndieLib forums and to open a thread with your project if you finally start it. Answering to your question, the following things I'm planning to do with the engine are:

[First]
To fix any bug that it could have (there is at least one, the one that tapeworm already noticed). Later I want to finish on the wiki the 10 tutorials I want to do in order to complete the 19 examples that comes with the SDK. After that, I'll wait a bit and I'll introduce the engine in some forums, gaming contests, etc. I want also to make at least some small games using it, to proof their features. Along this time, I hope some people will be interested in joining me contributing with the engine. I haven't released the sourcecode. I don't know what to do about that yet, because I would like to give support to any people that uses the engine, but giving support is something that would take lot of my time. So I'm thinking in offering the engine completely free for non commercial games, with all the documentation, SDK examples, etc (like it is currently), but without the engine sourcecode. And to sell licenses of the sourcecode together with mail support for a small prize (something like PTK). What do you think about that?

[Second]
If a small community grows around IndieLib, and people starts to use the forum and some projects became to see the light (there is already one small game that it's using IndieLib on the forums) I will add these features:
- Isolate the render in a plugin, and to port it to D3D8.1, OpenGl, etc.
- After that point, it would be possible to test the engine on Mac, and to give full Mac support.
- I want to include 2d physics on the engine using Box2d. There is already one test that someone did on the forums, so I think the integration will be easy.
- I want to create an "animated effects class" that using the SetGrid method that already exists on the current release, and moving the grid nodes of the quads, give the sprites lot of different animated effects on their surfaces (waves, bubble effects, rope, etc).
- Gui class. For having buttons, windows, check boxes, etc.
- After that point, I would like to release some tools that the engine is needing. For example a 2d world creator, in which you can set the collision areas of everything and to change all the their attributes (tinting, rotation, scaling, etc). And also their physics attributes (mass, friction, etc).

There are lot of things that can be added too, like full shader support, etc. But currently I prefer to stand on a fixed pipeline.


--------------------------------------------------------------------
To Falawar:
--------------------------------------------------------------------

Thank you very much for testing it. You will be really welcome to IndieLib forums :)

--------------------------------------------------------------------
To Tape_Worm:
--------------------------------------------------------------------

Thank you for your words and for testing it, if you are interested in the way I have implemented cameras feel free to ask anything you want or to ask for the sourcecode. In fact it was easier than I expected (it only took me one week, and I assure you that I'm not a expert programmer) and it has lot of benefits: for example for making a really nice 2d frustum culling (check the ufo's stress test).

You have noticed two of the bugs I want to solve for the next version. The d3d device reseting is giving me some problems in some computers. I think I will fix this soon.

That thing of some entities moving really fast is because I forgot to put these thing time dependent. That's, like you said, it's really easy to fix by multiplying by a delta time. I've already fixed this and it will come with the next release.

I've just read the message you sent to me using IndieLib forum and I'm going to answer you just after finishing this post. I think what you say about your library is completely not true, because you have done a great work and I'm impressed with your work. I think that is difficult to compare our engines because they follow really different guidelines. On the one hand you have focused in c# and in using the latest technology in shaders, render targets, etc; for lot of people this is the way to go. In the other hand, I have focused in c++, in a fixed pipeline, and in giving to the users some things already done (like automatic block discarding outside the viewport, collisions, entities, etc); so maybe it is more focused on independent game developers that want to develop faster.

--------------------------------------------------------------------
To all:
--------------------------------------------------------------------

Sorry for my really bad English, I hope you understood all my words :D

¡BONUS!
This is a shot of the current game I'm working like designer, producer and banckground/gui artist and tool programmer (no! I'm not the main programmer). Currently I'm working in a tool for creating the character paths and I'm using IndieLib:




[Edited by - Loover on April 14, 2008 8:38:24 AM]

 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by Loover
The d3d device reseting is giving me some problems in some computers. I think I will fix this soon.


Yeah this is a tricky beast to perfect, took me FOR-EVER to get it working just right on Gorgon. You say on "some" computers... so I assume this doesn't happen for you? If not and if you haven't compiled against the debug libraries for your demos on the webpage, can you send me a copy of the rabbit demo again compiled against the DEBUG D3D libraries? I can probably see something in the debug output for Direct 3D and help you track down your issue if you don't mind.



Oh internet... so many idiots... so few bullets.

Linky goodness: [journal] | [Gorgon]


 User Rating: 1436   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

Thank you for your invitation. As soon as I've finished this post I'm going to register myself on the IndieLib forums.

As for your plans with IndieLib. Thank you for sharing them. Now I'm really convinced that IndieLib is the right engine for my current project.

Regarding your plans with the source code. I've seen some engines that worked with that kind of licensing, but I've not really worked a lot with such engines (I work primarily with open-source engines). I don't really see a problem with that kind of licensing, though.




.simplicity - blog | Sirrf - Simple Irrlicht Framework

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

@Loover :

I gave it a go, and i have to say, i was quite impressed with your lib.
I might be using it for my next game, however i must say that the main problem with using IndieLib right now, is that it's closed source.
With this, i'm all for you charging a small fee (Ptk style), so we could have acess to the source, and be able to make the changes we may need.



 User Rating: 1026   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

To Tape_worm:
-------------
I really appreciate your help! Yes, the device reset is working in some computers and crashing in others. In my computer is working, so it's quite difficult to fix it. But I will prepare what you asked me and I'll send it to you. Could you give me your mail by a private messagen on the IndieLib forums? Thanks in advance!

To ZCCdark203:
--------------
Thank you for registering into the forums. Now you can introduce your self in one post that I have created for that. And start showing your tests/games :)

To Bruno:
---------
Thank you very much. It's an honour that you have tried it, I still remember your Vatan SDK, really cool stuff. Will be great to have code-gurus like you using IndieLib in order to exploit all engine features.

Finally I decided to offer licenses of the sourcecode + full support for a small fee. I'm thinking in 99$ (The half than PTK, because currently it's only working on windows platforms). I don't expect to earn any money with that, but just to offer personal support to the people really interested on the lib for their commercial games, because I can not waste all my time answering mails to everyone :). For non commercial use it will remain complety free, with full documentation, tutorials and the forums for support; but without the sourcecode of the engine and the mailing support. What do you think?



 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by Loover
To Tape_worm:
-------------
I really appreciate your help! Yes, the device reset is working in some computers and crashing in others. In my computer is working, so it's quite difficult to fix it. But I will prepare what you asked me and I'll send it to you. Could you give me your mail by a private messagen on the IndieLib forums? Thanks in advance!


Done and done.


Oh internet... so many idiots... so few bullets.

Linky goodness: [journal] | [Gorgon]


 User Rating: 1436   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

@Loover :
Thanks mate.., gonna go and register on the forums. I really like the ways this looks.

 User Rating: 1026   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

One question. Currently I'm creating the library and tutorials for both vc++9 (express edition) and vc++6. Do you think that it's time to forget about vc6 and to give support only to vc9?

 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by Loover
One question. Currently I'm creating the library and tutorials for both vc++9 (express edition) and vc++6. Do you think that it's time to forget about vc6 and to give support only to vc9?


What with the express editions of 2005 and 2008 being available there's no reason not to upgrade. Honestly, I wouldn't even bother with 2003 support. Microsoft only has support for 2005/2008 in the recent DirectX SDK.

Edit:
I still haven't received the debug build of the rabbit demo, have you sent it yet?

[Edited by - Tape_Worm on April 16, 2008 11:04:19 AM]


Oh internet... so many idiots... so few bullets.

Linky goodness: [journal] | [Gorgon]


 User Rating: 1436   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

New release! IndieLib 1.01!

You can download the SDK and to try the .exe tutorials that are ready to be executed. Now they have text showing the input controls.

http://www.indielib.com

 User Rating: 1068   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

All times are ET (US)

Post Reply
 Last Thread Next Thread 
Forum Rules:
You may not post new threads
You may post replies
You may not edit your posts
You may not use HTML in your posts
Jump To:
Administrative Options: