re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
maritnmine
I didn't. If I were ever to comment on that, it would be that you should use try-with-resource instead of those ugly double try-catches.
True. But had to use java 6 for reason initially. Didn't bother upgrading.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Is this actually web scale?
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
All DAO objects have been rewritten to prevent zombie connections.
Example: https://git.alex-dev.org/alex/Icarus...entoryDao.java
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Got a current problem with the pathfinder: https://gfycat.com/PleasingImaginativeHydra
Basically, after commenting code and doing stuff I've come to the conclusion the pathfinder is just fucked so I'm going to switch it for a different one.
If you click the square on the gate the character will still walk to it but clicking the square above it will make the character for walk around it.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Fixed pathfinder problem in latest "unstable" branch by using the same pathfinder Comet uses.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Have you looked at the pathfinder Blunk uses?
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
Hoshiko
Have you looked at the pathfinder Blunk uses?
No I haven't, this pathfinder currently implemented does the job just fine and it's quite small too so I don't see any reason to consider other options.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Streaming some rewriting of my server! Twitch
Basically going to make it so network library dependencies can easily be switched without touching the main source.
EDIT:
8-)
http://i.imgur.com/PCGAFLR.png
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
Quackster
Streaming some rewriting of my server!
Twitch
Basically going to make it so network library dependencies can easily be switched without touching the main source.
EDIT:
8-)
http://i.imgur.com/PCGAFLR.png
I think, not sure tho, but I think you have a few errors. I'm sure you know it, right?
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
Joopie
I think, not sure tho, but I think you have a few errors. I'm sure you know it, right?
How do you know??
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
Quackster
Fixed pathfinder problem in latest "unstable" branch by using the same pathfinder Comet uses.
You should just go with a basic Orthogonal 2D Pathfinder algorithm.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Changelog
- Sitting on chairs
- Laying on beds
- Applying floor/wall/landscape displays to rooms
- Fixed pathfinder so the user doesn't walk into beds/chairs at all unless their last position is their destination (just like official Habbo).
- Fixed bug where you can't sit on chairs if they're on a rug
- Fixed bug where buying an item doesn't update the inventory unless you reload it (achieved fix by re-sending inventory packet upon purchase).
Backend changelog
- Rewrote all composers to support dependency injection (interfaced the readers and response classes for reading/writing packets)
- Decoupled Netty so it's loaded as an extension, as in the "server" on the main project is all interfaced so you can easily switch it out and change the socket extension to support Apache MINA or the default Java network library.
Netty as a seperate project
https://git.alex-dev.org/alex/Icarus...v/icarus/netty
The extension configuration for the Netty project
https://git.alex-dev.org/alex/Icarus...led/extensions
Code:
extension.socket.jar=extensions/Icarus_socket_netty.jar
extension.socket.entry=org.alexdev.icarus.netty.NettyServer
Loading libraries at runtime
(When running Icarus through an IDE, using -debug launch parameter will not load libraries at runtime, because the IDE will include them, but as a jar file, you must run without -debug parameter otherwise things will break, bad.)
I changed them to load at runtime because it allows for easy extension changing if someone wishes to use a different library, for example, switching from Netty to Apache MINA you can recompile small Icarus socket extension, change the library in the properties file without recompiling the main project. :):
https://git.alex-dev.org/alex/Icarus...ies.properties
Code:
libraries=bonecp,guava,mysql,netty,slf4-api,slf4-simple
library.bonecp=bonecp-0.7.1.RELEASE.jar
library.guava=guava-11.0.2.jar
library.mysql=mysql-connector-java-5.1.6-bin.jar
library.netty=netty-3.10.5.Final.jar
library.slf4-api=slf4j-api-1.7.2.jar
library.slf4-simple=slf4j-simple-1.7.2.jar
Compiled releases of Icarus
A compiled release can be found here: https://git.alex-dev.org/alex/Icarus...aster/compiled (it will be most likely up to date, including bugs).
As long as you have the Java 1.8 installed, Icarus should boot up fine either by using run.bat (Windows) or running
Code:
java -jar Icarus.jar
Quote:
Originally Posted by
Wotsuba
You should just go with a basic Orthogonal 2D Pathfinder algorithm.
Sorry but there's no need now. I'm sorry. :(:
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Installing JDK now, shall start sussing it soon <3
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
You might wanna look into what automated build systems are like Gradle and Maven instead of leaving dependencies inside your git repo. Anyone who has worked in any project that is larger than a 2-day assignment knows why not using any of those is a bad idea. Had sort of expected that you had this set up, as it is a very basic thing in software development.
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]
Quote:
Originally Posted by
maritnmine
You might wanna look into what automated build systems are like Gradle and Maven instead of leaving dependencies inside your git repo. Anyone who has worked in any project that is larger than a 2-day assignment knows why not using any of those is a bad idea. Had sort of expected that you had this set up, as it is a very basic thing in software development.
This.