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和各种道具带来的快感,不过这种游戏基本不会运营太长时间就会关服。
后来我就想到是不是可以自己搭建个游戏,正好自己是做前端的,也很想研究下游戏界面是如何实现的,所以就开始研究,各种查找资料,直到自己搭建成功了第一款游戏《大天使之剑》,打开了新世界。倾诉app源码
我搭建的游戏基本都是Linux环境的H5游戏,只搭建过一款客户端类型的《阿拉德之怒》,因为自己是做前端的,所以对H5比较熟悉,而且因为自己使用的苹果手机,App需要签名会比较麻烦,而H5只要有浏览器就可以。
至于为什么不用windows环境和一键端,则是因为我买的服务器配置都比较低,windows会占用过多内存,而一键端的集成特性会使得一台服务器基本只能搭建一个游戏,很不划算。
我的博客和公众号初衷是分享一些IT技术文章,后来也把游戏架设写了进去,发现浏览关注人数增加了不少- -,占到百分之7、,这让我哭笑不得,总觉得背离了初衷。
现在博客的点击量是W+,基本每天会有的访客和的点击量。
公众号目前关注人数6千,嗯,大部分都是因为游戏关注的- -。
然后还有个游戏群...主要是给大家游戏授权和交流用。
架设游戏首先需要一台服务器,市面上的云服务器很多,建议选大厂的,2核4G内存6M宽带配置一般游戏足矣,H5游戏比较吃宽带,会员端源码因为需要加载的网络资源比较多。
个人推荐腾讯云的轻量应用服务器,性价比高,放心我不是打广告,我不配- -,新人、双十一或者新年活动比较合适,一年不到,有条件的可以多买几年,腾讯云轻量应用服务器还有个好处是可以免费创建两个快照,这点很实用。
网上的资源网站其实很多,我整理了几个我常用的资源网站,有收费的也有免费的。
以上网站有挂掉或者停止运营的风险,请谨慎购买。还有很多其他的资源网站,大部分都是搬砖的资源,很容易搜到。如果还找不到,可以看看以上这些资源网的友情链接。
大部分资源网站用的都是Zibll、CeoMax或者Ripro主题网站,自己也曾想过搞一个的念头,奈何时间精力有限,就放弃了。我架设过的游戏资源都会免费分享在公众号上,大家可以通过公众号echeverra回复游戏名获取。
架设游戏有时候是一件很玄妙的事情,《阿拉德之怒》我第一次架设还算顺利,telegram源码界面现在已经连续运行了多天没有发生过异常重启,但是第二次换服务器架设却死活也不成功,我怀疑很大概率是由于服务器本身的问题。
架设就好比你看说明书组装家具一样,只要安装指定的环境,按照步骤一步步来基本都会成功的,我写的图文教程都很详细,很多人都架设成功并在群里分享。如果环境步骤都没问题多次尝试还是不成功,那很有可能是遇到我上文提到的服务器自身问题。
这里列举一些游戏群里大家架设大概率会遇到的问题:
游戏是可以使用域名的,最开始我使用域名有两个原因,第一域名比直接IP访问更直观且高大上,第二如果服务器到期了,虽然要更换服务器IP,但是访问游戏的域名是不变的。
但使用域名是有风险和限制的,域名备案需要填写网站类型,个人是没有运营游戏资质的,所以废了九牛二虎之力我又将域名形式改回了IP,如果你有类似想法就不要踩坑了- -。
经常有人会问我一个服务器上能不能同时搭建多个游戏,答案是肯定的,我基本上每个服务器都会搭建2-3个游戏,还有博客网站等,这也导致我的服务器基本没有空闲的时候,一直有网络请求。
想要一个服务器搭建多个游戏有几个比较苛刻的前提:
第一是几款游戏搭建环境一致或兼容,如CentOs的版本,数据库的bios更换源码类型和版本等,只有环境都符合搭建的几个游戏才能都成功运行起来,比较好的一点是一般游戏对环境要求都比较通用,大部分使用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、整体服务的调用过程如下
整理不易,干货分享就找@搬砖后端研发
本文中涉及的源码,如有需要可以私聊我呀