• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
argoneus

A simple 3D game library compatible with Linux?

18 posts in this topic

So far I have my eyes on jMonkeyEngine because it seems both easy and powerful (and works on Lee-Nukes), but, is there anything else? I'm trying to avoid C++ for now as I am a beginner >.>

Also, the game isn't first person, it's more a top-down strategy view only, so if that changes anything.. Edited by argoneus
0

Share this post


Link to post
Share on other sites
Being a beginner is no reason to avoid C++. If C++ really grabs you as a language, learn it.

Learn the language you like first, not the one(s) people recommend to you. Once you've learnt one programming language, additional languages are about a month for competence, three for proficiency.

So, just learn the one you like the most first.
0

Share this post


Link to post
Share on other sites
Alright, let me rephrase it.

I don't want to deal with pointers just yet. And even if I did, I still don't know what library to go for. Edited by argoneus
0

Share this post


Link to post
Share on other sites
[quote name='argoneus' timestamp='1341523063' post='4956106']
Alright, let me rephrase it.

I don't want to deal with pointers just yet. And even if I did, I still don't know what library to go for.
[/quote]
What's so hard about pointers? They are just numbers that say where something is in memory.
0

Share this post


Link to post
Share on other sites
[quote name='argoneus' timestamp='1341521542' post='4956096']
I'm trying to avoid C++ for now as I am a beginner >.>[/quote]
[quote name='argoneus' timestamp='1341523063' post='4956106']
I don't want to deal with pointers just yet. And even if I did, I still don't know what library to go for.
[/quote]
Your going to have to deal with pointers in all computer science, they are a very fundamental part of how computers operate. I suggest you get over this fear. If you use C# which would be another good alternative while running mono on Linux your going to have to deal with delegates which is [i]similar [/i]to pointers. Most Linux users I know, learn C or C++ though, most even know assembly.

If you like jMonkeyEngine go ahead and use it, you could even try using python with pygames. Edited by DevLiquidKnight
0

Share this post


Link to post
Share on other sites
I never said I didn't understand how pointers work, but for me it's a hassle that increases the time until I see any progress on my game, so I want something easier but powerful to begin with. If I indeed decided to go with C++, what library should I go for?
0

Share this post


Link to post
Share on other sites
[quote name='argoneus' timestamp='1341521542' post='4956096']
So far I have my eyes on jMonkeyEngine because it seems both easy and powerful (and works on Lee-Nukes), but, is there anything else?
[/quote]
There is LibGdx for example.

[quote name='argoneus' timestamp='1341521542' post='4956096']
I'm trying to avoid C++ for now as I am a beginner >.>
[/quote]
Good decision.
0

Share this post


Link to post
Share on other sites
For unix there is the open-source Irrlicht 3D engine which provides almost everything required to build a game without requiring developing or finding your own stuff (i.e model libraries).

There are multiple bindings for it if you want to use less common / exotic languages but it obviously works best using C++ (like most games developers should be using regardless of what the Unity / XNA salesmen tell you).

Irrlicht with c++ also doesn't require any memory management because it is all reference counted whereas java for example still requires resource management with things like files and threads etc...

Really.. for linux (and everything else), use C++ or you are going to be shooting yourself in the foot. most distributions dont even provide java in their repos. Just learn C++ and then you will never need to learn any other language. Edited by Karsten_
-1

Share this post


Link to post
Share on other sites
[quote name='Karsten_' timestamp='1341574703' post='4956290']
For unix there is the open-source Irrlicht 3D engine which provides almost everything required to build a game without requiring developing or finding your own stuff (i.e model libraries).

There are multiple bindings for it if you want to use less common / exotic languages but it obviously works best using C++ (like most games developers should be using regardless of what the Unity / XNA salesmen tell you).

Irrlicht with c++ also doesn't require any memory management because it is all reference counted whereas java for example still requires resource management with things like files and threads etc...

Really.. for linux (and everything else), use C++ or you are going to be shooting yourself in the foot. most distributions dont even provide java in their repos. Just learn C++ and then you will never need to learn any other language.
[/quote]

It's true that irrlicht provides a lot of features, but in the end it's only a rendering engine with some very basic collision detection built in. Irrlicht does not provide any general solutions for physics, audio, etc. and it does not support any modern features of current graphics APIs.

