Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1412073 Posts in 69447 Topics- by 58484 Members - Latest Member: bigdog243

June 26, 2024, 03:12:48 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)IndieLib - Rapid Game Development and Prototyping in c++
Pages: [1] 2 3 4
Print
Author Topic: IndieLib - Rapid Game Development and Prototyping in c++  (Read 21887 times)
Javilop
Level 2
**



View Profile
« on: April 08, 2008, 01:48:58 PM »

Last Update: 9th May, 2013

IndieLib
Video: Some of the IndieLib features
Main Website: http://indielib.com
Faq: http://www.indielib.com/wiki/index.php?title=IndieLib_FAQ
Community: http://indielib.com/forums
Tutorials: http://indielib.com/wiki
Something quite cool using this lib: Non-tile based editor: http://javilop.com/gamedev/c-game-programming-tutorial-non-tile-based-arbitrary-positioned-entity-engine-editor-like-in-braid-or-aquaria-games/
Screenshots: http://www.indielib.com/screenshots/
Cost: FREE! & Open Source
Programming Required: C++
Platforms: PC, MAC, Linux. (iOS is planned)


Quote
IndieLib is a c++ 2.5d engine for game development and fast game prototyping for PC, MAC and Linux (and iOS in a near future) in a really easy way. The engine is focused in fast 2d rendering.

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. 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 or OpenGL 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 Smiley).
  • 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 Wink, 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.




« Last Edit: May 09, 2013, 09:34:56 AM by Javilop » Logged
reetva
Level 5
*****

Bee dee bai do beeeee


View Profile
« Reply #1 on: April 08, 2008, 05:24:56 PM »

Looks pretty nice! I'll give it a shot tomorrow, probably. I'm especially liking the XML collision system. Smiley
Logged

Hello!  I am here to boogie.  Shall we?
Javilop
Level 2
**



View Profile
« Reply #2 on: April 08, 2008, 05:29:48 PM »

Quote
Looks pretty nice! I'll give it a shot tomorrow, probably. I'm especially liking the XML collision system. Smiley

It's cool that the first answer is positive! Now I can go to sleep happy :D

Don't forget to check out the tutorial (the files are in the SDK): http://www.indielib.com/wiki/index.php?title=Tutorial_08_Collisions

Please, if you see any english spelling mistake tell me! I hope all the tutorials are well explained!
« Last Edit: April 08, 2008, 05:37:29 PM by Loover » Logged
Zaphos
Guest
« Reply #3 on: April 08, 2008, 05:57:25 PM »

Looks sweet; some really neat features in here Smiley

Randomly looking over the docs, a quick question: the doxygen doc for IND_3dMesh::SetTransitionSpeed says to use "SetAnimationSequence" to set which animation is playing, but that doesn't appear in the list of public functions -- is it in a different class somewhere?

Anyway, I'll definitely play around with this when I get some time!
Logged
Javilop
Level 2
**



View Profile
« Reply #4 on: April 08, 2008, 06:37:01 PM »

Quote
Randomly looking over the docs, a quick question: the doxygen doc for IND_3dMesh::SetTransitionSpeed says to use "SetAnimationSequence" to set which animation is playing, but that doesn't appear in the list of public functions -- is it in a different class somewhere?

The name of this method was changed by IND_Entity3d::SetSequence(), so it's a documentation error. I have already fixed it. Thank you for reporting!

Quote
Anyway, I'll definitely play around with this when I get some time!
Great!
« Last Edit: April 08, 2008, 06:49:00 PM by Loover » Logged
Kekskiller
Guest
« Reply #5 on: April 09, 2008, 12:50:41 PM »

Hey, that sounds cool! Would be great to use it for a game. Also the documentation is well made. When i've finished my running project I will take a look at this library.
Logged
Javilop
Level 2
**



View Profile
« Reply #6 on: April 10, 2008, 01:06:22 AM »

Finish it fast! I can not wait to see some great games doing with IndieLib
Logged
Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #7 on: April 10, 2008, 02:45:52 AM »

is it cross-platform?
for 3d models, witch format are supported? can you define your own vertex buffers? there's already skinned mesh supports?
i know this isn't a 3d engine but i think these are cool features also for 2d games (and needed for games like new super mario bros for example)

Good work, there are a lot of interesting features Smiley
Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
Javilop
Level 2
**



View Profile
« Reply #8 on: April 10, 2008, 08:01:22 AM »

Hey Eclipse! I was expecting you to post! Thanks!

Quote
is it cross-platform?
Currently no. Only D3D9 by now, but porting to ogl, D3D8.1, etc. Is a "must to do" in a near future.

