• Create Account

## How to time bomb a beta?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

80 replies to this topic

### #41Norman Barrows  Members

6339
Like
0Likes
Like

Posted 04 April 2014 - 11:40 AM

games need not be AAA to be profitable.

quite true. Rockland is proof of that.

If you really feel very strongly that you need DRM for your game to be profitable, you want to outsource for it OR sell to a AAA firm and have them do it for you.

the game has been and will continue to be profitable. drm simply helps ensure i actually see some of those profits.

### #44Pink Horror  Members

2459
Like
0Likes
Like

Posted 04 April 2014 - 08:04 PM

a bug free skyrim with no audio and no addons, 10 minute free download. that's the kind of thing i'm talking about here.  a far cry from an unfinished buggy game.

set your warning to level to max, suppress inline warning,  and halt on all warnings or errors. modular design, unit testing. write one thing, do it very well, test it completely, then move on: "ok that works, that's done, whats next?" . develop in release mode only. and if you need it, stuff like LINT and BoundsChecker. bug free is NOT a dream. the only bugs in software are ones we put in by typing, or choosing to use a buggy library or tool. Caveman v1.0 had ONE bug in it. and it wasn't even a show stopper or anything like that. needless to say, v1.1 was 100% bug free. And that was in a game with about say 50,000 lines of source code. v3.0 currently tips the scales at about 90,000 lines of code.

It sounds to me like you can skip the beta and get straight to work on the key check DRM, because you're not going to have any bugs for your testers to find anyway.

### #45Norman Barrows  Members

6339
Like
0Likes
Like

Posted 04 April 2014 - 09:56 PM

Just a thought, but if you think that Torchlight isn't getting hacked because of it's price point, why not just use a similar price point?

a too low price on a game infers lack of quality. especially when balanced against how much you get for the low price. a game that's priced to provide a gaming value too good to be true looks suspicious. say someone released a call of duty 5 clone for $5 tomorrow, you'd say, "whats the catch?" (or, at least i would...). i price my games from a gamer's point of view: "how much is it worth, assuming they'd buy it? how much gaming value does it provide to the user? for Caveman, the minimum answer would probably be$20. the max, perhaps $35 once i get all the features and options in there. once all the features are in, the minimum might be$25.

