Jean-Pierre Deschamps Who am I ?

Personal Project – Caldeira / Astemul

Header of Caldeira project

Introduction

Caldeira is a server project for the online role playing game The 4th Coming (often refereed as T4C). Following the end of the server named Aegir, a small group of people came together to create what would be known as Aegir V3. The project, however, radically changed his mind to become something new : Caldeira ! This is a new world, a new story, a new (and only) island, a new gameplay and especially a new software called Astemul. It is in this last part that I come in

To summarize quickly, the project was launched in September 2010 by a group of former Aegir's community. Among them, a friend of mine named Quentin approach me in December 2010 to ask if I would like to join the project. At that time, I just finished my first university semester and was going to my first internship : Bell Helicopter. So, I've been hired as a developer for the project. I'm known as Jolinar.

The Project

Astemul is an emulator written from scratch in Java to fully replace pirated software used by virtually all unofficial T4C server. Following the change of orientation in the project, the System Operator, known as Gustaf, took an old emulator project for the same game and decided to give it a try to finish it. Astemul was born.

Since August 2013, the project is not active anymore. I was the System Operator (Project manager) within the team. I was actively involved in the development of the project following up with all the technical and management tasks. I was extensively writing code until now for the emulator. Here are several achievements in the project are also described in the section of my personal projects.

  • Scripting Language called: NPCScript
  • Simulation application for NPCScripts: Caldeira NPCSimulator
  • Game graphics editing software : Caldeira DDA Editor
  • General purpose XML files editing software: Caldeira XML Editor
  • Syntactic and Lexical analyzers for basic mathematics formula: StringFormula
  • IRC-T4C Proxy: Project "I"

Progression

Network Layer

100 %

The network layer is the messaging format used by Astemul's engine. It manages all the network protocol and is responsible for the establishment of a logical connection between the client and Astemul. This layer also contains the entire definition of exchanged messages between the client and Astemul as well as different levels of security and encryption used by the 1.6 client.

Network Protocol Management

50 %

Network protocol simply is the content of all the messages exchanged between the client and Astemul. The protocol relied on a model called "Request/Response". There is three families of messages in the game protocol. First one is requests made by the client causing a server response : move right, cast a spell, talking on a channel, etc. The second is the demands made by Astemul causing client to response : managing the activity signal, learn spells, check the version of the game. Finally, there are also messages sent to the client causing no response from it : receiving a private message, see a monster move. The management is based on how to respond/reply to these messages correctly.

Database

65 %

The database is the Astemul's memory. It records all volatile information about the characters at any time in order to return it at any time. This information is for example the current position, the total of experience points, quests done, the player's backpack, the contents of his spell book, etc...

NPC Script

95 %

NPCs and players in the game have the opportunity to discuss with each others. These dialogues are scripted using a homemade scripting language which targets keywords in a sentence that cause a variety of responses. These responses are function like displaying a sentence above the head of the NPC, displaying a list of items for sale or attack the player. There are also several more complex functions for creating quests in game and store small pieces of information about the players and the NPC itself.

Monster's AI

40 %

AI is an important part of Astemul. It defines all the possible interaction with the Caldeira's humans and creatures. Unlike other servers, we created our creatures with more than one behavior. This will give them the ability to make decisions as to avoid an obstacle while walking, attack or flee a target, team up with friendly creatures, etc. There are also several ways for a monster to move around. It can stay still, randomly wanders, patrolling an area at several points or even flee a specific point.

Logging

20 %

Several actions in the game must be recorded for monitoring and managements purpose as well as detect potential cheaters : destruction of an object, transfer to and from personal chest, experience gain, skills and spell usage, the messages on global channels, etc. Other actions may be stored for a certain period of time as well.

Game Data Format

50 %

Unlike the database that is used for informations that change frequently, there's more static elements in the game that are stored in files. These elements are, for example, spells definition, monsters definition, objects definition, skills. They are used to define all the attributes and a readable format be loaded by Astemul.

GM Commands

15 %

GM commands are textual commands used mainly by administrators to perform certain actions. Among these, we find monsters and object summoning, teleportation, server reboot, players ban, etc.

Gameplay Management

20 %

Gameplay management is the game mechanics used by players. It's not the gameplay itself, but the programming of its various aspects. For example : updating life and mana points over time (natural regeneration), spells and skills effects (increase HP, poison, ...) exhausts management (prevent player to perform any action within a specific period of time), experience points and levels management, fighting against monsters and each other , etc.

Videos on projet current state



(PS : The password here isn't used anymore, no need to try it!)