Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (767)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (854)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Songs of Syx  (Read 13719 times)
0 Members and 1 Guest are viewing this topic.
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Posted 2016-10-21 08:43:06 »

Ladies and gentlemen, I give you the past two years of my spare time and soul. My first ever game with the working title "Songs of Syx".



In short, it's (ment to be) an RTS/city builder with elements of RPG. My favourite games are "Total War", "Dungeon Keeper" and "Pharaoh" and I thought I'd bring those three together and add what I've been missing from them.

You face a large, randomly generated world filled with lore, which you should colonise and conquer either through diplomacy, cunning, or war. The world-map-part-of-the-game is like civilization, but you will actually build the settlements you fund as in sim city. I would like to add dark and gritty fantasy into the setting along with some humour.

As you can see, it's intentionally pixelated. I've aimed at scale and gameplay rather than graphics. It does however implement dynamic lightning-system along with normal mapping, which makes it look kind of neat. Another feature is that I'm trying to make it moddable to the greatest extent possible.

Other cool technical stuff:

A Multi-threaded lwjgl 3.0 CORE/framework, built from scratch.
An OpenAL framework built from scratch.
A psudo-3d physics system.
A multithreaded path-finding system. (A* with some tweaks)
Tons of optimizing, enabling 16.000 (thinking, colliding, pathfinding) entities to walk around at worlds which span 1024*1024 tiles at 5x60FPS without any real load to the CPU.
An UI framework.






As of now, I'd really appreciate if you tried it out on your computers to see if there are any technical bugs. (there are logs in folder res/debug).  I'd also like some feedback, but remember that this is a super-early stage. All I could do was to make a .exe file at the moment. If there are any Linux/mac people who desperately wants to try it out, PM me and I'll see what I can do.

Also, I'm happy to share all the technical solutions that I've struggled with.

Get it here: https://ufile.io/6679
No, that was a shitty service. Let's try this: https://www.dropbox.com/s/nrphlnxp44ctrgi/syx.rar?dl=0

Play Guide:

Set preferences in the the launcher. (I suggest 1920x1080, 60FPS), then play and hit "play vanilla". The mods work only in theory...
On the menu: play->singleplayer->generator. Hit generate.
You can now play around on the world map. Some things work, others are broken.
If you want to fund a settlement, choose that icon from the bottom and place a settlement. You'll be prompted to enter it. Do so...
In the settlement there isn't so much to do. Except for controlling a sheep. Hold space, while navigating with the arrow-keys. You can try to ram the other sheep south west of you. If you have enough momentum it will explode.

I should put in a disclaimer for those of a sensitive mind, that there might be unintentional immature and harsh phrasing in the game.
 , like the error message below.

Know Prerequisites
gpu supports opengl version >= 3.3
sound card supports openAL 11 openAL10
Java 1.8.0_51 or greater.
display resolution greater than 960x540, refreshrate >= 30.

Known bugs:
When claiming, make sure to click a tile that is already claimed
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 123
Projects: 15


★★★★★


« Reply #1 - Posted 2016-10-21 10:04:46 »

When trying to run I get the following dialog


the debug log contains the following:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
java.lang.NullPointerException: "in" is null!
   at java.nio.channels.Channels.checkNotNull(Unknown Source)
   at java.nio.channels.Channels.newChannel(Unknown Source)
   at snake2d._IconLoader.ioResourceToByteBuffer(_IconLoader.java:85)
   at snake2d._IconLoader.setIcon(_IconLoader.java:33)
   at snake2d.GraphicContext.<init>(GraphicContext.java:147)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)
java.lang.RuntimeException: problem with icons : C:\Users\mail__000\Documents\syx6\Syx06\res\data\spriteSheets\
   at snake2d._IconLoader.setIcon(_IconLoader.java:38)
   at snake2d.GraphicContext.<init>(GraphicContext.java:147)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)


In case it helps, there is no "C:\Users\mail__000\" directory on this computer, maybe you've hard coded a path to a file in that location?
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #2 - Posted 2016-10-21 10:29:01 »

Thank you, and sorry about that. I've hopefully fixed it and re-uploaded it.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 123
Projects: 15


★★★★★


« Reply #3 - Posted 2016-10-21 10:41:17 »

thanks but different error now

1  
2  
3  
4  
5  
6  
7  
8  
java.lang.NullPointerException
   at org.lwjgl.system.Checks.checkPointer(Checks.java:103)
   at org.lwjgl.openal.ALC10.nalcCreateContext(ALC10.java:141)
   at org.lwjgl.openal.ALC10.alcCreateContext(ALC10.java:154)
   at snake2d.SoundCore.<init>(SoundCore.java:76)
   at snake2d.CORE.create(CORE.java:54)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 123
