git » crow.game » commit ae1ca1a

devlog entry, use fluido

author b0in
2023-11-25 01:12:24 UTC
committer b0in
2023-11-25 01:12:24 UTC
parent 4e801502d8ff1a0f1d1444e3904e87aa7555b333

devlog entry, use fluido

as titled. fluido is going ot be in maven4 as default so switch now. plus, it auto implements code highlighting!

crow.game.site/src/site/apt/faq.apt +1 -5
crow.game.site/src/site/apt/index.apt +2 -2
crow.game.site/src/site/markdown/devlog.md +3 -0
crow.game.site/src/site/markdown/devlog/2023-11-24.md +103 -0
crow.game.site/src/site/resources/bgtexture.png +0 -0
crow.game.site/src/site/resources/css/site.css +0 -73
crow.game.site/src/site/site.xml +12 -1
pom.xml +7 -0

diff --git a/crow.game.site/src/site/apt/faq.apt b/crow.game.site/src/site/apt/faq.apt
index b5bee9d..14d19e9 100644
--- a/crow.game.site/src/site/apt/faq.apt
+++ b/crow.game.site/src/site/apt/faq.apt
@@ -29,8 +29,4 @@ FAQ
     I am currently writing against a client named 2021-11-05_Ragexe_1636095152_patched.exe
     but am working writing lots of version-aware hooks based on existing rathena code.
 
-    (TODO: include patchset list if necessary)
-
-* Who did your website? Can I pay them thousands of dollars to do mine?  /sarc
-
-   It is purposefully OK. I'm not beating myself up over it.
+    (TODO: include patchset list if necessary)
\ No newline at end of file
diff --git a/crow.game.site/src/site/apt/index.apt b/crow.game.site/src/site/apt/index.apt
index 4eff39d..4fe2358 100644
--- a/crow.game.site/src/site/apt/index.apt
+++ b/crow.game.site/src/site/apt/index.apt
@@ -4,9 +4,9 @@ About
 
 * Downloading the crow.game source code
 