Quote
for 3d models, witch format are supported?
Only .x animated models. Without fx files. This is the latest feature of the engine is the one that needs more work.

Quote
can you define your own vertex buffers?
No. The engine is focused in an upper abstract interface. The atoms are the graphical objects abstractions (surfaces, animations, fonts, primitives and 3d meshes). Later you can join them to and entity object. This entity object has lot of methods (for adding collision, tinting, transformations, etc).

Quote
there's already skinned mesh supports?
Yep.

Quote
i know this isn't a 3d engine but i think these are cool features also for 2d games (and needed for games like new super mario bros for example)
I'm agree!

Quote
Good work, there are a lot of interesting features
Thanks but... try it!, try it!, try it!

PS: Eclipse, you have to update the Circle thread an to explain that things of pixel shaders, please.
« Last Edit: April 10, 2008, 08:44:40 AM by Loover » Logged
Javilop
Level 2
**



View Profile
« Reply #9 on: April 10, 2008, 10:31:10 AM »

Less than 48 from the release and someone has already make a Box2d + IndieLib test Smiley
http://www.indielib.com/forum/viewtopic.php?t=10

I think Box2d is getting most famous than Angelina Jolie
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #10 on: April 10, 2008, 11:12:28 AM »

Is this somehow related to Haaf's game engine? One of your screenshots uses the same graphics as one of HGE's demos.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Javilop
Level 2
**



View Profile
« Reply #11 on: April 10, 2008, 11:22:28 AM »

Quote
Is this somehow related to Haaf's game engine? One of your screenshots uses the same graphics as one of HGE's demos.
No it isn't. I will change that sprite because other people asked me the same.

I'm neither related to Harvest Massive Encounter game, I draw myself the ufo and terrain sprites of one of the stress tests. I just liked so much that game that I tried to draw something with a similar look.
« Last Edit: April 10, 2008, 11:57:36 AM by Loover » Logged
Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #12 on: April 10, 2008, 05:36:15 PM »

PS: Eclipse, you have to update the Circle thread an to explain that things of pixel shaders, please.

I will :D for Circle i just did it, you can check the thread or my devlog on my sign. For the pixel shader stuff, i'll do that  tomorrow in an another thread, promised Wink
Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
ultim8p00
Level 0
***



View Profile
« Reply #13 on: April 19, 2008, 06:04:15 PM »

This...sounds...so...awesome! I must try it. There will be ninjas.
Logged
Javilop
Level 2
**



View Profile
« Reply #14 on: April 20, 2008, 01:43:20 AM »

Quote
This...sounds...so...awesome! I must try it. There will be ninjas.
Ninjas on IndieLib... Katakijin Shocked... that's what I call... awesome! Can't wait to see them :D I would help you in the port in any way you could need.

Just to say that IndieLib family is growing quite fast. But there is still really few projects using it Sad... I know that it born just a week ago and quite nobody knows it yet but I would be really happy if TigSource developers would give a try to IndieLib. Just make some small game and funny ones Smiley Make me happy Smiley

See you!
« Last Edit: April 20, 2008, 01:53:31 AM by Loover » Logged
Javilop
Level 2
**



View Profile
« Reply #15 on: April 22, 2008, 07:21:09 AM »

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.

www.indielib.com
« Last Edit: April 22, 2008, 07:23:21 AM by Loover » Logged
Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #16 on: April 24, 2008, 12:08:34 AM »

wow :D the lib is growing very well
Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
Javilop
Level 2
**



View Profile
« Reply #17 on: September 24, 2008, 03:17:19 AM »

IndieLib is now Open Source under the LGPL license. You can download the complete sourcecode, and I'm looking for developers in order to create and IndieLib development team. You are REALLY welcome!

http://www.indielib.com/forum/viewtopic.php?t=48
Logged
jeb
Level 5
*****


Bling bling


View Profile WWW
« Reply #18 on: September 24, 2008, 03:34:27 AM »

Haha? Does this actually play, or is it only a mockup?


Logged

Javilop
Level 2
**



View Profile
« Reply #19 on: September 24, 2008, 03:52:56 AM »

This is screenshot from a stress test of IndieLib. The .exe is inside the SDK (complete source code). You can download and try it, the name of the example is c_01_Alien_BenchMark.exe (use the mouse right, left and wheel buttons and keyboard arrows).

In this example, I made the graphics myself, after purchasing Harvest - Massive Encounter. It's just "fun art" Smiley

This is another example of what you can do using IndieLib:


Logged
Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic