Blender: Screencast Key Status Tool

Ativar no blender 2.73 o Screencast Key Status Tool, que permite ver as teclas que estamos a usar, basta fazer o seguinte:
1) ir a:
LINK

2) clicar no link à frente de:
Current version download e copiar todo o conteúdo para memoria CTRL+C

3) voltar ao blender e mudar o mode de vista no blender para text editor

4)ativar a opção para colar, e fazer RUN SCRIPT

5)voltar ao modo de visualização 3D e activar o script usando a tecla
CTRL+ALT+C

done.

Tags : ,

videojogos: ferramenta Stencyl

A explorar esta ferramenta visual para o desenvolvimento de videojogos.

+infos: http://www.stencyl.com/

 

Tags : , ,

Unity Tutorial: The Fundamentals (Section 1)

Aqui fica o link para uma série de tutorias do Unity :)

+infos: LINK

Tags :

Empresa Marmalade abre um estudio em Portugal

A empresa de desenvolvimento de videojogos multi-plataforma vai abrir um estúdio em Portugal :)

+infos(noticia): LINK

+infos(empresa): https://www.madewithmarmalade.com

Tags : , , ,

Os quatro primeiros dias de um videojogo.. (Sproggiwood)

Uma explicação sobre o que são os primeiros quatro dias de um videojogo..  o “Sproggiwood”

+infos: LINK

Tags : ,

“The Player Lifecycle” por Ricardo Vladimiro

Um artigo que fala acerca da “promoção” do jogo junto do jogador..

+infos: https://ongamesndata.wordpress.com/2015/07/10/the-player-lifecycle/

Tags : , ,

artigo: “Some things you should know about Steam”

Recomendo a leitura deste artigo:
Some things you should know about Steam

+infos: LINK

Tags : ,

Gostava de ter acesso..

Gostava de ter acesso a este paper:
Emerging Research Challenges in Computer Games and Software Engineering

 

Tags : ,

presskit() “spend time making games, not press”

O presskit() é uma ferramenta para construir rapidamente uma página para fazer publicidade a um videojogo :P

+infos(oficial): http://dopresskit.com/

Tags : , , ,

How Video Games Make You Work por Simon Parkin

a ler..

My virtual employment history lacks, some might say, a certain focus. In the 1983 arcade game Tapper, I spent a summer as a bartender, sliding jugs of Budweiser with showboating precision along polished tables, to the delight of patrons. Paperboy, from 1985, had me bicycling up and down a suburban street, hurling newspapers into the mailboxes of subscribers, and taking the odd moment to vandalize the home of any non-subscriber. (The print industry’s decline commenced, I maintain, with my retirement from that gig.) SimCity, from 1989, landed me a role as a municipal planner, arranging the layouts of streets, placing electrical lines and sewage plants, and rolling with the odd natural disaster. Crazy Taxi (1999) put me behind the wheel of a low-slung cab, streaking through major cities to deliver passengers to their implausibly urgent appointments at Pizza Hut or Tower Records. There’s more. Shenmue (2000): forklift driver. Diner Dash (2004): server. Cooking Mama (2006): chef. Air Traffic Chaos (2008): air-traffic controller. Where some might see a drifter, I see only an enviable talent for adaptation.

Video games usually offer the chance to escape the mundane texture and circumstances of everyday life, by pushing us into situations and roles that are too dangerous, expensive, or rarefied for reality. We become the marine, the race-car driver, the fighter pilot, the international soccer star. But many games mimic the rhythm and monotony of more familiar jobs, allowing us to rehearse or reënact a working day once we’ve clocked out. In most cases, the designer zeroes in on the most interesting challenge or nuance of a profession, and turns it into a game. But in some titles the re-creation is more thorough.

In Sunset, a recently released game by the Belgian husband-and-wife team Tale of Tales, you play as a housekeeper, employed to clean your wealthy employer’s luxurious nineteen-seventies penthouse apartment for an hour each day. He leaves a to-do list for you each morning: “hang pictures,” “water plants,” “clean ashtrays,” and more. The game’s designers use this structure to meaningful effect: the hour becomes a lens through which you explore and understand a political revolution that’s taking place outside the apartment. But the labor of the gameplay is not metaphorical. You come to carry out your duties with a sense of pride and diligence; the routine becomes ritual.

