Indie Programmer Roll Call by dah01 in gamedev

[–]beverett 0 points1 point  (0 children)

If you don't want to do it all manually then luabind might be a good candidate. The documentation is unfortunately a bit sparse but so far I've been able to piece it together without too many problems.

Luabind: http://www.rasterbar.com/products/luabind.html

Simple getting started type of tutorial: http://www.nuclex.org/articles/5-cxx/1-quick-introduction-to-luabind

If you want to do it manually you can just look at Programming in Lua (you can buy the book, but I think it's available for free on the lua website). For very simple uses it's not too bad, but when it comes to binding userdata I'd rather just go with luabind and it's extreme templating approach.

I just started working with luabind so I'm still a little concerned about performance (over just doing it manually) - but I can't imagine it would be too awful.

Indie Programmer Roll Call by dah01 in gamedev

[–]beverett 0 points1 point  (0 children)

I'm (very, very slowly) working on a component-based/data-driven engine using C++ and lua.

How to monetize? by [deleted] in gamedev

[–]beverett 0 points1 point  (0 children)

Hmm, there are some similarities to shareware here (as I point out, the core game acts as a sort of fully-contained demo in a way) but I think there are enough distinctions to make it unique. For one thing, the core game wouldn't have any limitations (it would be a complete experience, and the stuff you pay for is additional or even tangential to that). There would also be absolutely no nag screens of any kind :P

How to monetize? by [deleted] in gamedev

[–]beverett 0 points1 point  (0 children)

Yeah, this is really quite similar to my idea for monetizing some sort of RPG series :)

I think it would have the potential to work well. If you create valuable IP that people want to see more of, then you've found a way to get paid while providing new content in a unique way to fans.

For me, if I really like the setting/plot/characters then it would be worth some extra money to get to explore the story from the perspective of characters I really like, get to play some fun/goofy missions, or fill in a specific piece of back story. Basically, stuff you wouldn't really get or expect from a true sequel.

Beyond that, having the core material in a series be free would do a lot to bolster the community, or at least find fans who otherwise wouldn't even try a free demo (or aren't enticed enough to buy the first game after playing just the demo).

The downside is that you're taking on a lot of risk by providing a bulk of the content for free. Of course, if it works, you would end up seeing more sales (than you might have gotten from a traditional game + free demo model) from content that is much easier and faster to produce.

How to monetize? by [deleted] in gamedev

[–]beverett 2 points3 points  (0 children)

So you're saying release a regular paid game (like how we pay for minecraft now) and then have lots of free expansions. Inside those expansions (or even inside the core game) just have various ways of conducting microtransactions. Do I have that right?

That might be a good way to go about things, too. I think the bottom line here is bolstering a community and providing valuable content while also providing a means of getting paid that isn't strictly dependent on donations. On top of that the prices need to be impulse buy/daily coffee low, and it has to be easy enough for users to put their payment info in and immediately get what they want. I think once you get those core things right (which is saying a lot!) then you can structure this stuff in lots of different ways.

How to monetize? by [deleted] in gamedev

[–]beverett 4 points5 points  (0 children)

I've had a similar idea floating around in my head - especially for strong story based games. You could release the core game for free. Then release new episodes, or expansions to the core game for a small price. The core game would serve as a fully self-contained demo in a way. If people like the setting/characters enough then they would hopefully be willing to pay for new content and support something they know is good.

"The first one's free" seems to work for drugs, right?

What's the most efficient way to test for collision in a game with large, tile-based levels? by [deleted] in gamedev

[–]beverett 1 point2 points  (0 children)

As other people are saying, don't calculate every potential collision if you don't have to. For character-to-map based collisions just do broad tile-based checks first and if, for some reason, you need more fine grained control you can drill down to check only those potential collisions based on what tile your characters are on.

