深夜十一点,窗外的县城彻底安静下来。只有远处国道偶有卡车驶过,轮胎摩擦柏油路面的声音由远及近,又由近及远。
林浩坐在黑暗中,听著客厅里父母的呼吸声。父亲在打鼾,不重,是那种劳累一天后的深沉呼吸。母亲大概已经睡著了,很安静。
他等了几分钟,確认父母睡熟了,才从床上坐起来。
月光从窗户斜射进来,在地板上铺出一块银白。他赤脚踩过那块光斑,冰凉的触感从脚底传来。走到书桌前,他先摸了摸窗台——手机还在那里,一夜的月光充电效果微乎其微,电量显示:4.9%。
他拿起手机,又摸黑走到门边,轻轻拧开门锁。老锁舌发出细微的“咔噠”声,在寂静中格外清晰。
客厅里一片漆黑。父母房间的门虚掩著,鼾声从里面传来。林浩屏住呼吸,贴著墙走到客厅角落,那里放著一个老式五斗柜。
最下面的抽屉。
他蹲下,轻轻拉开。抽屉有些涩,发出“吱呀”的摩擦声。他停下,侧耳听了听——鼾声没停。
抽屉里是家里的杂物:针线盒、纽扣、几卷用剩的毛线,还有一个铁皮饼乾盒。林浩拿起饼乾盒,手感很轻。他打开,里面是家里的重要证件:户口本、父母结婚证、几张泛黄的收据。
还有一叠钱。
他用手指捻了捻。很薄,大概十几张,都是十元二十元的零钞。最下面压著三张一百的。总共大概五百多块。
这是家里全部现金了。
林浩盯著那叠钱看了几秒,然后轻轻合上饼乾盒,放回原处。关上抽屉时,他动作更轻了。
回到房间,他坐在床边,看著窗外沉沉的夜。
5800元。他需要这么多。而家里只有500多,还是全家一个月的生活费。
彩票?那个编號327的彩票,也许能中5000。但小艺说得对,一旦他介入,歷史就可能改变。而且彩票中奖是小概率事件,不可控因素太多了。
他需要更可靠的办法。
“小艺。”他压低声音。
手机屏幕亮起,在黑暗中发出幽蓝的光。电量:4.8%。
“我在。”
“如果不用彩票,有没有办法在一周內赚到500元?任何办法,只要合法,只要能快速启动。”
小艺沉默了两秒——这是她在搜索资料库。
“正在分析……检测到一个潜在机会,但需要您的主动操作。”
“说。”
“2002年6月,本地晚报副刊正在举办『夏日故事』微型小说徵文比赛。一等奖奖金800元,二等奖500元,三等奖300元。截稿日期:6月20日。获奖名单公布:7月5日。”
“写小说?”林浩皱眉,“周期太长了,而且我没写过。”
“但您拥有超越时代的敘事技巧和故事结构认知。以2028年的网文创作理论,反推2002年的纸媒徵文,属於降维打击。”
林浩想了想。这倒也是。他看过太多未来的小说、电影、游戏,知道什么样的故事能打动人。而且微型小说篇幅短,两三千字,一个通宵就能写完。
“有往届获奖作品可以参考吗?”
“正在查询……2001年同主题徵文获奖作品已调出。核心特徵:故事要有时代气息,结尾要有转折或升华,字数控制在2500字以內。一等奖作品《父亲的自行车》,讲述下岗工人用自行车载客养活全家的故事,情感真挚,细节扎实。”
林浩在黑暗中点头。他明白了。2002年,这类朴实、正能量、能引发共鸣的故事最受纸媒青睞。
“截稿还有十天。如果我明天写好寄出去,什么时候能知道结果?”
“邮寄需要2-3天,评审需要一周,公布需要一周。总计至少半个月。”
半个月。太长了。而且只是“可能”获奖,不是“一定”。
“还有別的吗?更快一点的?”
“正在搜索……2002年6月12日,本地电信局將举办『宽带入户推广周』活动。现场有知识问答比赛,一等奖奖品为一台联想桌上型电脑,价值约4000元。比赛內容:网际网路基础知识、电脑操作常识。”
林浩的眼睛亮了。
电脑。直接奖励电脑。而且时间是后天,很近。
“比赛规则呢?”
“面向所有市民开放,现场报名。比赛形式:抢答。题目范围:windows 98基本操作、office软体使用、网际网路常识、本地电信业务。”
“题目难度?”
“以2002年普通市民的认知水平为標准。但您拥有2028年的网际网路经验,这些题目对您来说相当於小学数学题。”
林浩握紧了手机。电脑。4000元的电脑。只要贏了比赛,电脑问题就解决了,还能省下宽带初装费——电信局搞活动,肯定会赠送宽带体验。
“地点?具体时间?”
“中心广场电信营业厅门口。上午九点开始报名,十点比赛开始。”
“好。”林浩说,“就这个。”
“但请注意,”小艺提醒,“您的参与可能改变歷史。原本的获奖者將失去电脑,这会產生蝴蝶效应。”
“管不了那么多了。”林浩低声说,“我需要那台电脑。”
他顿了顿:“而且,如果我能贏,说明我比那个人更懂电脑。电脑在我手里,能发挥更大的价值。”
这话有点自我安慰的意思,但他说得很坚定。
屏幕暗了下去。电量:4.7%。
林浩把手机放回窗台,躺回床上。但他睡不著。脑海里反覆盘算后天的比赛,盘算要写什么样的故事,盘算如果都失败了怎么办。
直到天快亮时,他才迷迷糊糊睡去。
醒来时已经上午八点。父母都出门了——父亲又去了劳务市场,母亲去了菜市场。桌上用纱罩罩著一碗粥,两个馒头,一碟咸菜。
林浩匆匆吃完,回到房间。他拿出纸笔,开始构思小说。
徵文主题是“夏日故事”。他回想2002年的夏天,回想自己十八岁那年的记忆。蝉鸣、冰棍、树荫、暴雨、等待录取通知书的焦灼……
他想起昨天看见母亲挑拣煤球的样子,想起父亲推著自行车离开的背影。
笔尖落在纸上。
標题:《煤球上的夏天》。
他写得很慢。不是写不出来,而是在刻意控制节奏。他知道未来的网文套路,知道爽点、泪点、反转点该怎么设置。但2002年的纸媒不接受那些,要的是扎实的细节、克制的抒情、有温度的人物。
他写一个下岗工人家庭的故事。父亲每天天不亮就去劳务市场等活儿,母亲在菜市场角落卖菜。家里烧煤球,儿子高考完的那个夏天,开始学著挑拣煤球——把完整的留给父母用,自己用碎煤。
他写煤灰沾满手指的感觉,写煤球在炉子里燃烧时散发的热气,写父母回家时身上的汗味和疲惫。
他写儿子偷偷去工地搬砖,手上磨出血泡,用煤灰抹上止血。写他用第一笔工钱买了一台小电扇,放在父母床头。
他写夏天的暴雨,煤棚漏雨,儿子衝出去用塑料布盖煤堆。雨停后,煤球湿了,点不著,一家人围在炉子前,父亲用扇子扇,母亲用嘴吹,儿子加柴火。终於,火苗窜起来,映亮三张满是煤灰的脸。
他写结尾:录取通知书到了,学费很贵。父母商量著把家里那辆自行车卖了——那是结婚时买的,二十多年了。儿子没说话,第二天一早,把暑假打工攒的八百块钱放在桌上,下面压著一张纸条:“爸,妈,煤球我挑好了,够烧一个冬天。”
写完最后一个字,林浩放下笔。手很酸,指节发白。他数了数字数:2387字,刚好在要求范围內。
他又读了一遍。文字很朴实,但情感是真实的。那是他上辈子没来得及对父母说的话,没来得及做的事。
他把稿纸折好,装进信封。地址是晚报副刊部,贴上一张八毛钱的邮票。
出门时已经上午十点。他先去邮局寄了信,然后走向中心广场。路过那家报刊亭时,他停下脚步。
就是这里。彩票销售点。那个编號327的彩票,十几天后会在这里售出。
报刊亭老板是个五十多岁的男人,正坐在小凳子上看报纸。柜檯玻璃下压著各种彩票,即开型的“刮刮乐”摆在最显眼的位置,两元一张,最高奖金5000元。
林浩站了一会儿。他口袋里还有昨天父亲给的十块钱,还剩八块。可以买四张。
但他最终没买。转身离开了。
中心广场上已经搭起了舞台。红色的横幅上印著黄色大字:“电信宽带进万家,信息高速通天下”。几个工作人员正在布置,调试音响,摆放桌椅。
舞台旁边摆著一排电脑,是那种大脑袋的crt显示器,联想品牌机。其中一台贴著“一等奖奖品”的標籤。
林浩走近看了看。配置比他预想的还好:奔腾4处理器,256mb內存,40gb硬碟,17寸纯平显示器。还预装了windows xp系统——2002年,xp还是新鲜事物。
“同学,对电脑感兴趣?”一个穿电信制服的女工作人员走过来,笑容很职业。
“嗯,看看。”
“这是我们这次活动的特等奖,价值4288元。”工作人员热情介绍,“只要参加我们的知识问答比赛,就有机会贏回家。报名吗?免费的。”
“怎么报名?”
“填个表就行。”她递过来一张报名表。
表格很简单:姓名、年龄、职业、联繫电话。林浩填了,职业写“高中毕业生”。
“比赛规则呢?”
“十点开始,现场抽籤分组,每组十人抢答。每组第一名进入决赛,决赛前三名有奖。一等奖就是这台电脑,二等奖是小灵通一部,三等奖是500元电话卡。”
林浩点点头。他看了看周围,已经有不少人报名了。大部分是年轻人,也有几个中年人。大家都盯著那台电脑,眼神热切。
十点整,比赛开始。
主持人是个二十多岁的姑娘,拿著话筒,声音很清脆:“欢迎各位参加『电信宽带知识问答大赛』!我是主持人小杨。首先有请我们电信局副局长王局长致辞……”
一番领导讲话后,比赛正式开始。
林浩被分在第三组。他坐在选手席,看著前两组的比赛。
题目確实简单得过分。
“请问,windows系统中,用来打开『我的电脑』的快捷键是什么?”
“答案是:win e!”一个年轻人抢答。
“正確!加10分!”
“请问,电子邮件的地址中,@符號怎么读?”
“艾特!读艾特!”
“正確!”
“请问,我们电信目前提供的宽带最高速率是多少?”
“512k!”这次抢答的人更多了。
林浩看著,心里有底了。这些题目对他来说,就像问大学生一加一等於几。
终於轮到第三组。
“好,请第三组选手上场!”
十个人走到台上,每人面前有一个抢答器。林浩试了试,按钮很灵敏。
“第一题:在word文档中,要保存文件,应该按什么快捷键?”
“ctrl s!”林浩几乎是本能地按下抢答器。
“正確!8號选手加10分!”
台下响起掌声。林浩的父母不知道什么时候来了,站在人群里。母亲踮著脚往台上看,父亲则背著手,表情很严肃。
“第二题:网际网路上,用来查找网站的『搜寻引擎』,最著名的是什么?”
“百度!”这次是另一个选手抢到了。
“正確!”
“第三题:我们县的电信客服电话是多少?”
“10000!”林浩抢到。
“正確!8號选手再加10分!”
比赛进行得很顺利。二十道题,林浩抢到了十二道,全对。其他选手有时能抢到,但偶尔会答错。比如有一题问“cpu的全称是什么”,有人答“中央处理器”,但標准答案是“中央处理单元”,被扣了分。
最终,林浩以120分获得小组第一,进入决赛。
下台时,母亲挤过来,递给他一瓶水:“累不累?”
“不累。”
“那些题你都懂?”
“嗯,平时看书学的。”
父亲没说话,只是拍了拍他的肩膀。很用力。
决赛在半小时后开始。进入决赛的有五个人,除了林浩,还有一个大学生,一个银行职员,一个中学计算机老师,还有一个网吧网管。
题目难度提升了。
“请问,tcp/ip协议的四层模型是什么?”
林浩差点笑出来。这题在2028年属於网络基础知识中的基础,但在2002年,能答上来的人不多。
“应用层、传输层、网络层、网络接口层。”网吧网管抢到了,但答得磕磕巴巴。
“基本正確,加10分!”
“请问,dns伺服器的主要作用是什么?”
“域名解析。”这次是大学生。
“正確!”
“请问,在excel中,用来求和的函数是什么?”
“sum!”林浩抢到。
“正確!”
比赛进入白热化。林浩的领先优势並不大,那个计算机老师很厉害,几道专业题都答对了。
最后一题,主持人说:“这是一道实操题。请工作人员把电脑抬上来。”
两个工作人员抬上来一台电脑,已经开机,桌面是windows xp的经典蓝天草原壁纸。
“请选手在五分钟內,完成以下操作:第一,在d盘新建一个文件夹,命名为『电信宽带』。第二,在这个文件夹里新建一个文本文档。第三,在文档里输入『中国电信,宽带专家』八个字。第四,保存文档,並创建桌面快捷方式。完成速度和质量综合评分。”
台下响起嗡嗡的议论声。对大部分2002年的人来说,电脑操作还是个陌生领域。很多人只会用滑鼠点点,具体操作步骤並不清楚。
五个选手站在电脑前。主持人说:“准备——开始!”
银行职员第一个衝上去。他手忙脚乱地找d盘,但桌面图標太多,一时没找到“我的电脑”。网吧网管推开他,双击“我的电脑”,进入d盘,右键新建文件夹——但右键菜单出来后,他犹豫了一下,选了“新建”->“文本文档”,结果文档建在了d盘根目录,不是文件夹里。
计算机老师比较稳,他先建了文件夹,然后打开文件夹,在里面新建文本文档。但输入文字时,他用了全角字符,打字速度也慢。
大学生在旁边干著急,插不上手。
林浩等了几秒,看明白了情况。他走上前,拍了拍计算机老师的肩:“老师,让我试试。”
老师愣了一下,让开了。
林浩坐到电脑前。他的动作很流畅,像是做了千百遍。
右手握住滑鼠,左手放在键盘上。双击“我的电脑”,进入d盘,右键->新建->文件夹,重命名为“电信宽带”。双击进入,右键->新建->文本文档,重命名为“宽带文档”。双击打开,双手放在键盘上。
他敲下八个字:中国电信,宽带专家。
用的是智能abc输入法,他记得2002年的標配。敲拼音,选字,回车。动作很快,几乎没有停顿。
然后文件->保存。关闭文档。右键文档->发送到->桌面快捷方式。
完成。
他看了一眼屏幕右下角的时间:耗时1分47秒。
“完成。”他说。
主持人愣了愣,看了看表:“这么快?检查一下。”
工作人员检查。文件夹有了,文档有了,文字正確,桌面快捷方式也有了。完全符合要求。
“8號选手,林浩,完成时间1分47秒,操作全部正確!”主持人高声宣布,“第一名!”
台下响起热烈的掌声。母亲在台下用力鼓掌,眼眶有些红。父亲依然背著手,但嘴角微微上扬,是一个很浅的笑容。
颁奖仪式很简单。电信局的领导给林浩颁发了一张大奖状,还有那台电脑——装在原装纸箱里,很重。二等奖和三等奖也颁了,是小灵通和电话卡。
“小伙子,电脑用得挺熟啊。”颁奖的领导拍了拍林浩的肩膀,“哪个学校的?”
“县一中,刚高考完。”
“不错,好好学,以后是个人才。”
林浩抱著电脑箱子,在父母帮助下搬下了台。箱子很沉,父亲要帮忙抬,林浩说不用,自己可以。
但他还是让父亲抬了一头。父子俩一前一后,抬著电脑箱子穿过广场。母亲跟在后面,手里拿著那张大奖状,走几步就看一眼。
回家的路上,不断有熟人打招呼。
“老林,这买的啥?”
“电脑!孩子比赛贏的!”
“哟,了不得!啥比赛?”
“电信局搞的,知识问答。”
“浩子可以啊!”
父亲的背挺得很直。虽然没说什么,但林浩能感觉到,父亲很高兴。
回到家,父子俩把电脑抬进林浩房间。拆箱,安装。显示器、主机、键盘、滑鼠、音箱。还有一本厚厚的使用说明书。
接通电源,按下开机键。主机发出“滴”的一声,风扇转动。显示器亮了,windows xp的启动画面出现,进度条缓缓移动。
父母站在门口看。对他们来说,电脑是陌生的、昂贵的东西。现在这台东西属於他们家,属於他们的儿子。
“这得多少钱啊?”母亲小声问。
“四千多。”父亲说,“浩子贏回来的。”
启动完成,进入桌面。蓝天草原的壁纸,下面一排图標。林浩握住滑鼠,移动光標。很流畅。
“小艺。”他在心里默念。
口袋里的手机震动了一下。电量:4.6%。
“我在。”
“记录:2002年6月12日,获得第一台电脑。下一步:安装开发环境。”
“建议:先安装flash mx。2002年最新版本为flash mx 6.0,安装文件可在各大软体下载站找到,但需注意盗版风险。”
林浩点点头。他转向父母:“爸,妈,我想装个宽带。”
“宽带?”父亲皱眉,“那玩意儿贵吧?”
“刚才电信局的人说了,我是获奖者,可以免初装费,前三个月每月只要50元。”林浩说,“三个月后,如果不用可以停。”
这是刚才下台时,工作人员主动跟他说的,算是额外福利。
父亲想了想,看了看母亲。母亲说:“装吧,孩子要用。”
“那行,明天我去办。”
“谢谢爸。”
父母出去了,轻轻带上门。林浩坐在电脑前,感受著皮质椅面的冰凉触感。他打开瀏览器,输入“flash mx 下载”——用的是拨號上网,连接速度52k,网页加载很慢。
下载了一个多小时,终於下好了flash mx的安装包。安装,输入序列號——小艺提供了可用的序列號。安装完成,桌面上出现了那个熟悉的紫色图標。
他点开。软体启动,界面是2002年的风格,工具栏图標很大,配色鲜艷。
新建一个flash文档。舞台尺寸设为550x400,帧率设为24fps。
然后他打开记事本。不,不是用来写代码,是用来做笔记。
“小艺,唤醒。”
“我在。当前电量4.5%。”
“调出flash游戏基础框架的核心代码。只要结构,不要具体实现。用我能理解的方式描述。”
“正在整理……”
手机屏幕亮起,显示出一段简化的代码结构。林浩仔细看,不是逐行代码,而是偽代码,用中文描述算法和思路。
他一边看,一边在记事本上记。
“游戏主循环:基於enterframe事件。每一帧,更新所有游戏对象的状態,检测碰撞,重绘。”
“对象池:预创建对象数组,使用时取出,用完后重置状態放回,避免频繁创建销毁导致的性能问题。”
“碰撞检测:矩形碰撞,判断两个显示对象的边界矩形是否相交。”
“得分系统:全局变量存储分数,碰撞检测到特定物体时加分,分数显示在舞台左上角。”
“资源管理:使用loader类加载外部图片和声音,加入加载队列,全部加载完成后启动游戏。”
他记了整整三页。不是照抄,而是理解后用自己的话重新描述。有些概念2002年还没有,他需要找到替代方案。
比如小艺提到的“事件监听模型”,在flash mx中需要用on()函数或者addlistener()方法,不完全一样。
比如“面向对象编程”,as2.0虽然支持,但还不成熟,很多开发者还在用面向过程的写法。
他必须把2028年的先进思路,翻译成2002年能实现的技术方案。
这个过程很慢,很费力。他经常要停下来思考,查flash mx的帮助文档,甚至写一小段测试代码验证想法。
但好处是,他真正理解了。不是知道“该这么写”,而是知道“为什么这么写”。
窗外天色渐渐暗下来。母亲敲了敲门,端进来一碗绿豆汤:“歇会儿,喝点汤。”
“好,谢谢妈。”
母亲放下碗,看了看屏幕上那些看不懂的代码,又看了看儿子专注的侧脸。她没说什么,轻轻退了出去。
林浩喝了一口绿豆汤,很甜,冰镇的,解暑。
他继续。
开始写真正的代码。打开flash mx的代码编辑器,在第一帧上右键,选择“动作”。
光標在代码编辑区闪烁。
他深吸一口气,敲下第一行:
// flash游戏基础框架
// 作者:林浩
// 日期:2002年6月12日
然后是第二行:
// 初始化游戏变量
第三行:
// 预加载资源
他敲得很慢。每敲一行,都要想清楚这一行在整体架构中的位置,想清楚变量名是否合適,想清楚有没有更好的写法。
有时他会刪掉重写。有时他会加注释,解释这行代码的作用。有时他会停下来,在草稿纸上画流程图。
汗水从额头滑下,滴在键盘上。他用袖子擦掉。
窗外的天完全黑了。县城的路灯亮起来,昏黄的光透过窗户,和电脑屏幕的光混在一起。
他写完了对象池管理函数,写完了碰撞检测函数,写完了得分更新函数。虽然只是一个最简单的框架,只有不到两百行代码,但它完整、清晰、可扩展。
最后,他写了一个最简单的测试游戏:一个小方块在舞台上移动,碰到边界反弹,碰到隨机生成的目標物加分。
点击运行。
舞台上的小方块动了。左、右、上、下,用方向键控制。目標物隨机出现,碰到就加分,分数显示在左上角。
很简陋,没有任何美术资源,只有最简单的几何图形。
但它是完整的。从加载到运行,从输入到反馈,从逻辑到表现。
一个完整的、可运行的游戏。
林浩靠在椅背上,长长地舒了一口气。
他看了一眼时间:凌晨一点。从下午到现在,八个多小时。
手机在口袋里震动了一下。他拿出来,点亮屏幕。
电量:4.0%。
“小艺。”
“我在。”
“记录:2002年6月13日凌晨1点07分,完成第一个flash游戏框架,共187行代码。运行成功。”
“已记录。恭喜。”
林浩关掉电脑。屏幕暗下去,房间里只剩下窗外的路灯光。
他走到窗边,看著外面的夜。县城睡了,只有几扇窗户还亮著灯,也许是有人在熬夜看电视,也许是有人在赶工。
而他,刚刚敲下了重生后的第一行代码。
虽然只是一个开始,虽然离目標还很远,虽然电只有4.0%。
但他有电脑了,有开发环境了,有第一个可运行的程序了。
最重要的,他开始了。
他回到桌前,翻开笔记本,在新的一页写下:
“2002年6月13日。已完成:1.获得电脑。2.安装开发环境。3.完成基础游戏框架。”
“下一步:1.开发第一个完整的小游戏。2.寻找发布渠道。3.测试变现可能。”
“目標:一周內,赚到第一笔钱。金额:不低於200元。”
他放下笔,躺到床上。很累,但很清醒。
窗外,夏夜的风吹进来,带著梔子花的香味。
他闭上眼睛,在黑暗中微笑。
第一步,迈出去了。