this isn't really hard to do. you can usually look at a piece of software  you wrote with a critical independent eye, and pretty much say how much functionality and value it provides the target user at a minimum. IE:  "oh dude! this game is worth at least $5!" (or 10, 15, 20, whatever). As I see it, either your game wont' be as popular as Torchlight, my lack of familiarity with torchlight makes it difficult to respond. can you think of a different example? perhaps something more akin to skyrim and the sims? (both of which are similar to Caveman in some respects). we may be talking apples and oranges here vis a vis Caveman and Torchlight. but really, all of this is off topic. the question is how to do it, not whether to do it. same thing happened in the related thread about checksums in ram - many of the responses were not about how to do it, but whether to do it. Norm Barrows Rockland Software Productions "Building PC games since 1989" rocklandsoftware.net PLAY CAVEMAN NOW! http://rocklandsoftware.net/beta.php ### #46Norman Barrows Members 6339 Like 0Likes Like Posted 04 April 2014 - 10:14 PM It sounds to me like you can skip the beta and get straight to work on the key check DRM, because you're not going to have any bugs for your testers to find anyway. finding bugs is the coders job. they should not be allowed to sign off on a section of code until it has been thoroughly tested and debugged BY THEM! Then others can have at it. And there's always integration errors possible, even if each module is bug-free. Late changes that don't get thorough integration testing are another one that can slip through. here are the known bugs at the moment: 1. action area for selecting swamp terrain is too big 2. cross country movement supports toggle run (it really should be walk speed only - we hiked across the world, we didn't run across like marathon runners! <g>) 3. need to increase clip radius of short faced bear - think i did this already the idea is to get the game into the user's hands and get the feedback that can make a good game great: "it would be cool if....". most of the time, the feedback i typically from long term beta testers on my games is "works great!, no problems! cool game!". as long as i keep hearing that, i figure i'm doing my job correctly. sometimes they'll have a suggestion. user feedback is vital to the iterative design "design, implement, test, get feedback" loop, which an excellent way to "evolve" one's software products. Norm Barrows Rockland Software Productions "Building PC games since 1989" rocklandsoftware.net PLAY CAVEMAN NOW! http://rocklandsoftware.net/beta.php ### #47Mouser9169 Members 401 Like 2Likes Like Posted 04 April 2014 - 11:23 PM most of the time, the feedback i typically from long term beta testers on my games is "works great!, no problems! cool game!". as long as i keep hearing that, i figure i'm doing my job correctly. As long as you keep hearing that, you're using the wrong beta testers. Long time beta testers (ie: fans) are not the people you really want testing your game - or at least not the main pool. You need to target people who you think would like your game, but haven't played it. You need to get some assholes in there who will try to figure out how to exploit the game before it goes live, especially if there is any multiplayer content. If you want sim style games - X3: Terran Conflict, IIRC DRM was pulled after a few patches. X3: Albion Prelude (the expansion) is sold on Steam but you can download a 'no-steam' .exe from the official website. If it still requires Steam activation, then it still has some layer of DRM, though. I don't play a lot of Sim style games, so I can't really run down titles in that genre. @Ferrous - Torchlight isn't getting hacked because retail copies were DRM free to begin with. One million units sold in the first four months. It's a Diablo/Fate successor for those not familiar with it. "The multitudes see death as tragic. If this were true, so then would be birth" - Pisha, Vampire the Maquerade: Bloodlines ### #48Norman Barrows Members 6339 Like 0Likes Like Posted 05 April 2014 - 12:40 AM You need to get some assholes in there who will try to figure out how to exploit the game before it goes live, especially if there is any multiplayer content. single player, and the full version will include all testing cheats! X3: Terran Conflict, IIRC DRM was pulled after a few patches. yes, i've seen this sort of thing before. i think its a sort of a thank you to loyal users who still play the game. the 4th patch for silent hunter 4 removed the keycd check. no biggie, 5 was already out, i believe. i googled x3, and yes, that's more like the size of game i'm talking about. i think you'd have to admit that selling x3 for less than$20 would be selling it too cheaply. note that i'm talking initial release price, not the current discounted price now that its 6 years old.

from what i understand of torchlight, its not quite x3, is it?

Edited by Norman Barrows, 05 April 2014 - 12:59 AM.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #49Mouser9169  Members

401
Like
0Likes
Like

Posted 05 April 2014 - 01:03 PM

X3:TC is an interesting game because it's a big universe without a lot of content in it. It's a sandbox game with a few storylines to follow. At its heart it's an economic sim (the vast, vast majority of space is perfectly peaceful, unless you make it not so).

If you're going by gameworld size, I believe Daggerfall is the largest commercial RPG ever produced (It would take real life weeks for a character to run from one side of the world to the other - they tested it). Morrowind was smaller in size, but larger in content. Oblivion followed the same pattern. So when you say your game is "as big as Skyrim", do you mean the game world is the same size, or does Caveman have as much content in it for the player to do as Skyrim does?

In any rate I can't find release numbers for the X series, so I don't know which was more popular. $20 would probably have been the lowest sale price for a game like X3, MSRP retail closer to 39.99 If I'm guessing. Torchlight started at$20. I think that's about the 'breakpoint' between 'casual' and 'serious' games. (Just my personal observation and guess, with no scientific data to back that up). Games like Nancy Drew may start at $19.99 but drop to 6.99 pretty quickly. Torchlight held it's price point for a long time, then dropped to$14.99 for quite a while.

Games like Torchlight also tend to have a very long 'tail'. Look at Diablo 2 - The "Battle Chest" is still sitting on store shelves, which means it's still selling new units every month.

"The multitudes see death as tragic. If this were true, so then would be birth"

- Pisha, Vampire the Maquerade: Bloodlines

1656
Like
1Likes
Like

Posted 05 April 2014 - 04:05 PM

a too low price on a game infers lack of quality.

