按照所有程序员的惯例,编号从0开始。本系列日志将记录一款独立游戏 发起->构思->设计->实现->完善->测试(如果需要)->上线->后期维护(如果有人玩) 的整个过程,分享一些经验、一些教训,舒展一些心情、一些人生。由于本人是在职开发人员,这件事情大半是业余的放松和消遣,所以时间预计会拖得很长,至少在半年以上,且更新不定期。

  开章第一篇,或者说第零篇,我要回答一些问题:为什么一个在职程序员要去做独立开发?为什么一只写了一天代码的程序狗回家后还要去写代码“消遣”?他tmd是不是已经疯了?不,并没有。想来,我接触计算机也有二十来年了。小学的时候老妈因为工作原因斥“巨资”买了台联想,赛扬的CPU,256M的内存,集成显卡,没有联网。就是这个十年前就进了博物馆的东西,对于当时那个名副其实的小学生,简直就是现实版的魔法水晶球啊!不知道有多少人还记得,当年Win98还是Win95的“我的电脑”属性页上有一个简单的动态效果:一台白色的电脑,电脑显示器上一个绿色的地球不停地自转。就这个任何游戏程序员一分钟就可以实现的东西,让我在很长一段时间内都坚定地认为这是一款“大作”的入口,以至于我的家人经常会看见我兴致勃勃地对着“我的电脑”的属性页发呆……游戏对儿童的天然吸引力后来越发不可收拾,爸妈给的零花钱几乎全部用来买盗版游戏碟了,买得太多怕被骂,于是偷偷藏在自己床头的柜子里。

  最终我一直以来“要成为一名伟大的科学家”的梦想被撼动了,我清楚地记得初中的某个下午我爸接我回家,我在摩托车后座上问他:“我长大以后去做游戏可不可以?”因为当时还是“电子海洛因”的时代,我隐约觉得自己的想法不是那么“主流”。出乎意料,我父亲没有表现出任何的惊讶和迟疑,他直接告诉我:“只要是你感兴趣的,合理的事情,你都可以去做。”于是十几年后,我真的学会了怎么做游戏。但所有行业都不像它从外面看起来的样子,种白菜的朋友会告诉你千万别买白菜,因为白菜是农药喷出来的;做豆芽的朋友会告诉你千万别吃豆芽,因为豆芽是化肥泡出来的;于是我也想说,千万别玩国产手游,因为国产手游都tmd是骗钱的!太少玩法、剧情、表现上的探索和打磨,太多营销技巧和心理绑架。如果衡量一名策划优劣的不是玩法设计而是埋坑技巧,如果衡量一名程序优劣的不是代码质量而是出包速度,如果衡量一名美术优劣的不是美学功底而是山寨能力,那这最终的产品还怎么称其为“游戏”?那只是一个诓钱的工具而已。

  所以我做了两年游戏后还是有一种从未实现儿时愿望的感觉,我还是觉得自己从未做过游戏。所以我决定做一款属于自己的游戏,策划基于本人的第一个Unity游戏改进拓展,程序自己实现,美术和音乐依托资源商店和外包,不受任何市场压力的影响,不为营收目的做任何不道德的心理绑架。同时这也是一次试验,我也会接入广告和支付,去尝试在保证游戏体验的前提下“道德”地创造利润。我想看看一款不讲“营销技巧”而把重点放在“制造快乐”的游戏本源上的产品会迎来一个什么样的结果。如若失败,我也没什么损失;如若成功,起码可以传达出这样一个信号:在这个世界上,不坑人,靠把自己的事情做好,同样可以活得不错。

《Invert》开发日志00:缘起的更多相关文章

  1. 《Invert》开发日志05:终止

    今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...

  2. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  3. NET-SNMP开发——日志输出

    NET-SNMP开发——日志输出 net-snmp的日志输出功能是很强大的,与日志输出相关函数声明在net-snmp-5.7.3\include\net-snmp\library\snmp_loggi ...

  4. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

    转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...

  5. .NET Core开发日志——Entity Framework与PostgreSQL

    Entity Framework在.NET Core中被命名为Entity Framework Core.虽然一般会用于对SQL Server数据库进行数据操作,但其实它还支持其它数据库,这里就以Po ...

  6. .NET Core开发日志——RequestDelegate

    本文主要是对.NET Core开发日志--Middleware的补遗,但是会从看起来平平无奇的RequestDelegate开始叙述,所以以其作为标题,也是合情合理. RequestDelegate是 ...

  7. Chino 操作系统开发日志 (1) - 为 IoT 而生

    引言 很多人都听说过 IoT (物联网)这个词,越来越多的人在装修时开始选择智能家居,很多人也购买智能音箱做智能家居控制,想必未来一定是 AI + 物联网的时代. 一种技术要发展并走向成熟必须要降低门 ...

  8. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  9. [原创][开源] SunnyUI.Net 开发日志:ListBox 增加跟随鼠标滑过高亮

    QQ群里,寸目说,ListBox鼠标移动时,当前行需要焦点,我想了想,不难实现啊 不就是在鼠标移动时重绘Item嘛,何况选中的Item已经改了颜色了. 见UIListBox代码: protected ...

随机推荐

  1. 人工智能 - AI

    CNCC 2016 | 人工智能60年浪潮 (原文链接) Intelligence,智能是指生物一般性的精神能力,其三因素理论: 成分智力 Componential Intelligence:思维和对 ...

  2. Objective-c的@property(atomic,nonatomic,readonly,readwrite,assign,retain,copy,getter,setter) 属性特性

    assign:指定setter方法用简单的赋值,这是默认操作.你可以对标量类型(如int)使用这个属性.你可以想象一个float,它不是一个对象,所以它不能retain.copy. retain:指定 ...

  3. 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox

    [源码下载] 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(选择类) Sel ...

  4. 黑社会团伙(gangs)

    题目描述 众所周知,香港的黑社会组织猖獗,警方希望能摸清他们的内部构成情况,特派小生前往调查.经过长期的卧底,小生初步获得了一些资料:整个组织有 n 个人,任何两个认识的人不是朋友就是敌人. 而且满足 ...

  5. csharp: ODP.NET,System.Data.OracleClient(.net 4.0) and System.Data.OleDb读取Oracle g 11.2.0的区别

    ODP.NET: 引用: using Oracle.DataAccess; //Oracle g 11.2.0 using Oracle.DataAccess.Client; using Oracle ...

  6. 编程模式之模板方法模式(Template Method)

    模板方法模式由两个角色组成:父类角色,子类角色. 父类角色:提供模板. 子类角色:为父类模板提供实现. 类图: JAVA代码: AbstractClass.java package com.templ ...

  7. 数据结构:单链表结构字符串(python版)添加了三个新功能

    #!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...

  8. PHP中的特殊类,接口类和抽象类(都不能直接实例化)

    接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需 ...

  9. 深入理解和应用Float属性

    一.Float的特性 1. 应用于文字围绕图片 2. 创建一个块级框 3. 多列浮动布局 4. 浮动元素的宽度.高度自适应,但可以设置其值. 二.核心解决的问题 文字围绕图片:img标签与多个文本标签 ...

  10. javascript的函数(二)

    1. 函数的作用域 作用域是指变量的存在的范围.javascript中有两种作用域,一种是全局作用域,变量在整个程序中一直存在,另一种是函数作用域,变量只存在于函数体内部.在函数体外部声明的变量就是全 ...