The relationship between work and play is inherently entwined—there would, after all, be no PlayStation without the workstation. The link is clearest, perhaps, in a genre of simulation games that has enjoyed a surge in popularity in recent years. Car Mechanic Simulator, an unironic video-game approximation of the trade, became a best-seller in its first week of release, in late April. It’s just the latest simulation game that seeks to replicate working-class professions; the list includes Farming Simulator (gather crops), Oil Platform Simulator (drill for fossil fuels), Stone Quarry Simulator (collect rocks), Street Cleaning Simulator (collect litter), Euro Truck Simulator (deliver goods), and Tokyo Bus Guide (deliver passengers).

In a few cases, such simulations are authentic enough to be considered legitimate training for the profession itself. Time spent using military-grade flight simulators, for example, can count toward a pilot’s official flight-time record. Last year, a number of players of the Football Manager series of games submitted résumés for the job of managing Manchester United, in the U.K., citing their in-game achievements as qualifications. And each year the Japanese car manufacturer Nissan runs a competition using the driving-simulation game Gran Turismo, to find new racing talent. Lucas Ordoñez, the winner of the inaugural competition, in 2008, has become one of the company’s leading competitors on the professional track.

But this does not explain the success of games that simulate toil that has no relation to our professional interests. In Farming Simulator 2015, which was released for consoles in May, you simply cultivate crops on three plots of land, plowing, sowing, fertilizing, and harvesting your way toward a profitable agricultural business. In time, you can buy livestock and even hire automated workers to guide your tractors and combine harvesters, to save you the hassle of toil. Unlike in Sunset, there is no larger story: the work, however tiresome-seeming, is meant to entertain and challenge on its own.

In his paper “Working for the Man: Against the Employment Paradigm in Videogames,” the critic Steven Poole argues that in fact most video games imitate a wage-slave paradigm. “They hire us for imaginary, meaningless jobs that replicate the structures of real-world employment,” Poole writes. He argues that this pattern represents a “surprisingly literal fulfilment” of Theodor Adorno and Max Horkheimer’s argument, made more than sixty years ago, that amusement in advanced capitalism is the extension of work. In America, players often speak of “beating” a game, that moment when they complete its primary demands. But in the majority of cases, Poole points out, they simply do what the game asks of them, like a diligent employee. Which is to say, games like Farming Simulator are, in a sense, labor, even though they are universally labelled as leisure. We work our way toward a reward or resolution. (This realization is mirrored in the recent rise of the “gamification guru,” who seeks to make jobs more appealing by adding a patina of play.)

Why, then, do we return to these demanding virtual worlds? Maybe because, in their fairness and consistency, games appreciate our hard work: toil diligently, and you will be rewarded and promoted. Life isn’t always so just. There is also the appeal of variety. To age is to see your choices narrow. We specialize young, by choosing our educational paths at school, then dive ever deeper into those specialties. But in a video game, one day you’re a carpenter (Minecraft), the next you’re a god (Populous). Or, perhaps, the true appeal of the virtual job is simply that we are free to clock out when we choose, or to quit entirely without penalty. In this way, we become the master of that to which, outside of the game, we are bound.”

+infos(link): LINK

Tags : ,

Programação em C ajudas

Site com ajudas sobre programação em C.

+infos: https://programacaodescomplicada.wordpress.com/indice/linguagem-c/

Tags : ,

Porto Summer of Code 2015

Porto Summer of Code é um evento dedicado aos estudantes finalistas de programação..

alguns prémios em jogo:
1º lugar: iPad Air 2 Wi-Fi 16GB
2º lugar: iPad Mini 2 Wi-Fi 16GB
3º lugar: Jawbone Up Move

:P

+infos: http://www.portosummerofcode.com/pt/

 

Tags : ,

Blender ajudas

encontrei aqui algumas ajudas com o blender,
http://gryllus.net/Blender/PDFTutorials/

 

Tags : ,

Sporting ganha a Taça de Portugal 2014/2015!

11112702_10152813178396555_881518865120547719_n

Tags :

Cognitive Benefits of Playing Video Games

Cognitive Benefits of Playing Video Games por Peter Gray

+infos(resumo): LINK

+infos(livro): LINK

Tags : ,

Smash Time por Bica Studios

Image1

+infos: https://play.google.com/store/apps/details?id=com.bicastudios.smashtime

Tags : ,

Pharablox por digitalMUTANT

