Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 11:22:02 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
  Show Posts
Pages: 1 ... 9 10 [11] 12 13 14
201  Developer / Technical / Re: Refactoring on: June 23, 2012, 11:48:49 AM
I'm all for the getting stuff done perspective. Indies don't have time to waste creating the perfect engine. I'm all for leaving TODO notes in your code instead of doing it right the first time. But for the love of god, why wouldn't you at least refactor the code in the basic architecture that's the foundation of your game? If you build a house on a bad foundation it's going to crash, and if you build a full game on a spaghetti code foundation it's going to be about as solid as the analogous food.

The short answer is because I don't need to.  I did it right the second time already:

I start out with an idea that I'm not quite sure what's the optimal way of approaching or really what will come out of it in the end.

I pick a feature and code it up in "spaghetti code", but make sure to use descriptive names and leave comments for what stuff does what.

I change and revise stuff until the feature looks interesting or I drop it.

If it's not dropped, I don't re-factor it.  I re-implement it from scratch with best practices and proper doc comments, the whole nine yards.  I use the temp noodles as a go-by, but in the remaking the code will typically gain a few other bits and tweaks, but I stick to my guns and code it "the right way", modularly.

I pick another feature and repeat.

Once it's got unit tests and all that jazz screw refactoring it unless it's a DIRE NEED, which IMHO, rarely ever rear their ugly heads...  How much did your minimaps really affect the end result, the gameplay itself?  Were they worth the refactor that created the slot? (have you released this game yet...?)
202  Developer / Design / Re: Games where the world continues to develop even after exiting. on: June 23, 2012, 11:05:09 AM
Limiting play time isn't always sinister.  Open your mind.  In LoRD, your actions are limited per day because you're playing with other people who might not be online at the moment.  Letting someone play constantly would give them a really unfair advantage to the other players.

I was talking about single-player games. But even there, the design is bad. You should instead make a game that is either played with people who are online at the same time (see pretty much every multiplayer game ever made), or make it turn-based such that it can be played asynchronously.

The limited actions in Legend of the Red Dragon, and timed drop cycles in Crossroads, and many many other MUDs, make them so flexible that they can be played as both multiplayer games AND as turn based with a single line BBS, or offline on a single PC.  What you say is a "bad design" is a flexible design that bridges that gap you fail to see between turn based and multi-player.  Perhaps that's a path you vow never to venture...  Pray you don't find yourself at the bottom of that ravine, with only this "bad design" as your way out.

My point is that you're preaching a false dichotomy and calling designs you don't agree with "bad". I think you think this way because your mind is closed to the reality that many games have already embraced such designs quite successfully.  I just think you lack the experience of playing them, and fear what you don't understand (I may be wrong, you could just as well be an individual with strong opinions who's yet to show much supporting evidence for them).  Modern technology has helped to alleviate the reasons such past designs were created, but with some new technology (like mobile) we're finding some limitations again, thus similar solutions are proposed or even voluntarily adopted in order to recreate a desired effect and use less resources.

Implementing a virtual version of such a system isn't inherently a "bad design" (.hack comes to mind).  The term "bad" is subjective in the first place.  It's strange of you to say one should do it one way or the other.  That's just an arbitrary limitation that doesn't even exist in reality, only in your mind.
203  Developer / Business / Re: "Polite" DRMs on: June 23, 2012, 08:58:19 AM
Of course it's nice to think that customers want you to create more, but for instance I saw a movie today because I wanted the experience of seeing it and I was curious about it. Not because I particularly care if they make a sequel! I imagine most people buying games feel the same way: they just want the game.

So, what you're saying is, you were interested in what they had already done, and payed them money to see it, even though that money won't go to making the thing you were interested in better at all...

Tell me the truth.  If it was free to you, you would have seen it anyway, right?  You essentially only payed because you had to?  Because they were placing an artificial scarcity on their works and holding it hostage, ransoming it to whomever pays the fee.

Look, I'm no anti-copyright zealot, I just see things how they really are, and it's pretty disgusting in most cases.  Look around you.  Everything you have is a result of the flow of ideas and information.  Every time the limitation of communication occurs, it's only due to malevolence or greed.

There is a different path, a virtuous one.  One in which you get paid to do the work, as you do the work.  For instance, I help fund Pioneer One because I was interested in it, and now you can watch those episodes for free, just fire up your torrent software, the work's been done and paid for, the distribution is free.  They work on the new content, because that's how they get paid.

Did you know that there are no copyright or design patents in the Fashion and Automotive industries?  Oh, the horror!  Who will want to Innovate?!  Wait... those are two of the most innovative and monetarily successful fields... their restrictions have been lifted, they are free to create.