-    You can download the source code here: {{https://b0in.xyz/crow/crow-game-latest.tar.gz}}.
+    You can download the source code here: TODO: link the source code download.
 
 * Binary releases:
 
     There is an OMNIBUS release which contains all the existing work so far as a runnable-jar
-    here: {{https://b0in.xyz/crow/releases/crow-game-omnibus-2023NNNN.tar.gz}}.
\ No newline at end of file
+    here:  TODO: build+link the runnable omnibus jar.
\ No newline at end of file
diff --git a/crow.game.site/src/site/markdown/devlog.md b/crow.game.site/src/site/markdown/devlog.md
new file mode 100644
index 0000000..dbac497
--- /dev/null
+++ b/crow.game.site/src/site/markdown/devlog.md
@@ -0,0 +1,3 @@
+## Development Log
+
+ * [devlog/2023-11-24.html](devlog/2023-11-24.html) - b0in
\ No newline at end of file
diff --git a/crow.game.site/src/site/markdown/devlog/2023-11-24.md b/crow.game.site/src/site/markdown/devlog/2023-11-24.md
new file mode 100644
index 0000000..aca624c
--- /dev/null
+++ b/crow.game.site/src/site/markdown/devlog/2023-11-24.md
@@ -0,0 +1,103 @@
+## Development Log - 2023-11-24
+
+Author: b0in
+
+### The first module!
+
+I have the first module up, the API for the extensible codec. The server protocol
+is made up of a few different groups of packets, some optional, so this shared API
+provides a way for our individual servers to define their own packets and expose them
+to the core netty TCP server.
+
+### Thoughts
+
+I have a proof of concept working that is the full login workflow. It has been a unique challenge
+separating out this proof of concept into a more thought out, documented codebase.
+
+All the maven scaffolding has been a nightmare, but now I have a working maven site that I
+can write with, hit save, and see results almost immediately. This is what you are
+reading now!
+
+### Features brainstorm
+
+As I mentioned in the FAQ, I like the idea of having a standalone runnable jar. So some
+brainstormed features have this in mind
+
+Embedded DB: A persistence layer based on an existing embeddable
+Java DB. H2, Derby, HSQLDB... these are some old classics. Nitrate looks neat but rocksdb
+requires JNI (can use mvstore, same as H2).
+
+Admin interfaces: A nicety and a way for quick configuration and bootstrapping. Both web
+and textual interfaces, with the latter possibly being provided via OSGI and GoGo.
+
+### Planned modules
+
+We have a few planned modules I'll list here and their jobs and their statuses. Anything
+unlisted would be considered near-0% completed.
+
+#### crow.game.codec.api - [90%]
+
+The shared API for serializing and deserializing packets. The bottom contains
+an example of a packet handler for Ping.
+
+#### crow.game.codec.netty - [10-20%]
+
+The netty specific code (FrameCodec, PacketCodec, etc.) The code is working and done
+but needs to imported in to this repository.
+
+#### crow.game.compat.rathena.proto - [1-10%]
+
+This is the packet specification for the rathena-specific calls, specifically used
+for HA packets between the login, char, and map servers.
+
+#### crow.game.compat.rathena.components - [1%]
+
+The rathena components which implement behavior that would make your servers compatible
+with existing rathena servers. This includes DB connectivity and querying, logic handlers
+and workflow systems for connecting to and listening for connections from other servers.
+
+There is a proof-of-concept as part of the larger login server, but it needs separation
+and design.
+
+#### crow.game.server.common - [1%]
+
+Common server components (TCP handlers, lifecycle management).
+
+#### crow.game.server.login - [1%-10%]
+
+The server which speaks the login protocol expected by the client. This has a
+proof-of-concept working but requires some decoupling from the rathena specific parts
+as well as error handling and in-memory state management.
+
+#### crow.game.release.omnibus - [0%]
+
+This would be the release of 100% of any server and client that is implemented as a
+runnable JAR.
+
+### Example: PingPacketHandler.java
+
+This is a working packet handler for the Ping operation (`0x2719`). It's a 0-length
+packet, once you remove the packet identifier. It is NOT packet version specific
+so the simple `rule()` implementation works. And our needs in fromPacket and toPacket
+are equally simple.
+
+```java
+public class PingPacketHandler implements PacketHandler<Ping> {
+	@Override
+	public Ping fromPacket(Context context, ByteBuf buffer) {
+                  // The ping packet is 0-length and requires no reading from
+                  // the buffer.
+		return new Ping();
+	}
+
+	@Override
+	public void toPacket(Context context, ByteBuf buffer, Ping t) {
+                  // The ping packet is 0-length and requires no writing.
+	}
+
+	@Override
+	public PacketRule rule(Context context) {
+		return PacketRule.Static(0x2719, /*length=*/0, Ping.class);
+	}
+}
+```
\ No newline at end of file
diff --git a/crow.game.site/src/site/resources/bgtexture.png b/crow.game.site/src/site/resources/bgtexture.png
deleted file mode 100644
index 5456977..0000000
Binary files a/crow.game.site/src/site/resources/bgtexture.png and /dev/null differ
diff --git a/crow.game.site/src/site/resources/css/site.css b/crow.game.site/src/site/resources/css/site.css
index 73af044..e69de29 100644
--- a/crow.game.site/src/site/resources/css/site.css
+++ b/crow.game.site/src/site/resources/css/site.css
@@ -1,73 +0,0 @@
-body {
-  width: 900px;
-  margin: 0px auto;
-  margin-top: 20px;
-  margin-bottom: 20px;
-  border: 1px solid grey;
-  padding: 20px;
-  box-shadow: black 4px 4px 2px;
-  background-color: white;
-}
-
-@media only screen and (max-width: 600px) {
-  body {
-      max-width: 90%;
-      padding: 10px;
-      box-shadow: none;
-      margin-top: 5px;
-      margin-bottom: 5px;
-  }
-  #leftColumn {
-    width: 80%;
-    float: none;
-    overflow: none;
-    margin: 0 auto;
-    margin-top: 20px;
-  }
-
-  #bodyColumn {
-    margin-right: 30px;
-    margin-left:30px;
-  }
-
-  #breadcrumbs {
-    width: 80%;
-    margin: 0 auto;
-  }
-
-  #bannerLeft, #banner {
-    font-size: medium;
-    font-weight: bold;
-    margin: 0px auto;
-    width: 80%;
-  }
-}
-
-html {
-  background-color: #ddbdbd;
-  background-image: url("../bgtexture.png");
-  background-blend-mode: multiply;
-}
-
-h2, h3, h1 {
-  border: none;
-  background-color: transparent;
-  padding: 2px;
-  text-decoration: underline;
-}
-
-.poweredBy {
-  display: none;
-}
-
-#navcolumn li.none {
-  padding: 5px;
-}
-
-#navcolumn li.expanded {
-  padding-top: 5px;
-}
-
-#navcolumn li.collapsed {
-  padding-top: 5px;
-}
\ No newline at end of file
diff --git a/crow.game.site/src/site/site.xml b/crow.game.site/src/site/site.xml
index 61ec02e..4f51b18 100644
--- a/crow.game.site/src/site/site.xml
+++ b/crow.game.site/src/site/site.xml
@@ -4,16 +4,27 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 https://maven.apache.org/xsd/decoration-1.3.0.xsd">
 
+    <!-- TODO: make a custom maven skin! -->
+    <skin>
+        <groupId>org.apache.maven.skins</groupId>
+        <artifactId>maven-fluido-skin</artifactId>
+        <version>1.12.0</version>
+    </skin>
+
     <version position="none"/>
     <bannerLeft>
         <name>Crow Game Server (crow.game)</name>
     </bannerLeft>
-    <publishDate position="right"/>
+    <publishDate position="left"/>
+    <custom>
+
+    </custom>
 
     <body>
         <menu name="Overview">
             <item name="About" href="index.html" />
             <item name="FAQ" href="faq.html" />
+            <item name="Devlog" href="devlog.html" />
         </menu>
         <menu ref="reports"/>
         <footer><!-- x --></footer>
diff --git a/pom.xml b/pom.xml
index 0603779..0a65414 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,6 +94,13 @@
         <configuration>
           <siteDirectory>${project.basedir}/crow.game.site/src/site</siteDirectory>
         </configuration>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.maven.doxia</groupId>
+            <artifactId>doxia-module-markdown</artifactId>
+            <version>1.12.0</version>
+          </dependency>
+        </dependencies>
       </plugin>
     </plugins>
   </build>