幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: rednaxela

那啥,有人玩了Small Basic么?

[复制链接]

550

主题

9117

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-3-5 21:34:27 | 显示全部楼层
我倒是想知道各位都是怎么学的。。。为什么我这么腿
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2009-3-6 08:40:54 | 显示全部楼层
引用第9楼rednaxela于2009-03-05 21:07发表的  :
说老实话我也不是Basic的粉丝,但这个Small Basic的编辑器着实是帅 T T
可以顺带问一下,shawind大是怎么开始学编程的么?我最近想收集一下“初学者心态”相关的信息,想知道刚学编程的时候的想法;跟自己理想中的语言的设计相关 ^ ^

说来好笑。
最初接触编程还是在初中的时候,学校里开了电脑课。本来学点DOS基本操作什么的,也就行了。
不知道怎么回事,我们的化学老师吃错了药,越俎代庖的跑过来教我们“学编程”,折腾了3节课后,他发现,基本上没有什么可能教会我们,于是就放任自流了。当然,同一时期,我们班上就有不少人学会了点,然后自学入了门,能解决点数学问题。而我是属于⑨类的,最少,当年对于Basic就是这样。要说更具体的感受,那个时候糊里糊涂的,游戏的吸引力超过编程。不记得了,反正只记得对Basic没有好感就是了。(占用了玩游戏的时间?)

很来听人说DELPHI很好用,又跑去Pascal,当然,还是没学会。Pascal的语法风格很像Basic。而且有些又臭又长又别扭的关键词,当然最难受的就是那个:=的赋值符号。对初学者很不亲切,太强制了。

再后来赶上非典,不敢随便出去找网吧玩,窝在宿舍里也没什么事做。正好身边有本别人的C语言的书,那家伙自己都没看。于是我拿来就慢慢啃,结果反而弄懂了一些。果然,书非借不能读也。但那个时候还是不怎么理解编程。光啃书了,也没有真正的理解,更没有上机操作,纯粹是在纸上推演了玩。我很无聊。

至于第一次写能用的“程序”。最早可能要追述到传奇II的SF刚出的时候。利用我那少可怜的C语言的知识,琢磨了下传奇II的脚本系统,然后自己写了不少脚本。还写了篇指导的文章,被转的到处都是,很有成就感。虽然咱国人转贴,都不会带上原作者的名字。

就我个人的经历来说,学编程,关键就是要有让人有自己的去钻的动力。而游戏就是最好的引子。成就感是最好的动力。