This doesn't mean that irrlicht is not a good choice, it definitely is a good choice for those wanting to get into game/graphics development since it pretty much has the simplest API I've ever seen in these kind of libraries, but it does suffer from some bad design decisions IMO (there's a good amount of god-classes to be found in there), and as I said, it's not a complete solution for developing games.
0

Share this post


Link to post
Share on other sites
Agreed, (though jmonkey, and libgdx examples above also have the same issue when it comes to complete solutions).

The great thing again about C++ though is it is generally the universally accepted language for libraries so you can pick the best physics engine to add to your game, you can pick the best sound library / api for your game without needing to worry about finding a (usually less supported) binding or writing your own wrapper.
It is less likely that you will find a generic library written in java or C# directly.

So with regards to physics and collision, the Irrlicht tutorials give good examples of using newton and ODE physics in a game.

If you do want much more flexibility (which you may not want as a beginner) then I highly recommend just using raw OpenGL and some seperate libraries.

What I do find a really dumb idea is to use large engines like unreal, source or crytek's offering since not only are these closed-source but there is no way in hell a beginner can keep up with the development of them. Not to mention the massive likelyhood that they wont even exist in the next 5 years. My suggestion is to only use an engine that you know you can personally maintain from the src level and upwards. Edited by Karsten_
0

Share this post


Link to post
Share on other sites
Some LibGdx features:[list]
[*]sprites
[*]particles
[*]OpenGL bindings
[*]integrated bindings to the C++ physics library Box2D
[*]bitmap fonts
[*]UI widgets
[*]support for tile maps
[*]various target platforms like Windows, Linux, OSX, Android and soon iOS
[*]audio
[*]input
[*]Open Source
[/list]
0

Share this post


Link to post
Share on other sites
LibGdx looks good but I would have a slight issue with my game requiring a whole .NET framework to be installed for it to work.
Not saying it is a bad thing and I have seen a couple of the games in the humble indie bundle doing it, but I guess if it can be avoided, I definately would.
Remember Linux doesn't come with as many libraries as Windows by default and it is just such a pain to have to drag so much stuff in just to run a game.
0

Share this post


Link to post
Share on other sites
It sucks that you are not allowed to strip down the runtime by yourself when you bundle it. At least that will change with project Jigsaw.
On the other hand, big titles take several giga bytes meanwhile, so what are 40MB compressed runtime for an Indie game compared to that ?
About 8 minutes of OGG-compressed music take up about 30MB as well.
That is just the natural evolution.
0

Share this post


Link to post
Share on other sites
LibGDX seems nice. But I still don't know. It runs on .NET but it's Java? What is this sorcery.
0

Share this post


Link to post
Share on other sites
libgdx runs on the Java platform and can cross-compile to JavaScript.
Also, you don't actually have to use pointers in C++. Using 'new' to instantiate a class is actively discouraged when you can use stack objects and pass by reference.
0

Share this post


Link to post
Share on other sites
[quote name='Karsten_' timestamp='1341574703' post='4956290']
Irrlicht with c++ also doesn't require any memory management because it is all reference counted whereas java for example still requires resource management with things like files and threads etc...
[/quote]

I'm sorry that I'm off topic as far as OP, but I'm not sure if this is quite right. As far as I can see, there is no way to close an actual File object and if I recall correctly, when threads reach the end of their execution, they die and get recycled.
0

Share this post


Link to post
Share on other sites
If you are more interested in working on the GAME than learning the language technology,. perhaps try the opensource ZGameEditor. It uses a C like scripting and lets you preview stuff in real-time from within the editor. This speeds up development of the game.
0

Share this post


Link to post
Share on other sites
[quote name='argoneus' timestamp='1341599215' post='4956418']
LibGDX seems nice. But I still don't know. It runs on .NET but it's Java? What is this sorcery.
[/quote]IKVM. Java classes loaded into mono or .net. No java runtime required.

It actually only requires java. However iOS doesnt support java which is where IKVM comes in as IKVM will run on iOS and can load the java classes required to use LibGDX on iOS. Theoretically you could choose to use it with IKVM on the other platforms aswell but for mac, windows and linux support you don't need IKVM or .net or mono.
0

Share this post


Link to post
Share on other sites
Yes, sorry. My fault for causing this chaos. I meant a Java VM not a .NET VM. :/

That said, it is often even more awkward to get Java installed on a less known version of Linux (or BSD) than it is Mono due to licensing and bootstrapping issues.

[quote name='boogyman19946' timestamp='1341608559' post='4956472']
As far as I can see, there is no way to close an actual File object and if I recall correctly, when threads reach the end of their execution, they die and get recycled.
[/quote]

In C#, to make sure an open file has been closed, I am quite sure that you need to call Close() on it whereas in C++ (std::iostream), you just let it go out of scope and it will close immediately.

As for threads, it is quite common that they go on forever (such as a polling server) and it is up to the main thread to signal them to close. If some random exception is thrown, so long as the thread is correctly wrapped in C++, it will all clean up perfectly with no extra hassle, however in C#, I have seen some really messy hacks to get round this, usually involving the singleton pattern and a shedload of try catch, finallys.

To bring this slightly back on topic, since the OP did mention JMonkeyEngine he is probably quite interested in using java, in which case I did come across an engine called JCPT ([url="http://www.jpct.net/"]http://www.jpct.net/[/url]) which looks extremely easy to use and has good example projects. Edited by Karsten_
0

Share this post


Link to post
Share on other sites

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  
Followers 0