自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 如何成为别人家的网站——卡片式的UI界面设计

在现实生活在,视觉信息总是很吸引人的眼球,好的页面设计总是能够脱颖而出,而卡片设计的应用就是一种趋势。有数据显示移动端使用率远远高于桌面端,网页设计都能很好的适应小屏幕。这个结论就是:简单的界面风格,比如:扁平化设计,极简设计,尤其是卡片设计比往年都要流行。卡片式网页设计判断一个卡片设计的好坏,重...

2018-07-04 13:35:20 2046 0

原创 Java游戏引擎竟然可以如此简单

今天,让我们进入一个可以伸手触摸的世界吧。在这篇文章里,我们将从零开始快速完成一次第一人称探索。本文没有涉及复杂的数学计算,只用到了光线投射技术。你可能已经见识过这种技术了,比如《上古卷轴5 : 天际》、《毁灭公爵3D》。用了光线投射就像开挂一样,作为一名懒得出油的程序员,我表示非常喜欢。你可以舒...

2018-06-15 18:01:46 8289 2

原创 发布怪兽DevOps是怎么作妖的——浅析DevOps过程

什么叫DevOps DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。   DevOps的引入能对产品交付、测试、功能开发和维护(包括──曾经罕见但如今已...

2018-08-25 16:17:08 310 0

原创 五款常用C++编译器——IDE编译器推荐

我们将要讨论的是两大古老而又流行的语言: C 和 C++,它们有着许多卓越的特性,更高效的功能和支持工具。现在这两种语言依然那么活跃,因为它们的 rubout 函数集提供了巨大的安全保障,可靠性非常强。 今天我们围绕的主角是一些超级棒的 C 和 C++ 的集成开发环境(IDE)和编译器。IDE ...

2018-08-11 20:15:55 111956 0

原创 从外包行业谈文化中的服务歧视

前段时间自己接了一个外包,jQuery+css+html+php+nginx+mysql+redis+icon&logo design加起来才一千多块钱,虽说不会让我接触什么核心的东西,都是些敲敲打打修修补补,也算是个体力活,钱少就不说了,还要看甲方的各种脸色,内心有无数的草泥马在...

2018-08-11 18:36:58 420 0

原创 Mysql自增锁问题解决方法

最近在学习群里答疑的时候,常会有同学问我:在做基准测试时候,批量插入数据时,有很多自增锁等待,我告诉他解决办法:1.innodb_autoinc_lock_mode=22.innodb_autoextend_increment参数再增大再停止测试不再有自增锁等候了,成绩处理。上面给大家说下为何??...

2018-07-07 10:39:16 1679 2

原创 一张图让你读懂鹅厂的物联网框架

本文从物联网的中心要素、物联网的关键场景、微信硬件平台的通讯协议剖析三个维度去剖析基于微信硬件平台的物联网架构。一、基于微信硬件平台的物联网架构图上图涵盖以下信息:基于微信硬件平台的物联网的架构组成,有微信大众平台/硬件平台、第三方厂商云后端、手机微信/大众号、微信硬件设备终端(Wifi和蓝牙BL...

2018-07-06 18:07:53 2754 0

转载 物联网架构及五大通信协议

消息触达能力是物联网(internet ofthings, IOT)的重要支撑,而物联网很多技术都源于移动互联网。柳猫将阐述移动互联网消息推送技术在物联网中的应用和演进。一、物联网架构和关键技术从开发的角度,无线接入是物联网设备端的核心技术,身份设备管理和消息推送技术是物联网云端的核心技术。而从场...

2018-07-05 17:13:11 40487 1

原创 进化吧!我的C++!!

繁忙的日子似乎随着炎炎夏日渐渐远去,有人忙着放假,有人忙着旅游,有人忙着补觉……那么,你的选择呢?别急着告诉柳猫,请看完后面的内容再告诉我~~你有两个选择:1)把所有夏季空闲时间都用来休整,适当放松一下没什么不可以。2)或者你可以投入一部分空闲时间来提升你的技能,尤其是 C++ ,用 C++ 水平...

2018-07-01 21:38:34 202 4

原创 C语言可以这样入门~~

很多想要学习编程或者C语言的小伙伴,苦于一时急促,无法下手,现在柳猫就推荐几本入门级的C语言书籍,并对它们的特点做些简短的总结,各位小伙伴根据需要选读。1. How to Think Like a Computer Scientist: C version这是我读过最易懂的C语言教材。虽然它只讲解...

2018-06-28 14:04:32 137 1

原创 如何优雅的编程——C语言界面的一点小建议

