Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Desarrollo v0.2.0 #413

Open
wants to merge 96 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
703c0f0
Arreglos a WidgetFactory
cpbeto Dec 3, 2020
d18e942
Pide confirmación para cerrar el juego con ESC
cpbeto Dec 3, 2020
05fcd85
Agrega botones para agregar y eliminar servidores de la lista
cpbeto Dec 3, 2020
37adcb2
Normaliza sintaxis en SoundsSystem
cpbeto Dec 6, 2020
24a8f2a
Crea Slider en LoginScreen para controlar el volumen de la música
cpbeto Dec 6, 2020
a0fa99f
Implementa volumen global para el sistema de sonido
cpbeto Dec 7, 2020
82d2b43
Mantiene una instancia única y global de MusicSystem
cpbeto Dec 7, 2020
e3ab497
Fix: Música se reinicia al volver a la pantalla de login
cpbeto Dec 7, 2020
4a9df6a
Arreglos a MusicSystem
cpbeto Dec 7, 2020
f5d07f7
Crea aplicación de testing para hacer pruebas de interfaz gráfica
cpbeto Dec 11, 2020
48ce23f
Usa switch expressions de Java 8
cpbeto Apr 14, 2022
484469e
Merge branch 'master' into develop
cpbeto Apr 14, 2022
a96c6e1
chore(): merge branches `develop` and `overwhelmed`
joaquinodz Apr 15, 2022
53884af
login screen small bug fix and cosmetic
bestiardo Apr 16, 2022
035d265
generic scrollpane creator
bestiardo Apr 16, 2022
5a61338
Merge pull request #380 from bestiardo/develop+overwhelmedFix
joaquinodz Apr 16, 2022
8bd5a06
Add Server Button update
bestiardo Apr 16, 2022
e3b4216
Remueve artemis-fluid de ServerSystem
cpbeto Apr 17, 2022
d405233
Remueve artemis-fluid de UserSystem
cpbeto Apr 17, 2022
41ba070
Remueve artemis-fluid de ServerNotificationProcessor
cpbeto Apr 17, 2022
2cc9986
Deshabilita proyecto design para evitar errores de CI
cpbeto Apr 17, 2022
3128bc8
imagen faltante para animacion de fantasma
bestiardo Apr 17, 2022
632c74d
Merge pull request #385 from bestiardo/d+o_add_server_button_update
cpbeto Apr 17, 2022
7da169e
Refactor CommandSystem
cpbeto Apr 17, 2022
74b3dee
Arreglar proyecto design #388 - Vuelve a compilar
bestiardo Apr 17, 2022
47e4350
Merge pull request #390 from bestiardo/desarrollo-v0.1.15-desing
joaquinodz Apr 17, 2022
1d1ca0f
Merge branch 'master' into desarrollo-v0.1.15
joaquinodz Apr 17, 2022
e45164f
Revert path changes
matisandacz Apr 18, 2022
8dd0636
Merge pull request #392 from matisandacz/desarrollo-v0.1.15
cpbeto Apr 18, 2022
fb3b716
Update AOConsole.java
bestiardo Apr 18, 2022
b8572b2
Update UserInterfaceSystem.java
bestiardo Apr 18, 2022
cae4d6d
Merge pull request #396 from bestiardo/desarrollo-v0.1.15-consoleupdate
cpbeto Apr 18, 2022
baa2ac2
Comando /help #389
bestiardo Apr 20, 2022
e04e66c
Update CommandSystem.java
bestiardo Apr 20, 2022
dc72002
Merge pull request #398 from bestiardo/comando-help
cpbeto Apr 20, 2022
e471fe6
Remueve artemis-fluid de PlayerActionSystem
cpbeto Apr 20, 2022
7debd55
Desacoplar el connectionId por fuera del modulo Network
matisandacz Apr 21, 2022
df4434c
Desacoplar connectionId de Drop Item
matisandacz Apr 21, 2022
e435f3e
merge with branch desarrollo-v0.1.15
matisandacz Apr 21, 2022
df2c38d
Merge pull request #401 from matisandacz/F400
cpbeto Apr 21, 2022
fc969f6
Remueve artemis-fluid de NetworkDictionary
cpbeto Apr 21, 2022
a775b66
Remueve artemis-fluid de WorldSaveSystem
cpbeto Apr 21, 2022
095ec97
Remueve artemis-fluid de ItemActionSystem
cpbeto Apr 21, 2022
54f4071
Remueve artemis-fluid de MovementSystem
cpbeto Apr 21, 2022
224931a
Remueve clase no usada TagManager
cpbeto Apr 21, 2022
e9a371e
Remueve todo en PlayerActionSystem
cpbeto Apr 21, 2022
a9a1c23
Remueve anotación @Wire de ComponentSystem
cpbeto Apr 21, 2022
c7ba897
Refactor EntityFactorySystem
cpbeto Apr 21, 2022
59103db
Deshabilita ProfilerSystem para no floodear el stdout
cpbeto Apr 21, 2022
f5ab5c5
F4 toggle roof
bestiardo Apr 23, 2022
6d9ea9e
Se agrega TP al clickear shift + click izquierdo con animacion
matisandacz Apr 23, 2022
005f12f
refactor FX number
matisandacz Apr 23, 2022
02d11e2
remove duplicated code and refactor
matisandacz Apr 23, 2022
e154058
#408 Limpiar el repositorio - removido carpeta graficosx2
bestiardo Apr 23, 2022
bd9bd4d
Merge pull request #411 from bestiardo/eliminar-graficosx2
joaquinodz Apr 23, 2022
0180193
Merge pull request #409 from bestiardo/map-layer-roof
joaquinodz Apr 23, 2022
30d4cb4
Revierte cambios a ProfilerSystem
cpbeto Apr 24, 2022
7e6e9db
Merge pull request #410 from matisandacz/F401
cpbeto Apr 24, 2022
e4f1e3a
Como iniciar el proyecto
Lorwik Apr 27, 2022
b37b589
Merge pull request #412 from Lorwik/desarrollo-v0.1.15
cpbeto Apr 28, 2022
3f74471
Map editor update
bestiardo Apr 22, 2022
bbd958f
Update MapEditor.java
bestiardo Apr 22, 2022
a61ea13
Update MapPalette.java
bestiardo Apr 23, 2022
9aa39f9
Update MapDesignRenderingSystem.java
bestiardo Apr 23, 2022
95cb30c
Update MapEditor.java
bestiardo Apr 24, 2022
be5adc1
Design aplication - updete
bestiardo Apr 26, 2022
9e7a852
MapEditor- update
bestiardo Apr 26, 2022
842c942
Merge pull request #414 from bestiardo/desingv0.1.15
cpbeto May 3, 2022
54c74c5
Remueve artemis-fluid de CharacterTrainingSystem
cpbeto May 21, 2022
0cd63d7
Remueve artemis-fluid de MeditateSystem
cpbeto May 21, 2022
41027df
Remueve artemis-fluid de EnergyRegenerationSystem
cpbeto May 21, 2022
9560477
Remueve artemis-fluid de BuffSystem
cpbeto May 21, 2022
13ea623
Desacopla lógica de ECS de CharClass
cpbeto May 21, 2022
b03f103
Create OPEN_SERVER_JENKINS.bat
RecoX May 22, 2022
08a3faf
Update README.md
RecoX May 22, 2022
c212045
Update README.md
RecoX May 22, 2022
70373d8
Update README.md
RecoX May 22, 2022
caf4ba6
Update README.md
RecoX May 22, 2022
06b5d6f
Remueve artemis-fluid de NPCActionSystem
cpbeto May 21, 2022
cf4d91e
Remueve artemis-fluid de FootprintSystem
cpbeto May 21, 2022
e039e7e
Remueve artemis-fluid de ItemUsageSystem
cpbeto May 21, 2022
54839bb
Remueve artemis-fluid de ItemSystem
cpbeto May 22, 2022
541a1b2
Remueve artemis-fluid de ServerReferenceSystem
cpbeto May 22, 2022
82f7726
Remueve artemis-fluid de EntityUpdateSystem
cpbeto May 22, 2022
f16dcf6
Remueve artemis-fluid de SoundEntitySystem
cpbeto May 22, 2022
fc75b77
Cambio puertos default del server
RecoX May 22, 2022
87e8512
Cambia puertos default y agrega servidor de desarrollo de @recox
cpbeto May 22, 2022
7a5067c
todo: WorldUtils podría ser una clase estática
cpbeto May 22, 2022
f2fcd88
Remueve artemis-fluid de NPCAttackSystem
cpbeto May 22, 2022
65cbdff
Remueve artemis-fluid de PathFindingSystem
cpbeto May 22, 2022
4bdeb96
Remueve artemis-fluid de EffectEntitySystem
cpbeto May 22, 2022
f3f42e9
Remueve artemis-fluid de RespawnSystem
cpbeto May 22, 2022
7592007
Remueve artemis-fluid de RandomMovementSystem
cpbeto May 22, 2022
c0ea118
Remueve artemis-fluid de MapSystem
cpbeto May 22, 2022
15a438d
Remueve clase obsoleta IntervalFluidIteratingSystem
cpbeto May 22, 2022
046f7f2
Refactor ClientConfiguration
cpbeto May 25, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions OPEN_SERVER_JENKINS.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cmd /C gradlew.bat server:run
53 changes: 44 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ MMORPG de código abierto basado en Argentum Online. Escrito en Java usando Arte