Projects: 15


★★★★★


« Reply #4 - Posted 2016-10-21 10:44:12 »

actually game works and gets to main menu screen (cool main menu btw) when I plugin in some speakers, so maybe you need to catch any openal exception and then fall back to a no sound mode to allow working in that situation.
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #5 - Posted 2016-10-21 10:52:56 »

actually game works and gets to main menu screen (cool main menu btw) when I plugin in some speakers, so maybe you need to catch any openal exception and then fall back to a no sound mode to allow working in that situation.

Very interesting. It's kind of beyond me right now. I'll have to experiment on it myself and try to reproduce the problem. Could you paste your res/debug/stdOut.txt so that I can have a look at your openAL stuff?
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 123
Projects: 15


★★★★★


« Reply #6 - Posted 2016-10-21 11:09:30 »

here is the output of stdOut.txt

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
21
Game version : 0.6

SYSTEM INFO
---Running on a: Windows 8.1, amd64 Platform.
---jre: 1.8.0_111
---Processors avalible: 2
---Reserved memory: 1884Mb
---Directory : C:\Users\user\Desktop\syx\res\
---Input Arguments :
---JRE Input Arguments :

Starting the Launcher....

Firing up an engine, v: 0.8

OPEN_GL
---FB stencil Bits: 8
---FB depth Bits: 0
---FB Red Bits: 8
---FB Green Bits: 8
---FB Blue Bits: 8
---FB Alpha Bits: 8
---Version: 3.3.0 - Build 10.18.10.3958
---SL Version: 3.30 - Build 10.18.10.3958
---glRenderer: Intel, Intel(R) HD Graphics

DISPLAY
---dimensions: 960x480, RfrsRate: 75
---LWJGL: 3.0.0 build 90
---GLFW: 3.2.0 Win32 WGL EGL VisualC DLL
---6 supported video modes

class snake2d.GraphicContext was sucessfully destroyed
Core was sucessfully disposed
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #7 - Posted 2016-10-21 11:25:31 »

Ah, it crashes before it gets the chance to print your openAL info, too bad. I'll try to implement a no-sound mode for you in the future. Thanks for trying it out!
Offline J0
« Reply #8 - Posted 2016-10-21 14:59:34 »

Got an ArrayOutOfBoundsException :\
1  
2  
3  
4  
5  
6  
7  
java.lang.ArrayIndexOutOfBoundsException: 0
   at util2d.gui.ButtM.<init>(ButtM.java:18)
   at util2d.gui.ButtM.getColor(ButtM.java:9)
   at launcher.ScreenSettings.<init>(ScreenSettings.java:59)
   at launcher.Launcher.<init>(Launcher.java:42)
   at launcher.Launcher.start(Launcher.java:29)
   at main.Syx07.main(Syx07.java:31)

Crashes before any ui of any kind gets a chance to show up (except for the error dialog, that is). The contents of
stdOut.txt
are a bit longer but it gets past all the sound-related info, and stops right after that with:
1  
2  
3  
4  
265650 of 265650 bytes of Sound freed
class snake2d.SoundCore sucessfully destroyed
class snake2d.GraphicContext was sucessfully destroyed
Core was sucessfully disposed

I don't know if that helps.

J0 Smiley

Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #9 - Posted 2016-10-21 15:54:24 »


That's very unfortunate.  Huh . My guess is that it has to do with your display. I think it found 0 supported fullscreen display-modes. Either that or your screens refresh-rate is below 30 HZ. Most probably I'm polling your display in a wrong way. I've re-uploaded the game, haven't fixed the issue, but it will throw a proper exception in either case. I'd be very grateful if you could try again. BTW, do you have a particular monitor in some sense? Either a really old one, or a very fancy one, or perhaps you've got several plugged in at once?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline VaTTeRGeR
« Reply #10 - Posted 2016-10-21 17:23:03 »

Got this on my laptop (opengl 3.1)  Sad
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
[LWJGL] GLFW_VERSION_UNAVAILABLE error
   Description : WGL: Failed to create OpenGL context
   Stacktrace  :
      org.lwjgl.glfw.GLFW.nglfwCreateWindow(GLFW.java:1484)
      org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:1637)
      snake2d.GraphicContext.<init>(GraphicContext.java:138)
      snake2d.CORE.create(CORE.java:51)
      launcher.Launcher.start(Launcher.java:28)
      main.Syx07.main(Syx07.java:31)
java.lang.RuntimeException: Failed to create the GLFW window
   at snake2d.GraphicContext.<init>(GraphicContext.java:144)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)
