Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 25 Nov 2005
Offline Last Active Today, 07:03 AM

#5316342 Language decision crisis

Posted by on Yesterday, 11:10 AM

C++ is such a flawed language. For example the whole header/source seperation makes code hard to write and to read. Also const correctness is very annoying

Go is a baby toy compared to C++(no ternary, no custom iterators...).

Then I tried D, Nim and Rust. All of them are nice languages but they share a common weakness: they have very bad editor support(only very bad autocompletion).

I also tried Kotlin which is a very nice language(with very good editor support, IntellJ!), but it's based on the JVM which is a no go for me.

I end up using Haxe, which has better editor support than the other(it works more or less), but the engine I wanted to use(Luxe) of course doesn't work with the latest version(because of some bugs), but the VSCode plugin requires the new version.

Oh and C# isn't an option, I have two Mac using, Mono hating friends who already annoy me because I'm using Windows.

I've rarely seen such a variety of weak reasons for disliking programming languages. It looks like a psychological problem rather than a technical one: feeling guilty of not learning C++ properly, procrastinating with alternative languages, and believing (deep down) that you actually need to use C++.
Unless you commit to a non-C++ game engine (e.g. Unity uses C#) I suggest giving a second chance to C++ with Visual Studio 2015, GCC for a second opinion, and a humble learning attitude.

#5315870 Vulkan is Next-Gen OpenGL

Posted by on 19 October 2016 - 02:45 PM

nobody in their right mind will code in Vulkan (have you seen this "simple" Hello Triangle?).

This isn't a triangle example, it's a simple rendering engine for triangles with a RGB colour at each vertex that has an easy to find hardcoded triangle in the middle as an example of the example:
// Setup vertices
		std::vector<Vertex> vertexBuffer = 
			{ {  1.0f,  1.0f, 0.0f }, { 1.0f, 0.0f, 0.0f } },
			{ { -1.0f,  1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } },
			{ {  0.0f, -1.0f, 0.0f }, { 0.0f, 0.0f, 1.0f } }
		uint32_t vertexBufferSize = static_cast<uint32_t>(vertexBuffer.size()) * sizeof(Vertex);

		// Setup indices
std::vector<uint32_t> indexBuffer = { 0, 1, 2 };
In example code, the priority is calling the API properly, not good abstractions (which would be confusing).
EDIT: quoting loses links. The "triangle example" is https://github.com/SaschaWillems/Vulkan/blob/master/triangle/triangle.cpp from the well known Vulkan examples repository by Sascha Willems.

#5311043 Would you try a language if all you had to do was install a Visual Studio ext...

Posted by on 16 September 2016 - 01:40 AM

A VS extension is definitely a good substitute for a specialized IDE, but it's still an extra on top of an easy way to compile and run programs, which should be the first priority but often isn't.

There are a few common patterns of bad tools: pathetic support for Windows (experimental and/or obsolete and/or incomplete packages, or deliberate omission), enormous platforms (e.g. bundling Emacs or Eclipse) and invasive installers, and more rarely sucking portably (e.g. the convoluted privileged classpath parts and JDK/JRE redundancies in Java).


For example, when I tried Haskell I struggled with a slightly obsolete nonstandard installer using nonstandard file locations, and even if I managed to compile programs it deleted my PATH environment variable anyway. I was unusually motivated, otherwise I would have given up before downloading anything at the choice between Cabal and Stack and between the barebones GHC distribution, the big Haskell Platform and other variants.


Ease of update, preferably from sources, is also more important than IDE features.

#5309621 Working on a boardgame - looking for some ideas

Posted by on 06 September 2016 - 02:57 AM

To force characters to kill each other in a final fight, the rate of damage must (on the whole) exceed the rate of healing so that characters eventually die. This can happen in different ways:

  • Healing is limited by a resource, and that resource runs out. Or even better, healing is earned by hurting other characters more than you heal.
    For example, if healing is a consequence of audience cheering, the audience might become bored at a long fight and at insufficiently aggressive gladiators, improving the chances of boldly aggressive strategies.
  • Character movement allowance, attack range, speed and other contributions to tactical flexibility and DPS increase progressively, while healing ability doesn't improve. This enables and encourages enemy characters to rush, or snipe on, anybody who stops to heal, making healing a progressively worse move as the game progresses.

#5308972 What to consider for an RPG damage formula?

Posted by on 01 September 2016 - 03:44 AM

I think you should start from stats, work out test cased based on those stats, and find, or let the computer find, a formula that interpolates between the desired behaviour in each test case.

For starters, I don't think "attack" and "defense" are actual character stats: they are synthetic values, computed from what really matters to the player for the sole purpose of the damage formula.


Real characters could have:

  • general combat training
  • innate combat talent,
  • familiarity with their weapons and armour
  • familiarity with the opponent's weapons and armour
  • muscular strength and speed
  • quick reflexes
  • superiority of weapon/armour types (pairwise or in tiers)
  • quality of weapon/armour design (e.g. well balanced)
  • weapon/armour technology level (e.g. steel sword vs bronze sword)
  • quality of weapon/armour manufacture (e.g. incorrectly tempered steel that is more likely to bend or break)

And in fantasy settings:

  • cost/quality/rarity/quantity/strength of spells and magical items that buff of attacks
  • cost/quality/rarity/quantity/strength of spells and magical items that provide healing
  • cost/quality/rarity/quantity/strength of spells and magical items that protect the user
  • favor of the gods
  • current burden of hostile spells and curses
  • moon phases or other astrological trends and moments
  • countless other setting-specific factors and conditions


In a game many of these elements, even if important "in theory", would be deliberately ignored as irrelevant ((e.g. aircraft combat only -> no strength)), not interesting (e.g. metallurgy is considered not heroic) or counterproductive (e.g. weapon types are few and weapons of the same type are assumed to be identical because weapons are scarce and randomly getting a "wrong" or inferior one would be a problem), flattened to irrelevance (e.g. everybody is a knight of similar skill, training and equipment) or simplified (e.g. D&D treats innate combat qualities only in part as stats and mostly as belonging to the Fighter class or similar ones, which fight better than other people in a number of ways).

And some elements would be deliberately emphasized or downplayed, even to unrealistic extremes: in a game about the chosen of the gods, i.e. a kid, going on an epic quest to save the world combat training and experience should not be an important success factor for the protagonist, who should have little to learn and many decisive unique or magical items and resources to collect, while in a game about being the best gladiator in town magical aids should be illegal to begin with and no more than a nuisance for a smarter, stronger and better equipped opponent.

#5307329 Apocalypse/ Collapse of Civilization

Posted by on 23 August 2016 - 01:58 AM

A survival RPG in which the player character's well-being depends on inventory and friendship with AI agents imposes a lot of disagreeable constraints on the "apocalypse":

  • The disaster must be fairly advanced, with the game set when society is already collapsed, after the interesting slow initial period in which people attempt to prepare and adapt with increasingly desperate measures (not catching the plague, escaping the enemy, containing the zombies, avoiding the war, etc.) but are not forced into a survival adventure.
    Things can go from bad to worse (for example, you might be reduced to hunt rabbits for food until you begin finding disgusting mutant ones) but not really from good to bad.
  • Most natural catastrophes aren't bad enough. A game about finding food, water and shelter for many days until rescue ships reach a tsunami-blasted island or until the first helicopters are able to fly into a burning city would be emotionally weak. A true collapse of civilization requires a global problem and a relatively long time to cook.
  • If civilization is over, shouldn't NPCs be hostile and self-interested? Can a friend be more useful than a slave?

#5304226 There's Too Much Space In Space (Cover/strategic Depth In Turn-Based 4X S...

Posted by on 05 August 2016 - 10:49 AM

Actually I would love to do a simultaneous movement system like it was used in Frozen Synapse for example, both for it's tactical possibilities and entertaining replays. ;)

The point of my suggestion (and others) is eliminating tactical movement in a boring "arena" of empty space and focusing instead on strategic movement around interesting and important places. Using large enough battlefields that contain interesting features is a valid but completely different approach.


There are many possibilities; for example, a technological setup that leads to building carefully designed fortresses and not fighting anywhere else could be

  • All ships have an instantaneous jump drive, cheap enough for private vehicles, escape pods, drones and missiles, etc. fast to use (a few seconds between jumps), and long range (at least a whole galaxy). 
  • The jump drive cannot be used around reasonably affordable emitters of special forcefields, that can cover whole planets with a handful of devices.
  • Planets, mining operations, space stations, spaceships themselves, sometimes even stars are protected against invasions by jump drive using this technology. Any attacker has to jump at a significant distance from their objective and use good old thrusters.to charge in. 
  • Everything of importance is surrounded by fixed fortifications.(including flying defense fleets). Keeping fleets in reserve to jump into the battlefield when an attack begins is usually too slow to be an effective strategy.
  • Ships can easily escape from battle by jumping to random places or back home. Very good defense systems are needed to turn hit and run assaults into hit, get hit and run.
  • Strategy would consist of keeping on top of the arms race, not leaving weak spots in fortresses, exploiting weaknesses in enemy fortresses, and choosing what deserves to be attacked or defended.

#5303752 Virtual Machines

Posted by on 03 August 2016 - 12:55 AM

Replace your computer and make the world a better place by destroying an Intel integrated graphics adapter. You deserve more than fighting with Intel OpenGL drivers.

#5303600 There's Too Much Space In Space (Cover/strategic Depth In Turn-Based 4X S...

Posted by on 02 August 2016 - 01:43 AM

While squad games like XCOM have a whole range of level architecture at their disposal to create choke points and personal cover, space combat seems a bit like group jousting to me - two parties line up at their respective side of the map and charge upon each other until one of them gets in shooting range.
This contains an assumption: that there are parties and that they have a chance to "line up" before a deliberate assault. Many other types of military interaction are possible, and with the appropriate choices of technology, and game scale and rules they can be prevalent. For example:


Fleets detect other fleets at very long range, well before weapons can be used. All you know of the enemy is a number of blips on the map, who knows where they are now. When fleets come into weapon range, shooting everything as efficiently as possible or sneaking away with stealth technology are the only reasonable options, and the latter can be impossible if unwanted; no need for tactical battle management.

Large forces try to surround small ones, small forces try to guess holes in the enemy battle lines, many campaigns have the purpose of merely steering the enemy away from where they want to go. In a typical turn-based 4X the usual kinds of locations would provide a sufficiently dense environment of objectives and obstacles (e.g. how could the enemy reach a certain planet before my forces?), strategic-scale fleet positioning is decisive, a simultaneous movement system is probably more intuitive.

#5302926 An Algorithm To Decide The Cost Of Skills/techniques.

Posted by on 28 July 2016 - 08:18 AM

One thing I thought was interesting about it was that powers increased exponentially while the costs increased linearly (kind of).
Such a cost scale is typical of roleplaying games, where decency and gamemaster control ensure diminishing returns for very high power levels (i.e. few battleships to lift, and only in appropriate cases).

In a videogame exploitation of cheaply obtained high power levels is more likely; exactly the sort of thing that should be playtested out of existence.

#5301474 Slavery, Include Or Not?

Posted by on 20 July 2016 - 01:38 AM

In a honest and realistic game about triangular trade, the player has to be able to trade slaves, and trading slaves has to be a major part of any good strategy (because there aren't enough other commodities that can be exported from Africa). This gives the players a choice between being evil in the game's fiction and losing the game.

If you don't want a grim/educational game in which slavery is a moral issue or a callous game in which slavery is appreciated as a smart business plan, the main way out of the dilemma is not making the game about ship trading after all, to avoid the use of slave trading as a move within the game. For instance:

  • The popular Puerto Rico boardgame is about developing an American colony with city facilities and plantations. The masses of slaves working at whatever the players build are completely implicit: "workers" in the game arrive by ship in small numbers, and represent (with some ambiguity) European emigrants and big shots.
  • A game about pirates robbing random ships would make the players not responsible for loading a particular ship with slaves, and rules about humanely and usefully recycling captured slaves as pirates, colonists etc. instead of selling them might be reasonable

#5299453 A Game Design Idea

Posted by on 07 July 2016 - 01:49 AM

Since you seem already aware that approaching a large project alone without experience is an irrationally optimistic endeavour, I'll just point out less fatal issues:

  • You might be underestimating your difficulties with English vocabulary and grammar (a time machine "conflicting" the future, a  "highly technology advanced world", a "loveable" future, "reciting" your idea, and so on): a potential major problem for in-game dialogue, for promotion of your game, and possibly for collaboration with others.
    You have studied English well enough to make your native language not obvious, but much remains to be acquired. Read more English books and articles.
  • You don't appear to be starting your game design process from the beginning.
    For example, you mention "a very detailed non-level-based system", but details and levels of what? I can guess you mean, in a RPG context where the "intelligent boy" is the protagonist, character details and the traditional design pattern of experience levels, but the mentioned premise of a time-traveling boy in trouble is suitable for many different types of game.
    Even worse, how can you tell you want character details and you don't want experience levels before you establish the design objectives of your game rules and at least a vague idea of what the player would do with them?

#5297556 Storing Signed Distance Fields

Posted by on 22 June 2016 - 03:24 AM

  • Do you need to combine elementary distance functions and render their sum, product etc. (for example, "metaballs" composed of several spheres)?
  • Do you really need to keep around SignedDistanceFunction objects, i.e. old brushstrokes? Forgetting them after applying an "edit" once would seem the most efficient course of action.
  • What do you need to store in your voxels, apart from the 1-byte material code?
  • How are you going to render your voxels? Their representation has to be suitable.

#5296301 Using Pathfinding Efficiently

Posted by on 13 June 2016 - 04:03 AM

I strongly recommend using a profiler; in particular, line_profiler, which works with Python 3 and gives line-by-line data. 

In this particular case a profiler would give you not only timing data, but also an immediate indication of abnormal counts of function calls. For example, in a map with enough impassable walls A* should expand only the nodes on the optimal path and the adjacent walls; if it expands more you have a bug

#5293510 Plane equation, + or - D

Posted by on 26 May 2016 - 12:51 AM

If you like dot products, Ax+By+Cz+D=0 corresponds to (A,B,C,D) dot (x,y,z,1)=0, consistent with the popular use of homogeneous coordinates with 4 by 4 transformation matrices and 3D points (x,y,z) conventionally represented as (x,y,z,1).