I suppose this is true to a point, but it's also true that people are more likely to impulse buy games that are in the $10 neighborhood...and there is some very good company down there. Just to name a few: Magicka launched at like$15, I got it for $10 very early in its life. Don't Starve cost me$10. I still love that game.
FTL cost \$10 at launch...and shipped a large free DLC pack (by Chris 'freakin Avellone) just this week.

finding bugs is the coders job. they should not be allowed to sign off on a section of code until it has been thoroughly tested and debugged BY THEM! Then others can have at it.

"Testing can reveal the presence but never the absence of bugs." Even with 100% unit test coverage and round-the-clock QA with a full staff (2 testers to each 1 developer) you still want to plan on your beta testers finding bugs. <3 Because odds are very, very high that they'll hit something weird that you all haven't found yet. That's much of the value of beta testing: a larger volume of monkeys hittin' the keyboard.

Edited by thade, 05 April 2014 - 04:06 PM.

I was previously serratemplar; a name I forfeited to share a name with an angry rank-bearing monkey.

### #51Mouser9169  Members

401
Like
0Likes
Like

Posted 05 April 2014 - 10:11 PM

finding bugs is the coders job. they should not be allowed to sign off on a section of code until it has been thoroughly tested and debugged BY THEM! Then others can have at it.

"Testing can reveal the presence but never the absence of bugs." Even with 100% unit test coverage and round-the-clock QA with a full staff (2 testers to each 1 developer) you still want to plan on your beta testers finding bugs. <3 Because odds are very, very high that they'll hit something weird that you all haven't found yet. That's much of the value of beta testing: a larger volume of monkeys hittin' the keyboard.

Gotta agree with this. All the things you listed (compiler showing all warnings, etc...) are good best practices, and will show any errors in syntax  or scope, but they can't show logic flaws. Code that 'works' perfectly fine, except it doesn't do what you wanted it to, for whatever odd reason. Unless you're saying logic flaws aren't bugs.

"The multitudes see death as tragic. If this were true, so then would be birth"

- Pisha, Vampire the Maquerade: Bloodlines

### #52stupid_programmer  Members

2219
Like
1Likes
Like

Posted 06 April 2014 - 12:44 PM

So if you were the programmer of Ocarina of Time you would have fixed all these bugs before the game shipped?

I will echo the comment that if the only feedback you get from the game is "it's awesome", you need to find better testers then friends, family, and former players.  There are things wrong with you game and there are design decisions you made that people won't like.  If people are already biased towards your game then they won't mention the little things they think are wrong.  You need some assholes that have never heard of your game to try and rip it apart.  Hopefully this is what you are trying to do with the beta.

It may not be a fair comparison, but you game does sound a lot like "Rust" that is in beta on Steam.  Visually, Rust is light years beyond your game (maybe your screenshots are super old so my comparison is off) and is cheaper.

### #53MarlboroKing  Members

252
Like
0Likes
Like

Posted 07 April 2014 - 10:13 PM

Hidden RDTSC instruction - Awaits if a debugger is present. Basically is just a hidden windows timer, akin to GetTickCount, but screwed up in the byte code.

Runtime functions - Use VirtualProtect (or similar for your OS) and implement it. Is a lot of fun and you'll learn a lot.

Implement a random obfuscation virtualization environment. Hard, but not as hard as one would perceive. You'll just need to dive into the PE format (agian, for your OS, mine is Windows..), it's honestly quite intriguing.

### #54Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 09:36 AM

So when you say your game is "as big as Skyrim", do you mean the game world is the same size, or does Caveman have as much content in it for the player to do as Skyrim does?

the game world is 2500x2500 miles in size, and you can walk all the way across it (barring any oceans in the way). you can build rafts and sail across the oceans. and NO LOADSCREENS! all assets are loaded at program start (about 10-20 seconds load time). walk speed is about 4mph. the game runs in realtime (but has accelerated time too!). you have to sleep in caveman, like in the sims, but we'll ignore that for now. so if you walked across the caveman world in reatime without sleeping it would take you 625 hours of real time (26+ days).

I believe Daggerfall is the largest commercial RPG ever produced (It would take real life weeks for a character to run from one side of the world to the other - they tested it).

Good point. running speed in Caveman is twice walking speed - so, again ignoring the need to sleep, we're at 13+ days (2+ real life weeks @ 24 hours a day) to RUN across the world without using accelerated time, cross country travel, or the teleport playtesting cheat. if you used sprinting in Caveman when not fatigued, it might speed that up a little.

the game world contains 60,000 caves, which can be unoccupied, or occupied by animals or cavemen.

it contains 5000 rockshelters - which are similar to caves, but only found along cliffs.

it contains 18,000 huts, which are occupied by cavemen.

it contains 20,000 caverns, which are the equivalent of a dungeon level, or a doom level, or a cave level in skyrim. caverns are generated when you enter them the first time,  and saved when you leave. when you return, they are reloaded.   caverns repopulate over time.

a new world is generated each time you start a new game - so its random, not hard coded content like skyrim.    the entire world is saved when you save a game, so its persistent.    and you can build and demolish structures, etc, so its modifiable.

the game also models changes in terrain and occupants of shelters.  so berries and fruit come and go with the seasons, vegetation coverage can change over time as the climate changes. cave and rock shelters can change occupants from time to time. new huts can spring up, old huts can be abandoned, as the cavemen move on to greener pastures.

so thats how big the world is.

how it stacks up in other respects:

the game has more than the average number of weapon types - 65  types of weapons - and none are made up. this is partly due to the fact that any tool that can be used as a weapon is considered both a tool and a weapon.

there's no magic in the game, so comparisons in that category can't really be done.  the closest thing to magic in caveman is high quality objects, god artifacts, an god effects.

the game includes objects and armor, but in numbers typical for such games (300+, and ~30? respectively).

caveman has over 50 types of "monsters" - so far.

there are no classes, instead there are skills, 48 or so of them. only 5 or so are weapon skills.

you can cook over 30 types of food, and yes there's a cooking skill.  since its a person sim, like the SIMS, food is required, unlike skyrim, where its just a weak powerup in a shooter game.

but the place where caveman is REALLY big, is in the actions. like the sims, you can select things and interact with them.  i've never calculated the total number of actions in the game since its so large. i know its over 1000, perhaps as high as 10,000 or more. it has over 100 generic action class handlers, each of which handles an entire class of actions (all repair actions, all cooking actions, etc).

by comparison, in skyrim you can open a container, sleep in a bed, open a door, sit, use smelter, use forge, use grindstone, use armor table, use alchemy lab, use arcane enchanter, pull chain / throw lever, and cook. did i forget any?   of course this is not a fair comparison, as skyrim is a quest based rpg shooter with some interactive/open world elements, not a person sim.

open world play is another "big" feature of caveman. there are quests, but they are optional.  unlike skyrim, the game is primarily about open world play (think original table top D&D role playing, caveman style), not primarily about completing quests. when i evaluated skyrim, open world play was the first thing i evaluated. i found it to be not-so-great. again, not a fair comparision, as skyrim is designed to be an immersive quest based shooter, and caveman is an open world rpg / person sim.

and then there's replayability. Caveman is designed for maximum randomness. nothing is hard coded, everything possible is random. The whole idea is it should be random enough that even i as developer can play and enjoy it without knowing what will happen next in the game. so everything is randomly generated at game start or when you first encounter it (IE cavern level maps).  the game does not use hard coded spawn points, except for occupied caves and shelters. all other encounters and events are random.

by contrast, skyrim is entirely hardcoded, same map, same dungeons, same quests, same NPCs - every time you start a new game.  while evaluating it, i created new charcters to test each thing. so i made a fighter for open world play, a dragon slayer, an imperial, a mage, a stormclock, etc.   by the time i was done evaluating it for work, there was little game left for me to enjoy as a fan of the elder scrolls!

Edited by Norman Barrows, 10 April 2014 - 09:43 AM.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #55Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 10:06 AM

"Testing can reveal the presence but never the absence of bugs."

true. testing confirms correct implementation. absence of bugs can only be guaranteed by code design, and only under some circumstances.

IE:

void main()

{

}

contains no bugs (obviously) - and lets not get nit picky here folks - i think you get what i'm trying to say.

its only code that you can't tell by inspection if its bulletproof that you can't design to be 100% bulletproof. then you have to rely on testing or theoretical calculations of edge cases, etc. the sad fact is that its not really possible to path test any code with all possible inputs, if that code is of any significant size. and non-deterministic code makes it even more difficult.

and the problem gains an order of magnitude once you get into integration testing. bulletproof by inspection becomes even more difficult. you may be able to account for some cases, but seldom for all.

otoh, if you use a systems approach, you can break down systems into subsystems until they can be made relatively bulletproof (bullet resistant? <g>).   Then you can build up systems in a bulletproof manner. this tends to minimize bugs of all types getting through.

bugs are inevitable because hardware and software are made by humans.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #56Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 10:33 AM

So if you were the programmer of Ocarina of Time you would have fixed all these bugs before the game shipped?

absolutely! assuming i could find them. when building a complex system like that where every bit interacts with all the rest, you have to take into account the ramifications of their being combined. the more bits you add, the more connections possible, and the more you have to account for. not thinking through all the possible the effects of a feature results in stuff like random town encounters with vampires, cultists, and thieves killing all the merchants in Skyrim - rendering it eventually unplayable. there they had a spawn point level based design, and added random encounters that could kill off required NPCs. so they modeled random encounters that can kill npc merchants, but they didn't model killed merchants getting replaced by new npc merchants - which is required for a balanced simulation that will run correctly long term. in fact i don't think anyone gets replaced if they're killed in skyrim, except guards and dark brotherhood followers, and i'm not sure about the dark brotherhood followers, never lost one.  i lay the stripped dead bodies of the merchants in the middle of the street out on display.  as a persistent corpse, they can be used as safe containers that don't repop.

Edited by Norman Barrows, 10 April 2014 - 10:38 AM.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #57Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 11:10 AM

It may not be a fair comparison, but you game does sound a lot like "Rust" that is in beta on Steam.  Visually, Rust is light years beyond your game (maybe your screenshots are super old so my comparison is off) and is cheaper.

it seems the only things in common are that some parts of rust have a paleo-type setting.

rust is a mmo about survival and crafting. it seems to start paleolithic, but goes beyond that apparently. the developers themselves say they're not sure where they'll go with the game.  nice rocks though! i'll have to do something like that.

caveman is a simulator. like a flight sim, or a sub sim, or any other full tilt hard core vehicle simulation software. only difference, you're driving a caveman. so its all about simulation realism first, and pretty but unrealistic graphics second. in fact, the game was designed specifically that way. most game devs seem to pick a graphics engine, then build what game they can with the remaining clock cycles. caveman is done the other way. you build the game, and what clock cycles are left, you draw everything as good as you can. an example: caveman uses rigid body animation for monster and npcs, allowing more monsters and npcs onscreen at once. its doubtful that today's hardware could run it if it used traditional skeleton and mesh deformation models.  can games draw over 100 npcs onscreen at once with mesh deformation and no slow downs?   the most i've ever seen in skyrim is about 20-30 in the rebellion campaign battles. and the bodies disappear as soon as you kill them! if you're quick, you can loot them first.    ; )