Offline J0
« Reply #11 - Posted 2016-10-21 17:32:00 »

Alright the new error I get is
1  
2  
3  
4  
5  
java.lang.RuntimeException: Seems your screen has no full screen capabilities beyond 1280x800
   at snake2d.GraphicContext.<init>(GraphicContext.java:128)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)

(I'm using a regular laptop, resolution 1366x768 px², no fancy settings whatsoever, 60Hz)

J0 Smiley

Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #12 - Posted 2016-10-21 18:13:02 »

OK J0, I've fixed it for you, so I hope it works and that you'll want to try it out regardless of this disgrace. The game is meant to be played in full HD (1920x1080), but it will fit into smaller displays, albeit not looks as good.
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #13 - Posted 2016-10-21 18:15:44 »


This is actually a legitimate error. You'll need 3.3. Sorry about that. I'll add a prerequisite clause to my post though. However, I was hoping to catch this exception and notify the user, but it seems I can't poll the supported opengl versions before I create the GLFW context, which is a bit strange. I'll work on it. Thanks for trying though!
Offline J0
« Reply #14 - Posted 2016-10-21 19:47:17 »

Call it bad luck... This time I could launch the game, everything went fine (more or less: I noticed that clicking INFO in the launcher seems to shut down the music, although sound effects of hovering buttons still play... don't know if bug or feature hahah), but when I tried to claim some land, clicking on a cell on the map crashed the game Huh
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
failed to read keys. Settings defaults
java.lang.NullPointerException
   at world.tools.TClaimTile.update(TClaimTile.java:103)
   at world.tools.WTools.update(WTools.java:177)
   at world.WorldView.update(WorldView.java:174)
   at main.VIEW.update(VIEW.java:168)
   at snake2d.Updater.update(Updater.java:92)
   at snake2d.Updater.run(Updater.java:41)
error in updater detected
Core teminating because of error
java.lang.NullPointerException
   at world.tools.TClaimTile.update(TClaimTile.java:103)
   at world.tools.WTools.update(WTools.java:177)
   at world.WorldView.update(WorldView.java:174)
   at main.VIEW.update(VIEW.java:168)
   at snake2d.Updater.update(Updater.java:92)
   at snake2d.Updater.run(Updater.java:41)


J0 Tongue

Offline VaTTeRGeR
« Reply #15 - Posted 2016-10-21 20:02:09 »

I'll try it on a desktop machine later on!
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #16 - Posted 2016-10-21 20:37:54 »

Call it bad luck... This time I could launch the game, everything went fine (more or less: I noticed that clicking INFO in the launcher seems to shut down the music, although sound effects of hovering buttons still play... don't know if bug or feature hahah), but when I tried to claim some land, clicking on a cell on the map crashed the game

Yes, finally something I have control over. It's a bug I know about. I could fix it in minutes, but haven't gotten around to it yet. The idea is that you need to click a tile which is already claimed, then drag to expand that area. Each city has its own province, so that city will control everything within this area. The music is supposed to stop also, so that's a good thing... it opened your browser too I hope? I don't have a web page yet though... thanks for playing and I hope you explore a bit more. Build a city and ram a couple of sheep, hehe. It's great fun. There shouldn't be any more bugs that crashes the game besides this to my knowledge.
Offline Gjallar

JGO Knight


Medals: 44
Projects: 1


Follower of Nurgle


« Reply #17 - Posted 2016-10-22 04:56:07 »

1  
2  
3  
4  
5  
6  
7  
java.lang.RuntimeException: GLerr: invalid enum
   at snake2d.GlHelper.checkErrors(GlHelper.java:60)
   at snake2d.GlHelper.<init>(GlHelper.java:44)
   at snake2d.GraphicContext.<init>(GraphicContext.java:179)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #18 - Posted 2016-10-22 06:41:58 »

1  
2  
3  
4  
5  
6  
7  
java.lang.RuntimeException: GLerr: invalid enum
   at snake2d.GlHelper.checkErrors(GlHelper.java:60)
   at snake2d.GlHelper.<init>(GlHelper.java:44)
   at snake2d.GraphicContext.<init>(GraphicContext.java:179)
   at snake2d.CORE.create(CORE.java:51)
   at launcher.Launcher.start(Launcher.java:28)
   at main.Syx07.main(Syx07.java:31)


Do you have OpenGL 3.3 support? It seems going Lwjgl 3.0 wasn't perhaps the greatest idea. Everyone is getting an error of their own. It would be very helpful if I could see your res/debug/stdout.txt
Offline Gjallar

JGO Knight


Medals: 44
Projects: 1


Follower of Nurgle


« Reply #19 - Posted 2016-10-22 06:59:19 »

right, sorry. there ya go

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
22
Game version : 0.7

SYSTEM INFO
---Running on a: Windows 10, amd64 Platform.
---jre: 1.8.0_111
---Processors avalible: 4
---Reserved memory: 1900Mb
---Directory : C:\Users\Flo\Desktop\syx\res\
---Input Arguments :
---JRE Input Arguments :

Starting the Launcher....

Firing up an engine, v: 0.8

DISPLAY
---supported resolutions: 640x480, 640x480, 640x480, 640x480, 640x480, 720x480, 720x480, 720x480, 720x480, 720x480, 800x480, 800x480, 800x480, 800x480, 720x576, 720x576, 720x576, 720x576, 720x576, 800x600, 800x600, 800x600, 800x600, 1024x600, 1024x600, 1024x600, 1024x768, 1024x768, 1024x768, 1280x720, 1280x720, 1280x720, 1280x768, 1152x864, 1152x864, 1360x768, 1366x768, 1440x900, 1280x1024, 1280x1024, 1600x900, 1400x1050, 1680x1050, 1920x1080, 1920x1080, 1920x1080,
---current resolution: 960x480, RfrsRate: 75
---LWJGL: 3.0.0 build 90
---GLFW: 3.2.0 Win32 WGL EGL VisualC DLL
---23 supported video modes

OPEN_GL
---FB stencil Bits: 8
---FB depth Bits: 0
---FB Red Bits: 0
---FB Green Bits: 0
---FB Blue Bits: 0
---FB Alpha Bits: 0
---Version: 3.3.14008 Core Profile/Debug Context 21.19.137.1
---SL Version: 4.50
---glRenderer: ATI Technologies Inc., Radeon (TM) RX 480 Graphics

Core was sucessfully disposed
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #20 - Posted 2016-10-22 07:14:02 »

Ok, I've changed something and reloaded the game. My suspicion is that  glGetInterger(GL_VERSION_MAYOR) was the culprit. Why? I don't know. I've asked the guys at opengl forums, but will have to wait for a reply. Hope it works!
Offline jakethesnake

Senior Devvie


Medals: 5
Projects: 1



« Reply #21 - Posted 2016-10-23 09:24:50 »

Ok, I've just learnt a new thing that might be helpful to others.

Perfectly written opengl code will in theory work on all machines that support that version.
Imperfect code will work on some machines but not on others and vice versa.
That means, since I'm not a opengl guru, that my only option is to buy a bunch of computers with all different GPUS and test things out, until I've found all the bugs.

I've just figured out that:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
      System.out.println("OPEN_GL");
      System.out.println("---FB stencil Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_STENCIL, GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE));
      System.out.println("---FB depth Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_STENCIL, GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE));
      System.out.println("---FB Red Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE));
      System.out.println("---FB Green Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE));
      System.out.println("---FB Blue Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE));
      System.out.println("---FB Alpha Bits: " + glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE));
      System.out.println("---Version: " + glGetString(GL_VERSION));
      System.out.println("---SL Version: " + glGetString(GL_SHADING_LANGUAGE_VERSION));
      System.out.println("---glRenderer: " + glGetString(GL_VENDOR) + ", " + glGetString(GL_RENDERER));
      System.out.println("---Forward compatible: " + g.forwardCompatible);
      System.out.println();
      if (!g.OpenGL33)
         throw new IllegalStateException("No opengl 3.3 support!");
      checkErrors();
   

works on my graphics card without causing any errors, but caused an error on an AMD card.
that's because:
glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT, GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE));
should be:
glGetFramebufferAttachmentParameteri(GL_FRAMEBUFFER, GL_FRONT_LEFT, GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE));
at least that's what I think.
Incredibly annoying.
Pages: [1]
  ignore  |  Print  
 
 

 
EgonOlsen (1257 views)
2018-06-10 19:43:48

EgonOlsen (1125 views)
2018-06-10 19:43:44

EgonOlsen (863 views)
2018-06-10 19:43:20

DesertCoockie (1272 views)
2018-05-13 18:23:11

nelsongames (1104 views)
2018-04-24 18:15:36

nelsongames (1335 views)
2018-04-24 18:14:32

ivj94 (2075 views)
2018-03-24 14:47:39

ivj94 (1228 views)
2018-03-24 14:46:31

ivj94 (2170 views)
2018-03-24 14:43:53

Solater (794 views)
2018-03-17 05:04:08
Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20

Deployment and Packaging
by philfrei
2018-08-19 23:54:46
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!