![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码设计
文章平均质量分 70
skywind
这个作者很懒,什么都没留下…
展开
-
Extreme Game Programming
Extreme Game Programming - EXFORCEAfter enjoyed the demo "OMNISCENT" in 1997, I write another one today. simpler, and smaller :-)Run DEBUG in DOS Window, copy and paste the text below to DEBUG:-------原创 2004-09-21 23:15:00 · 1988 阅读 · 6 评论 -
如何解决FPS/RTS/赛车类游戏的同步问题
算法简述 动作类游戏如何在高延迟下实现同步?不同的客户端网络情况,如何实现延迟补偿?十年前开始关注该问题,转眼十年已过,看到大家还在问这类问题,旧文一篇,略作补充(关于游戏同步相关问题还可以见我写于2005年的另外两篇文章,帧锁定算法 和 网游同步法则):影子跟随算法由普通DR(dead reckoning)算法发展而来,我将其称为“影子跟随”意再表示算法同步策略的主要思想原创 2015-04-07 17:10:14 · 16498 阅读 · 18 评论 -
快速可靠协议 - KCP
快速可靠协议URL: https://code.google.com/p/ikcp/ KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,并以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部原创 2013-04-15 17:31:21 · 10822 阅读 · 4 评论 -
移动设备通用手势识别算法
移动设备多用手势进行输入,用户通过手指在屏幕上画出一个特定符号,计算机识别出来后给予相应的反应,要比让用户点击繁琐的按钮为直接和有趣,而如果为每种手势编写一段识别代码的话是件得不偿失的事情。如何设计一种通用的手势识别算法来完成上面的事情呢?我们可以模仿笔记识别方法,实现一个简单的笔画识别模块,流程如下:第一步:手势归一化1. 手指按下时开始记录轨迹点,每划过一个新的点就记录到手原创 2013-04-19 22:18:56 · 3697 阅读 · 0 评论 -
百行内实现五子棋人机对战
国庆没事,想看看最少多少行可以写一个人机对战起来游戏,于是有了这个Python版五子棋人机对战,仅仅几百行。#! /usr/bin/env python# -*- coding: utf-8 -*-import sys, time#----------------------------------------------------------------------原创 2012-11-09 03:51:57 · 18267 阅读 · 10 评论 -
【原创】快速除以255的方法
经过若干次试验修改,研究出下面这个快速/255的宏,可以在 X属于[0,65536]的范围内误差为零:#define div_255_fast(x) (((x) + (((x) + 257) >> 8)) >> 8)传统来说,人们习惯于将 /255改为 >>原创 2011-09-07 02:14:13 · 5100 阅读 · 4 评论 -
[原创] PowerPC 汇编入门与优化
PowerPC Figure – PPC入门与优化 By Skywind(2007) http://www.joynb.net/blog/ 背景介绍 PowerPC于1991年IBM/MOTO/APPLE研制,大量应用于服务器(AIX / AS400系列及苹果系列服务器),家用游戏机(PS3, Wii, XBOX, GameCube),以及嵌入式(仅次于Arm/x86排第三)。PowerPC核心在于开放系统软件标准,其应用范围仅次于x86,是除去x86外最值得开发者了解的体系。 不需要写出非常高原创 2011-04-24 00:46:00 · 8483 阅读 · 0 评论 -
业余土制:轻量级图形库 PixelLib
简述:2D抗锯齿,矢量制图,快速图形图像变换,64种不同的像素格式,色彩空间变换,SSE2/MMX优化,纯软件实现,纯C代码。地址:http://code.google.com/p/pixellib/1. 图像变换:支持仿射变换和透视变换,提供大量图像变换操作接口。2. 抗锯齿:所有图形绘制支持3级不同程度的抗锯齿效果。3. 图像绘制:图像任意拉伸,旋转,3D旋转,并且同时进行色彩空间变换。全部采用浮点数坐标,图像移动更为平滑。4. 几何作图:全面的抗锯齿几何作图效果。原创 2011-03-11 19:33:00 · 4586 阅读 · 4 评论 -
GFP-Tree 内存分配器
我也来介绍一些内存管理方面的优化算法:怎样才能根除内存碎片?有且只有如下办法:1. 只分配不释放,2. 只分配固定大小内存,3. 不分配内存,虽然,仍不妨碍我们再一次回顾各种常用的分配策略,以发掘一些新的思路:前提:下面提及的分配技巧并不能说是“最快的”,也不能说是“最小碎片的”,但是可以保证,不管系统运行多长时间,不管分配多大内存,碎片比例趋于恒定,同时分配时间为常数(unit interval):最后将讨论一些更进一步的优化技巧(如果愿意大量增加代码行数的话),看看在分配内存方面,哪些我们值得努原创 2011-02-11 20:50:00 · 2410 阅读 · 0 评论 -
Python少打字小技巧
说明:增加代码的描述力,可以成倍减少你的LOC,做到简单,并且真切有力观点:少打字=多思考+少出错,10代码行比50行更能让人明白,以下技巧有助于提高5倍工作效率1. 交换变量值时避免使用临时变量:(cookbook1.1)老代码:我们经常很熟练于下面的代码temp = xx = yy = temp代码一:u, v, w = w, v, u 有人提出可以利用赋值顺序来简化上面的三行代原创 2006-06-07 17:04:00 · 2787 阅读 · 4 评论 -
关于“面向显示器编程”
最近吃饭的时候听公司两位同事聊起“面向显示器编程”(screen oriented programming)。sop这个东西我虽偶有所闻,却未有什么了解。这两位同事跟我说AOP其实是退化了的SOP,这个说法让我觉得SOP会有点意思。个人觉得,OOP完成了对数据的重用,AOP完成了对算发的重用,而SOP则完成了对显示器的重用。基于对SOP的应用,我们只需要在电脑前多加一把凳子,就可以通过工作空间上的原创 2006-01-05 04:39:00 · 2528 阅读 · 1 评论 -
再现MSN魔法表情效果
下面是播放时候的效果图:MSN的魔法表情实在是COOL,兴趣之下自己也做了一个特效演示将FLASH拖到窗口上面,然后点“特效”,如果桌面是32位的效果非常漂亮,可以拖动图形,现在就下载:演示程序 演示程序地址二 (98KB) 最好笑的事情是那天发现有些聊天软件的魔法表情居然是假的,它是把桌面抓下来然后用IE空间来播放flash, 顺便把抓下来的桌面当背景.或者直接用ColorKey -_-原创 2005-04-18 09:14:00 · 2396 阅读 · 14 评论 -
虚拟机及VmBasic编译引擎实现
虚拟机及VmBasic编译引擎说明 1.关于虚拟机及其编译器的说明2.VmBasic开发/调试环境的介绍及说明3.关于其他下载地址一源程序下载下载地址二设计说明书关于虚拟机及其编译器的说明 记得3DS/MAX里面实现了一个类似BASIC的脚本,Animator里面实现了一个类C的脚本语言,Autodesk公司的软件对于脚本支持的很出色,好的脚本引擎在乎平台无关性、高效性和扩充性,一个脚本引擎的原创 2005-04-18 07:55:00 · 3100 阅读 · 9 评论 -
PL0编译器TurboPascal版再现
(********************* PL0 编译程序Turbo Pascal代码 *********************)program pl0(fa,fa1,fa2); (* PL0 compile with code generation *) label 99; (* Turbo Pascal do not support goto between differ原创 2005-04-18 06:35:00 · 1988 阅读 · 1 评论 -
体育竞技游戏的团队AI
很多人问游戏AI该怎么做?随着游戏类型的多元化,非 MMO或者卡牌的游戏越来越多,对AI的需求也越来越强了。而市面上关于 AI的书,网上找得到的文章,也都流于一些只言片语的认识,理论化的套路,和一些简单的 DEMO,离真正的项目差距甚远,无法前后衔接成一条线,更无法真正落地到编码。国内真正做过游戏AI的少之又少,东拉西扯的人很多,真正做过项目的人很少,因为国内主要以MMO为主,RTS比较少原创 2015-04-07 17:05:29 · 5892 阅读 · 0 评论