Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Red Mike
Jul 11, 2011

The King of Swag posted:

• How do you come up with new projects? As I previously mentioned, my way of going about it is to come up with game ideas and then try to develop gameplay concepts that the game will be based around, but I feel like there might be much better ways to go about this.

Other ways, sure. Better ways, debatable. My own way is to come up with a simple game mechanic to start off. This need not be the only mechanic, or the main purpose of the game, just something to start everything else off of. For a Mario-like game, this'd be jumping in a gravity-influenced environment on 2D sidescroller view, for me. Note that it's a complex mechanic, but it's simple in the sense that in practice, it's literally just a boost to your dy, with a continual smaller drain on your dy, in my chosen case. Basically, I choose something I can wrap my mind around "in one go". Then, I start picking out other game mechanics that complement this. Anything that is roughly related and possible, I jot down. Then, when prototyping starts, I start checking off what isn't fun. Fun is the factor I'm testing the most when coming up with gameplay ideas.


quote:

• What do you do about assets? How do you gauge how much is too much and how many assets you can reasonably develop for your project?

To start off, programmer art. Once the base mechanics are more or less set in stone, and the superfluous mechanics are at least roughly settled, I try and figure out how much work needs to be done. If it feels like it's way too much, I do workarounds. This sidescroller would need a lot of frames of animation to permit targetting at any angle?! Only add a few angles and have it snap between the two. Or maybe animate different body parts separately. Many workarounds. If assets become "too much", you take a step back and decide whether you're going to force your way through, or take a workaround. For a recent Ludum Dare 48 hour game, I realised I wasn't going to have the time or skills to do a complex landscape/character and not have it look horrible. So, I decided to go with monochrome, two-colours-per-level stylized art, instead of realistic. It looks worse than it would have looked if I had all the time I needed and did realistic art, but it looks far better than leaving it as unfinished realistic art or programmer assets.

quote:

• I actually had a few more questions, but now that I get to it I'm drawing a blank, so please feel free to include or mention anything you feel is important or wish you had known when you started out.

Two things I've started recently to keep in mind regarding game development, especially on a deadline. Workarounds, and rewriting ideas. If an idea proves too hard to implement, or an asset doesn't seem to be coming out right at all, either work around it: implement it in a different way, choose a different art style/target for the asset; or worse case: cut the idea altogether (and take a step back and examine how the other mechanics will work afterwards), drop the asset altogether (and make adjustments as necessary to make the game still work).

Adbot
ADBOT LOVES YOU

That Turkey Story
Mar 30, 2003

The King of Swag posted:

Another question that is only tangentially related; what source do you recommend for learning C++? To be more specific, learning C++ for a C developer. I know C++ in that I can write code that compiles and runs, but I write code as a C and Obj-C developer does (i.e. the polar opposite of how proper C++ is supposed to be written).
The C and C++ thread has plenty of recommendations in the OP.

The King of Swag posted:

Being perfectly honest, I don't like C++; I find it to be a poo poo language with a poor excuse for an OO implementation (there's a reason I like Obj-C), but having abandoned my old ways and into the realm of middleware, C++ is king.
That's a pretty harsh point of view for a language you don't even know. There's a reason why C++ is king, and it's not because people are masochists.

The King of Swag posted:

You can't imagine how much I wish people would just write libraries and frameworks in C, at least then it would be easy to write APIs for other languages, but you have to deal with what you're dealt, and that is C++.
C++ is an incredibly powerful language that allows a programmer to quickly create much more generic and efficient libraries than is feasible in C. Also, if a C++ library exists, you can generally expose an interface to C for it without too much trouble if you really want to.

Cat Plus Plus
Apr 8, 2011

:frogc00l:

That Turkey Story posted:

That's a pretty harsh point of view for a language you don't even know. There's a reason why C++ is king, and it's not because people are masochists.

To be fair, it is pretty lovely. It's largely due to things inherited from C, though.

The King of Swag posted:

