Grunnt
|
 |
«
Posted
2011-12-28 19:42:27 » |
|
Hey everyone, I've just entered my submission to the Java4K contest: Galactic Conquest 4K, a simple yet fun 4X RTS in 4K :-) It's even got a Terrible Space Monster in it! You can play it at the Java4K site: http://www.java4k.com/index.php?action=games&method=view&gid=370Any feedback is welcome! Making this game was actually less difficult than I anticipated. All the advice on these forums and the Java4K site on how to reduce JAR size and use all kinds of tools for that was very helpful. I've even learned quite a bit while making the game. Also, making such a small game is a great way to prototype a gameplay idea.
|
|
|
|
Riven
|
 |
«
Reply #1 - Posted
2011-12-28 22:53:11 » |
|
Once you set a collection point (C) and you remove it, no new spaceships will appear 
|
|
|
|
Riven
|
 |
«
Reply #2 - Posted
2011-12-29 02:25:59 » |
|
A lot of ships aren't actually built. I checked a few stars/planets and very often ships wouldn't appear when the counter reached 100%
|
|
|
|
Games published by our own members! Check 'em out!
|
|
Grunnt
|
 |
«
Reply #3 - Posted
2011-12-29 07:54:19 » |
|
Hey Riven, thanks a lot for trying it out! Once you set a collection point (C) and you remove it, no new spaceships will appear  Strange, I cannot seem to replicate this. I've tried setting and removing collection points, but spaceships keep on appearing. Maybe its related to your second point? A lot of ships aren't actually built. I checked a few stars/planets and very often ships wouldn't appear when the counter reached 100% This is actually a "feature"  I put a hard cap on the maximum amount of ships that can be built. However, I guess I need to find a way to put in a "cap reached" message somewhere and not simply make the newly built ships disappear into a black hole.
|
|
|
|
Riven
|
 |
«
Reply #4 - Posted
2011-12-29 16:27:58 » |
|
Reading your reply, I think my two points are refering to the same 'feature' and I simply didn't observe it long enough to see that the collection point had nothing to do with the lack of new ships being produced.
I like the game, but the 'space monster' is really unfair. It's strong and hops from planet to (nearby) planet, which most often means it ruins the game for 1 player, as it takes large amounts of ships to destroy. Whenever I see the space monster spawning near me, I simply restart the game.
|
|
|
|
Grunnt
|
 |
«
Reply #5 - Posted
2011-12-30 09:54:59 » |
|
The Space Monster is indeed a completely random element in the game. I think it needs about 75 ships to destroy, which is quite a lot indeed. I'll see if I can tune it somehow to make it a bit less of a game changer.
|
|
|
|
ra4king
|
 |
«
Reply #6 - Posted
2011-12-31 04:27:14 » |
|
Wow that was a really fun game. Fortunately for me, the space monster spawned far away so by the time he reached my planets I killed him in an instant, then I dominated the rest of the universe. This actually reminds me of a similar game from last year's Java4K competition. I'll try looking for it and update this post. EDIT: Aha!! Moo4K
|
|
|
|
StephR
|
 |
«
Reply #7 - Posted
2012-01-02 22:09:28 » |
|
It seems to be a really interesting 4X game. I will give you later deeper comments about its gameplay. For now, I can just add that you should have advertised it as a real time 4X, which differentiates it a lot from last year's Moo4K, which was a turn based game.
|
|
|
|
|
Grunnt
|
 |
«
Reply #8 - Posted
2012-01-02 22:58:58 » |
|
It seems to be a really interesting 4X game. I will give you later deeper comments about its gameplay. For now, I can just add that you should have advertised it as a real time 4X, which differentiates it a lot from last year's Moo4K, which was a turn based game.
Well, I did list under features: "4X RTS in just 4K!" Also, the difference is quite obvious once you start playing 
|
|
|
|
Grunnt
|
 |
«
Reply #9 - Posted
2012-01-02 23:01:50 » |
|
Wow that was a really fun game. Fortunately for me, the space monster spawned far away so by the time he reached my planets I killed him in an instant, then I dominated the rest of the universe. This actually reminds me of a similar game from last year's Java4K competition. I'll try looking for it and update this post. EDIT: Aha!! Moo4KAh yes, I did see Moo4k. It's got some simularities, although it's more menu-based, it's got map scrolling and its turn-based instead of real-time. Anything that smells like Master of Orion 2 sounds like fun to me.
|
|
|
|
Games published by our own members! Check 'em out!
|
|
Grunnt
|
 |
«
Reply #10 - Posted
2012-01-02 23:05:00 » |
|
[...] I will give you later deeper comments about its gameplay. [...] One thing I tried to do with this little game is to reduce the 4X type of game to its most simple uncomplicated form, and to make the UI as simple as possible. I guess I like simplicity.
|
|
|
|
|
|
ra4king
|
 |
«
Reply #12 - Posted
2012-01-03 00:09:42 » |
|
Ah no I never played that one :/
|
|
|
|
Grunnt
|
 |
«
Reply #13 - Posted
2012-01-04 11:03:34 » |
|
Ah nice, haven't seen that one yet. I think I did get some inspiration from a similar game I played on android a bit quite some time ago, at least as far as the simple controls are concerned.
|
|
|
|
Localhorst
Senior Newbie 
|
 |
«
Reply #14 - Posted
2012-01-04 11:20:26 » |
|
I often take a deeper look into the java4k games in common, as well as in yours in general. Mainly to get rid of the space monster, but also to simplify the controls (more mouse interactions). Anyway i got stuck in a common problem i always have and somehow unable to understand. You use a lot of continue instructions and they are all something like this while/for loop { .. instruction continue; instruction .. } //while/for loop I know how to deal with break/continue commands, but i have no idea what should happen if you add a continue in a loop with no statement limiting the continue execution. From what i know is that continue breaks the instruction chain and moves back to the loop, while break breaks out of the loop. But what is if you add a continue like the way you did? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| while (i2 < i / 30) { if (i21 < 255) { arrayOfInt6[i21] = 4; arrayOfFloat1[i21] = ((i2 + 1) * 10 * 3); arrayOfFloat2[i21] = (i13 + 20); arrayOfFloat3[i21] = 0.0F; arrayOfFloat4[i21] = (128.0F * i1 * 0.85F); arrayOfFloat6[(i21++)] = 1.0F; } i2++; continue; i1 = 0; while (i1 < 2) |
|
|
|
|
|
Grunnt
|
 |
«
Reply #15 - Posted
2012-01-04 13:14:18 » |
|
Hey Localhorst, funny you take such a close look at my code  However, I don't recognize the code you put up here. In my code I use no continue statements whatsoever, but I do use some break statements, for a quick search in an array, e.g.: 1 2 3 4 5 6 7 8 9 10 11 12
| for (int sh = 0; sh < MAX_NUMBER_OF_SHIPS_PER_RACE; sh++) { if (fleetOrigin[starOwner[s]][sh] == -1) { fleetOrigin[starOwner[s]][sh] = s; fleetDestination[starOwner[s]][sh] = closest; fleetProgress[starOwner[s]][sh] = 0; fleetShips[starOwner[s]][sh] = starShips[s]; starShips[s] = 0; break; } } |
However, I just checked and nowhere in my code does a break or continue statement appear with other statements following it in the way your code sample shows. Neither can I find the constant values listed, like 30, 255, and so on. Does this have something to do with the way you disassembled the bytecode? I can't imagine the compiler making such mistakes.
|
|
|
|
Localhorst
Senior Newbie 
|
 |
«
Reply #16 - Posted
2012-01-04 16:14:15 » |
|
Ay, so it is probably a weird result made by the Decompiler - i somehow trust too much into the result of this jad tool, but the one of the pro's is that once you understood the code you know how it works http://pastebin.com/kgKbcHu9Cheers
|
|
|
|
|
ra4king
|
 |
«
Reply #17 - Posted
2012-01-04 16:33:56 » |
|
I recommended you use jd-gui, it's the best decompiler I've found.
|
|
|
|
Grunnt
|
 |
«
Reply #18 - Posted
2012-01-04 16:36:24 » |
|
Ok, made an update based on the comments made, and because I managed to squeeze out a few more bytes using the JoGa tool. The graphics are much nicer now, and are using antialiasing. Also, I rebalanced the space monster so it's less of a game breaker if you're in bad luck. Unfortunately I had to remove the 1,2,3 keyboard controls for selecting ships because I needed the bytes. However, to avoid RSI I changed the selection sequence when clicking a star from 1, half, all to all, half, 1. This saves a lot of clicking since usually people will want to send all of the ships instead of just one. If you're still curious, I've put the source code online too http://www.java4k.com/index.php?action=games&method=view&gid=370
|
|
|
|
asphaltgalaxy
|
 |
«
Reply #19 - Posted
2012-01-06 13:21:34 » |
|
Wow, what a fun game! Really addicting! Like it and wish it took part in at least 8k games 
|
|
|
|
|
Pit
|
 |
«
Reply #20 - Posted
2012-01-08 14:31:04 » |
|
Very cool game And the space monster is much less frustrating now. The only thing I was wondering about: Sometimes I have one star that produces red instead of green ships. Bug or feature?^^
|
|
|
|
|
Localhorst
Senior Newbie 
|
 |