11295730_10206805202154939_770794238023404806_n

 

 

+link: https://play.google.com/store/apps/details?id=com.dmutant.pharablox

Tags : ,

openfl

Mais uma ferramenta online mas desta vez com sabor a actionscript :P
+infos: http://www.openfl.org/

Tags : , , ,

Guião laboratorial n.º 3 – exercício 6

“O ficheiro “totoloto.txt” contém todas as combinações que saíram desde que o jogo do totoloto começou. Desenvolva um programa que leia do teclado a chave em que um jogador apostou e a compare com cada uma das chaves armazenadas no ficheiro, escrevendo quantos números comuns existem para cada chave.”

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TAM 6

void totoloto(){
FILE *f1;
int ch,i=0, k=0, aux=1;
int tnum=0,contalinhas=0;
int chave[TAM], chavebd[TAM];

f1=fopen("totoloto.txt", "r");

if(f1==NULL){
  printf("\nerro ao abrir o ficheiro");
  return;
}

//pedir numeros ao utilizador
while(tnum<TAM){
  printf("Qual o %d numero?", tnum+1);
  scanf(" %d", &chave[tnum]);
  tnum++;
}
//
printf("\na sua chave:\n");
tnum=0;
while(tnum<6){
  printf("%d\t", chave[tnum]);
  tnum++;
}

printf("\nesta e a chave guardada no ficheiro:\n");
while((ch=fgetc(f1))!=EOF){
printf("%c", ch);
if(ch=='\n'){
  contalinhas++;
}
}
printf("\ntotal de linhas no ficheiro: %d", contalinhas);
fclose(f1);
tnum=0;
//-----------------------
f1=fopen("totoloto.txt", "r");
while(contalinhas>0){
  fscanf(f1,"%d %d %d %d %d %d",&chavebd[0], &chavebd[1], &chavebd[2], &chavebd[3], &chavebd[4], &chavebd[5]);
  for(i=0; i < TAM; i++){
    for(k=0; k < TAM; k++){
        if(chave[i]==chavebd[k]){
          tnum++;
        }
    }
  }
  printf("\nna %d chave total de iguais: %d", aux, tnum);
  aux++;
  tnum=0;
  contalinhas--;
}


fclose(f1);
}


int main()
{
    totoloto();
    return 0;
}


ficheiro TXT usado:
1 2 3 45 44 5
22 2 3 45 44 5
27 2 3 45 44 24
1 2 3 45 44 13
33 2 3 34 44 11

Tags : , ,

Guião laboratorial n.º 3 – exercício 5

Desenvolva uma função que troque o conteúdo de dois ficheiros. Os nomes dos ficheiros são passados como argumentos da função.

#include <stdio.h>
#include <stdlib.h>

void trocaC(char *t1, char *t2){
FILE *f1;
FILE *f2;
FILE *temp1, * temp2;
char chO1,chO2;

f1=fopen(t1, "r");
f2=fopen(t2, "r");
temp1=fopen("temp1.txt", "w");
temp2=fopen("temp2.txt", "w");

if(f1==NULL){
 printf("\nerro ao abrir o ficheiro %c", *t1);
 return;
}
if(f2==NULL){
 printf("\nerro ao abrir o ficheiro %c", *t2);
 return;
}
if(temp1==NULL || temp2==NULL){
 printf("\nerro ao abrir o ficheiro temp");
 return;
}

//-----------------------copiar dos originais para o temporario
while((chO1=fgetc(f1))!=EOF){
fputc(chO1, temp1);
}
while((chO2=fgetc(f2))!=EOF){
fputc(chO2, temp2);
}
printf("\ncopia do ficheiro %c::%c para o temp com sucesso", *t1, *t2);
fclose(temp1);
fclose(temp2);
fclose(f1);
fclose(f2);

//-----------------------copiar do temporario para os originais
temp1=fopen("temp1.txt", "r");
temp2=fopen("temp2.txt", "r");
f1=fopen(t1, "w");
f2=fopen(t2, "w");


while((chO1=fgetc(temp1))!=EOF){
fputc(chO1, f2);
}
while((chO2=fgetc(temp2))!=EOF){
fputc(chO2, f1);
}
fclose(temp1);
fclose(temp2);
fclose(f1);
fclose(f2);

remove("temp1.txt");
remove("temp2.txt");
}