The artificial scarcity system is already seeing stress (why? it's unnatural), and it's only enforceable now because of laws created by folks who have failed to understand nature and culture at its most fundamental levels.  Who knows how long people will accept the censorship and artificial limitations?  I'm not waiting to find out.  Onward!

Sure, use the current system to bootstrap yourself into the new system, you sort of have to right now, because there's just no way to get funding from interested parties ahead of time... or is there?  Ah, that's just one of many fledgling services, but squint and turn your head sideways when you look at the big picture and you can sort of see what future trends will bring.

Both methods will be around for a while yet, so if you're still buying and selling artificially scarce goods, then there's nothing wrong with that. You're a product of your environment, I understand, it's fine... "It's not your fault, but is is your problem."  So, don't get miffed when "pirates" (read: futurists) remove your bogus artificial restrictions and you're out money because you didn't get paid up front for the work.

A builder gets paid after the work is done, but they had a contract to build and know they'll be paid for the work they do.  Artists and Developers at big studios work under the same basic rules.  Where'd the artificial scarcity come from?  Publishers.  Why is it when you remove these middle men, you adopt their methods instead of sticking to what works for everyone already?  In the age of instant information we don't need their artificial scarcity systems anymore.

I may have been a bit zealous in my prior post but it's just to make a point -- to spread that idea freely...  My real point is that we should realize that this is the dawning of a new age, and anything that fails to adapt to change becomes extinct.

I don't think this is off topic, these concepts are severely tangential to the design of a DRM system... especially a polite one.

The most polite DRM is the one that doesn't exist (or even need to).  The most effective DRM system is one in which you just keep your ideas in your head and don't let anyone else experience them.  You can find some middle ground, but that whole area is disgusting quicksand to me.
204  Developer / Technical / Re: The grumpy old programmer room on: June 23, 2012, 08:00:53 AM
I must use (at least) two monitors, since I use two (or more) computers at once.  Right now the left screen is MS/Windows7, the right screen is GNU/Linux (center is XP).  I multi-boot other OSes as well, esp. when testing hardware + software configs.

I wouldn't be able to manage without Synergy to control all of the computers from one keyboard and mouse.  It's like having a regular multi-monitor setup where the mouse moves from one screen to the next, but each of my screens is a different OS.  When I move my mouse far enough it runs around the room from screen to screen, even waking up my laptop before landing on my TV w/ XBMC.

I can be compiling a build on one platform, while testing a build on another, and making fixes on yet another PC. It's so much faster than rolling my chair around the 'office' or using a remote desktop/terminal solution.

Occasionally I try moving back to single screen single PC development, but when I measure my source lines of code and other productivity rates, I'm at least 20% more productive with two (or more) computers going at once.

My brother has a real problem with focusing on a task... He can't help distract himself with videos, games and websites if he has more than one screen.  Different strokes for different folks.
205  Developer / Technical / Re: Refactoring on: June 22, 2012, 06:22:32 PM
Oh, looks like I forgot to address the issue, how not to give up while refactoring.

The main sentiment is: Don't do it in the first place.  You're a bad ass at working around limitations and restrictions anyway, right?  Wait till the sequel to refactor.  However, If it's a severe sticking point that will benefit you immediately then of course you do the refactor.  To keep it entertaining pick something you REALLY like to do, and reward yourself with it every N functions/methods you complete.  Yeah, it's not as productive as a coding marathon, but at least it gets done.

To squelch the little voice saying "It'll be so much easier to use if I had done it this other way", just make a note, then keep telling yourself, "I'll have time to fix it when I'm famous", and roll on about your business.
206  Developer / Technical / Re: Refactoring on: June 22, 2012, 05:53:01 PM
Here's what I do:

I start out with an idea that I'm not quite sure what's the optimal way of approaching or really what will come out of it in the end.

I pick a feature and code it up in "spaghetti code", but make sure to use descriptive names and leave comments for what stuff does what.

I change and revise stuff until the feature looks interesting or I drop it.

If it's not dropped, I don't re-factor it.  I re-implement it from scratch with best practices and proper doc comments, the whole nine yards.  I use the temp noodles as a go-by, but in the remaking the code will typically gain a few other bits and tweaks, but I stick to my guns and code it "the right way", modularly.

I pick another feature and repeat.

If I feel the need to re-factor a large portion of the codebase, I crack open ID Software's Doom source code, and a couple of beers.  I browse the buggy kludge ridden code and marvel at Carmack's true genius: His Practicality and Arrogance.  I'll then fire up Valgrind beneath Super Meat Boy, or ANY of the other successful indie games I have, and watch the hundreds of memory bugs and uninitialized vars flow past.

Once I've gained a sufficient amount of "Fuck It, let's make shit happen" attitude, I return to my code and forget all about that silly little OCD refactoring niggle.
207  Developer / Design / Re: So what are you working on? on: June 22, 2012, 03:55:41 PM
@_Madk: This has always been the code's destiny.  Search your feelings, you know it to be true.

Hopefully, it's modular enough to re-use sections and you can refactor it?

Be mindful of the source, we are all at various stages of completing its ultimate purpose: Video Game Operating Systems...
208  Developer / Business / Re: Indie game deadline (Question) on: June 22, 2012, 03:28:33 PM
"I love deadlines. I love the whooshing noise they make as they go by."
- Douglas Adams

They're big shoes to fill, but I'll be damned if I won't try!
209  Player / General / Re: Something you JUST did thread on: June 22, 2012, 01:20:16 PM
Houston, we have a problem.

The commemorative craft beer of Orbiter Vehicle 105 is being retired from active service.

I've just answered the prayers sent to St. Arnold, the Patron Saint of beer, in hopes the beer bearing the name of the Space Shuttle Endeavor will not face the same fate of its namesake.

Among other lowly local homebrewers, I will take on the heavy burden to give the good beer a better home, and send it off with style.



Hell. Yes.  I just got 25 cases of delicious free (as in beer) beer!
210  Developer / Technical / Re: Detecting the 360 controller's Guide button in Windows? on: June 22, 2012, 12:05:26 PM
I'm still dreading porting input beyond keyboard and mouse to Windows.

On Linux, I use xboxdrv to support the Xbox & Xbox360 controllers with userland code (no kernel driver required). It makes use of libusb...

I haven't figured out if it's worth it or even possible to port xboxdrv to Windows on top of libusb-win32, but I'm considering exploring it as an option rather than giving up the silver button.

I'll likely just go with XInput and lose the silver button.  Sorry I can't be more help, haven't crossed this bridge yet.

211  Developer / Technical / Re: The grumpy old programmer room on: June 22, 2012, 07:34:49 AM
Those are called horripilations by the way.

Ah, thanks, I'd heard the word before; Either is nicer than "goose pimples".

For those not from around here, it can also be spelled:

...in Virgon (Galactic to some).
212  Developer / Technical / Re: Roll your own physics vs libraries on: June 22, 2012, 04:43:52 AM
Personally, I roll my own because I like to do fun/odd physics more than realistic stuff.
Unfortunately I don't do much (any) coding in C# or I'd just give you mine to tweak.

However, It's dangerous to go alone... Take this!
213  Developer / Technical / Re: The grumpy old programmer room on: June 22, 2012, 04:39:16 AM
@st33d: Yep, that trick's saved my bacon bunches of times.

Though, occasionally you still get back bad data, or the disk gets stuck trying to read a bad spot during the file transfer.  If any have such issues, I've also recovered drives from unreadable states via Spinrite6.  I've read Gibson's patented process, and it's sound science.  His tool can also be used to do a maintenance read / write across the whole disk to freshen the magnetic signatures and cause the disk to detect and deprecate weak spots sooner... Needless to say, I didn't use the latter feature on this machine.
214  Developer / Technical / Re: Matchmaking Server on: June 22, 2012, 03:48:29 AM
I'm surprised that there isn't a standard solution for this too...  It seems like there used to be a bunch of services for this kind of thing.

Have you tried searching for STUN and/or TURN?  Aside from those the master server listing code is so minimal and necessarily contains custom information.  Thus, it is typically (re)written for each implementing game.

215  Developer / Business / Re: "Polite" DRMs on: June 22, 2012, 02:49:27 AM
Due to tangential work in business software I've got most of the components together to have a very strong DRM system in my future games.  However, the users won't want to remove it because I'm giving THEM its full power.

The trusted key store is on their system, and initially only contains my software key, thus any updates can be distributed via direct download or bit-torrent or some other means, and the game itself can vouch for the validity of the cryptographically signed code & data.

Furthermore, the users can add additional trusted keys.  An interface is presented to do so when installing or running a yet untrusted user created mod.  The editor has a tool to generate the asymmetric key pairs, thus users can create their own certificates to sign their mods.  This process is transparent to them, except for the entry of the Mod Author information.

I plan to provide a community testing process for mods whereby the community itself can play and approve the mods for semi-official cryptographic signature.

Quote
Installing mod: Mega Mecha Maze
Created by: Joe Sixpack
Community approved and rated: ****

This mod contains scripting and asset replacements.
Do you want to trust this author? [more info]

Code:
( ) No
( ) Yes
(o) Just once

[x] Remember my action for other mods by this author.

This system does not need a connection to the Internet to validate future mods or updates, though blacklists of bad mods can be optionally accepted (on by default).

This is because I've had experience with other game modding communities where exploits and viruses are spread through some mods.  In that community the modders have no tools to certify their works and the players have no tools to verify the mods.

I pay close attention to exploitability, but I'm not worried about the system getting cracked.  Truly, such a stunt would invalidate the current architecture of the Internet's security system, so in a way it's already been tested thoroughly (TLS / PKI).

----

Furthermore, if you want to appeal to consumers, realize the truth about their payment.  Paying customers DO NOT buy your game.  Your game was an effort created once by you, it has already happened, it's TOO LATE TO PAY for your game.  Instead realize that those who pay to play your game are funding your future development.  Each sale is saying: "I like what you did and here's money so you can do more"  Sure, some of the cost of distribution absorbs a bit of the payment, but open your eyes and look at what the money really does for you.  It helps you make more stuff, it can't help the game in the buyer's hands get made.

Don't fail at Economics 101: Supply and Demand
As the supply tends towards infinity price approaches zero, regardless of cost to produce or demand.

Bits are in near infinite supply. They are not scarce in the least.  Your ability to configure the bits is what's scarce.  It's your work that's worth something.

You can't sell sand to a beach bum.  Try to get paid for your work, like everyone else in the world.  Your past work is past, you can't get paid for it.  If you don't want to work for free then don't.

You can't win a fight against the unregulated copying of information.  We are copying beings, right down to our DNA.  Life IS copying, "May the best copier win!" has been life's battle cry for billions of years...

In the Stone Age, you'd be stoned to death if you tried to prevent folks from copying your stone tool design.

In the Bronze Age, you'd be speared by your own metal tip designs if you tried to charge others for reproducing them.

WELCOME TO THE INFORMATION AGE.

216  Developer / Technical / Re: The grumpy old programmer room on: June 22, 2012, 01:08:49 AM
Yes, a fitting end for the 14 year old machine.  I thought you folks might find the circumstance interesting.

Countless games were enjoyed on the computer, endless hours I had worked by its screen's soft glow. We shared an intimacy that needed no names between us -- My mind flowed forth into the machine and she joyfully brought my will to life.  I could yet revive the digital desk denizen with an infusion of new parts and the gift of a new ghost image, but I think it best to let her go in this most noble and natural of deaths.

If I had to guess at the forensics of it:  The dynamic call caused the load of a batch of bytecode and data from the disk, which was evidentially returned corrupt.  If a batch of erroneous instructions were executed, it could have caused the drive to seek to other random sections of the HD, most of which were rarely accessed, and some of which were apparently very bad.  I had expected to see some ANSI art, but got a dump of random drive contents.  Likely, the drive ultimately gorked itself trying to swap in a good sector for one of the bad.

The eerie thing was that I hadn't run that particular boss fight logic in over 10 years, and I had warped there just to play it again for old times sake... So, it was a sort of sleeping evil.

Who knows how much longer the machine would have run if not for me springing the trap designed by nature's entropy -- This force that eats us all was the real ancient evil I briefly came face to face with.

The Universe leapt at me through my beloved machine; Indeed, through my very own creation.  I caught a glimpse of the eye of the void as it passed over us both briefly; In its deep dark silent stare I sensed a hint of the maddening power wielded by chaos itself as it took my beloved from me.  I felt that my machine's death, wrought so swiftly and unexpectedly, was a small example of things to come; A contrived demonstration of the fate we all must share.

I get a follicular erection just thinking of it.
217  Player / General / Re: Something you JUST did thread on: June 21, 2012, 03:49:50 PM
I just awakened an elder god, who's unbridled rage caused me to dismantle the PC I used for retro gaming.
218  Developer / Technical / Re: The grumpy old programmer room on: June 21, 2012, 02:32:06 PM
Running one of my ancient little text games to test my new debugger tool for the old scripting language...

Code:
1119 EndBoss.say( "Who dares disturb my sacred slumber?!" );
1120 EndBoss.say( "Face My Wrath you Insignificant Whelp!" );  <-[here]
1121 EndBoss.dynCall( "max_anger_action" );

I step past the current line of code; Again, the proper message proudly appears in the top pane of my new split ANSI debug display.
I step past the next line of code... Pages and pages of garbage race by, escaping the terminal pane boundaries and pausing only intermittently to emit a beep on chr(7)s.

CPU fans spin-up and the hot air tosses a few papers onto the floor.
I try to switch to VT7, the GUI is frozen, and incorrectly paletted.
I quickly switch to another virtual terminal, and enter my credentials sluggishly.

The command prompt appears.  As soon as I press the first 's' of the command "sudo kill -9 3702" the screen goes white and is covered partially with black blinking ASCII gibberish.

I begin entering the dreaded SysRq sequence of doom:
Reboot Even If System Utterly Broken, but as I hit the 's' the hard drive cries out repeatedly a horrible "Grrrr Snack! mmmmm.. Grrr Snack! mmmmm.."

The old faithful system has stopped responding to any input.

Damn!  Angry  Time for a hard reset... I power down the system, wait a few moments, then bring it back online.
"Operating System not found."

The final last words of the arcane arithmatron blaze brightly in my memorecall, only now is their meaning fully apparent to me.
Code:
Who dares disturb my sacred slumber?!
Face My Wrath you Insignificant Whelp!

How quick I was to underestimate the Final Boss's true power.   Cry
219  Developer / Design / Re: Pitch your game topic on: June 21, 2012, 06:10:56 AM
The monsters lurking just beyond the edge of town are getting braver, and you're the only one who realizes the signs that the world is in grave danger.  You know what must be done, BUT YOU CAN'T DO IT!

You're an ineffectual little wisp of a sprite, charged with the grandest quest of all time.  In this Action RPG simulation game, you must save the world using only your fluttering apparition, and above average volume of voice.

It's up to you to venture forth and rouse a hero from the herd to fight the forces of darkness.  You must teach them the secrets only you can and show them the path to victory.

Cringe as the AI warriors battle, and flounder their way through hordes of enemies and mazes.  Goad the lazy hero onward to the next area by reciting the most obvious of details.

Only the loyal will prevail in a land where it's dangerous to go alone... Watch over your chosen one and keep an eye out for danger in case you have to yell,
Hey Listen
220  Developer / Design / Re: Games where the world continues to develop even after exiting. on: June 21, 2012, 05:26:36 AM
It just seems so sinister that some company makes a game that dictates how I spend my time.
In real life, you have to wait for things. If I wanted to wait for things, I'd play real life.

Limiting play time isn't always sinister.  Open your mind.  In LoRD, your actions are limited per day because you're playing with other people who might not be online at the moment.  Letting someone play constantly would give them a really unfair advantage to the other players.  It keeps you coming back, not out of addiction, but to see what happened: If you had to sleep in the field you wonder if one of your friends murdered you for your gems in your sleep...

You might not want to wait for things, and play games as an escape from everyday life; However, realize that some games might have you wait because they are a part of everyday life...

Who knows at this stage what will come of the game?  It would be wrong not to go with some mechanic -- If it's not fun, you can always change it.  That curiosity angle is a powerful thing.  As a game designer one might create a mechanic (like the world changing while you're not playing), but as a game programmer one might say it's impossible unless we artificially impose logic.  Just because you run an advancement logic loop in the loading screen doesn't mean you're trying to control the player, that's just a solution to meet the game design.  It's feasible to make the game tethered to an online always on server to get the same effect, but that can be more expensive and inconvenient for everyone involved.