Kernighan 和 Plauger 编写的《The Elements of Programming Style》,是一本很重要而且公认有很大影响力的书。但有时候我觉得对于书中的简洁规则,可以看做是一种好的烹饪方法,而不是想简洁的表达一种哲学思维。倘若这本书声称应该有意义地选择变量名称,那么难道...

2018-06-23 17:49:08 4703 0

原创 C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。命名空间在1995年被引入到 c++ 标准中,通常是这样定义的:命名空间定义了新的作用域。它们提供了一种避免名称冲突的方法。c++ 中的命名空间通常用于避免命名冲突。尽管命名空间...

2018-06-23 15:56:51 343 0

原创 游戏引擎开发中需要注意的循环结构

我们在游戏设计和开发中,尤其是引擎开发中,逻辑循环是一个重要组成部分,循环决定了游戏的基础逻辑和运行方式,在不同的开发环境和语言下,对于循环的释义甚至相差甚远,那么我想和大家分享的是在Silverlight游戏开发中,循环的设计方式和做法。以下内容来自以往的游戏开发经验,可能在其他语言中的相关文章...

2018-06-22 17:50:57 203 1

原创 如何成为一个合格的程序员

偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员需要做的一些事情。记住,想成为一名程序员,很多条路可走,这里列出的只是我的方法。1. 解决你自己的问题 —从外面获取答案...

2018-06-22 11:51:06 190 0

原创 竟然这就是面向对象的游戏设计?!

从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句。在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计。本文将概述原型继承和使用 JavaScript 实现基本的面向对象的编程 (OOP)。学习如何在 JavaScript...

2018-06-21 14:07:25 664 1

原创 游戏中人工智能的优化

建立一个简单的游戏引擎和人工智能NPC后,我们需要对他们进行优化,如何建立,可以参考我在评论里的链接语义结点的抽象不过我们在这篇博客的讨论中是不能仅停留在能解决需求的层面上。目前的方案至少还存在一个比较严重的问题,那就是逻辑复用性太差。组合状态需要 coding 的逻辑太多了,具体的状态内部逻辑需...

2018-06-20 14:02:33 184 2

原创 如何简洁实现游戏中的AI

端午节放假总结了一下好久前写过的一些游戏引擎,其中NPC等游戏AI的实现无疑是最繁琐的部分,现在,给大家分享一下:从一个简单的情景开始怪物,是游戏中的一个基本概念。游戏中的单位分类,不外乎玩家、NPC、怪物这几种。其中,AI 一定是与三类实体都会产生交集的游戏模块之一。 以我们熟悉的任意一款游戏中...

2018-06-19 11:51:35 2022 0

原创 如何快速搭建一个简单的塔防小游戏

C语言是所有编程语言的基础,当我们对C语言有足够深入的理解后,就能轻松入门其他语言,比如现在流行的Python。现在,我将带领大家看一个基于C语言经典算法,使用Python编写的塔防小游戏。在塔防游戏中,有许多敌人向着同一目标前进。在很多塔防游戏当中,有一条或几条事先预定好的路径。在一些中,比如经...

2018-06-15 09:35:23 793 0

原创 一个小小的C++游戏引擎

跳一跳是我想玩的游戏类型:3D卡通外观的复古街机游戏。目标是改变每个填充块的颜色,就像Q * Bert一样。Hop Out仍在开发中,但引擎的功能已经很完善了,所以我想在这里分享一些关于引擎开发的技巧。你为什么想要写一个游戏引擎?可能有很多原因:你是个修理工,喜欢从头开始建立系统,直到系统完成。关...

2018-06-14 23:52:08 7372 0

原创 永远缅怀开始从事游戏开发的日子

学校里永远觉得事情都很简单,只要愿意,就会水到渠成,但学校归学校,现实归现实。我很乐意和你分享在写代码阶段闹出的洋相。在写iOS游戏的过程中,我发现有些事情和我想的不一样。10) “快完成”和“完成”之间的距离比你想的更远不知道你有没有见过这个游戏,它是一个很古老的记忆游戏,你需要翻开一张牌,然后...

2018-06-13 21:46:40 229 0

原创 项目中的缓存那些事儿