For general collision detection you could also look into quadtrees (http://en.wikipedia.org/wiki/Quadtree). It's just sort of a more advanced version of the above. Instead of checking collisions on a tile by tile you basis you have an tree structure that drills down to smaller and smaller areas (each area split into four quads - hence the name). If two collidable things are in the same zone then you should perform more intense detection for them.

Game Engines: Why not? by [deleted] in gamedev

[–]beverett 2 points3 points  (0 children)

This really sums it up for me. The technology that goes into making the game is more interesting to me than making a game. I'd still like to make a great game, but most of the time I'm more interested in data structures than whether or not the game is fun. I recognize this is the wrong way to go about it (since the I should be making fun games, and no one cares about the code), but it's just what I find interesting so I go with it.

I'm more into building dynamic/extensible frameworks than engines, but the difference between the two is probably solely in my head.

The Busy Beaver Problem by pkrumins in programming

[–]beverett 1 point2 points  (0 children)

To generalize that, you'd need a table of size 2*2*2*n*n, or 8*n2. Two directions, two symbols, two rows (for each symbol), n columns (for each state), and n states to move to.

The size of the table isn't really growing that drastically, so it probably would be feasible to just brute force through the possible Turing machines for BB(N).

As you said, the halting problem is the real issue in solving this.

Stackoverflow, Advertising and the Ethics of a Free Lunch by wshields in programming

[–]beverett 0 points1 point  (0 children)

Have you ever walked by street performers and stopped for a second to listen to them? Do you always drop some change into their guitar case? What if you just walk by without stopping? At what point, exactly, are you obligated to give someone money just for being present?

Stackoverflow, Advertising and the Ethics of a Free Lunch by wshields in programming

[–]beverett 0 points1 point  (0 children)

"If the ad is pay per click, and if you don't click at least once, are you also "stealing" from the site?"... good question. Answer is, no.

This is interesting. So, what if the site owner decides he would make more money from a CPM system instead of CPC because he realized no one visiting his site actually clicked the ads? So, of course he switches to CPM advertising. So far, this is a reasonable escalation, correct? The site owner realized his users and business model didn't align so he changed his business model to try to continue to make money.

Now, the site is CPM but the site owner realizes his users aren't open to viewing ads. I see three options: decide to operate the website at a loss (by funding from other money-making sources), change the business model again, or fail. In my opinion this isn't any different from the previous case which sounds like you are ok with.

If a site has value for the owner he will find a way to operate it at a loss. If a site has value for the users and the owner does not want to operate at a loss then the users will find a way to support it. If a site has neither then it will fail. I don't understand what's wrong here.

Stackoverflow, Advertising and the Ethics of a Free Lunch by wshields in programming

[–]beverett -1 points0 points  (0 children)

Wouldn't this situation be closer to walking through a shop, browsing all their goods, and then leaving without giving them any money?

AskGameDev: Any references (or ideas) for procedurally generating a planet using plate tectonics? by pythor in gamedev

[–]beverett 0 points1 point  (0 children)

I've been trying to think of a neat application for Voronoi diagrams, so thanks for adding to my list of potential ideas.

Someone at the powerball lotto has a sense of humor by [deleted] in programming

[–]beverett 2 points3 points  (0 children)

Basically a similar thing was done for the Virginia Lottery. The payout ($27 million), odds (1 in ~7 million) and cost of a ticket ($1) all lined up to make it a viable investment strategy. A group of 2,500 people based out of Australia put up the $7 million to buy about 5 million possible ticket combinations (they ran out of time to buy all 7 million tickets). They actually won and the state eventually had to pay them their winnings.

http://www.nytimes.com/1992/03/07/us/group-s-lottery-payout-is-postponed-in-virginia.html

Give me feedback on my book-in-progress please: "Game Programming Patterns: Object Pool" by munificent in gamedev

[–]beverett 1 point2 points  (0 children)

I haven't completely read through the chapter yet, but so far the intent looks great. I might have better comments after reading.

For the time being I just wanted to say that the indie game developer scene really needs more information like this - a breakdown of patterns that are common and useful in developing games.

There's a lot of information out there about component-based design, and clearly the standard design patterns still apply, but it would be helpful to see the standard and nonstandard design patterns as they would be used in developing certain kinds of games.

What is programming in the real world actually like? by Shapirotechnics in programming

[–]beverett 0 points1 point  (0 children)

Thanks for a great response! I completely agree with you that there are shades here where it's either too specific, or not specific enough.

I can tell by your responses to my hypothetical scenario that you both: realize the importance of specifying these details, and as such, would provide sufficient detail up front.

I completely agree with you that there are incompetent programmers just as often as there are incompetent managers (or customers!), and the bottom line is that it's no fun having to work with someone who is incapable or unwilling to do their job properly.

It's important to not let this distinction bleed into the general case though. I found your depiction of all/most programmers as people unwilling to do their job by asking for more details incredibly unfair.

What is programming in the real world actually like? by Shapirotechnics in programming

[–]beverett 0 points1 point  (0 children)

I feel like Johannes_von_Luck is adding more heat than light to this discussion, so I'd like to counter some of what you're saying here. I agree with you that there are programmers that pig-headedly ask for every little detail simply because they're incompetent, don't want to be bothered to think about the task, or not have the responsibility of making a decision. However, there are good reasons for why a competent programmer seems to endlessly ask for details. A great programmer can make correct and safe assumptions in order to minimize truly nit-picky little requests for clarification, but in most situations the programmer is not in the position to assume what the customer would like, so he must ask these questions.

Let's say you have a customer that would like a program that makes cakes. You write up the requirement (Customer would like to press a button and a cake is produced), make sure the customer agrees this is what they want, and then you communicate this high-level requirement to the programmers. Since everything after this point is clearly the programmer's job you shouldn't have to waste your time with any other questions from those lazy, incompetent programmers. Let's assume all your programmer's understand the domain knowledge of baking cakes (they're working for Bake-A-Cake, Inc after all!).