My issue with those games is that there isn't any depth. I know for certain what happens when I build this thing, there's no surprise, "oh the thing was built.. well duh..".

You've got a tiger by the tail with this!  A greedy developer can twist a gamer's impulsiveness and curiosity for a profit, making them want to check back every minute or so. A virtuous developer can also leverage this to great effect.  The trick will be balancing benefit of active play with delayed gratification.   If there is too much benefit to active play, if the world needs constant input then it could turn habitual fast.  However if certain things just have to play out, and constant activity has little impact on them, then the player will be more inclined to set the game down and pick it up later.

Going back to LoRD: The X forest fights per day mechanic gave the player a fixed amount of gameplay they had fine control over.  One would burn through those fairly quickly or pace themselves through the day. When all actions were used up, and you could only post messages and such, you couldn't affect what other folks were going to do, so you just sort of had to wait and see. Half the game was working the social structure so that people would avenge you or like you enough not to be a dick... That social system sounds like an approximate model of your ecosystem.  Not the people themselves, but one abstract level higher.

My advice would be to identify things that affect the ecosystem a lot or a little, and balance them against changes in the world.  Don't worry if you wind up deciding over how much big changes to allow per unit-time.  Some call that being overbearing, but really that's just part of balancing it so it's more like a living thing than something you're addicted to micromanaging.
Pages: 1 ... 9 10 [11] 12 13 14
Theme orange-lt created by panic