1.javaä¸è¬ç¨ä»ä¹è½¯ä»¶ç¼åï¼
2.H5游戏架设经验分享
3.easyuiåextjsåªä¸ªå¥½
4.原来这么简单Springboot多module项目工程搭建这样做就好了。源码搬砖
javaä¸è¬ç¨ä»ä¹è½¯ä»¶ç¼åï¼
ç°å¨ä¼ä¸javaå¼åä¸è¬ä½¿ç¨åªäºè½¯ä»¶å¼åï¼
é对ç°å¨ä¼ä¸çè¯ï¼å ¶å®ä½¿ç¨ç软件æ¯å·®ä¸å¤çï¼ä¼ä¸è¶å¤§ï¼å¯è½æ¶åå°çå·¥å ·æ´å¤äºãå¦ä¹ Javaå¼åæ¨èåéæè²ï¼åéæè²å£ç¢å¾ä¸éï¼å®å强大ï¼èä¸åéçä¼ä¸ä½¿å½å°±æ¯è´åäºå¸®å©æ´å¤è¿·è«çå¦çå®ç°ä»ä»¬ç梦æ³ã
å举å¦ä¸ï¼
1ããideaãè¿ä¸ªæ¯ç®åæ主æµçJavaå¼åå·¥å ·ï¼åºè¯¥ä¹æ¯ä½¿ç¨æå¤çäºï¼åå®ç»å¸¸æ¿åºä¸å讨论çæ¯ãEclipseãï¼è¿ä¸¤ä¸ªæ¯Java使ç¨æ广æ³çå¼åå·¥å ·ï¼
2ããgithub/gitlabãè¿ä¸¤ä¸ªç½ç«ä¸»è¦æ¯ç¨äºä»£ç 管ççï¼ç®å使ç¨gitçæ¯ä½¿ç¨svnçè¦å¤å¾å¤ï¼
3ããmavenãè¿ä¸ªå ¶å®åºè¯¥ä¸è½ç®å·¥å ·ï¼æ¯ç¨äºjarå 管ççï¼
4ããjira/ç¦ é/bugzillaãè¿å 个æ¯ç¨äºé¡¹ç®ç®¡çï¼æµè¯æbugç¨çï¼
5ããjenkinsãç¨äºåæç»éæå项ç®ç¼è¯çï¼
6ããconflunece/è¯éãè¿ä¸¤ä¸ªä¸è¬æ¯ç¨äºå¢éåä½åæ档记å½çï¼æ¯å¦éæ±ææ¡£ï¼å¼åææ¡£ï¼æµè¯ææ¡£çï¼
7ããstarUML/processON/planUMLãè¿äºä¸è¬ç¨äºç»æµç¨å¾ï¼æ¶åºå¾ä½¿ç¨çï¼
8ããAxureãè¿ä¸ªæ¯ç¨äºäº§å使ç¨ï¼ç»ååprdçï¼
æ³è¦äºè§£æ´å¤javaå¼åçç¸å ³ä¿¡æ¯ï¼æ¨èå¨è¯¢åéæè²ãåéå±ç²¾å¾æ²»ï¼ä¸æ¹æè²åå¿ãåä¸å¹´æ¥ï¼åé以æ¿ç为å¼å¯¼ï¼ä¸æå®åå½å ç¹è²ç°ä»£èä¸æè²ä½ç³»å»ºè®¾ï¼å ååæ¥æç å¸èµéä¼ä½¿å½ï¼æ建åè´¨æè²ï¼å 大åæ°å人æå¹å »å度ï¼ä¸ºç»æµåå±æä¾æºå人æåæºåæ¯æï¼æ为æ°æ¶æèä¸æè²åå±çæ°æ¹åï¼å¨åè¡ä¸ä¸æå¾é«çç¾èªåº¦ã
å¦ä¹ javaéè¦ä¸è½½ä»ä¹è½¯ä»¶ï¼
1ãå®è£ JDKï¼å°å®ç½ä¸å»ä¸è½½JDK1.6ï¼ä¸éè¦ä½¿ç¨ææ°ç1.8ï¼å¾å¤è½¯ä»¶ä¸ºäºå ¼å®¹æ§é½è¿å¨1.6ä¸è·çãå¦ä¹ 好åºç¡ä¹åï¼å使ç¨éæå¼åç¯å¢çå¼åå·¥å ·ï¼IDEï¼ï¼æ¨è使ç¨InteliJ(ä»è´¹ç)ï¼åè½å¾å¼ºå¤§ï¼æºè½ãå è´¹çè¯ï¼æ¨è使ç¨eclipseå§ã
MyEclipseåè½å¾å¼ºå¤§ï¼å»ºè®®æ¯å ä¸è¦ä½¿ç¨ï¼å¼åå·¥å ·ä»è®°äºæ¬--UltraEdit---JBuilder--MyEclipseä¸ç¹ç¹è¿æ¸¡
åå¦javaï¼ä¸è¬é½æ¯ä»æ§å¶å°åºç¨ç¨åºå¼åå¼å§ç(æåå¼å§å欢å¨è®°äºæ¬ä¸å代ç )ï¼å¨cmdä¸è°è¯ï¼é¦å ä½ è¦ä¸ºä½ ççµèæ建好å¼åç¯å¢ï¼ä½ éè¦å¨sunç½ç«ä¸(å ¶å®ä¸è½½ç«ä¹æ)ä¸è½½ä¸ä¸ªå«JDKçä¸ä¸ï¼å®è£ å®æåè°è¯æåä½ å°±å¼å§åä½ ç第ä¸ä¸ªjavaç¨åºäºã
ç¨è®°äºæ¬åäºä¸æ®µä½ åä¼åç°ï¼è¿TM太æ¯ç¥äºï¼ç¨åºå¼åå¦æåªæ¯è¿æ ·ï¼è¾è¾è¦è¦å天æ£çé±ï¼è¿ä¸å¦å»æ¬ç ãææ°´æ¥çå®å¨(æè¿æ ·è¯´ï¼å¹¶ä¸æ¯è¯´è®°äºæ¬ä¸å¥½ï¼çæ°çç¨åºåï¼æéç±çå°±æ¯è®°äºæ¬ï¼æ们ä½ä¸ºåå¦è ï¼è¿æ¯å¿ ç»ä¹è·¯)ï¼è¿æ¶åä½ å°±è¦èèæ¢äºï¼UltraEditãè¿æJBuilderï¼é½æºå¥½ç¨ç
éçä½ å¦ä¹ çè¶æ¥è¶æ·±ï¼ä½ å°±ä¸åååªå±éäºæ§å¶å°å¼åï¼å°±ä¼æ ¢æ ¢å¯¹webå¼åæå ´è¶£äº(ä¾å¦ä½ ç»å¸¸ä½¿ç¨çç½é¶ï¼ç°å¨é¶è¡çç½ä¸é¶è¡äº¤æç³»ç»é½æ¯ç¨jsp(j2eeçæ ¸å¿ææ¯)åç)ï¼è¿æ¶åä½ éè¦æ´å¼ºå¤§ç软件æ¥æ¯æä½ çå¼å(ä½ åºå»ææ¶ï¼æ¿çæ£åæä¹æé£å®¶ä¼é½ä¸æ»ï¼è¿æ¶åä½ å°±è¦èèæ¢åäºï¼å¼åå·¥å ·åªæ¯ä½ æå©ç¨çä¸ä¸ªå·¥å ·ï¼éè¿å®æ¥è¾¾å°ä½ çç®ç)
åwebå¼åï¼å¾å¤äººå欢å欢ç¨Dreamweaverå æ页é¢è®¾è®¡å¥½ç¶ååææ½å°Eclipseä¸åè¿è¡ä¸å¡é»è¾çå ¶å®çå¼åï¼æçæ¶åæ ¹æ¬å°±æ¯ä¹±ä¸å «ç³ï¼æç建议æ¯è¿ä¸è¥¿ä½ æ好å«ç¨ï¼ä½ æå¨ç¼ååºæ¥çä¸è¥¿ï¼ä½ èªå·±æ´å¥½æ§å¶
å½ä½ çweb页å好çæ¶åï¼ä½ éè¦æå®é¨ç½²å¨æå¡å¨è½¯ä»¶ä¸ï¼è®©å®å¨èµ·æ¥å¨æå°æ¾ç¤ºå¨ä½ çç¼åï¼è¿æ¶åä½ éè¦ä¸æ¬¾æå¡å¨è½¯ä»¶ï¼ç°å¨æå¡å¨å·¥å ·åtomcatä¹ç±»çé½æ¯å è´¹çï¼ä½ å¯ä»¥åç½ä¸ä¸è½½ï¼æä¸æ¢ä¹±ç²é¾æ¥ï¼è¦ä¸å¯è½æç»ä½ ç解çä¼è¢«ç¾åº¦å±è½æç
åjavaå¼åï¼å¦ææ¶åå°äºwebå¼åï¼a.JSPb.åºæ¬ç½é¡µè®¾è®¡c.JavaScriptèæ¬d.æå¡å¨ææ¯e.æ°æ®åºf.ççççè¿äºä½ é½è¦æ¶çï¼å¤çä¸äºçµå书ï¼è§é¢ï¼ä¸ç½æ¥ä¸äºèµæï¼å¯¹ä½ ä¼æå¾å¤§ç帮å©ï¼ä¸å®è¦å¤å!
Javaä¸æç»äººçæè§å¾é¾ï¼ä½åªè¦ä½ åªåï¼ä¼è¶å¦è¶ç®åï¼.NETä¸æå¾ç®åï¼ä½è¶å¦è¶æ·±,源码搬砖è¯è¨æ¯ç¸éçï¼å½ä½ æä¸å¤©å¨javaä¸æ¸¸åæä½çæ¶åï¼ä½ å¦ä¹ å ¶å®è¯è¨çæ¶åï¼ä¼æ¯å«äººå¿«ä¸äºç
åå¦è ç¨ä»ä¹å¼å软件æ¥ç¼åJAVAç¨åºï¼ç¨myeclipseæè eclipseï¼è®°äºæ¬é½å¯ä»¥ã
1.åå¦è çè¯ä¸å»ºè®®ä¸æ¥å°±ç¨IDEå¼åå·¥å ·æ¯å¦è¯´EclipseãMyEclipseãIntelliJIDEAãnetbeanãä½æ¯ä¹å¯ä»¥ä½¿ç¨è¿äºï¼ä¸å»ºè®®çåå ä¸ä¾¿äºä½ äºè§£JavaAPIï¼åç¸å ³çç¼è¯åçï¼ç¼è¯è¿ç¨ä¹ç±»çã主è¦æ¯å°±æ¯çæåºç¡ã
2.åå¼å§å¯ä»¥ä½¿ç¨è®°äºæ¬ãeditplusãnotepadï¼è¿äºå·¥å ·çè¯ï¼æ¯è¾å纯ï¼ä½æ¯å¯è½ä¼ç»åå¦è å¶é ä¸äºä¸å¿ è¦ç麻ç¦ï¼å½±åå¦ä¹ ç积ææ§ã
3.ä¼è®©ä½ å¿«éæ¾å°ç¼ç¨çå¿«æã2çè¯å¦æä½ æå®äºä½¿ç¨IDEçè¯ä¹å°±æ¯å¦æ°å®¶çã并ä¸å¯¹äºåºç¡ä¹ä¼äºè§£çæ¯è¾å¤,å 为å¨ä½¿ç¨2çè¿ç¨ä¸ä½ ä¼ç¯ä¸å¾å¤é误ï¼å½ç¶å¤§å¤æ°å¯è½é½æ¯æ¼åé误ï¼ä½æ¯è¦å¤§èè¯éï¼ä¸è¦æã
4.ä¹å¯ä»¥ä½¿ç¨è®°äºæ¬ç¼è¾ä¿åæ ¼å¼ä¸º.javaçæ件ï¼ç¶åå®è£ JDKï¼ä½¿ç¨cmdå»ç¼è¯æ§è¡ã
JAVAç¼ç¨æ¯ç¨ä»ä¹è½¯ä»¶çï¼JAVAç¼ç¨å¸¸ç¨ç软件ï¼
1ãEclipseï¼
Eclipseæ¯ä¸ä¸ªå¼æ¾æºä»£ç çãåºäºJavaçå¯æ©å±å¼åå¹³å°ãå°±å ¶æ¬èº«èè¨ï¼å®åªæ¯ä¸ä¸ªæ¡æ¶åä¸ç»æå¡ï¼ç¨äºéè¿æ件ç»ä»¶æ建å¼åç¯å¢ã幸è¿çæ¯ï¼Eclipseé带äºä¸ä¸ªæ åçæ件éï¼å æ¬Javaå¼åå·¥å ·ï¼JavaDevelopmentToolsï¼JDTï¼ã
2ãMyEclipseï¼
MyEclipseæ¯Eclipseçå级çï¼ä¹æ¯ä¸æ¬¾åè½å¼ºå¤§çJ2EEéæå¼åç¯å¢ï¼ç±Genuitecå ¬å¸åå¸ï¼æä¾å è´¹çåæ¶è´¹çã被èªä¸ºæ好ç¨çJavaIDEä¹ä¸ã
MyEclipseæ¯å¯¹EclipseIDEçæ©å±ï¼å©ç¨å®å¯ä»¥å¨æ°æ®åºåJavaEEçå¼åãåå¸ä»¥ååºç¨ç¨åºæå¡å¨çæ´åæ¹é¢æ大çæé«å·¥ä½æçã
3ãIntelliJIDEAï¼
IntelliJIDEAæ¯ä¸æ¬¾ç»¼åçJavaç¼ç¨ç¯å¢ï¼è¢«è®¸å¤å¼å人ååè¡ä¸ä¸å®¶èªä¸ºå¸åºä¸æ好ç¨çIDEä¹ä¸ï¼ä¸MyEclipseé½åã
å®æä¾äºä¸ç³»åæå®ç¨ççå·¥å ·ç»åï¼æºè½ç¼ç è¾ å©åèªå¨æ§å¶ï¼æ¯æJ2EEï¼Antï¼JUnitåCVSéæï¼éå¹³è¡çç¼ç æ£æ¥ååæ°çGUI设计å¨ã
4ãNetBeansï¼
NetBeansIDEæ¯ä¸ä¸ªå±¡è·æ®è£çéæå¼åç¯å¢ï¼å¯ä»¥æ¹ä¾¿çå¨WindowsãMacãLinuxåSolarisä¸è¿è¡ãNetBeanså æ¬å¼æºçå¼åç¯å¢ååºç¨å¹³å°ï¼NetBeansIDEå¯ä»¥ä½¿å¼å人åå©ç¨Javaå¹³å°è½å¤å¿«éå建Webãä¼ä¸ãæ¡é¢ä»¥å移å¨çåºç¨ç¨åºã
5ãBlueJï¼
BlueJæ¯ä¸æ¬¾æ¯æJavaç¼ç¨è¯è¨çéæå¼åç¯å¢ï¼IDEï¼ãå®åæ¬æ¯ä¸ºäºæè²ç®çèå¼åçï¼åæ¶ä¹éåäºé£äºæ³åå°å软件å¼åçå¼å人åãå®çè¿è¡éè¦JDKï¼Javaå¼åå·¥å ·å ï¼ç帮å©ãBlueJ主è¦æ¯ä¸ºé¢å对象çç¨åºè®¾è®¡æå¦èå¼åçï¼å æ¤å®ç设计ä¸åäºå ¶ä»çå¼åç¯å¢ã
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-BlueJ
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-IntelliJIDEA
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-Netbeans
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-eclipse
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-MyEclipse
ç¨æ¥ç¼åJAVAç¨åºçåºç¨è½¯ä»¶æåªäºï¼1ãEclipse-IBMç©åºæ¥ç»å¼æºç¤¾åºçIDEï¼å ¶æ¬èº«å°±æ¯ä½¿ç¨Javaå¼åçã\x0d\2ãMyEclipse-æEclipseå è£ äºä¸ä¸ï¼å äºJ2EEä¼ä¸å¼åç许å¤åè½å¼ºå¤§çæ件ã\x0d\3ãNetBeans-SUNå ¬å¸èªå·±å¼åçJavaå¼åç¯å¢ï¼åè½æºå¤çã\x0d\4ãè¿æä¸äºè¶ å欢æå·¥ç¼åJava代ç çç人å欢使ç¨å¸¦è¯æ³çè²åè½ç纯ææ¬ç¼è¾å¨ç¼åJavaç¨åºï¼ä»£ç åå®åå¨å½ä»¤æ示符ä¸ç¼è¯è¿è¡ãè¿ç§æ¹å¼åªéç¨åå°é代ç æä½ä¸ºå¦ä¹ 使ç¨ï¼å¼å大å项ç®ä¸éç¨ï¼å 为æçå¾ä½ã
Javaè¯è¨ä¸æåªäºå¿ å¤çå¼åå·¥å ·ï¼æ³è¦æ为Javaææ¯å¤§ç并ä¸å®¹æï¼ææ¯å¤§çä¸ä» éè¦å ·å¤æå®çå¼åæè½ï¼è¿éè¦ææ¡å¼åå·¥å ·åæ¡æ¶ç使ç¨ï¼å¨å¼åä¸ï¼å·¥å ·çéæ©å使ç¨æ¯é常éè¦çï¼å·¥å ·çåè½ä¸å使ç¨çæ åµä¹ä¸åãä¸é¢çµèå¹è®ä¸ºå¤§å®¶å ·ä½ä»ç»Java软件å¼åå¿ å¤çå¼åå·¥å ·ã
1ãMongoDB
MongoDBæ¯ä½¿ç¨é常广æ³çå·¥å ·ï¼å ·æ跨平å°åé¢åææ¡£æ°æ®åºçä¼å¿ï¼æ¯ç°å¨ä½¿ç¨æå¤çä¸ç§æ°æ®åºãå¨ä½¿ç¨è¿ç¨ä¸ï¼æçµæ´»çæ档模åãé«å¯ç¨å¤å¶éãå¯æ©å±åçé群ï¼è¿è½è¿è¡å®æ¶çæ§çç¸å ³æä½ãITå¹è®è®¤ä¸ºå å使ç¨å页é¢é误ï¼å¤å¶éçä¸MongoDBçé´å½±æ¯å¯ä¸å¯åã
2ãElasticsearch
Elasticsearch主è¦æ¯äºæ建åå¸å¼RESTfulçæç´¢å¼æï¼ä½æ¯Elasticsearchä¸ä» ä» æ¯ä¸ä¸ªå ¨ææ¬çæç´¢å¼æï¼è¿æ¯ä¸ä¸ªå ·æåå¸å¼å®æ¶ææ¡£åå¨ï¼éé¢çæ¯ä¸ªæ°æ®é½å¯ä»¥è¢«æç´¢ãå¨ä½¿ç¨è¿ç¨ä¸ï¼è¿å ·æåå¸å¼æç´¢å¼æãåæå¼æçå®æ¶åæåè½ã
3ãCassandra
Cassandraå±äºå¼æºåå¸å¼æ°æ®åºç®¡çç³»ç»ï¼Cassandra主è¦æ¯ä½¿ç¨Javaç¼ç¨è¯è¨è¿è¡ç¼åçï¼æ以å¨JDK6以ä¸ççæ¬é½æ¯å¯ä»¥è¿è¡ä½¿ç¨çï¼ä½¿ç¨çæä½å½ä»¤åå¹³æ¶ä½¿ç¨çä¸äºæ°æ®åºç¸ä¼¼ãææå大éé¸è®¤ä¸ºåªè¦æ¯çæå ¶ä»æ°æ®åºçç¥è¯ï¼ä½¿ç¨Cassandraæ¯é常容æçã
4ãRedis
Rediså¯ä»¥è¿è¡å åæ°æ®ç»æåå¨ï¼Redisæå¾å¤å ¶ä»å·¥å ·æä¸å ·å¤çä¼å¿ï¼ä¸ä» å¯ä»¥å¨å åä¸ä¿åæ°æ®åºå 容ï¼å¹¶ä¸æ使ç¨çç£çå ·ææä¹ æ§ãRedisçæ°æ®ç±»åæ¯è®¸å¤é®å¼æ°æ®åå¨ç³»ç»æ´ä¸°å¯ï¼å¦ä¸ä¸ªä¼ç¹æ¯Rediså¯ä»¥å°æ°æ®å¤å¶å°ä»»ä½æ°åã
5ãHadoop
Hadoopæ¯è¿è¡Javaç¼åç软件æ¡æ¶ï¼ä¸»è¦ä½¿ç¨å¨åå¸å¼åå¨ã对äºé常大çæ°æ®ï¼ç¨æ·å¯ä»¥å¨ä¸ç¥éåå¸å¼åºç¡çæ åµä¸è¿è¡å¼ååå¸å¼ç¨åºï¼å¹¶ä¸è½å¤ä½¿ç¨é群å®ç°é«é计ç®ååå¨ãå¨ä½¿ç¨è¿ç¨ä¸ï¼å大éé¸ææ计ç®æºå¦é¢è®¤ä¸ºHadoopè¿è½å®ç°åå¸å¼æ件系ç»ï¼è½å¤å¯¹å¤§éçæ°æ®è¿è¡åå¨ã
H5游戏架设经验分享
首先,我不是源码搬砖专业做游戏的,只是源码搬砖在一些机缘巧合下,发现可以自己架设游戏做GM,源码搬砖后台免费发送游戏中的源码搬砖微信 支付 源码各种充值和道具,然后在游戏里为所欲为,源码搬砖各种榜一秒杀,源码搬砖简直不要太爽,源码搬砖于是源码搬砖便一发不可收拾开始了游戏架设的研究...
本文分享我对游戏架设的经验心得,如果你也喜欢架设游戏,源码搬砖那么这篇文章肯定会对你有所帮助。源码搬砖
我目前架设运行的源码搬砖游戏都汇总在文章:好玩的免费GM游戏整理汇总,所有游戏架设教程,源码搬砖包含已下架的源码搬砖都在我博客的游戏分类中,网上大多是视频教程,而像我这种耗时耗力写详细图文教程基本是没有的。
游戏架设对我来说就像打开了一个新世界,原来游戏还可以这么玩~
最开始我是在某宝上发现有后台的游戏,可以任意充值和发送道具,觉得很爽,虽然还当不了榜一,但是可以体验满级VIP和各种道具带来的快感,不过这种游戏基本不会运营太长时间就会关服。
后来我就想到是不是可以自己搭建个游戏,正好自己是做前端的,也很想研究下游戏界面是如何实现的,所以就开始研究,各种查找资料,直到自己搭建成功了第一款游戏《大天使之剑》,打开了新世界。编辑指标源码
我搭建的游戏基本都是Linux环境的H5游戏,只搭建过一款客户端类型的《阿拉德之怒》,因为自己是做前端的,所以对H5比较熟悉,而且因为自己使用的苹果手机,App需要签名会比较麻烦,而H5只要有浏览器就可以。
至于为什么不用windows环境和一键端,则是因为我买的服务器配置都比较低,windows会占用过多内存,而一键端的集成特性会使得一台服务器基本只能搭建一个游戏,很不划算。
我的博客和公众号初衷是分享一些IT技术文章,后来也把游戏架设写了进去,发现浏览关注人数增加了不少- -,占到百分之7、,这让我哭笑不得,总觉得背离了初衷。
现在博客的点击量是W+,基本每天会有的访客和的点击量。
公众号目前关注人数6千,嗯,大部分都是因为游戏关注的- -。
然后还有个游戏群...主要是给大家游戏授权和交流用。
架设游戏首先需要一台服务器,市面上的云服务器很多,建议选大厂的,2核4G内存6M宽带配置一般游戏足矣,H5游戏比较吃宽带,dfs源码解析因为需要加载的网络资源比较多。
个人推荐腾讯云的轻量应用服务器,性价比高,放心我不是打广告,我不配- -,新人、双十一或者新年活动比较合适,一年不到,有条件的可以多买几年,腾讯云轻量应用服务器还有个好处是可以免费创建两个快照,这点很实用。
网上的资源网站其实很多,我整理了几个我常用的资源网站,有收费的也有免费的。
以上网站有挂掉或者停止运营的风险,请谨慎购买。还有很多其他的资源网站,大部分都是搬砖的资源,很容易搜到。如果还找不到,可以看看以上这些资源网的友情链接。
大部分资源网站用的都是Zibll、CeoMax或者Ripro主题网站,自己也曾想过搞一个的念头,奈何时间精力有限,就放弃了。我架设过的游戏资源都会免费分享在公众号上,大家可以通过公众号echeverra回复游戏名获取。
架设游戏有时候是一件很玄妙的事情,《阿拉德之怒》我第一次架设还算顺利,商业源码资源现在已经连续运行了多天没有发生过异常重启,但是第二次换服务器架设却死活也不成功,我怀疑很大概率是由于服务器本身的问题。
架设就好比你看说明书组装家具一样,只要安装指定的环境,按照步骤一步步来基本都会成功的,我写的图文教程都很详细,很多人都架设成功并在群里分享。如果环境步骤都没问题多次尝试还是不成功,那很有可能是遇到我上文提到的服务器自身问题。
这里列举一些游戏群里大家架设大概率会遇到的问题:
游戏是可以使用域名的,最开始我使用域名有两个原因,第一域名比直接IP访问更直观且高大上,第二如果服务器到期了,虽然要更换服务器IP,但是访问游戏的域名是不变的。
但使用域名是有风险和限制的,域名备案需要填写网站类型,个人是没有运营游戏资质的,所以废了九牛二虎之力我又将域名形式改回了IP,如果你有类似想法就不要踩坑了- -。
经常有人会问我一个服务器上能不能同时搭建多个游戏,答案是肯定的,我基本上每个服务器都会搭建2-3个游戏,还有博客网站等,这也导致我的服务器基本没有空闲的时候,一直有网络请求。
想要一个服务器搭建多个游戏有几个比较苛刻的前提:
第一是几款游戏搭建环境一致或兼容,如CentOs的版本,数据库的西式快餐源码类型和版本等,只有环境都符合搭建的几个游戏才能都成功运行起来,比较好的一点是一般游戏对环境要求都比较通用,大部分使用CentOs 7 和mysql 5 都可以。
第二内存足够,一般一个H5游戏会占用小2G左右的内存,所有4G内存的配置只能搭建两个游戏,需要注意的是使用内存超过%会有大概率端口异常挂掉的情况。这时候可以写个脚本监测端口,挂掉再重新启动即可。
第三是端口不能冲突,几款游戏如果占用了同一个端口,那么肯定会有冲突,之前我搭建《冰雪传奇》和《雷霆传奇》就发生过冲突的端口,后来将《冰雪传奇》的端口进行了修改才解决。
第四是数据库表名不能冲突,和端口冲突同理,只能修改数据库和源码中的表名解决,但这种情况并不常见,除非你搭建的几款游戏是换皮的。
具体能否搭建多个游戏还需要实际去操作,多多尝试~
拿到一款游戏源码我都会强迫症的全局搜索源码中的广告,然后去除掉,因为很影响玩游戏的心情。
考虑安全问题,源码中的数据库密码和GM码我也会更改,建议大家也改掉。
架设好之后我会试玩一段时间,有一些简单的BUG我会尝试修复下,如果比较严重修复不了,影响整体游戏体验的那就只能放弃了,这种坑我也踩了不少。
我分享的游戏基本不会有大问题,而且都是我优化过的,像《梦幻西游》我就花了很长的时间去修复完善,直到满意为止。
数据是无价的,所以数据要及时备份,不要等数据丢失了才后悔莫及,我会使用两种方式对数据进行备份处理。
第一种是使用服务器快照,腾讯云轻量服务器有两个免费的快照,定期创建快照备份好,一旦有异常可对快照进行回滚恢复数据。阿里云的快照会按照容量收费,价格也很便宜。
第二种是使用宝塔的计划任务,可以定时每天执行备份数据库和文件,发生异常可以导入备份的数据库,记得每隔一段时间把备份的数据下载到本地保存好,以防万一。
虽然这些游戏源码或者端在网上很多,但或多或少都有版权问题,如果是架设的私服游戏以营利为目的那肯定是违法的。所以我架设的游戏都是无法内充的,也不允许群里讨论内充问题。
具体的法律条文大家感兴趣可以查查,营利数额较大或者有其他严重情节的会被有期徒刑或者拘役,所以提醒大家一定一定不要有这种违法的念头。
研究架设游戏半年多的时间我认识很多游戏相关的朋友,有游戏资源网的站长,也有开发游戏的技术高手,还有一些热爱架设游戏的玩家。有几个对架设游戏特别感兴趣的玩家,架设遇到问题会研究很久,架设很多次直到成功。
其实我想说的是游戏架设大家玩玩就好,这个技术含量并没有那么高,不要把过多的时间和精力浪费在这上,真正有技术含量的是其中的源码实现,修复BUG和完善游戏功能。去把时间用在真正能提升自己的地方,不要本末倒置。
写本文的目的一个是想把自己对游戏架设的一些经验分享给大家,让大家少走一些弯路,还有一个原因算是对自己的半年多架设游戏的一个总结吧。自己购买了4台服务器,免费运行着6个游戏和数个小游戏,通过架设和玩游戏也收获了很多快乐,但也到此为止啦~
以后还是会继续维护运行这几款游戏,平时会给大家授权下GM,但应该不会在架设新游戏了,这里对我游戏群里的小伙伴说声抱歉- -,非常感谢大家的支持,我还是会把更多的时间精力放在工作和家庭上,毕竟架设游戏只是个爱好而已。
倒是有计划开发一款自己的博客主题,名字想好了叫star,每月的号是我和媳妇的纪念日,star小星星则是代表我们的小baby。希望博客主题开发好后大家多多支持捧场啦~
最后祝大家兔年快乐,新的一年都能有所收获~
好啦,以上就是我对H5游戏架设经验分享的所有内容,希望对你有所帮助,如有问题可通过我的博客或微信公众号echeverra联系我。
你学“废”了么?
(完)
文章首发于我的博客echeverra.cn/build-game,原创文章,转载请注明出处。
欢迎关注我的微信公众号echeverra,一起学习进步!不定时会有资源和福利相送哦!
easyuiåextjsåªä¸ªå¥½
ä½ä¸ºExtJsåEasyUIé½ç¨å¾å¾çç»çä¸ä¸ªèèµæ ¼ç¨åºåï¼æå表ä¸ä¸æççæ³ã
é¦å 两个æ¡æ¶çç»ä»¶é½å¾ä¸°å¯ï¼åä¸åºç¨é½è¦æ¶è´¹ãExtJSçå¨ææ§åæ©å±æ§æ´å¥½ï¼ä»ä½¿ç¨ææçï¼easyuiçç»ä»¶ç¸å¯¹ä½éªæ´å¥½ä¸ç¹ã
ExtJS
ä¼ç¹ï¼1.å®å ¨å¼æºï¼æ说çå¼æºçææ并ä¸æ¯è¯´ä¸æ¶è´¹ã
2.æé常èµèµå®çæ¶æ设计ï¼å®å ¨çé¢å对象çç»ä»¶å设计ãææçç»ä»¶é½æ¯ä»ä¸äºåºç¡çç»ä»¶æ´¾çåºæ¥çï¼å¹¶ä¸æä¾äºoveride,extendçæ©å±æ¹å¼ï¼å¯ä»¥è¯´è½å¤ä»»ææ©å±ãå¯è½ä¸äºå桶水ç人è§å¾ExtJSå¾é¾ç¨ï¼é£æ¯å 为ä»ä»¬åªæç®æ¯ã
3.ExtJSçææ¡£åå®ä¾åå¾æ¯EasyUIè¦å¥½å¾å¤ï¼åºç¡æ¯è¾å¥½çå¼å人ååªç¨çå®æ¹çææ¡£ãdemoãéå½åèæºç å°±è½å¤å®æä»»ä½å·¥ä½ï¼éå°é®é¢å®å ¨ä¸ç¨å»ç¾åº¦æ论åé®å ¶ä»äººã
4.å¯ä»¥å®å ¨å¨æå¼å,代ç é½åå¨JSæ件éï¼ä¸åExtJSé£æ ·éå¾å¨é¡µé¢æ¾ä¸ä¸ªDOMå ç´ ãæ以å¯ä»¥èªå·±å®å¶ç»ä»¶å¨ä»»æ页é¢å¼ç¨ï¼å¤ç¨æ§å¥½ã
缺ç¹ï¼1.å¯è½å¤ªå¤äººç¨ï¼é æ审ç¾ç²å³ï¼åæ£æçè »äºå®ççé¢ï¼èªå·±å®å¶çé¢ä¸»é¢æ太é¾ã
2.å¯è½å 为å®å¤ªåºå¤§ï¼ä¸åeasyUIé£æ ·åºäºé¡µé¢å·²æçHTML
DOM渲æï¼æ以ä¸è¬äººè§å¾æ¯è¾é¾(ä½æ¯è¯æ说ä¼æ¥ï¼å¦æ使ç¨è çæ°´å¹³é«çè¯ï¼è¿å ¶å®ä¹æ¯ä¹æ¯å®çä¼ç¹ãå ä¸ºä½ è¦æ¯å¨åä¸ä¸ªçé¢ç¹å»ä¸åæé®è¦å¨ææ¾ç¤ºåç§åæ ·ä¸åçwindowãformçççè¯ï¼åªè¦æè¿äºJSå¼ç¨å°å½å页é¢å°±å¯ä»¥å§ï¼è§ä¸è¿°ä¼ç¹4ï¼ã
easyui
ä¼ç¹ï¼
1.å¨é¡µé¢çDOMå ç´ å ä¸äºå±æ§ç¶åå å è¡JSå°±å¯ä»¥å¨ææé åºç¸åºçç»ä»¶ãå¼åæ¹å¼ç¸å¯¹ExtJSç´è§åç®æ´ä¸äºã
2.ç»ä»¶ç¸å¯¹ä½éªæ´å¥½ä¸ç¹ï¼çé¢å¥½åè·å¹²åç®æ´ã
缺ç¹ï¼1.åå¼æºï¼å¯¹äºä¸ä¸ªé«ææ¥è¯´çä¸å°æºä»£ç æ¯å¾çè¦çï¼äºï¼å 为ä»ä»¬æ»æè¿æ ·é£æ ·çæ©å±éæ±ã
2.ä¸å®è¦å¨é¡µé¢ä¸æ¾ç½®ç¸åºçDOMå ç´ æè½æ¸²æï¼å¦æä¸å¯¹domå ç´ è®¾ç½®éèçè¯ï¼å¨é¡µé¢æ²¡æ渲æè¿ç¨ä¸ä¼æ¾ç¤ºä¸å ä¹±ä¸å «ç³çä¸è¥¿ï¼æ以æ æ³èªå·±å®å¶ç»ä»¶å¨å ¶ä»é¡µé¢å¼ç¨ï¼è¦å¤ç¨çè¯å¾æ¬ç ä¸æ ·æJSåDOMé½å¤å¶è¿æ¥ï¼éå°é常å¤æç页é¢é£æ¯ç¸å½æä¹±åçè¦çã
原来这么简单Springboot多module项目工程搭建这样做就好了。
本文通过构建一个包含5个子模块的项目,演示SpringBoot在Maven环境下的多模块构建过程。
1、创建副工程
a. 通过Spring Initializr创建
b. 创建后删除不需要的文件,保留:.idea文件夹、项目pom文件以及一个*.iml文件
删除前->删除后
2、创建子模块
a. 右键点击父工程,选择New -> Module... 创建子模块。依次创建scaffold-common、scaffold-api、scaffold-dao、scaffold-service和scaffold-web共5个模块
注意:除了scaffold-web子模块创建时选择添加Spring Web依赖,其他模块暂时不添加依赖。
b. 将所有子模块的mvnw、mvnw.cmd文件及.mvn文件夹全部删除
c. 对于src里的内容,只保留scaffold-web的启动类和配置文件,其他子模块的启动类和配置文件都删除
3、编辑父工程的pom.xml文件
a. 将父工程pom.xml文件修改成如下内容,声明父工程包含的子模块,同时抽取统一的配置信息和依赖版本控制,方便子pom直接引用,简化子pom的配置
1、多模块项目中,父模块打包类型必须是pom。2、因为开发框架是Spring Boot,父模块默认继承spring-boot-starter-parent,因此可以删除spring-boot-starter和spring-boot-starter-test依赖(祖先已经包含了)
父工程pom.xml如下
4、编辑子模块pom.xml
a. 子模块scaffold-common的pom.xml文件内容如下,其中parent要使用顶层的父模块,同时由于项目用到了Lombok,所以还添加了lombok依赖
由于子模块的配置信息会继承父模块的,所以子模块原来的properties可删掉
b. 子模块scaffold-dao的pom.xml文件内容如下,同样parent要使用顶层的父模块,并添加scaffold-common子模块,以及数据库相关依赖
c. 子模块scaffold-service的pom.xml文件内容如下,同样parent要使用顶层的父模块,并添加scaffold-dao子模块依赖
实际开发中dao模块会引入对数据相关包的依赖,如mysql、Druid连接池、mybatis等
d. 子模块scaffold-web的pom.xml文件内容如下,同样parent要使用顶层的父模块,并添加scaffold-service子模块依赖
注意:之前创建这个子模块的时候已经添加了spring-boot-starter-web依赖,如果没有则手动添加
e. 子模块scaffold-api的pom.xml文件内容如下,同样parent要使用顶层的父模块
5、移动项目启动类所在包
a. 目前项目启动类ScaffoldWebApplication在com.xyy.scaffold包下面,需要将其移动到com.xyy包下
b. 移动的方式是右键点击ScaffoldWebApplication选择Refactor -> Move,将to package改成com.xyy
c. 移动后
6、编写controller并启动
a. 在com.xyy.scaffoldweb下写个测试Controller
b. 启动项目
c. 打开浏览器访问
搭建项目工程结构
搭建好多module项目并成功启动后,再来构建项目工程结构
1、scaffold-web模块
主要包含一个启动类、一个web和一个config包
2、scaffold-service模块
主要包含业务逻辑代码,包含业务接口及其实现类
3、scaffold-dao模块
主要包含数据访问层内容,DO定义、DB访问层以及数据库相关配置类
4、scaffold-common模块
包含每个模块可能都会用的一些基础类,如:dto、错误码、util工具类以及全局异常类和常量等
5、scaffold-api模块
主要负责外部依赖服务的管理,包含外部依赖服务的定义以及访问部分,以及通过facade模式做的封装类,如:request、response定义;外部服务api接口和外部服务通用枚举等
6、整体服务的调用过程如下
整理不易,干货分享就找@搬砖后端研发
本文中涉及的源码,如有需要可以私聊我呀