如果让我来设计一门语言,并去推广它的话。我会让它以网络游戏的脚本语言的面目出现,初学者利用自己学会的编程知识,可以自行改变这个游戏,比如写简单的AI,写NPC的逻辑,写副本什么的,最后是生成新的游戏。再把自己改变的结果和朋友分享,获得成就感。
学了编程,又玩了游戏,两全其美。
え~え~お!!!
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2009-3-6 10:58:57 | 显示全部楼层
C...么(抖
(抖抖
(抖抖抖
C是强人的语言。吾等小白只能偶尔瞻仰一下强悍的C。

Second Life听说过吧?网游。它原本是用自己的脚本系统的,近来开始使用Mono为VM来支持C#为脚本,也挺好用的。符合shawind大提到的自己写NPC逻辑啊啥的。在局部范围内的Second Life其实就是“独立的游戏”。

我小学的时候跟一个好朋友交换了一本书,我给的是一本模型书,换来的是一本用QBasic写游戏的书。抄了几个,觉得没意思,就搁一边了。还是上了大学因为专业是软件工程所以才开始学写程序的。
第一个学期前半是一种非常简单的汇编(只有15条指令)来解释基本概念,例如AND门、OR门之类的电路是怎样的,可以怎样组合出那15条指令之类;后半是C的入门,将一些简单的C代码转换为那种简单的汇编来帮助理解“高级语言”与“底层语言”之间的对应关系。说来我也是C入门的就是了。我觉得我就是这样深受了花括号系语法的“毒害”,花了好些时间才能接受其它风格的语法。

然后现在把我带向编译器方向的也还是游戏。多亏了开源的吉里吉里2,我吃了两年才觉得有点感觉了……

=========

非典的时候我还在跟同学们玩电声乐队呢……诶
回复 支持 反对

使用道具 举报

550

主题

9117

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-3-6 11:00:58 | 显示全部楼层
引用第11楼shawind于2009-03-06 08:40发表的  :


:=的赋值符号。对初学者很不亲切
我学PASCAL的时候看到这个就觉得别扭。。。。
话说最初都是QB玩的。。。因为很简单。。。。或许很简单吧。。。反正那时候就是随便做点简单的东西


我突然发现,我学完C++也从来不练习。。。怪不得别人厉害,我这么腿还是继续我的跑龙套生涯吧
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2009-3-6 12:55:36 | 显示全部楼层
用:=来赋值已经比用<-或者(set! ...)来赋值要好看多了……
换个角度看,用==来作为等号为什么就应该比用=来作为等号好呢?
如果一种语言只允许赋值是语句而不是表达式,那=就既可以作为相等性的等号也可以作为赋值符号。如果赋值是表达式,那就得用不同的符号来表达这两个了。我读的算法书很多都喜欢用:=,看多了就习惯了……
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2009-3-6 13:41:14 | 显示全部楼层
引用第12楼rednaxela于2009-03-06 10:58发表的  :
.......
c,现在特别在意的就是纯c写的athena那个游戏服务器程序。西方人喜欢用python,C#,java写的,日本人居然用c写,不服气都不行啊。

Second Life 听说过,不过没有玩过。这样的游戏其实很多的,绝大多数网络游戏都是这样。关键就是他的脚本语言设计的好坏,以及引擎的自由度能有多高。

krkr2源代码,我是不指望能看懂了。前段时间还想看看ruby1.9的,想看看它的那个vm能不能把rb文件编译成中间代码的。结果一头雾水,没弄懂。

果然专业的都是从asm开始啊,比不了.....
引用第13楼secondsen于2009-03-06 11:00发表的  :

我学PASCAL的时候看到这个就觉得别扭。。。。
话说最初都是QB玩的。。。因为很简单。。。。或许很简单吧。。。反正那时候就是随便做点简单的东西

.......

从Basic入门啊...那么看ruby的那个end应该不会觉得别扭了,呵呵.....
引用第14楼rednaxela于2009-03-06 12:55发表的  :
用:=来赋值已经比用<-或者(set! ...)来赋值要好看多了……
换个角度看,用==来作为等号为什么就应该比用=来作为等号好呢?
如果一种语言只允许赋值是语句而不是表达式,那=就既可以作为相等性的等号也可以作为赋值符号。如果赋值是表达式,那就得用不同的符号来表达这两个了。我读的算法书很多都喜欢用:=,看多了就习惯了……

==必竟是只按一个键,打顺手了后,再打:=是非常难接受的。当然了,:=也有它的好处,可以强调书写格式。
现在手上有本说3D数学的书,那书里也是用pascal作例子的。不愧是教学语言。


唉,说了半天,心动了,我还是再去下一次《Game Script Mastering》吧。
え~え~お!!!
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2009-3-6 19:13:07 | 显示全部楼层
语法啊……
  1. let o f g x = f (g x)
  2. (((+) 1) `o` ((*) 2)) 3 == 7
复制代码
这个已经很强悍了不是么……这是Haskell

同一段代码用F#来写:
  1. 3 |> (((+) 1) << ((*) 2))
复制代码

或者Standard ML:
  1. fun opo f g x = f (g x);
  2. ((fn x => 1 + x) o (fn x => 2 * x)) 3
复制代码

ha ha ha...||||||||

====================================

很多网游都用Lua或者类似的语言来做脚本。考虑因素是必须易于嵌入(Lua的调用栈使得嵌入十分方便),必须易于裁剪(Lua的核心语言很小很容易裁剪),必须足够高级方便一般用户使用(Lua...不用说了)。
于是连业界毒瘤(好的意义上的)的WoW都是用Lua作为脚本语言了。金山貌似也有用过Lua吧,后来貌似也有用他们自己开发的脚本语言,不太清楚了。反正我是从来不玩网游的……

所以之前我特别提到Second Life用C#是因为,C#本身不是一种脚本语言,而是一种通用的、静态类型的语言。觉得用C#做脚本还是挺神奇的一件事。

《Game Scripting Mastery》是好书啊。可惜实体书我只有中文的。电子书倒是收了英文的。

Krkr2的代码组织方式算不上值得推荐,不读也罢。新版的Krkr3的代码有不少进步,有兴趣可以读读。它的脚本引擎,Risse的完成度已经不错了,也可以单独运行了。不过我平时随便写点小东西的话果然还是喜欢用Ruby...

Ruby 1.9/YARV的源码阅读有些导读帖啊。虽说我读过的那些都是日文的。有兴趣么?

====================================

说来没人对Small Basic发表些想法么?
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2009-3-6 19:50:14 | 显示全部楼层
好奇的问问,到目前为止,你看了多少种语言了?

lua是不错,只是我个人不太喜欢lua的风格而已。
因为我不觉得游戏的脚本应该用{};这些东西,不方便策划,关卡设计人员学习掌握。
ruby语言的整体风格都不错,就是那个end有点碍眼。
我想把里面的vm抽出来,再改改自己用...
不知道违不违他的协议。

ruby的源码导读的地址?我想看看。谢谢
え~え~お!!!
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2009-3-6 20:41:07 | 显示全部楼层
把Ruby的end扔了,加上有意义的空格,那不就是……Python么?

昨天还跟一个同学聊起学了多少种语言的问题呢 =w=
抱歉,详细列表就不写了,不然太那啥了呵呵。粗略数了一下,写过超过500行代码的有有十来种吧,虽然真的很常用的就比较少了。加上勉强算是写过代码的语言,大概不到三十种?然后再加上其它有模糊了解的语言的话,不到四十种吧。

YARV相关的话读一下下面两个链接里的链接吧,
http://d.hatena.ne.jp/hzkr/19000101
  1. http://d.hatena.ne.jp/nagachika/searchdiary?word=*[rhgsb]
复制代码
(论坛的程序解析不了这个地址,只好放code块里了)

Ruby的许可证比较自由,只要你说明你的程序里有哪些部分是来自Ruby的,基本上就OK。
不过要VM的话,或许可以去看看Google V8。那C++代码读起来很流畅。你可以找别的前端跟它接起来,这样就又能满足你的语法需求又能有不错的性能了。
回复 支持 反对

使用道具 举报

550

主题

9117

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-3-6 20:47:54 | 显示全部楼层
引用第18楼rednaxela于2009-03-06 20:41发表的  :
把Ruby的end扔了,加上有意义的空格,那不就是……Python么?


引用。。。。以前学了一下就是这个感觉。。。。
我只是为了RM才学的RUBY,别的都不怎么会。。。OTL

准确地说我就会把RUBY的语句放到一起而已,编程。。。还是膜拜各位吧
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-5-10 19:37 , Processed in 0.012120 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表