int main()
{
 char s1[20], s2[20];

 printf("Qual o nome do 1 ficheiro?");
 gets(s1);
 printf("Qual o nome do 2 ficheiro?");
 gets(s2);
 trocaC(s1, s2);

 return 0;
}

Tags : , ,

Guião laboratorial n.º 3 – exercício 7

“Considere a seguinte definição:
struct cliente{
char nome[200];
char morada[200];
int conta;
int montante;
};

a) Um banco tem informação armazenada sobre os seus clientes num ficheiro binário contendo estruturas do tipo struct cliente. Desenvolva uma função que escreva no monitor os nomes e os números de conta de todos os clientes que fazem parte do ficheiro. O nome do ficheiro é passado como argumento da função.

b) Desenvolva uma função que escreva no monitor o nome e o número de conta do cliente com o saldo mais elevado. O nome do ficheiro binário onde estão guardados os clientes é passado como argumento da função.

c) Desenvolva uma função que elimine uma estrutura do ficheiro de clientes do banco. A função recebe como argumento o nome do ficheiro e o nome do cliente a eliminar. O ficheiro a processar está ordenado alfabeticamente pelo nome dos clientes.

d) Desenvolva uma função que adicione um novo cliente ao ficheiro de clientes do banco. A função recebe como argumento o nome do ficheiro e a estrutura com a informação sobre o novo cliente (os campos da estrutura já estão preenchidos). O ficheiro original está ordenado alfabeticamente pelo nome dos clientes. A função deve garantir que a estrutura com informação do novo cliente é inserida no ficheiro na posição correta, de modo a que este continue ordenado.

e) Considere que o banco dividiu por dois ficheiros a informação sobre os seus clientes. Em cada um dos dois ficheiros as estruturas estão armazenadas por ordem alfabética do nome do cliente (não existem clientes com nomes iguais). O banco pretende agora reunir as estruturas num só ficheiro. Desenvolva uma função que permita realizar esta tarefa. Os nomes dos dois ficheiros originais e do novo ficheiro são passados como argumentos da função. No novo ficheiro, as estruturas devem continuar por ordem alfabética. Podem existir duplicações da informação de um
cliente (ou seja, o mesmo cliente tem uma estrutura em cada um dos ficheiros). Neste caso só uma delas deve ser passada para o novo ficheiro e o valor do montante deve ser a soma dos dois montantes existentes em cada uma das cópias.

f) Desenvolva uma função que escreva no monitor o número de bytes do ficheiro e o número de clientes que estão armazenados. O nome do ficheiro é passado como argumento da função.

g) Desenvolva uma função que crie um novo ficheiro em que a ordem das estruturas dos clientes apareça invertida (o primeiro passa a ser o último, o segundo o penúltimo e assim sucessivamente). Os nomes dos dois ficheiros são passados como argumento.”

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 100

typedef struct dados cliente;

struct dados{
  char nome[20];
  char morada[200];
  int conta;
  int montante;
};

void inserir(char *f, cliente *b, int *t){
//EXTRA: inserir registos no ficheiro caso nao exista o ficheiro!!
FILE *f1;
f1=fopen(f, "wb");
char r;
int i;
cliente *inicio = b;

if(f1==NULL){
  printf("\nerro ao abrir o ficheiro");
  return;
}

do{
printf("\nDeseja inserir um cliente novo?");
scanf(" %c", &r);
  if(r=='s'){
    printf("\nQual o nome?");
    scanf(" %[^\n]", &(b->nome));
    printf("\nQual a morada?");
    scanf(" %[^\n]", &(b->morada));
    printf("\nQual o numero da conta?");
    scanf(" %d", &(b->conta));
    printf("\nQual o montante?");
    scanf(" %d", &(b->montante));
    (*t)++;
    b++;
  }
}while(r!='n');

for(i=0; i<*t; i++){
  fwrite((inicio+i), sizeof(cliente), 1, f1);
}

fclose(f1);
}

void ler(char *f){
//EXTRA: ler registos no ficheiro !!
FILE *f1;
f1=fopen(f, "rb");
struct dados c;

if(f1==NULL){
  printf("\nerro ao abrir o ficheiro");
  return;
}
while(fread(&c, sizeof(struct dados), 1, f1) == 1){
     printf("\nnome:%s\tmorada:%s\tconta:%d\tmontante:%d", c.nome, c.morada, c.conta, c.montante);

    }
  fclose(f1);
}