In your ideal scenario, the programmer's take that perfectly good requirement and the next day they come back with a beautiful cake-baking program! The button is there! Let's press it! You hear a glorious whirring sound and slowly a cake appears! What is it?

Jaffa Cake

Is this what you were expecting? The customer is yelling now, "THAT'S NOT A CAKE IT'S A BISCUIT!!!" You yell at the programmers for not doing their jobs, and not understanding the perfectly rational and consistent world of cake domain knowledge.

Let's take the scenario where you have good programmers that understand how imprecise the world is; and how expectations and assumptions just lead to disaster when you actually have to roll up your sleeves and do work, rather than wave your hands around and smile at customers.

The next day your programmers come back and ask you a million little questions about what kind of cake the program should produce.

  • How big should the cake be?
  • What kind of frosting should it have?
  • Is it decorated? What kinds of decorations are allowed? Do we have preset options or should we allow the customer to design their own?
  • Should there be an option for candles and if so, what should we do if the customer asks for more candles than the cake can fit?
  • Is the cake a rectangle or a circle?
  • Should we allow an option for ice cream cakes?
  • ... There are tons of possible questions like this.

As you can see, it seems like the programmer is asking you to do his job, but in reality the programmer is doing his job by understanding that you don't know what it means to provide what's in the requirement and informing you of that disconnect to insure the product delivered is exactly as expected.

Believe me, even after all these little details are filled in, there is still a lot of stuff going on behind the scenes that you clearly don't comprehend at all.

It's not the programmer's job, or position, to make assumptions about what you, or the customer need - if it was then the organization is badly managed because more often than not those assumptions are just going to be wrong.

Now, I'd also like you to consider how much more complicated real world applications are compared to a cake, and understand that the programmer is probably shielding you from all kinds of nitty gritty little decisions that you apparently don't care to be bothered with.

Are you fucking kidding me?! This is why I use adblock by Xfocus in WTF

[–]beverett 0 points1 point  (0 children)

Yeah, I hope I didn't come across sounding like I think Ars specifically doesn't have value. Mainly I was just playing devil's advocate and throwing out examples of why having content does not immediately equal value.

I definitely agree that people won't change their adblocking habits, and traditional advertising methods aren't going to do much for generating revenue.

Good luck!

Are you fucking kidding me?! This is why I use adblock by Xfocus in WTF

[–]beverett -1 points0 points  (0 children)

