두수앞 7. 출시

바르고·2022년 10월 31일
0

지지부진 끌던 앱이 출시 되었다.
사실 허술한 부분이 한 둘이 아닌데 이제 그만 맺음이 필요하다 싶어서 제출했다.

다너다너를 2월부터 7월까지 만들고 두수앞은 7월부터 10월까지 만들었다.
둘 다 진득히 노력한 시간은 1/5도 채 안 될듯 싶다.

사실 안드로이드 스튜디오를 열고 몇 줄을 치면 금새 몰입해서 하지만
거기까지 마음이 가지 않으면 그냥 안 하곤 했다.
틈틈히 유튜브에 5-10분짜리 영상이 올라오면 챙겨 보는 편이지만
왠지 그럴 마음이 아니면.. 영 내키지 않는다면 하지 않았다.

하다가 축구보고 사진 찍으러 나가고 풋살 하러가고 글 끄적거리고 넷플보고..
하고 싶은 거 하다가 코드를 쳐 보고 싶을 때 종종 하곤 했다.
친구가 코딩을 취미로 하는 것 같다고 했는데 그게 맞는 것 같다.
이게 일로 다가온 다면 생각했던 것처럼 행복하지 않을 수도 있겠다고.

사담은 여기까지 하고 두수앞에서 경험 하고자 했던 건
Firebase를 이용한 서버 데이터 송수신과
Provider를 이용한 로그인 및 상태제어

둘 다 어찌저찌 건드렸지만 그 헬리콥터 짤처럼 날라가 버렸다. 안녕.
프로 크리에이터로 만든 앱 로고는 마음에 든다.

스스로의 힘으로 StagePage에 필요한 문제를 짜는 로직을 구현하는 것까지가
사실상 이 앱을 만드는 성취감의 끝이였다.

//한 자리 수 덧셈
import 'dart:math';

class PlusQuestion {
  int count;
  List digital;
  PlusQuestion({required this.digital, required this.count});

  List<int> getQuestion() {
    //final question = Provider.of<QuestionProvider>(context);
    var rng = Random();

    List<int> num1 = List.generate(
        count,
        (int i) =>
            rng.nextInt(((pow(10, digital[i]) - pow(10, digital[i] - 1)).toInt())) +
            pow(10, digital[i] - 1).toInt());
    return num1;
  }
}

class MinusQuestion {
  int count;
  List digital;
  MinusQuestion({required this.digital, required this.count});

  List<int> getQuestion() {
    //final question = Provider.of<QuestionProvider>(context);
    var rng = Random();

    List<int> num1 = List.generate(
        count,
        (int i) =>
            rng.nextInt(((pow(10, digital[i]) - pow(10, digital[i] - 1)).toInt())) +
            pow(10, digital[i] - 1).toInt());
    num1.sort();
    return num1.reversed.toList();
  }
}

class MultiQuestion {
  int count;
  List digital;
  MultiQuestion({required this.digital, required this.count});

  List<int> getQuestion() {
    //final question = Provider.of<QuestionProvider>(context);
    var rng = Random();

    List<int> num1 = List.generate(
        count,
        (int i) =>
            rng.nextInt(((pow(10, digital[i]) - pow(10, digital[i] - 1)).toInt())) +
            pow(10, digital[i] - 1).toInt());
    return num1;
  }
}

class DivideQuestion {
  int count;
  List digital;
  DivideQuestion({required this.digital, required this.count});

  List<int> getQuestion() {
    //final question = Provider.of<QuestionProvider>(context);
    var rng = Random();

    List<int> num1 = List.generate(
        count,
        (int i) =>
            rng.nextInt(((pow(10, digital[i]) - pow(10, digital[i] - 1)).toInt())) +
            pow(10, digital[i] - 1).toInt());
    int sum = num1.fold(1, (total, element) => total * element);
    num1.add(sum);
    num1 = num1.reversed.toList();
    num1.removeLast();
    return num1;
  }
}

매우 읽기 불편하다. 지금 봐도 뭔 소린지 모르겠다.
분명 다너다너에서 스파게티를 만들고 개선하겠다고 새 앱을 시작했는데..

그래도 처음 서버를 (빌려서) 이용해 데이터를 올리고 받는 것을 구현해보니
뭔가 무엇이든 해볼 수 있겠다는 열정과 희망 같은 것이 꿈틀거렸다. ((어차피 서버는 빌려오는 것이니..)

혼자서 앱을 꼼지락대다 보니 왜 분업이 필요한 지 단위 마다 느끼고 있다.
무엇보다 사소한 부분의 애니매이션의 유무가 앱의 완성도를 크게 올려 준다고 느낀다. (대충 개발해도 모션만 유려하면 좋아보일 듯)

계획대로 다음 예정인 게임을 위해서는 애니매이션이 사실상 필수에 그 이상을 바라봐야 할 텐데..
음향도 필요하고 복잡한 구조도 다룰 수 있어야 할 텐데.. 시작도 전에 걱정이 태산이다..
전에 만져봤던 Aseprite 이용해서 도트게임 만들듯..?

스토리, 게임장르, 게임성, 음향, 디자인, 애니매이션, 네트워크 ..

Omni chess, 4 pics 1 word, and Orbit 가 플러터로 만든 게임 앱이라고 하니 참고..
막 엄청난 RPG보다는 퍼즐 게임 위주로 시도하는 듯 하다. 사실 게임 전용 툴인 Unity가 있으니 뭐..
Flame이 game engine 중 그나마 Flutter를 지원해주고 있는데 저번에 찍먹하려다 돌아가지도 않아서 바로 후퇴했다.

게임은 역시 게임성. 오늘 풍착맨 방송에서 목표와 목적을 구분해야 한다고 했는데
게임의 목표는 엔딩을 보는 것이지만 목적은 재미를 느끼는 것에 있다고 말했다.
몰입하게 되는 게임을 만들고 싶다. 몰입 후엔 아 시간이 아깝지 않다고 생각 되는 게임.

어제 보드게임 카페에 가서 루미큐브를 했는데 게임 중에는 다른 생각 없이 오로지 게임에만 집중하게 된다.
배우기는 쉽고 마스터는 어려운 게임이 경쟁력이 있다는데 고려해서 잘 생각해 봐야지. 아마도 내일.
게임 박물관 같은 곳을 가봐야하나.. 헤이리에 있을텐데..

내가 바라는 목표는 열심히 만들어서 침대에 누워있기만 해도 돈이 들어오는..
목적은 성취감과 자기만족..이려나.. 결과물을 볼 때 되게 별거 아닌거지만 뿌듯함을 느끼듯이..
사실 만든 것을 다른 사람이 이용하고 편리함이나 재미를 느끼는 게 가장 큰 동기부여가 될 것이다.

27살의 가을이 지나가고 있다. 27이란 숫자가 참 좋다.
26처럼 둥글둥글 연약해 보이지도 않고 28은 너무 무거워 보인다.
3^3과 2 * 13, 4 * 7의 차이이려나.. 다음 세제곱수는 64이네. 그때까지는 열심히 살아야겠지..?

1-8
9-27
28-64
64-125
그럼 나는 125살쯤 죽으려나. 유년기 - 성장기 - 노동기 - 휴식기처럼 보이네..

나의 목적에 대해 다시 생각해 봐야겠다. 아마도 내일.

profile
바르고의 다락방

0개의 댓글