void alienaA(char *f, cliente *b, int *t){
FILE *f1;
f1=fopen(f, "rb");
int total=0;

if(f1==NULL){
  printf("\nerro ao abrir o ficheiro");
  return;
}

fread(&total, sizeof(total),MAX*4,f1);
fread(b, sizeof(cliente), total, f1);

*t=total;

fclose(f1);
}

int main()
{
    cliente banco[MAX];
    int total=0;

   // inserir("banco.dat", banco, &total);
   ler("banco.dat");
   // alienaA("banco.dat", banco, &total);
    //printf("\ntotal registos: %d", total);
    return 0;
}

+ajuda: ORDENAÇÃO

Tags : , , , ,

SparkFun RGB and Gesture Sensor e o Processing

12787-01

Aqui está uma ligação simples entre o sensor da SparkFun RGB and Gesture Sensor APDS-9960 e o Processing. É necessário instalar o exemplo que está na página da Sparkfun. Fui testado no processing 2.1 e com uma board arduino uno. Fui também utilizado o exemplo do Arduino que está na página da Sparkfun.

//no arduino
#include <Wire.h>
#include <SparkFun_APDS9960.h>
#define APDS9960_INT    2

SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;

void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.println(F("--------------------------------"));
  Serial.println(F("SparkFun APDS-9960 - GestureTest"));
  Serial.println(F("--------------------------------"));
  attachInterrupt(0, interruptRoutine, FALLING);

  if ( apds.init() ) {
    Serial.println(F("APDS-9960 initialization complete"));
  } else {
    Serial.println(F("Something went wrong during APDS-9960 init!"));
  }

  if ( apds.enableGestureSensor(true) ) {
    Serial.println(F("Gesture sensor is now running"));
  } else {
    Serial.println(F("Something went wrong during gesture sensor init!"));
  }
}

void loop() {
  if ( isr_flag == 1 ) {
    handleGesture();
    isr_flag = 0;
  }
}

void interruptRoutine() {
  isr_flag = 1;
}

void handleGesture() {
  if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.write("U"); //up
        Serial.write("\n");
        break;
      case DIR_DOWN:
        Serial.write("D"); // down
        Serial.write("\n");
        break;
      case DIR_LEFT:
        Serial.write("L"); //left
        Serial.write("\n");
        break;
      case DIR_RIGHT:
        Serial.write("R"); //right
        Serial.write("\n");
        break;
      case DIR_NEAR:
        Serial.write("N"); //near
        Serial.write("\n");
        break;
      case DIR_FAR:
        Serial.write("F"); //far
        Serial.write("\n");
        break;
      default:
        Serial.write("NULL"); //null
        Serial.write("\n");
    }
  }
}
//no processing
import processing.serial.*; 
Serial porta;
int valor = 0;
int aX=200, aY=200;
int veloci=20;

void setup() {
  size(400, 400);
  porta = new Serial(this, "COM12", 9600);
}

void draw() {
  background(255,255,255);
  while (porta.available () > 0) {
    valor = porta.read();
    if (valor=='R') {   
      println("right");
      aX=aX+veloci;
    }
    if (valor=='L') {   
      println("left");
      aX=aX-veloci;
    }
    if (valor=='U') {   
      println("up");
      aY=aY-veloci;
    }
    if (valor=='D') {   
      println("down");
      aY=aY+veloci;
    }
  }
  ellipse(aX, aY, 50, 50);
}


+infos(sparkfun): LINK

Tags : , , , ,

The Marketing Guide for Game Developers

Indie-Resources-Indie-Guide

Um guião para o desenvolvimento de videojogos indie..

+infos: LINK

Tags : , ,

Mediterranean Game Jam

mgj_hero_text

“The Mediterranean Game Jam brings the Malta Global Game Jam formula to St. James Cavalier Centre for Creativity, an XVIth century fortress built on the bastions of the World Heritage listed city of Valletta.

Artists, musicians, writers, programmers and other creative people will come together on July 3-5, in the peak of the Mediterranean summer, to design and make games over 48 hours. Digital games, board games, and even playful experiences in and around the streets of the city are all possibilities.

Game development veterans to creative novices alike are welcome to join us for this exciting international showcase for new ideas, experimentation and collaborations.”

+infos: http://maltagamejam.com/

Tags :