1.为何需要缓存?在高并发请求时,为何我们频繁提到缓存技术?最直接的原因是,目前磁盘IO和网络IO相对于内存IO的成百上千倍的性能劣势。做个简单计算,如果我们需要某个数据,该数据从数据库磁盘读出来需要0.1s,从交换机传过来需要0.05s,那么每个请求完成最少0.15s(当然,事实上磁盘和网络IO...

2018-06-13 17:29:49 169 0

原创 如何用C++做游戏(3)

上一讲我把Lua基本的栈规则讲了一下,然后完善了一下我的CLuaFn类。让它可以支持任意参数数量和函数名称的传值。当然,这些功能是为了今天这篇文章而铺路的。我是一名(C++)程序员,所以在很多时候,不想过多的使用Lua的特性,因为个人感觉,Lua的语法要比(C++)的更加灵活。而我更希望,在函数调...

2018-06-12 21:41:57 1720 0

原创 如何用C++做游戏(2)

上一节讲了一些基本的Lua应用,或许你会说,还是很简单么。呵呵,恩,是的,本来Lua就是为了让大家使用的方便快捷而设计的。如果设计的过为复杂,就不会有人使用了。下面,我要强调一下,Lua的栈的一些概念,因为这个确实很重要,你会经常用到。熟练使用Lua,最重要的就是要时刻知道什么时候栈里面的数据是什...

2018-06-12 21:40:34 2490 2

原创 如何用C++做游戏(1)

现在,越来越多的C++服务器和客户端融入了脚本的支持,尤其在网游领域,脚本语言已经渗透到了方方面面,比如你可以在你的客户端增加一个脚本,这个脚本将会帮你在界面上显示新的数据,亦或帮你完成某些任务,亦或帮你查看别的玩家或者NPC的状态。。。如此等等。但是我觉得,其实脚本语言与(C++)的结合,远远比...

2018-06-12 21:39:50 8297 2

原创 初入职软件工程师的血泪——C语言内存优化

刚刚开始工作就被前辈训得一塌糊涂,特别是对于优化这一块没有一点潜意思,现在不得不重新学习代码优化。对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机器依然无法取代,通常,加快程序的速度也会加大代码量。这些增加的代码也会影响一个程序的复杂度和可读性,这是不可接受的,比如你在一些...

2018-06-11 15:31:25 443 1

原创 内存优化最后一弹——优化函数运行

快起来,这真的是最后一篇啦!计算非零位的个数 / counting the number of bits set例1:测试单个的最低位,计数,然后移位。//example1 int countbit1(uint n) { int bits = 0; while (n != 0) {...

2018-06-11 15:30:49 250 0

原创 无止境的内存优化——停不下的循环

小伙伴们是不是跟我一样,以为之前的内存优化已经完成了?不,这才刚刚开始……让我们一起进入这无休止的循环吧!switch语句和查找表 / Switch statement vs. lookup tablesswitch语句通常用于以下情况:调用几个函数中的一个设置一个变量或返回值执行几个代码片断中的...

2018-06-11 15:29:44 184 1

原创 继续内存优化——一脸懵逼

如果说之前的优化部分,数据变量和全局局部变量已经让人头大,那接下来的部分肯定会让各位感受到迎面而来的清新气息。指针 / Pointers如果可能,我们应该使用结构体的引用作为参数,也就是结构体的指针,否则,整个结构体就会被压入堆栈,然后传递,这会降低速度。程序适用值传递可能需要几K字节,而一个简单...

2018-06-11 15:28:29 264 1

原创 C语言内存优化——继续含泪总结

之前分析了基本数据类型的优化,现在开始涉及全局和局部变量的优化,话说这个东西我从没想过还能这样优化的喂!全局变量 / Global variables全局变量不会被分配在寄存器上,修改全局变量需要通过指针或者调用函数的方式间接进行。所以编译器不会将全局变量存储在寄存器中,那样会带来额外的、不必要的...

2018-06-11 15:27:30 2556 1

原创 2048小游戏

废话不多,直接上源码#include<time.h> #include<stdlib.h> #include<conio.h> #include<stdio.h> #inclu...

2018-06-08 20:07:19 194 0

原创 Redis中常用五种数据结构

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。而且Redis是一个key-val...

2018-06-04 21:04:41 11358 2

原创 NSQL数据库的5种经典

1、MongoDBMongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出...

2018-06-03 18:14:02 684 0

原创 菜鸟先飞——C语言内存管理

一个由C编译的程序占用的内存分为以下几个部分1、栈区(stack)程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap)在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收...

2018-06-02 17:47:41 314 0

原创 菜鸟的进击——C语言实现老鼠走迷宫

老鼠走迷宫,一只实验室的小老鼠被用来做迷宫智力实验。科学家在迷宫的一角放上一块奶酪,小老鼠要在最快时间内找到奶酪。老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。解法老鼠的走法有上、左、下、右四个方向,在每前进一格之后...

2018-06-01 22:14:26 1865 1

原创 小白Linux教程——手动升级内核

作为一个底层的硬件工程师,免不了和Linux打交道,而曾经有一段时间,升级Linux内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像apt这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针...

2018-05-31 18:38:16 8360 1

提示
确定要删除当前文章?
取消 删除