graphics in caveman are designed to attempt to mimic real life terrain. as such, plant and tree density is much higher than most games. so instead of going for woods effect with a few trees, caveman attempts to draw true dense woods. requirements of the simulation can also dictate how graphics are done. caveman requires sky and cloud graphics that can be driven by the weather engine. also, it has to run on a single low end pc - both the simulation, and the graphics. the graphics still have a long way to go in many respects.  but i'm only one guy, and i know where i can, and cannot compete. a graphics arms race can only be won by the dominant player in the market.   also, graphics don't make a game, just look at minecraft.

Edited by Norman Barrows, 10 April 2014 - 11:25 AM.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #58Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 11:35 AM

Code that 'works' perfectly fine, except it doesn't do what you wanted it to, for whatever odd reason. Unless you're saying logic flaws aren't bugs.

first you write it, then compile it, then run it and test it to make sure it works as intended. this eliminates logic flaws - but only in that bit of code. there's still integration errors to deal with, when you hook up two or more good pieces of  code incorrectly. and then sometimes there's odd ball edge cases that nobody ever thought of.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #59Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 11:56 AM

Hidden RDTSC instruction

no good: false positives if they alt tab away - correct?

i have high rez timers on the game loop i could query for excessive frame time (indicating debugging actions going on), but same difference, false positives from alt-tab.

i think there are other way's to detect a debugger. haven't finished reading all the links i saved on the subject. i plan to do a posting to my gamedev info journal, but there's a TON of info!

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #60Norman Barrows  Members

6339
Like
0Likes
Like

Posted 10 April 2014 - 12:14 PM

Runtime functions - Use VirtualProtect (or similar for your OS) and implement it. Is a lot of fun and you'll learn a lot.

so you DL some code to the client, and use:

BOOL WINAPI VirtualProtect() to set PAGE_EXECUTE ?

but they could still get a memory dump, couldn't they? then make their own code?

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.