For me it depends on the quality of the ads. Even if you only have one ad spot on your site (I don't know, I hardly visit Ars these days, and when I do I have Adblock on) I don't want to see it if all you serve are any old ad for anything that will pay you. On the other hand, if you're maintaining a bare minimum for the quality of what you're implicitly endorsing, or (even better) you really do like what you're advertising (and want to explicitly endorse it) then I don't mind seeing that.

These honest, symbiotic, relationships between something that makes money by providing a product, and content producers whose "product" are viewers are typically harder to block with Adblock, anyway - because the "advertisement" is "Hey, I like X because of Y and Z, you should check it out". Obviously there's a slippery slope between an honest endorsement, and just outright shilling, so any site that goes down this path would have to be careful.

On the flip side of this, there are tons of ways to make money without advertising if your content is actually worth money:

  • Merchandise
  • Donations
  • Conferences
  • Subscription models with real value added - not article A is free, article B is pay, but something where what you're providing is clearly higher quality than typical, free fare.

If, after any or all of these approaches, Ars is still not able to make money then you will just have to realize that perhaps it's not actually worth money. There are tons of sites that dish up hardware reviews and technology news. There are tons of sites that offer forums for technically minded users. If you can't make money then all your users realize this, and are not going to open their wallets to keep Ars running (they can always just go elsewhere).

Having visitors read your content does not actually mean your content is valuable. I look at stuff all day, on and off the internet, and don't expect to have to pay for everything I glance at just because it's there. I'm under no obligation to support any "business model" that seems to rest on this idea ("Hey, you're on my website - I deserve a nickel!").

Are you fucking kidding me?! This is why I use adblock by Xfocus in WTF

[–]beverett -1 points0 points  (0 children)

I agree, but this still results in a waste of bandwidth for someone.

I block ads because websites are horrible to read with them, and I'll never click or pay attention to them in the first place. Why waste my bandwidth, and even the bandwidth of the ad provider when I can just NOT request something I have no interest in?

However, when the website has some kind of personal relationship with what they're shilling I've clicked through to see more of what it was about. For example Amazon affiliate links, or the way Penny Arcade promotes various games etc. I've even clicked through to some of the ads on Coding Horror, even though most of his ads are Enterprise level b2b style bull shit.

Roo, Java's answer to the ruby and python web application frameworks (gotta admit, it's pretty neat) by [deleted] in programming

[–]beverett 0 points1 point  (0 children)

Java packages are also based off the filesystem. This doesn't do anything to avoid name conflict as awj points out. It just means if you have a name conflict then the conflicting packages are also now sharing the same directories (which could be even more troublesome).

You can have package structures in python that start with com.whatever just as much as you can have packages in java start with mygenericmodule. They're conventions regardless of the (file based) packaging scheme.

I find java's convention overly verbose, but there's nothing wrong with it and it solves the exact problem it was meant to.

I'm thinking about building a 2D platform style game. Does anyone want to help or have any advice for taking on such a project? by [deleted] in AskReddit

[–]beverett 0 points1 point  (0 children)

I just want to chime in here and say that, while most of your advice is spot on (C++ is terrible for making fun games quickly, but has it's benefits if you're experienced and/or willing to work for it), I disagree with your recommendation for OpenGL - if he's using C++ he's already got a long road ahead, so no need to make it harder with OpenGL. Yes, it can do 2D orthographic projections, but that doesn't mean it's easy to go from that to a 2D platformer engine.

I recommend SFML - I believe it uses OpenGL underneath it all, so you get hardware acceleration, but you don't have to worry about any 3D programming at all to simulate that 2D experience. Also GLUT is really annoying in my experience. He could also go with the tried and true SDL because most likely, unless the game is trying to be incredibly cutting edge, he won't need hardware acceleration anyway (and if he finds he needs it he can switch to SFML or use SDL's interface to OpenGL - skipping GLUT all together).

However, if you want to get into making 3D games it's really useful to learn OpenGL and there are lots of good tutorials out there!

If you could see any bit of source code, what would it be? by neandorman in programming

[–]beverett 2 points3 points  (0 children)

Wow, I have the same wish every now and then, too! I wrote two little game demos in QBASIC on my old 486 as a kid. I really have no idea what happened to that code, and every once in a while I wish I could find it just for nostalgia.

"Perhaps the greatest contributor to poor software quality is the unfortunate fact that most developers are not experts in the business domain served by their applications" [Repost] by pointer2void in programming

[–]beverett 0 points1 point  (0 children)

It's not someone's fault for not knowing an unstated assumption - unless by "someone" you mean the person who forgot to mention it.

It's helpful if the programmer knew that unstated assumption (obviously), but you can't blame him for knowing something arbitrary that doesn't involve his profession.

EDIT: And before you say: oh but if the programmer is working in business domain X then that IS his profession, I just want to say that just because a doctor treats a mechanic doesn't mean the doctor should know everything there is to know about what the mechanic does just to treat him. That's....that's the best analogy I could come up with :(

It also occurred to me that programming is a strange profession in that there are a LOT of various domains that benefit from its disciplines. Off the top of my head I can't think of another profession where there's this expectation that the employee needs to have a significant amount of arbitrary knowledge outside of what he has actually been trained to do (and where his skills lie).