I find it to be a poo poo language with a poor excuse for an OO implementation (there's a reason I like Obj-C)

C++ is a multi-paradigm language and it shines most when you leverage that. I certainly don't miss any OO features.

Azazel
Jun 6, 2001
I bitch slap for a living - you want some?
Debating the merits of <some language here>, fun times.

Completely different topic, but I am trying to get some quotes for 2d animation on a solo indy budget. Kind of cross posting here to see if there are any illustrators that happen to read this thread (doubtful?), and if anyone has some suggestions on how to maybe help get things moving. I located a great artist for the last game I built via the Touch Arcade forums, but he does a much different style than what I am after this time around. I may very well go scan there again if the CC forum doesn't pan out, but I'm definitely open to other suggestions as well.

I'll spare the details, but for the last year I've been working with two buddies, a programmer, and a music/sfx guy building some (admittedly not so successful) games, with me working on a salary and them contracting out as they are needed (on top of their day job). On the side we're trying to get that last key illustrator guy to fall into place, and from there aim at getting our first solo team title shipped. There's so many 2-5 man studios out there that just seem to have the right combination of talent, and I always wonder how they all met up and got things going. Does anyone have any stories about how their little dev shops panned out?

brian
Sep 11, 2001
I obtained this title through beard tax.

The King of Swag posted:

Words words swag words swag words

I totally went through the same phase as you, I mean I didn't coin it with a fancy syndrome name or anything, but I was heavily into doing everything myself for the sake of learning everything ever, under the delusion that after I just learned how to do this I'd finally be good at game development.

Anyway you're totally right, it's all about using the best tools available to do the job. Game programming as a solo developer is about reducing the non-core game parts as much as possible while still being able to complete it to a quality level you'd be happy with. If there's middleware that will do what you want and will tell you when you're doing something wrong then you'd be a fool to not use it.

Feature creep and having to rework things is a constant issue in iterative game development, but that's entirely why it's iterative and why prototyping on a small, testable scale and building from it is a good idea. That's my answer to the coming up with new projects thing too, pick an idea that you want to do, implement a prototype as barebones as possible and see if it feels like it's fun. From there you can try and map out what else needs done and the relative feasibility of it given your time frame.

Art is an issue that you always have to deal with, either find a friend who shares goals who can do it and won't flake, which may be the hardest thing in the world, or work on your art iteratively while reducing as much artistic complexity as possible. Find other ways to make it charming or professional, use a lot of easy to implement but very snazzy looking UI interpolation routines, make everything monochrome or heavily based on a specific shading effect, make it abstract and arty, there's plenty of options.

There's a big element of learning by doing with regards to scope, time estimating, keeping up motivation and so on. The best way to learn in the shortest period of time i'd say is by doing a lot of game jams and competitions, especially if you're lucky enough to be close to like a TIGJam or some other small jam that isn't mostly students.

With regards to C++ I don't really know what the value of learning it is unless you have a goal in mind, if you accomplish your goals in C or Obj-C then go accomplish them, I personally would rather use C# or AS3 (Flash) over C++ and it's the language i've programmed the most in. It depends on the project obviously but if the reason you want to stick with lower level (but still high level) languages is because of performance concerns you might want to do tests to see if it's actually an issue that you can't work around. If you want to work in the industry it's important for a lot of jobs, although there's lots of AS3/Unity3D/HTML5 gigs going, the console and most mobile developers will require it. Just don't dismiss anything, it's all about using the tool that will make the process as easy as possible without diminishing returns.

People who like to program well tend to build up a lot of opinions on a lot of things that will occasionally prevent them from doing the most logical approach to completing their goals, try and keep a check on doing that too much and you won't end up costing yourself 3 months of work for being stubborn like you did with the unicode thing. In the same vein evaluate times where you're cutting corners in a non-critical area and try and gauge whether maintaining it will outweight the time saved by doing it quicker. ABE, Always Be Evaluating. But not too much!

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
I said this a few pages back but while there might be arguments for using Obj-C over C++, or maybe using C99 over C++, there is virtually no reason to use ANSI C over C++. Except for a small handful of mechanisms that behave slightly differently, C++ gives you everything you'd get out of ANSI C with no performance penalties and a lot of additional tools are there if you need them.

There are plenty of C++ features that I will never use if I can help it, but all it takes is one really handy feature (i.e. RAII) to completely shatter any argument for sticking with ANSI C.

General_Failure
Apr 17, 2005

OneEightHundred posted:

I said this a few pages back but while there might be arguments for using Obj-C over C++, or maybe using C99 over C++, there is virtually no reason to use ANSI C over C++. Except for a small handful of mechanisms that behave slightly differently, C++ gives you everything you'd get out of ANSI C with no performance penalties and a lot of additional tools are there if you need them.

There are plenty of C++ features that I will never use if I can help it, but all it takes is one really handy feature (i.e. RAII) to completely shatter any argument for sticking with ANSI C.

I agree with everything said about game developing over the last page. Now this I'll agree with too. I tend to use C++ as a super enhanced C but it's just the way I like it. If I do plain C I bump into things I want to do but can't. Besides I have a thing for using classes to make self handling linked lists and other such structures. Sure I can easily write similarly functional code in C, but C++ is a bit less messy for that sort of thing.

Fist thing you need for a game is an idea. I have a head full of them. Others have had the same ideas I've had and gone on to make great games which is really pretty reassuring. A forced idea probably won't be as good as a "You know what would be awesome?" variety idea.

Next up, if you don't know how, learn the basics of doing design documentation and some version of the System Development Life Cycle (SDLC). If you are serious about a project don't start coding until you have fleshed out your idea and are sure it works, and gone through the proper steps of defining everything etc.
I know it sounds a bit harsh but it's not that bad. It makes the actual programming so much easier when you have your reference design to look at. It doesn't quite write itself but depending on how many layers deep your design went it just about does.

Coldrice
Jan 20, 2006


I just wanted to post and chat about how interesting this thread has been to read, and how much its helped me stay motivated to make my own game!

I started at the beginning of the summer wanting to learn programming, and am now maybe 50% done with my simple game. Its called Bitcrobes, and its a game where you control a simple microbe trying to make its way through each petri dish. As you earn funding, you can unlock bigger/harder dishes with better rewards. You also have a chance every game to gain science! points which allow you to alter your microbe with adaptions like flagellum, advanced mouth bits, spikes or tentacles, etc.

its pretty simple but has a couple of mini games built into the game play (match three, missile defense like) but no matter what I'm really proud of myself for even getting as far as I have. Thanks for this thread, as well as a little advice I got on IRC.

Screenshots:
(please be kind, pretty much everything is a temp graphic. I haven't decided what to keep, and what to trash)

http://i.imgur.com/a1Qmz.jpg first test ( just bodies floating in a space)
http://i.imgur.com/wD6SX.png learning how to make a match three. I'm actually going back to this today and fixing some of the issues
http://i.imgur.com/eogeA.pngAnother test. Movement, larger maps (for some reason I had a lot of problems keeping the screen centered!)
http://i.imgur.com/A4es9.pngTemp level selection/upgrade selection. Scientist sprite looks out of place, and theres a LOT of blank space. ALSO default fonts in place of actual menus at the top.
http://i.imgur.com/iVi7v.pngWorking through menus. None of the buttons have icons..
http://i.imgur.com/BQhNv.png Everyone loves the microbe. He is a terrific athlete!
http://i.imgur.com/gksA7.png oh hey look at this hardcore specimen. Advanced fins, mouth tentacles... Sadly, he was supposed to have spikes but I'm having a hard time with collision.
http://i.imgur.com/LbrhT.png title screen perhaps?

anyways, I'm constantly in awe of what everyones been producing, and I hope this game is worth playing when its done. Right now my goal is to finish the game. I'm going to play test the heck out of it and if its worth it I'd like to put it up on the iOS app market. I just want to make enough to recoup the dev fee ($99) but we'll see. If its not worth it I'll put it up for free.

Coldrice fucked around with this message at 02:26 on Sep 9, 2012

Mug
Apr 26, 2005
I really like the look of what you've got so far, the graphics don't really look like "temp" stuff, they just look like they have a particular style.

I'd definitely drop $1.99 on checking it out when it's out, but I'm one of those guys who just buys anything that a goon makes if it looks like it's had any effort put into it at all.

In other news, I put a new video up (already posted in a couple of threads)
https://www.youtube.com/watch?v=lAn455tLSLU

General_Failure
Apr 17, 2005

Coldrice posted:

game stuff

If it weren't iOS you'd probably have another sale here. I love that kind of game and really like the look of it too.

Still no screenshot of mine. I rearranged so I could put the PC in a more friendly position, but it gave me time to plan my next move. Plus I got my 20 odd year old Epson mechanical keyboard from an Epson XT I have working on the PC properly. It's not a Model M but it still makes typing feel so much better. It might sound silly but I put a lot of importance in to the feel of a keyboard when programming.

On my thinking and planning, I need to have a conversion table of an index to alphanumeric characters for bitmap tiled text. What would be the best way to physically store such a thing? Because of the way my program works it has to be flexible. I've considered a file which just has the raw index and ascii stored in it, a text file of similar functionality or total overkill of XML. What approach would be most sane?
XML is so tempting but then I might end up making a monster where I assign all the file resources using it. Or is that such a bad thing? I'm trying to keep this thing pretty simple.

Paniolo
Oct 9, 2007

Heads will roll.
Unless you're going to have glyphs outside of a single contiguous range, no mapping is necessary. ASCII is the mapping, i.e. c - 'a' gives you the index of the tile if you're starting from lowercase a.

Paniolo fucked around with this message at 08:31 on Sep 9, 2012

Mug
Apr 26, 2005
Yeah I have a continous image of all my ASCII characters on a graphics buffer and if I want to print an "A" I just grab pixels starting at CharacterWidth * ASCIICharacterNumber off the buffer.

General_Failure
Apr 17, 2005
Thanks for the replies. I was thinking of just altering the ASCII value ranges as necessary so I could do just that. It's the way I've done it in the past for things like animated text in DirectX and that kind of thing.
For now it's just going to use the one bitmap which is essentially just plain alphanumeric but it's already been written to support arbitrary source images, tile sizes and text mapping.

ZombieApostate
Mar 13, 2011
Sorry, I didn't read your post.

I'm too busy replying to what I wish you said

:allears:
The most depressing part of working on my project has to be when people ask me "what kind of game are you making?" and I have to answer "I haven't gotten to that part, yet" :downsgun:

I think I'm almost to that part, finally.



Not very visually impressive (and just some random rear end models off the internet for testing), but a little more work will give me a basic working engine that I can actually build a game on top of. I'm sure I'll have to go back and refactor at least some of the stuff I've done (and not for the first time), but it's pretty satisfying to have gotten this far.

Libraries used:
  • Open Asset Import Library
  • FreeImage
  • GLEW
  • MyGUI
  • Object Oriented Input System
  • Squirrel 3
  • TinyXML++

Many of them are only hooked up in a very basic fashion, but enough that they shouldn't be hard to expand on. I've got a very basic OpenGL renderer I wrote myself. I can handle a variety of model formats with Assimp. All the messages in the console preceeded by something in brackets are from my log manager, and mirrored in the log file. I just finished getting Squirrel hooked up as my scripting language, although all it can do at the moment is print messages to the console. The console, log manager and script are all unicode friendly.

Still so much left to do :ohdear:

ZombieApostate fucked around with this message at 01:43 on Sep 10, 2012

General_Failure
Apr 17, 2005
Sorry about the two posts here but I do have another question which I want to ask to avoid cornering myself. Keeping the terminology generic on purpose.

My base tile handler class just had its training wheels removed and stands on its own, working as it should.
My next task was to put the text handler in its own class. The text handler uses the tile handler so at first making the text handler extend the tile handler seemed like a good idea. Now I'm not so sure.

Essentially when using the text handler I want the tile handler functions / variables which the text handler uses as primitives to be inaccessible to the developer (me) and only have the text handler interface exposed.

I think object pascal lets me do that (Yes I'm still sticking with it for this project) but I'm not sure if it's the right approach. Should I just make another class for a text handler which creates an instance of the tile handler, calls the tile handler function etc.

This engine is a thought exercise, a way of generating useful code and a tool. It's not optimized for speed or size, which is kind of hurting me to do. It's focus is on code reuse and extensibility and I want to choose the best path.

The question is aimed at anybody and everybody, but I get the impression that Paniolo is heavily invested in OO philosophy, so any insight is appreciated before I continue much further.

It's part of an attempt to help break me out of my mostly procedural ways to allow me to work with larger, more modular projects and break out of old habits. The whole project is kind of out of my comfort zone, but that's the whole idea and part of the reason for choosing a language (Object Pascal) that I'm unfamiliar with. Clean slate and all that.

edit: ZombieApostate, that's a good thing. If you have some basic framework to work with it allows for pursuing ideas a bit more easily. It is also limiting with the type of project unfortunately, like with this SDL tiling thing I'm working on. It'll never be an FPS or a flight sim. But it can be a lot of other things with greater ease than an empty project, if you get my meaning.

General_Failure fucked around with this message at 01:48 on Sep 10, 2012

ZombieApostate
Mar 13, 2011
Sorry, I didn't read your post.

I'm too busy replying to what I wish you said

:allears:
Yeah, that was kind of the idea. Once I finish getting this nailed down, I'm going to work on a 3d game small enough scale that I don't have to worry about world generation and that I can get away with drawing the whole scene without much concern for performance. Whether that turns into a money generating venture or not, I can build from there and make another, larger scale game and repeat the process. And if I never make any money off any of this, at least I have a cool display piece to get somebody to hire me. I would love to be able to just keep pumping out games with this framework and be able to make a living wage, but I'm trying to keep my expectations low, heh. Also, while I'm focusing the engine on 3d for the moment, I could add 2d down the line if I want to without having to start from scratch.

As for your problem, I tend to avoid inheritance like the plague. A place I used to work ran into a nasty problem where their inheritance tree became inbred. It wasn't pretty. I also don't tend to think of a tile handler and text handler as having that much overlapping functionality. A bit more detail about what it is they share might be helpful.

Paniolo
Oct 9, 2007

Heads will roll.

General_Failure posted:

The question is aimed at anybody and everybody, but I get the impression that Paniolo is heavily invested in OO philosophy, so any insight is appreciated before I continue much further.

Haha, this is somewhat ironic as I definitely wouldn't consider the kind of programming I do these days to fall under the object-oriented umbrella.

Working on console games, your architecture is driven largely by the hardware, in particular memory limitations. This means both a tiny amount of memory (512MB on current gen consoles), as well as segmentation and concurrency issues, particularly on the PS3. Traditional OOP best practices and design patterns don't always mesh well with these limitations, as they're generally conceived and discussed in the context of a completely abstract computing environment which doesn't have things like caches, SPUs, etc.

The approach I generally work with is something I've heard at various times called "data-driven" or "data-oriented", and the basic philosophy is that you begin by figuring out what data you need and how it is laid out in memory, and then architect the functional systems on top of that. Pragmatically, the biggest difference is that while in traditional OOP you have classes abstracting individual objects, in a data-oriented approach your classes tend to abstract aggregations or subsystems, and typically only have a single instance. Internally data is generally stored in simple structs and tends to be POD for easy serialization and movement across memory barriers. Handles are favored over pointers for the same reasons.

Some bits of OOP carry over - most C++ features are still very useful (although RTTI and exceptions are not used at all, for various reasons.) Classes are still quite handy, as is some inheritance, although virtual functions are generally restricted to high-level communication between systems and are avoided in code which executes frequently. Obviously, composition is favored over inheritance, which is also true in OOP these days, but to an even more extreme degree. RAII is nearly non-existent, which is simply a consequence of having object lifecycles be managed centrally rather than ad hoc new and deletes.

Anyway I'm not suggesting you necessarily adopt this approach; I just found it amusing that you thought I would be "invested in OOP philosophy" when I'm actually quite far from it :) I definitely prefer it this way, at my last job code reviews would often have to be justified by resorting to quoting from the GoF and similar nonsense.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Paniolo posted:

RAII is nearly non-existent, which is simply a consequence of having object lifecycles be managed centrally rather than ad hoc new and deletes.
I'm sort of interested to know how you'd do this. There are some things which I've just never been able to get working well in an allocation-free environment without being extremely wasteful (i.e. skeletal model poses, rigid bodies, streamed resources), and it's really helpful for the most part to have those die automatically when the owner object dies.

Also using RAII for mutex locks should be mandatory. :colbert:


Also in totally unrelated news, RDX's runtime and compiler todo is empty, which means it is now in beta. I need to touch up the core libs, documentation, and add a few more const folds, but then it'll be ready for public consumption. ETA: A week or two. :toot:

OneEightHundred fucked around with this message at 04:17 on Sep 10, 2012

Paniolo
Oct 9, 2007

Heads will roll.

OneEightHundred posted:

I'm sort of interested to know how you'd do this. There are some things which I've just never been able to get working well in an allocation-free environment without being extremely wasteful (i.e. skeletal model poses, rigid bodies, streamed resources), and it's really helpful for the most part to have those die automatically when the owner object dies.

Well, generally those are going to be either shared resources which are loaded once and stay resident, or reusable objects that can be managed in pools. I mean, it's conceivable that you could do RAII with handles, it's just that the benefits are way less when there is exactly one point in the codebase that can create and destroy an object of a given type, and that's almost always done explicitly.

Some stuff gets managed by middleware and then you pretty much have to adapt to whatever model they've chosen with your own memory hooks plugged in. And some subsystems are dynamic enough that they pretty much need some sort of dynamic memory management but at least you can isolate it.

edit: I totally agree about mutexes, however, it's even better to completely avoid them to the greatest degree possible.

Paniolo fucked around with this message at 05:53 on Sep 10, 2012

General_Failure
Apr 17, 2005

I see what you're getting at. It's more or less the approach I'm used to. That's why I'm trying to go against the grain and do something which isn't written to the hardware, if that makes sense.

Related to that was way back when I was in university I noticed something a bit odd. The people who were able to wield OO design the most effectively were the ones that had absolutely no idea how a computer worked. And this was a CS degree.

I'm trying to separate myself from the hardware to see how that works out.

OneEightHundred, that's great news!

edit: Had some time to think about it and making my text handler an extension of the tile handler is wrong. What I'm wanting to do is add layers of abstraction, not extend the functionality of a more primitive layer. Besides it opens up a massive can of worms with constructors and destructors that I'd rather avoid.

Incidentally Object Pascal has some really weird but interesting concepts like calling a class and having it return a pointer to an instance.
Here's a line of test code copypasted to illustrate.
testTileHandler is of course of type TTileHandler.
code:
testTileHandler := TTileHandler.Create(scr, 'map.png', tmpRect);

In this case too, Create is also the default constructor name. But you can declare more constructors with different names, or just overload as I have done.

I'm really enjoying exploring the language.

General_Failure fucked around with this message at 07:56 on Sep 10, 2012

Nalin
Sep 29, 2007

Hair Elf
I don't know if anybody is interested, but today GarageGames announced that they are releasing Torque3D under the MIT license on github. The new lead of the open-source T3D made a blog post on the whole matter too.

This is really interesting and I can't wait to see what comes out of it.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
If there's one thing I'm thrilled about regarding that, it's that there will finally be a free world editor that's actually up to par feature-wise.

I've heard the rest of the engine is pretty clunky though. It's not going to be more useful for new projects than Unity, but I think it's extremely helpful to the game dev world to have capable open source engines and tools to mess around with.

OneEightHundred fucked around with this message at 22:14 on Sep 10, 2012

Wozbo
Jul 5, 2010

OneEightHundred posted:

If there's one thing I'm thrilled about regarding that, it's that there will finally be a free world editor that's actually up to par feature-wise.

I've heard the rest of the engine is pretty clunky though. It's not going to be more useful for new projects than Unity, but I think it's extremely helpful to the game dev world to have capable open source engines and tools to mess around with.

I would say that the open source community will probably optimize/ enhance most of that. They usually do.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

OneEightHundred posted:

If there's one thing I'm thrilled about regarding that, it's that there will finally be a free world editor that's actually up to par feature-wise.

I've heard the rest of the engine is pretty clunky though. It's not going to be more useful for new projects than Unity, but I think it's extremely helpful to the game dev world to have capable open source engines and tools to mess around with.
So long as a community builds up around it, it would at least provide another viable open-source alternative to Unity3D/UDK. One with an actual toolset, even.

Right now, there's... what, OGRE, Irrlicht maybe, Crystal Space 3D maaaaybe, and... eh... ?

Nalin
Sep 29, 2007

Hair Elf

Shalinor posted:

So long as a community builds up around it, it would at least provide another viable open-source alternative to Unity3D/UDK. One with an actual toolset, even.

Right now, there's... what, OGRE, Irrlicht maybe, Crystal Space 3D maaaaybe, and... eh... ?
The difference between T3D and those is so huge I probably wouldn't even count them. Those are still mainly graphics engines, and I personally know that Irrlicht is still pretty bare bones. irrEdit is the most advanced scene editor for Irrlicht, but that isn't saying much. It will just help you load multiple scene objects with one function call, but you still have to program everything else involved.

Torque 3D is so much better than those because it is like Unity: integrated world builder that you can jump in/out of, physics/input/sound support, object scripting (via TorqueScript), multiplayer networking support, etc. I would say Unity is still a better choice for most people, but I would hazard a guess that many people will be enticed by a (mostly) working, 100% free version of Unity.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Shalinor posted:

So long as a community builds up around it, it would at least provide another viable open-source alternative to Unity3D/UDK. One with an actual toolset, even.

Right now, there's... what, OGRE, Irrlicht maybe, Crystal Space 3D maaaaybe, and... eh... ?
I'm skeptical at the moment given the past history of open 3D engines. Without actual games to guide the work, open source engines have invariably gone off the rails.

This has a lot more promise than usual though, partly because the engine's in decent enough of a state that games can get started on it right away and keep development on the engine focused, and partly because it's not going to scare away all of the commercial developers with a GPL license.

A lot depends on how usable of a state it's in now though. The moment the project falls behind the point that it's satisfactory for actual use is the moment it's hosed for good.

OneEightHundred fucked around with this message at 20:10 on Sep 11, 2012

Hughlander
May 11, 2005

Shalinor posted:

So long as a community builds up around it, it would at least provide another viable open-source alternative to Unity3D/UDK. One with an actual toolset, even.

Right now, there's... what, OGRE, Irrlicht maybe, Crystal Space 3D maaaaybe, and... eh... ?

I'd put Panda 3d in same group as OGRE. At this point in the century libgdx and cocos-2d(x) as well probably.

The Glumslinger
Sep 24, 2008

Coach Nagy, you want me to throw to WHAT side of the field?


Hair Elf
Regarding the discussion of Voxel Cone tracing from a few pages back, I just wanted to plug http://maverick.inria.fr/Members/Cyril.Crassin/ . He is one of the guys at the forefront the technology and has spoken at Sigraph a number of times. I've been reading his stuff and related papers and it really makes me want to try to implement this stuff. Unfortunately, when I come home from a long day of coding at work, I never seem to have the motivation to spend another couple hours coding. :(

I will say from reading his stuff, I am slightly skeptical of how well this is going to run, even on next gen hardware. If I recall correctly, to just render 515x512 pixels properly, you need to set aside a gig of video memory. (although it might have been for 1024x1024, I did the math last week and have subsequently forgotten) While obviously far less than that is going to be used, and when doing the specular cone trace, they were still only achieving about 20FPS.

I'd really love to tear apart the UE4 implementation to see how they got such nice effects and still managed to reach a good frame rates.


EDIT: Upon reading more of his thesis, I see that while worst case for 512x512 is 1 gig, most of the trial cases they were using had far, far less memory usage than that.

The Glumslinger fucked around with this message at 04:40 on Sep 13, 2012

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!
If I want to do facial recognition (not just face tracking, but actual recognition), is OpenCV the best way to go? I'm working on a mini game project that will hopefully be an installation at a local sci-fi movie marathon.

My idea is to feature a USB nerf turret with a webcam on top, and a display beside it. The display with request (demand) an individual in a crowd of 8 or so do something -- come closer, move away, sit, stand, etc. If they fail to do so, the turret will fire at them.

Does anyone have any expertise in this area, and want to point me to some good resources? I figure I'll have to basically snap frames off the webcam, pull out the faces, and use those to train the recognition software on the fly, but I've never worked with image recognition before.

xzzy
Mar 5, 2009

The linux "motion" software is capable of tracking a target, and I've seen it used to make an auto-aiming turret. That's going to get you into arduino and soldering iron territory however.

I'm not sure it lets you identify individual subjects, much less identify them by their face. But it might be worth looking into if you're seeking options.

Grey_Area
Dec 21, 2006
Grey Area

Pfhreak posted:

If I want to do facial recognition (not just face tracking, but actual recognition), is OpenCV the best way to go? I'm working on a mini game project that will hopefully be an installation at a local sci-fi movie marathon.

My idea is to feature a USB nerf turret with a webcam on top, and a display beside it. The display with request (demand) an individual in a crowd of 8 or so do something -- come closer, move away, sit, stand, etc. If they fail to do so, the turret will fire at them.

Does anyone have any expertise in this area, and want to point me to some good resources? I figure I'll have to basically snap frames off the webcam, pull out the faces, and use those to train the recognition software on the fly, but I've never worked with image recognition before.

As far as I know the only face recognition algorithm that OpenCV implements is Eigenfaces. This can't cope with lighting changes or with changes in pose (it's really bad at recognising people if their heads aren't facing straight at the camera, or in the exact same direction as in the training photo). The second point won't matter that much for recognition anyway as OpenCV's face detector only finds front on faces. So if you have people moving about in a room this isn't going to work at all. Face recognition is still pretty rubbish except under perfect conditions. You might have some luck taking several pictures of each person looking in different directions to use as the training images (matching will still be done against single images, but if your best match is against bob_i for some i then you identify the person as bob), but I don't think you're going to have much luck. For reference, I've tested Cognitec's software on the entrance camera to an office and the results were pretty awful. Certainly not good enough to make your game idea work.

Edit: to provide something other than just negativity, here's a good resource for papers explaining the main techniques currently being used http://www.face-rec.org/. However, face recognition is definitely still a research area rather than a reliable technology so I think you'll probably have to change your plans about interactions with your game.

Grey_Area fucked around with this message at 19:55 on Sep 12, 2012

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

Grey_Area posted:

As far as I know the only face recognition algorithm that OpenCV implements is Eigenfaces. This can't cope with lighting changes or with changes in pose (it's really bad at recognising people if their heads aren't facing straight at the camera, or in the exact same direction as in the training photo). The second point won't matter that much for recognition anyway as OpenCV's face detector only finds front on faces. So if you have people moving about in a room this isn't going to work at all. Face recognition is still pretty rubbish except under perfect conditions. You might have some luck taking several pictures of each person looking in different directions to use as the training images (matching will still be done against single images, but if your best match is against bob_i for some i then you identify the person as bob), but I don't think you're going to have much luck. For reference, I've tested Cognitec's software on the entrance camera to an office and the results were pretty awful. Certainly not good enough to make your game idea work.

Edit: to provide something other than just negativity, here's a good resource for papers explaining the main techniques currently being used http://www.face-rec.org/. However, face recognition is definitely still a research area rather than a reliable technology so I think you'll probably have to change your plans about interactions with your game.

Sweet, good to know! Looks like OpenCV can do Eigenfaces, LBPH, and Fisherfaces. I'll tinker with it for an evening, and try to come up with some more amusing things to do.

The Golden Gael
Nov 12, 2011

Debating whether or not this is the right place to post this, but I figure what the hell: after three years in development, my game Tita Gasman is finally out of production!

Just wondering for future reference, is Game Maker a popular tool at all on this thread? Should I branch out into a different language when I have very limited programming experience, or keep experimenting with it for a while?

Pfhreak
Jan 30, 2004

Frog Blast The Vent Core!

Pfhreak posted:

Sweet, good to know! Looks like OpenCV can do Eigenfaces, LBPH, and Fisherfaces. I'll tinker with it for an evening, and try to come up with some more amusing things to do.

Turns out you guys were right. Things aren't quite where I want them to be yet. Oh well, time to rethink my plans. :D

Xand_Man
Mar 2, 2004

If what you say is true
Wutang might be dangerous


korusan posted:

Debating whether or not this is the right place to post this, but I figure what the hell: after three years in development, my game Tita Gasman is finally out of production!

Just wondering for future reference, is Game Maker a popular tool at all on this thread? Should I branch out into a different language when I have very limited programming experience, or keep experimenting with it for a while?

I've seen some amazing creative stuff with GameMaker. I'd say stick with it. It's not a 'professional' tool but actually creating stuff trumps learning 5 different programming languages.

The Golden Gael
Nov 12, 2011

Thanks. It seems as time goes on, it's getting more advanced - I've heard rumours that full Mac support is coming along with support for gaming on the smartphones.

Cat Plus Plus
Apr 8, 2011

:frogc00l:

korusan posted:

Just wondering for future reference, is Game Maker a popular tool at all on this thread? Should I branch out into a different language when I have very limited programming experience, or keep experimenting with it for a while?

Learning more languages/tools/paradigms and programming in general is never a bad idea. That said, if you like using GM and you're productive in it, then there's little reason not to use it.

Centripetal Horse
Nov 22, 2009

Fuck money, get GBS

This could have bought you a half a tank of gas, lmfao -
Love, gromdul

korusan posted:

Debating whether or not this is the right place to post this, but I figure what the hell: after three years in development, my game Tita Gasman is finally out of production!

Just wondering for future reference, is Game Maker a popular tool at all on this thread? Should I branch out into a different language when I have very limited programming experience, or keep experimenting with it for a while?

You have actually completed a game, which already puts you in the top couple percent of hobby game developers. Use whatever tool or language you are comfortable with until you need to do something that tool or language can't do, then you can move on*.

* Assuming this is a hobby for you. If you're looking to go to work in the industry, you'll probably want to move on from GameMaker.

The Golden Gael
Nov 12, 2011

I wouldn't be opposed to this being something I do to make a little extra coin but right now I think I need something steady to actually establish myself. I didn't even want to shell out the $20 for GM Pro and only wound up with a copy because a friend bought it for me.

Maybe I'll stick with it; if Studio proves to be extremely powerful I'll look into getting that and being more serious about it. I'm very serious about the quality of my projects but I'm not so sure they could be something to live off at the moment.

Adbot
ADBOT LOVES YOU

Polio Vax Scene
Apr 5, 2009



Stick with it for now. It's become a hell of a powerful tool these past few years (I hear they even compile/have html5 builds now!) and the only reason to switch to something else is if you're hitting a performance wall.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply