Ultimi Commenti
sephirotVII
è un po' come nel mercato musicale , Kickstarter + youtube stanno dando la possibilità a molti artisti di poter dimostrare ciò che valgono e secondo me nel giro di qualche anno ne vedremo le conseguenze positive o negative che siano.
Sono due situazioni non comparabili. Se hai una bella voce e bla bla bla, fai qualcosa di compiuto senza spendere una lira. O quasi.
Per un videogioco, tutti sappiamo che non e' cosi'. A livellio di tempi, di costi e di fattori esterni al semplice "aver talento" (saper gestire persone/progetti/timeline).
Ergo, a un cantante dai i soldi sulla fiducia... ma hai gia una prova (ie: una canzone su YouTube) tangibile delle sue qualita' e virtu'
A una software house, dai soldi sulla fiducia (ie: idee innovative, artwork accattivante, pedigree di successo - quando va bene), sperando dopo 1/2/3 anni di avere un prodotto all'altezza delle tue aspettative.
E' per questo che parlo di puro Marketing... si parla di fomentare le aspettative dei finanziatori in base a promesse, promesse e promesse... che e' proprio quello che fanno i Big per vendere
A me sembra un non problema. E la non soluzione mi pare un attimo demagogica.
Partendo dal presupposto che chiunque sviluppi un VG, vuole sfornare un buon prodotto (e no, non e' sempre colpa delle multinazionali cattive se a volte vengono fuori ciofeche) questo metodo di finanziamente puo' funzionare solo con prodotti di nicchia. Necessariamente.
Se in un futuro (neppure troppo remoto) prendesse piede questa forma di finanziamento anche per tutto il resto del mercato in generale, il marketing - per assurdo - assumerebbe ancora piu' importanza.
Perche', alla fine, si parla di finanziare prodotti su una pura onda emozionale.
The Elder Scrolls III: Morrowind - Recensione del 31 maggio 2002 | Multiplayer.it
Nonostante qualche ingenuità, sottoscrivo tutt'oggi. Uno dei cRPG più importanti degli ultimi 25 anni (!!)
(e peccato per l'impaginazione alla pene segugis).
Hani, ammobasta pero'. Non c'e' bisogno di insultare o fare il bullo ogni 3x2.
Lasciamo che sia il comportamento di ognuno a descriverne la "statura" intellettuale o meno.
E questo vale per tutti 
Pendragon
come riassumere con un'immagine quel che ho cercato di dire in post su post
EPIC WIN
Ma sopratutto, a livello di meta-minchiam, mi chiedo come - secondo gli illustri gheim desiner - tu ti possa sentire libero di "essere chi vuoi" quando dopo un'oretta scarsa di gioco:
- uccidi un drago
- diventi l'unto del Signore
- frequenti i migliori salotti
- vai in giro con una guardia del corpo
Il peccato originale di Skyrym (e prima ancora di Oblivion) e' proprio questo. non e' tanto a livello di meccaniche o del loro contesto che - ripeto - son quelle dal '48 e a me non dispiacciono.
Ci fosse una storia dall'inizio piu' lento (tipo Morrowind, appunto, o Ultima VII per uscire dal seminato) uno potrebbe anche provare a fare il ladro, o l'agente segreto, il brigante, il barbaro ignorante.
Ma qui, a meno di non volere impersonare un politico, non ti riesce proprio di derubare i viandanti per strada o scassinare le case di notte. Non ha senso.
MadMaxHellfire
il polishiing di dragon age 2? coi forzieri in mezzo alla via?No, il polishing di una produzione media Bioware.
Cmq, a parte perniciose eccezioni. Quello che intendo e' che, ad esempio, trovo fastidioso il fatto che, spesso, la conversazione con un NPC si possa sovrapporre ad un altro dialogo tra lo stesso ed un altro NPC terzo. Rendendo il tutto cacofonico ed inverosimile.
O i nemici che ti inseguono per, letteralmente, mezzo continente nonostante tu sia a cavallo e loro a piedi.
E potrei anadare avanti con altri esempi.
Sono cose su cui passo sopra volentieri, ma sempre sintomo della "sindrome Bethesda" di cui parlavo prima.
Titolo illustre ma, da tradizione Bethesda, approssimativo sotto molto aspetti.
Manca il polishing di produzioni come quelle Bioware, intendo.
Nonostante il V capitolo e tanti - tanti - soldi dietro, si ostinano a proporre soluzioni che funzionano solo sulla carta.
Detto questo. Promossi.
Un solo appunto a Fulminato, Hani e' stato sapientemente in grado di riassumere il gioco con meno parole e con meno spoiler(s)!
gugand
Ultimamente vedo un sacco di progetti open source riprendere in mano il Java. Ero convinto fosse un linguaggio morente sostituito dal Python...E' grazie alle librerie grafiche per il 3D che ultimamente (5 o 6 anni mi pare) sono diventate piu' efficienti? Una volta il Java era un mattone mangia risorse.
Diciamo che da una parte le risorse hardware di un PC "medio" sono aumentate esponenzialmente mentre i requisiti di una virtual machine sono piu' o meno rimasti gli stessi (e, anzi, grazie a JavaFx e via dicendo Java in generale e' piu' ottimizzato per applicazioni multimediali).
Quindi ad oggi la pesantezza e' solo relativa.
Alla fin fine, Android, seppure utilizzando una JVM particolare (Dalvik) fa girare applicazioni Java sugli Smartphone
E poi si JME e Ardor su tutti sono ottimi motori grafici (on top of OpenGL, ovviamente). Poi Java, nonostante i suoi anni, e' ancora un linguaggio molto elegante (anche se C# e' decisamente piu' espressivo) e, sopratutto, gira piu' o meno senza problemi su ogni Sistema Operativo moderno.
Ragfox
Sono dei normali script per il comportamento dei PNG, dai.C'è anche un "Greatings" che urla vendetta, ma è solo un test.
Indeed (e non solo il Greatings!)
P.s.
Salgari!
grifis
uot?Si, manca ancora un nome. Anche se immagino che un nome in codice fico sia dovuto, in effetti.
Ora "siamo" solo (?) in fase di scrittura del framework (tutto in TDD! sono un po' un freak da questo punto di vista).
cose tipo
package com.lotec.elements.glue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import org.junit.Test;
import com.lotec.elements.IConditionsChecker;
import com.lotec.elements.ITrigger;
import com.lotec.elements.character.action.ActionRequirements;
import com.lotec.elements.character.action.ActionsDirectory;
import com.lotec.elements.character.action.IActionExecutor;
import com.lotec.elements.character.action.IActionsDirectory;
import com.lotec.elements.character.action.standard.AttackActionExecutor;
import com.lotec.elements.dialog.Conversation;
import com.lotec.elements.dialog.ConversationContext;
import com.lotec.elements.dialog.DialogLine;
import com.lotec.elements.dialog.IDialogLine;
import com.lotec.elements.dialog.IllegalReplyException;
import com.lotec.elements.dialog.NpcDialogLine;
import com.lotec.elements.dialog.PlayerDialogLine;
import com.lotec.elements.dialog.Reply;
import com.lotec.elements.scripting.groovy.ConditionsCheckerGroovyScript;
import com.lotec.elements.scripting.groovy.TriggerGroovyScript;
public class DialogsTest extends IntegrationTest
{
@Test
public void heroStartsADialogWithAMoron_andSparesHim() throws IllegalReplyException
{
ConversationContext context = setUpContext();
Conversation conversation = new Conversation(context);
conversation.addConversant(hero);
conversation.addConversant(mob);
setUpDialogTree(conversation, context, 10);
//Simulate the fact that the user choose the "spare" option
for (Reply reply : conversation.getCurrDialogLine().getReplies())
{
if (reply.getDialogLine().getText().equals("Hi moron, this time you're spared!"))
{
conversation.answer(reply);
}
}
assertEquals("Hi moron, this time you're spared!", conversation.getCurrDialogLine().getText());
assertFalse(conversation.isConcluded());
//Here MOB ai should elaborate the correct answer, now we just pick the first one
conversation.answer(conversation.getCurrDialogLine().getReplies().get(0));
assertTrue(conversation.isConcluded());
//Now, we expect the player to have more KARMA points
assertEquals(10, hero.getAttributeByName("Karma").getValue(), 0);
}
@Test
public void heroStartsADialogWithAMoron_charmAffectsTheDialog() throws IllegalReplyException
{
ConversationContext context = setUpContext();
Conversation conversation = new Conversation(context);
conversation.addConversant(hero);
conversation.addConversant(mob);
setUpDialogTree(conversation, context, 1);
assertEquals("Hello beautiful hero!", conversation.getCurrDialogLine().getText());
}
protected ConversationContext setUpContext()
{
ConversationContext context = new ConversationContext();
context.setPlayer(hero);
return context;
}
/**
* Set up a standard and reusable simple dialog tree
* @param minValueForCharmedStartingLine TODO
*/
@SuppressWarnings("serial")
protected void setUpDialogTree(Conversation conversation, ConversationContext context, int minValueForCharmedStartingLine)
{
IDialogLine defaultStartingLine = new NpcDialogLine("Hello hero!");
DialogLine startingLineIfHeroHasHighCarisma = new NpcDialogLine("Hello beautiful hero!");
final PlayerDialogLine unfriendlyPlayerAssertion = new PlayerDialogLine("I will kill you");
unfriendlyPlayerAssertion.addReply(new NpcDialogLine("You will die!"));
final PlayerDialogLine friendlyPlayerAssertion = new PlayerDialogLine("Hi moron, this time you're spared!");
final ITrigger increaseAttributeTrigger = setupTriggerToIncreaseAttribute(context, "Karma", 10);
friendlyPlayerAssertion.addTrigger(increaseAttributeTrigger);
friendlyPlayerAssertion.addReply(new NpcDialogLine("Greatings,"));
defaultStartingLine.addReply(unfriendlyPlayerAssertion);
defaultStartingLine.addReply(friendlyPlayerAssertion);
startingLineIfHeroHasHighCarisma.addReply(unfriendlyPlayerAssertion);
startingLineIfHeroHasHighCarisma.addReply(friendlyPlayerAssertion);
conversation.setDefaultStartingDialogLine(defaultStartingLine);
final ConditionsCheckerGroovyScript playerAttributeChecker = new ConditionsCheckerGroovyScript(
"resources/scripts/checkPlayerAttribute.groovy",
context);
playerAttributeChecker.setParameter("attribute", "Charisma");
playerAttributeChecker.setParameter("minValue", minValueForCharmedStartingLine);
conversation.addOptionalStartingDialogLine(startingLineIfHeroHasHighCarisma, new ArrayList()
{
{
add(playerAttributeChecker);
}
});
}
/**
* Init and register all the actions executors that will be used by the system
* @return
*/
protected IActionsDirectory setUpActionsDirectory()
{
IActionsDirectory actionsDirectory = new ActionsDirectory();
ActionRequirements attackActionRequirements = new ActionRequirements();
IActionExecutor attackActionExecutor = new AttackActionExecutor(new DamageCalculator());
actionsDirectory.registerAction("AttackAction", attackActionRequirements, attackActionExecutor);
return actionsDirectory;
}
protected ITrigger setupTriggerToIncreaseAttribute(ConversationContext context, String attibuteName, int amount)
{
final TriggerGroovyScript increaseAttributeTrigger = new TriggerGroovyScript(
"resources/scripts/increasePlayerAttribute.groovy",
context);
increaseAttributeTrigger.setParameter("attribute", attibuteName);
increaseAttributeTrigger.setParameter("increase", amount);
return increaseAttributeTrigger;
}
}
oppure tipo:
package com.lotec.elements.glue;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.lotec.elements.IGameWorldContext;
import com.lotec.elements.mission.IMission;
import com.lotec.elements.mission.Mission;
import com.lotec.elements.mission.MissionStatus;
import com.lotec.elements.scripting.groovy.ConditionsCheckerGroovyScript;
public class QuestsTest extends IntegrationTest
{
final String FLAG_PLAYER_HAS_A_JOB = "playerHasAjob";
@Test
public void heroMustFindAJob() {
IMission quest = createFindJobMission(gameContext);
quest.evaluate();
assertEquals(MissionStatus.IN_PROGRESS, quest.getStatus());
gameContext.setFlag(FLAG_PLAYER_HAS_A_JOB, true);
quest.evaluate();
assertEquals(MissionStatus.ENDED_SUCCESS, quest.getStatus());
}
private IMission createFindJobMission(IGameWorldContext gameContext)
{
IMission quest = new Mission();
ConditionsCheckerGroovyScript findAJobQuestChecker = setUpMissionChecker(gameContext);
quest.setMissionStatusChecker(findAJobQuestChecker );
return quest;
}
private ConditionsCheckerGroovyScript setUpMissionChecker(IGameWorldContext gameContext)
{
ConditionsCheckerGroovyScript findAJobQuestChecker = new ConditionsCheckerGroovyScript("resources/scripts/checkFlagIsTrue.groovy", gameContext );
findAJobQuestChecker.setParameter("flagName", FLAG_PLAYER_HAS_A_JOB);
return findAJobQuestChecker;
}
}
No, tutto bene. Sono nelle terra degli opportunisti da un annetto ormai - a mo di cervello in fuga.
Tempo per scrivere - ahime - non ve ne e' molto, anzi, non c'e'. Ed il tempo libero lo dedico al Golf e al mio cRPG ambientato nel lontano Uest. Di questo passo, esce il POC appena in tempo per TES VII.
Feanor83
mi chi cazzo è stato quel genio che ha deciso di far perdere i genere dei dungeon crawler a turni?Piu' o meno Bill Roper.
.Commodo.
Splendido gioco, splendido. Twinsen's Odyssey rimane uno dei miei giochi preferiti di sempre.Approvo, concordo, sottoscrivo e quoto.
super_stoppino
oh .. di falling skies non dite nulla? pare che sarà una produzione decente, dal 5 luglio alle 21 su foxi soliti alieni che invadono la terra, qui la storia è concentrata sulle persone, più che sui fatti, vediamo un pò che ne uscirà

Guardato distrattamente in TV la settimana scorsa, non mi ha impressionato particolarmente. Confezionato bene ma non e' andato oltre il compitino.
Infarcito di cliche' e cose gia viste.
Il gameplay puo' tutto.
La narrazione no.

Aggiungo, per concludere, che ben venga il Kickstarter di Wasteland 2 (si parla di un seguito, tra l'altro... eh eh) o Dead State. sono li in prima linea. Con elmetto e mutande di latta.
Ma... mi ricordo di gente che pago' in anticipo per... Elemental.
Tutto qui
Edit.
Elemental! Clone/Seguito spirituale apocrifo di... Master of Magic!
Giusto per dire che i seguiti ci sono perche' noi li vogliamo.