«
Reply #21 - Posted
2012-01-08 17:59:27 » |
|
This might be a bug, if you want to make sure that this does not happen add the following line: 1 2 3 4 5
| int imgIndex = starOwner[s]; ... random.setSeed(starSeed[s]); g.setColor(starColors[imgIndex]); |
Oh by the way, i played a bit with some Perlin Noise to create a nice looking space nebulae background. I used this paper as starting point: http://www.infiniverse-game.com/?p=articles-creating_nebulae.phpIt is not that complicated at all and it looks quite cool. Anyway i doubt that this would fit into the existing 4k game.. Regards
|
|
|
|
|
Grunnt
|
 |
«
Reply #22 - Posted
2012-01-08 20:48:50 » |
|
@Localhurst Thanks a lot for the bugfix suggestion! I'll see if it fixes the problem as soon as I get the chance (I'm away from home for a few days). The Perlin Noise effect looks quite cool indeed, but it may be a bit too much for 4K. @Pit Thanks  The incorrectly colored ships are not a feature, so I'll see if I can fix that.
|
|
|
|
Abuse
|
 |
«
Reply #23 - Posted
2012-01-08 23:54:35 » |
|
If you need to save a few bytes, avoid using Random & just inline the implementation of Random.next(...); it's very simple, and will cut a load of String entries in the constants pool.
|
Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! 
|
|
|
Nyhm
|
 |
«
Reply #24 - Posted
2012-03-06 17:23:37 » |
|
I know I'm late in the game (so to speak) on this topic, but I just found Galactic Conquest 4K, and I'm now completely addicted. I love this genre, but many 4x games go way overboard with complex micro-management. You've successfully boiled it down to the core essentials that make this genre fun. (I gave it 5 points in Java4K 2012 community voting.)
By the way, I can consistently win at Easy level, but still only about 50% success rate at Normal.
|
|
|
|
davidllanos22
Junior Member   Projects: 2
I'm just a learner!
|
 |
«
Reply #25 - Posted
2012-03-06 21:08:07 » |
|
What an addictive game! I've lost but it's a good game! haha
|
|
|
|
Grunnt
|
 |
«
Reply #26 - Posted
2012-03-08 09:08:40 » |
|
I know I'm late in the game (so to speak) on this topic, but I just found Galactic Conquest 4K, and I'm now completely addicted. I love this genre, but many 4x games go way overboard with complex micro-management. You've successfully boiled it down to the core essentials that make this genre fun. (I gave it 5 points in Java4K 2012 community voting.)
By the way, I can consistently win at Easy level, but still only about 50% success rate at Normal.
Thank you! I've been struggling in getting the controls as simple as they are, so it's glad someone appreciates this  The challenge is to make things (interestingly) complex without making it overly complicated.
|
|
|
|
Nyhm
|
 |
«
Reply #27 - Posted
2012-03-08 15:34:00 » |
|
I know I'm late in the game (so to speak) on this topic, but I just found Galactic Conquest 4K, and I'm now completely addicted. I love this genre, but many 4x games go way overboard with complex micro-management. You've successfully boiled it down to the core essentials that make this genre fun. (I gave it 5 points in Java4K 2012 community voting.)
By the way, I can consistently win at Easy level, but still only about 50% success rate at Normal.
Thank you! I've been struggling in getting the controls as simple as they are, so it's glad someone appreciates this  The challenge is to make things (interestingly) complex without making it overly complicated. Well put - that's exactly how I like to think about game design. The most elegant games have the most variety from the simplest rules.
|
|
|
|
StephR
|
 |
«
Reply #28 - Posted
2012-03-11 22:26:46 » |
|
Between Galcon and a complex 4X, your game is really distinct from previous entries on the same topic ( 2011's War of Wars and Moo4k ).
And it is very challenging, which is impressive for a 4 Kb strategy game. I have beaten it once in normal difficulty, and it was a hard fight against the last opponent. I wonder if anyone has already finished the game in higher difficulty levels.
|
|
|
|
|
Grunnt
|
 |
«
Reply #29 - Posted
2012-03-12 12:53:19 » |
|
Between Galcon and a complex 4X, your game is really distinct from previous entries on the same topic ( 2011's War of Wars and Moo4k ).
And it is very challenging, which is impressive for a 4 Kb strategy game. I have beaten it once in normal difficulty, and it was a hard fight against the last opponent. I wonder if anyone has already finished the game in higher difficulty levels.
Thank you  "Challenge" is such an interesting word.. It's easy to make something difficult, but that's not necessarily fun or interesting. Challenge is like difficult + Sid Meier's "a game is a series of interesting choices". Anyway, I'm in a philosophical mood I guess. I didnt manage to win the game at difficulty above normal. Also, I've started doing some work on making an improved (bigger-than-4k) version of this game, using nicer graphics and sounds (using slick 2d), and maybe making things a little bit more complex. But that may take a while.
|
|
|
|
|