*Open Source MMORPG based on Argentum Online. Written in Java, using Artemis, Kryonet and libGDX.*

#### Redes [![Website](https://img.shields.io/website?down_color=lightgrey&down_message=offline&up_color=blue&up_message=online&url=https%3A%2F%2Ffinisterra.argentumonline.org%2F)](https://finisterra.argentumonline.org/) [![Discord](https://img.shields.io/discord/479056868707270657?color=blueviolet&label=discord)](https://discord.gg/4Wd4EMwnFm)
#### Redes [![Website](https://img.shields.io/website?down_color=lightgrey&down_message=offline&up_color=blue&up_message=online&url=https%3A%2F%2Ffinisterra.argentumonline.org%2F)](https://finisterra.argentumonline.org/) [![Discord](https://img.shields.io/discord/479056868707270657?color=blueviolet&label=discord)](https://discord.gg/4Wd4EMwnFm)

## Colaboradores
![game preview image](https://cdn.discordapp.com/attachments/580487031197794313/636899837354442755/readme-repo.png)
Expand All @@ -17,14 +17,47 @@ git clone https://github.com/ao-libre/finisterra.git
cd finisterra
./gradlew desktop:run -x :shared:fluid
```
## Getting Started (IntelliJ)

## Abrir Cliente/Servidor

Windows:
Abrir CMD y posicionarse en la carpeta del proyecto.

Cliente: Ejecutar el comando
`gradlew.bat desktop:run -x shared:fluid
`

![cliente preview](https://i.imgur.com/3P2L0K4.png)

Server: Abrir otro CMD posicionado en la carpeta del proyecto y ejecutar el comando `gradlew.bat server:run -x shared:fluid`

![server preview](https://i.imgur.com/mPl3pXy.png)

## Comenzar a programar (IntelliJ)
Requerido JDK 15
- Importar como proyecto seleccionando build.gradle
- Configurar JDK en el IDE:
- Settear JDK al proyecto: File -> Project Structure... -> Project (en Project Settings) -> Project SDK
- Settear JDK a gradle: buscar `Gradle` en las settings o File -> Settings... -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM
- Ejectuar la tarea build con gradle:
- Desde la pestaña `gradle` (en la barra lateral derecha), navegar y ejecutar la tarea: finisterra -> Tasks -> build -> build

- Clonar el repositorio e importarlo, para eso lo haremos desde el propio IntelliJ:

![IntelliJ preview](https://i.imgur.com/pAhfyuZ.png)

![IntelliJ preview 2](https://i.imgur.com/AskF398.png)

Tras pulsar completar esperaremos unos minutos a que el proceso termine, cuando IntelliJ se abra con el codigo deberemos esperar unos minutos a que el IDE indexe todos los archivos y dependencias. Se mostrara mediante una barra de progreso abajo a la derecha.

- Configurar el inicio del Cliente y Servidor desde el IDE. Para ello vamos al desplegable de arriba derecha y selecciona "Edit Configurations".
Se abrira una ventana, pulsa en el '+' y selecciona 'Gradle':

![Configuracion](https://i.imgur.com/fgOF9cf.png)

Asegurate de que en run tengas
`desktop:run -x shared fluid` para el caso del cliente y 'server:run -x shared fluid' para el server.
Una vez configurado, pulsas OK y la ventana se cerrara. Ahora en el desplegable de antes podrás seleccionar Server o Cliente, pulsa el botón 'Play' o Mayús + F10 para iniciar.

- Ramas: Por defecto estaras en la rama master, para cambiar de rama podrás hacerlo desde con la herramienta de git o desde el propio IDE abajo a la derecha.

## ¿Dudas? ¿Preguntas?
Si tienes dudas, preguntas y/o quieres colaborar en el proyecto te esperamos en Discord!
https://discord.gg/Uy8AnEv9YG

## Java
Compatible con Eclipse, Netbeans y IntelliJ
Expand All @@ -34,8 +67,10 @@ To understand ECS, I recommend to read [this](https://github.com/junkdog/artemis
Using [artemis](https://github.com/junkdog/artemis-odb) framework has been really useful to start rewriting this game.

#### Kryonet
Avoid creating huge game protocol since we can use Requests and Responses, which can be processed easily with 'visitor' design pattern.
Avoid creating huge game protocol since we can use Requests and Responses, which can be processed easily with 'visitor' design pattern.
Read more [here](https://github.com/EsotericSoftware/kryonet)

#### LibGDX
It allows us to create application game logic, create screens and render all that we need using OpenGL.


4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ subprojects {
apply plugin: "java-library"

// Establecemos la version de Java a usar.
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

// Configuraciones del compilador Java
tasks.withType(JavaCompile) {
Expand Down
1 change: 0 additions & 1 deletion client/Config.json

This file was deleted.

6 changes: 2 additions & 4 deletions client/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@ dependencies {
implementation group: "org.jetbrains", name: "annotations", version: "19.0.0"
implementation group: "com.badlogicgames.gdx", name: "gdx-freetype", version: "$gdxVersion"
implementation group: "com.badlogicgames.gdx", name: "gdx-freetype", version: "$gdxVersion"
implementation group: "com.badlogicgames.gdx", name: "gdx-backend-lwjgl3", version: "$gdxVersion"
implementation (group: "com.badlogicgames.gdx", name: "gdx-tools", version: "$gdxVersion") {
exclude group: "com.badlogicgames.gdx", module: "gdx-backend-lwjgl"
}
// @todo: Revisar estas dependencias
api group: "com.badlogicgames.gdx", name: "gdx-backend-lwjgl3", version: "$gdxVersion"
implementation group: "com.badlogicgames.gdx-controllers", name: "gdx-controllers-core", version: "$gdxControllerVersion"
//implementation group: "com.badlogicgames.gdx-controllers", name: "gdx-controllers-desktop", version: "$gdxControllerVersion"
implementation group: 'net.mostlyoriginal.artemis-odb', name: 'contrib-plugin-profiler', version: '2.5.0'
implementation group: "org.reflections", name: "reflections", version: "$reflectionsVersion"
}
25 changes: 12 additions & 13 deletions client/src/game/AOGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import com.esotericsoftware.minlog.Log;
import game.handlers.DefaultAOAssetManager;
import game.screens.LoadingScreen;
import game.screens.ScreenEnum;
import game.screens.ScreenManager;
import game.systems.resources.MusicSystem;
import shared.util.LogSystem;

import static game.screens.ScreenEnum.LOGIN;

/**
* Esta es la <b>clase principal</b> de la aplicación.
* Ver la documentación de libGDX sobre {@link ApplicationListener}
Expand All @@ -19,17 +20,18 @@
public class AOGame extends Game {

private DefaultAOAssetManager assetManager;
private ClientConfiguration clientConfiguration;
private Config config;
private World world;
private MusicSystem musicSystem;

/**
* Constructor de la clase.
* Acá no hay contexto de libGDX, ver {@link AOGame#create()}
*/
public AOGame(ClientConfiguration clientConfiguration) {
public AOGame(Config config) {
Log.setLogger(new LogSystem());
this.clientConfiguration = clientConfiguration;
this.config = config;
musicSystem = new MusicSystem();
}

// Crea la ventana del juego.
Expand All @@ -40,26 +42,23 @@ public void create() {
assetManager = DefaultAOAssetManager.getInstance();
LoadingScreen screen = new LoadingScreen(assetManager);
setScreen(screen);

screen.onFinished((assetManager) -> {
ScreenManager screenManager = new ScreenManager(this);
this.world = WorldConstructor.create(clientConfiguration, screenManager, assetManager);
screenManager.to(ScreenEnum.LOGIN);
this.musicSystem = world.getSystem(MusicSystem.class);
musicSystem.playMusic(101, true);
this.world = WorldConstructor.create(config, screenManager, assetManager, musicSystem);
world.inject(musicSystem);
screenManager.addListener((screenEnum -> {
switch (screenEnum) {
case LOGIN:
this.musicSystem = world.getSystem(MusicSystem.class);
musicSystem.stopMusic();
this.world = WorldConstructor.create(clientConfiguration, screenManager, assetManager);
this.musicSystem = world.getSystem(MusicSystem.class);
this.world = WorldConstructor.create(config, screenManager, assetManager, musicSystem);
musicSystem.playMusic(101, true);
break;
case GAME:
this.musicSystem = world.getSystem(MusicSystem.class);
musicSystem.playMusic(1, true);
break;
}
}));
screenManager.to(LOGIN);
});
}

Expand Down
Loading